mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
simplifications
This commit is contained in:
parent
225254d7e5
commit
1a49930d1d
2 changed files with 26 additions and 36 deletions
|
@ -180,41 +180,30 @@ fn spaces_help_help<'a, E>(
|
||||||
where
|
where
|
||||||
E: 'a + SpaceProblem,
|
E: 'a + SpaceProblem,
|
||||||
{
|
{
|
||||||
move |arena, state: State<'a>| {
|
move |arena, state: State<'a>| match fast_eat_spaces(&state) {
|
||||||
match fast_eat_spaces(&state) {
|
FastSpaceState::HasTab(position) => Err((
|
||||||
FastSpaceState::HasTab(position) => Err((
|
MadeProgress,
|
||||||
MadeProgress,
|
E::space_problem(BadInputError::HasTab, position),
|
||||||
E::space_problem(BadInputError::HasTab, position),
|
state,
|
||||||
state,
|
)),
|
||||||
)),
|
FastSpaceState::Good {
|
||||||
FastSpaceState::Good {
|
newlines,
|
||||||
newlines,
|
consumed,
|
||||||
consumed,
|
column,
|
||||||
column,
|
} => {
|
||||||
} => {
|
if consumed == 0 {
|
||||||
if consumed == 0 {
|
Ok((NoProgress, &[] as &[_], state))
|
||||||
Ok((NoProgress, &[] as &[_], state))
|
} else if column < min_indent {
|
||||||
} else if column < min_indent {
|
Err((MadeProgress, indent_problem(state.pos()), state))
|
||||||
Err((MadeProgress, indent_problem(state.pos()), state))
|
} else {
|
||||||
} else {
|
let comments_and_newlines = Vec::with_capacity_in(newlines, arena);
|
||||||
let comments_and_newlines = Vec::with_capacity_in(newlines, arena);
|
let spaces = eat_spaces(state, false, comments_and_newlines);
|
||||||
let spaces = eat_spaces(state, false, comments_and_newlines);
|
|
||||||
let mut state = spaces.state;
|
|
||||||
|
|
||||||
if spaces.multiline {
|
Ok((
|
||||||
// we parsed at least one newline
|
MadeProgress,
|
||||||
|
spaces.comments_and_newlines.into_bump_slice(),
|
||||||
state.indent_column = state.column();
|
spaces.state,
|
||||||
|
))
|
||||||
debug_assert!(state.column() >= min_indent);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok((
|
|
||||||
MadeProgress,
|
|
||||||
spaces.comments_and_newlines.into_bump_slice(),
|
|
||||||
state,
|
|
||||||
))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2789,10 +2789,11 @@ fn chomp_ops(bytes: &[u8]) -> &str {
|
||||||
let mut chomped = 0;
|
let mut chomped = 0;
|
||||||
|
|
||||||
for c in bytes.iter() {
|
for c in bytes.iter() {
|
||||||
if !BINOP_CHAR_MASK[*c as usize] {
|
if let Some(true) = BINOP_CHAR_MASK.get(*c as usize) {
|
||||||
|
chomped += 1;
|
||||||
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
chomped += 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue