From 3c6b10c6b2777408beadee78df7a9a73c25e4ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= Date: Sat, 28 Jan 2023 19:55:29 +0200 Subject: [PATCH] Fix wrong VarId of $in variable (#7893) Fixes https://github.com/nushell/nushell/issues/7872 --- crates/nu-parser/src/parser.rs | 2 +- src/tests/test_engine.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index b715af9a44..c809a3d6f4 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -5995,7 +5995,7 @@ fn wrap_expr_with_collect(working_set: &mut StateWorkingSet, expr: &Expression) if let Some(decl_id) = working_set.find_decl(b"collect", &Type::Any) { let mut output = vec![]; - let var_id = working_set.next_var_id(); + let var_id = IN_VARIABLE_ID; let mut signature = Signature::new(""); signature.required_positional.push(PositionalArg { var_id: Some(var_id), diff --git a/src/tests/test_engine.rs b/src/tests/test_engine.rs index dfed46dd7e..8da2be1b2c 100644 --- a/src/tests/test_engine.rs +++ b/src/tests/test_engine.rs @@ -365,3 +365,9 @@ fn better_operator_spans() -> TestResult { fn range_right_exclusive() -> TestResult { run_test(r#"[1, 4, 5, 8, 9] | range 1..<3 | math sum"#, "9") } + +/// Issue #7872 +#[test] +fn assignment_to_in_var_no_panic() -> TestResult { + fail_test(r#"$in = 3"#, "needs to be a mutable variable") +}