mirror of
https://github.com/nushell/nushell.git
synced 2025-07-01 07:00:37 +02:00
# Description Closes #7110. ~~Note that unlike "real" `mut` vars, $env can be deeply mutated via stuff like `$env.PYTHON_IO_ENCODING = utf8` or `$env.config.history.max_size = 2000`. So, it's a slightly awkward special case, arguably justifiable because of what $env represents (the environment variables of your system, which is essentially "outside" normal Nushell regulations).~~ EDIT: Now allows all `mut` vars to be deeply mutated using `=`, on request. # User-Facing Changes See above. # 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:
@ -1997,28 +1997,22 @@ pub fn parse_full_cell_path(
|
||||
);
|
||||
error = error.or(err);
|
||||
|
||||
if !tail.is_empty() {
|
||||
(
|
||||
Expression {
|
||||
ty: head.ty.clone(), // FIXME. How to access the last type of tail?
|
||||
expr: Expr::FullCellPath(Box::new(FullCellPath { head, tail })),
|
||||
span: full_cell_span,
|
||||
custom_completion: None,
|
||||
(
|
||||
Expression {
|
||||
// FIXME: Get the type of the data at the tail using follow_cell_path() (or something)
|
||||
ty: if !tail.is_empty() {
|
||||
// Until the aforementioned fix is implemented, this is necessary to allow mutable list upserts
|
||||
// such as $a.1 = 2 to work correctly.
|
||||
Type::Any
|
||||
} else {
|
||||
head.ty.clone()
|
||||
},
|
||||
error,
|
||||
)
|
||||
} else {
|
||||
let ty = head.ty.clone();
|
||||
(
|
||||
Expression {
|
||||
expr: Expr::FullCellPath(Box::new(FullCellPath { head, tail })),
|
||||
ty,
|
||||
span: full_cell_span,
|
||||
custom_completion: None,
|
||||
},
|
||||
error,
|
||||
)
|
||||
}
|
||||
expr: Expr::FullCellPath(Box::new(FullCellPath { head, tail })),
|
||||
span: full_cell_span,
|
||||
custom_completion: None,
|
||||
},
|
||||
error,
|
||||
)
|
||||
} else {
|
||||
(garbage(span), error)
|
||||
}
|
||||
|
Reference in New Issue
Block a user