Switch let/let-env family to init with math expressions (#8545)

# Description

This is an experiment to see what switching the `let/let-env` family to
math expressions for initialisers would be like.

# User-Facing Changes

This would require any commands you call from `let x = <command here>`
(and similar family) to call the command in parentheses. `let x = (foo)`
to call `foo`.

# Tests + Formatting

Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```

# After Submitting

If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
This commit is contained in:
JT
2023-03-23 09:14:10 +13:00
committed by GitHub
parent 0f4a073eaf
commit 2f8a52d256
13 changed files with 68 additions and 21 deletions

View File

@ -146,7 +146,7 @@ fn date_comparison() -> TestResult {
#[test]
fn let_sees_input() -> TestResult {
run_test(
r#"def c [] { let x = str length; $x }; "hello world" | c"#,
r#"def c [] { let x = (str length); $x }; "hello world" | c"#,
"11",
)
}

View File

@ -91,7 +91,7 @@ fn module_def_import_uses_internal_command() -> TestResult {
#[test]
fn module_env_import_uses_internal_command() -> TestResult {
run_test(
r#"module foo { def b [] { "2" }; export-env { let-env a = b } }; use foo; $env.a"#,
r#"module foo { def b [] { "2" }; export-env { let-env a = (b) } }; use foo; $env.a"#,
"2",
)
}