Fix hidden env vars not being hidden in closures (#8055)

# Description

This one fixes env not being hidden inside closure, reported in the
conversation under https://github.com/nushell/nushell/issues/6593

https://github.com/nushell/nushell/issues/6593
https://github.com/nushell/nushell/issues/7937 still persist. These
seems a bit more involved and might need hidden env tracking also in the
engine state... I'm not yet sure what's causing it.

Also re-enables some env-related tests and removes unused Value clone.

# User-Facing Changes

Just a bugfix

# 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

# 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:
Jakub Žádník
2023-02-12 19:48:51 +02:00
committed by GitHub
parent 2894668b3e
commit b0775b3f1e
4 changed files with 27 additions and 31 deletions

View File

@ -173,23 +173,13 @@ fn hide_env_twice_allowed() -> TestResult {
}
#[test]
#[ignore = "Re-enable after virtualenv update"]
fn hides_def_runs_env_1() -> TestResult {
fn hides_def_runs_env() -> TestResult {
run_test(
r#"let-env foo = "bar"; def foo [] { "foo" }; hide foo; $env.foo"#,
"bar",
)
}
#[test]
#[ignore = "Re-enable after virtualenv update"]
fn hides_def_runs_env_2() -> TestResult {
run_test(
r#"def foo [] { "foo" }; let-env foo = "bar"; hide foo; $env.foo"#,
"bar",
)
}
#[test]
fn hides_alias_runs_def_1() -> TestResult {
run_test(