mirror of
https://github.com/nushell/nushell.git
synced 2025-08-10 00:38:56 +02:00
Flags and args on def (#8953)
# Description Fixes #8916 Fix flags and args on def which were call wrong . Added some tests too .
This commit is contained in:
committed by
GitHub
parent
4b8a259916
commit
48c75831fc
@ -112,7 +112,22 @@ pub fn eval_call(
|
||||
if let Some(var_id) = named.var_id {
|
||||
let mut found = false;
|
||||
for call_named in call.named_iter() {
|
||||
if call_named.0.item == named.long {
|
||||
if let (Some(spanned), Some(short)) = (&call_named.1, named.short) {
|
||||
if spanned.item == short.to_string() {
|
||||
if let Some(arg) = &call_named.2 {
|
||||
let result = eval_expression(engine_state, caller_stack, arg)?;
|
||||
|
||||
callee_stack.add_var(var_id, result);
|
||||
} else if let Some(arg) = &named.default_value {
|
||||
let result = eval_expression(engine_state, caller_stack, arg)?;
|
||||
|
||||
callee_stack.add_var(var_id, result);
|
||||
} else {
|
||||
callee_stack.add_var(var_id, Value::boolean(true, call.head))
|
||||
}
|
||||
found = true;
|
||||
}
|
||||
} else if call_named.0.item == named.long {
|
||||
if let Some(arg) = &call_named.2 {
|
||||
let result = eval_expression(engine_state, caller_stack, arg)?;
|
||||
|
||||
|
Reference in New Issue
Block a user