mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 23:58:06 +02:00
unify the *-BuiltinVar
parser errors (#8944)
# Description this pr condenses `MutBuiltinVar`, `LetBuiltinVar` and `ConstBuiltinVar` into one error: ```nu Error: nu::parser::name_is_builtin_var × `in` used as variable name. ╭─[entry #69:1:1] 1 │ let in = 420 · ─┬ · ╰── already a builtin variable ╰──── help: 'in' is the name of a builtin Nushell variable and cannot be used as a variable name ``` it also fixes this case which was previously not handled ```nu let $nu = 420 # this variable would have been 'lost' ```
This commit is contained in:
@ -2439,15 +2439,11 @@ pub fn parse_let_or_const(working_set: &mut StateWorkingSet, spans: &[Span]) ->
|
||||
|
||||
let var_name =
|
||||
String::from_utf8_lossy(working_set.get_span_contents(lvalue.span))
|
||||
.trim_start_matches('$')
|
||||
.to_string();
|
||||
|
||||
if ["in", "nu", "env", "nothing"].contains(&var_name.as_str()) {
|
||||
if is_const {
|
||||
working_set
|
||||
.error(ParseError::ConstBuiltinVar(var_name, lvalue.span))
|
||||
} else {
|
||||
working_set.error(ParseError::LetBuiltinVar(var_name, lvalue.span))
|
||||
};
|
||||
working_set.error(ParseError::NameIsBuiltinVar(var_name, lvalue.span))
|
||||
}
|
||||
|
||||
let var_id = lvalue.as_var();
|
||||
@ -2551,10 +2547,11 @@ pub fn parse_mut(working_set: &mut StateWorkingSet, spans: &[Span]) -> Pipeline
|
||||
|
||||
let var_name =
|
||||
String::from_utf8_lossy(working_set.get_span_contents(lvalue.span))
|
||||
.trim_start_matches('$')
|
||||
.to_string();
|
||||
|
||||
if ["in", "nu", "env", "nothing"].contains(&var_name.as_str()) {
|
||||
working_set.error(ParseError::MutBuiltinVar(var_name, lvalue.span));
|
||||
working_set.error(ParseError::NameIsBuiltinVar(var_name, lvalue.span))
|
||||
}
|
||||
|
||||
let var_id = lvalue.as_var();
|
||||
|
Reference in New Issue
Block a user