mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 12:55:47 +02:00
fix panic when ..=
syntax is used in stepped ranges (#16231)
Fixes #16185 # Description Stepped range literals where `..=` precedes the second value no longer cause a parser panic: ```diff random int 1..=3..5 -Error: x Main thread panicked. - |-> at crates/nu-protocol/src/engine/state_working_set.rs:400:48 - `-> slice index starts at 8 but ends at 7 +Error: nu::parser::parse_mismatch + + × Parse mismatch during operation. + ╭─[entry #1:1:15] + 1 │ random int 1..=3..5 + · ─┬ + · ╰── expected number ```
This commit is contained in:
@ -1834,7 +1834,12 @@ pub fn parse_range(working_set: &mut StateWorkingSet, span: Span) -> Option<Expr
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
let op_str = if token.contains("..=") { "..=" } else { ".." };
|
||||
let op_str = if token[range_op_pos..].starts_with("..=") {
|
||||
"..="
|
||||
} else {
|
||||
".."
|
||||
};
|
||||
|
||||
let op_span = Span::new(
|
||||
span.start + range_op_pos,
|
||||
span.start + range_op_pos + op_str.len(),
|
||||
|
Reference in New Issue
Block a user