Track call arguments in a single list (#5125)

* Initial implementation of ordered call args

* Run cargo fmt

* Fix some clippy lints

* Add positional len and nth

* Cargo fmt

* Remove more old nth calls

* Good ole rustfmt

* Add named len

Co-authored-by: Hristo Filaretov <h.filaretov@protonmail.com>
This commit is contained in:
Hristo Filaretov
2022-04-09 04:55:02 +02:00
committed by GitHub
parent 3bac480ca0
commit 683b912263
25 changed files with 263 additions and 190 deletions

View File

@ -54,8 +54,7 @@ impl Command for BuildString {
) -> Result<nu_protocol::PipelineData, nu_protocol::ShellError> {
let config = stack.get_config().unwrap_or_default();
let output = call
.positional
.iter()
.positional_iter()
.map(|expr| {
eval_expression(engine_state, stack, expr).map(|val| val.into_string(", ", &config))
})

View File

@ -245,7 +245,10 @@ impl Command for Char {
}
let mut multi_byte = String::new();
for (i, arg) in args.iter().enumerate() {
let span = call.nth(i).expect("Unexpected missing argument").span;
let span = call
.positional_nth(i)
.expect("Unexpected missing argument")
.span;
multi_byte.push(string_to_unicode_char(arg, &span)?)
}
Ok(Value::string(multi_byte, call_span).into_pipeline_data())
@ -262,7 +265,9 @@ impl Command for Char {
} else {
Err(ShellError::UnsupportedInput(
"error finding named character".into(),
call.nth(0).expect("Unexpected missing argument").span,
call.positional_nth(0)
.expect("Unexpected missing argument")
.span,
))
}
}