further improvements

This commit is contained in:
Simon Gardling 2022-05-04 11:40:18 -04:00
parent 05614782d1
commit e04924f35c

View File

@ -1,4 +1,4 @@
use std::intrinsics::assume; use std::mem;
use crate::parsing::is_variable; use crate::parsing::is_variable;
@ -158,8 +158,10 @@ pub fn split_function_chars(chars: &[char]) -> Vec<String> {
// Append split // Append split
if do_split { if do_split {
data.push(buffer.clone()); data.push(Vec::new());
buffer.clear(); unsafe {
mem::swap(data.last_mut().unwrap_unchecked(), &mut buffer);
}
} }
// Add character to buffer // Add character to buffer
@ -174,13 +176,9 @@ pub fn split_function_chars(chars: &[char]) -> Vec<String> {
data.push(buffer); data.push(buffer);
} }
unsafe {
assume(!data.is_empty());
}
data.iter() data.iter()
.map(|e| e.iter().cloned().collect::<String>()) .map(|e| e.iter().cloned().collect::<String>())
.collect() .collect::<Vec<String>>()
} }
/// Generate a hint based on the input `input`, returns an `Option<String>` /// Generate a hint based on the input `input`, returns an `Option<String>`