mirror of
https://github.com/nushell/nushell.git
synced 2025-06-19 17:38:14 +02:00
allow export alias
in repl (#15054)
# Description Fixes: #15048 The issue is happened while `parse_export_in_block`, it makes a call to `parse_internal_call`, which may be an error. But in reality, these errors are not useful, all useful errors will be generated by `parse_xxx` at the end of the function. # User-Facing Changes The following code should no longer raise error: ``` export alias a = overlay use ``` # Tests + Formatting Added 1 test. # After Submitting NaN
This commit is contained in:
parent
6e88b3f8d6
commit
d4675d9138
@ -163,3 +163,9 @@ fn alias_default_help() {
|
|||||||
let first_help_line = actual.out.lines().next().unwrap();
|
let first_help_line = actual.out.lines().next().unwrap();
|
||||||
assert!(first_help_line.starts_with("Alias for `echo 'I am a beautiful teapot'`"));
|
assert!(first_help_line.starts_with("Alias for `echo 'I am a beautiful teapot'`"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn export_alias_with_overlay_use_works() {
|
||||||
|
let actual = nu!("export alias teapot = overlay use");
|
||||||
|
assert!(actual.err.is_empty())
|
||||||
|
}
|
||||||
|
@ -1147,6 +1147,7 @@ pub fn parse_export_in_block(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(decl_id) = working_set.find_decl(full_name.as_bytes()) {
|
if let Some(decl_id) = working_set.find_decl(full_name.as_bytes()) {
|
||||||
|
let starting_error_count = working_set.parse_errors.len();
|
||||||
let ParsedInternalCall { call, output, .. } = parse_internal_call(
|
let ParsedInternalCall { call, output, .. } = parse_internal_call(
|
||||||
working_set,
|
working_set,
|
||||||
if full_name == "export" {
|
if full_name == "export" {
|
||||||
@ -1161,12 +1162,12 @@ pub fn parse_export_in_block(
|
|||||||
},
|
},
|
||||||
decl_id,
|
decl_id,
|
||||||
);
|
);
|
||||||
|
// don't need errors generated by parse_internal_call
|
||||||
|
// further error will be generated by detail `parse_xxx` function.
|
||||||
|
working_set.parse_errors.truncate(starting_error_count);
|
||||||
|
|
||||||
let decl = working_set.get_decl(decl_id);
|
let decl = working_set.get_decl(decl_id);
|
||||||
|
|
||||||
let starting_error_count = working_set.parse_errors.len();
|
|
||||||
check_call(working_set, call_span, &decl.signature(), &call);
|
check_call(working_set, call_span, &decl.signature(), &call);
|
||||||
|
|
||||||
let Ok(is_help) = has_flag_const(working_set, &call, "help") else {
|
let Ok(is_help) = has_flag_const(working_set, &call, "help") else {
|
||||||
return garbage_pipeline(working_set, &lite_command.parts);
|
return garbage_pipeline(working_set, &lite_command.parts);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user