forked from extern/nushell
allow print
to take data as input again (#9823)
related to https://discord.com/channels/601130461678272522/601130461678272524/1134079115134251129 # Description before 0.83.0, `print` used to allow piping data into it, e.g. ```nushell "foo" | print ``` instead of ```nushell print "foo" ``` this PR enables the `any -> nothing` input / output type to allow this again. i've double checked and `print` is essentially the following snippet ```rust if !args.is_empty() { for arg in args { arg.into_pipeline_data() .print(engine_state, stack, no_newline, to_stderr)?; } } else if !input.is_nothing() { input.print(engine_state, stack, no_newline, to_stderr)?; } ``` 1. the first part is for `print a b c` 2. the second part is for `"foo" | print` # User-Facing Changes ```nushell "foo" | print ``` works again # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - ⚫ `toolkit test` - ⚫ `toolkit test stdlib` # After Submitting --------- Co-authored-by: sholderbach <sholderbach@users.noreply.github.com>
This commit is contained in:
parent
aa08e81370
commit
8403fff345
@ -16,7 +16,11 @@ impl Command for Print {
|
||||
|
||||
fn signature(&self) -> Signature {
|
||||
Signature::build("print")
|
||||
.input_output_types(vec![(Type::Nothing, Type::Nothing)])
|
||||
.input_output_types(vec![
|
||||
(Type::Nothing, Type::Nothing),
|
||||
(Type::Any, Type::Nothing),
|
||||
])
|
||||
.allow_variants_without_examples(true)
|
||||
.rest("rest", SyntaxShape::Any, "the values to print")
|
||||
.switch(
|
||||
"no-newline",
|
||||
|
@ -1111,3 +1111,10 @@ mod variable_scoping {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pipe_input_to_print() {
|
||||
let actual = nu!(r#""foo" | print"#);
|
||||
assert_eq!(actual.out, "foo");
|
||||
assert!(actual.err.is_empty());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user