diff --git a/crates/nu-command/tests/commands/match_.rs b/crates/nu-command/tests/commands/match_.rs index 5d41b3291a..7bf61e8853 100644 --- a/crates/nu-command/tests/commands/match_.rs +++ b/crates/nu-command/tests/commands/match_.rs @@ -244,6 +244,13 @@ fn match_with_guard_no_expr_after_if() { assert!(actual.err.contains("Match guard without an expression")); } +#[test] +fn match_with_or_missing_expr() { + let actual = nu!("match $in { 1 | }"); + + assert!(actual.err.contains("expected pattern")); +} + #[test] fn match_with_comment_1() { Playground::setup("match_with_comment", |dirs, _| { diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index 32ec9d3ce9..358a3a5575 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -4680,8 +4680,6 @@ pub fn parse_match_block_expression(working_set: &mut StateWorkingSet, span: Spa "end of input".into(), Span::new(output[position - 1].span.end, output[position - 1].span.end), )); - - working_set.exit_scope(); break; } @@ -4695,8 +4693,6 @@ pub fn parse_match_block_expression(working_set: &mut StateWorkingSet, span: Spa "end of input".into(), Span::new(output[position - 1].span.end, output[position - 1].span.end), )); - - working_set.exit_scope(); break; } else { connector = working_set.get_span_contents(output[position].span);