diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index b715af9a4..c809a3d6f 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 dfed46dd7..8da2be1b2 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") +}