Enable string interpolation for environment shorthand (#5463)

This commit is contained in:
Reilly Wood 2022-05-07 04:21:29 -07:00 committed by GitHub
parent b0647f780d
commit 08e495ea67
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 7 deletions

View file

@ -4287,13 +4287,16 @@ pub fn parse_expression(
},
);
let rhs = if spans[pos].start + point < spans[pos].end {
parse_string_strict(
working_set,
Span {
start: spans[pos].start + point,
end: spans[pos].end,
},
)
let rhs_span = Span {
start: spans[pos].start + point,
end: spans[pos].end,
};
if working_set.get_span_contents(rhs_span).starts_with(b"$") {
parse_dollar_expr(working_set, rhs_span, expand_aliases_denylist)
} else {
parse_string_strict(working_set, rhs_span)
}
} else {
(
Expression {

View file

@ -22,6 +22,15 @@ fn env_shorthand_with_equals() {
assert_eq!(actual.out, "my_module=info");
}
#[test]
fn env_shorthand_with_interpolation() {
let actual = nu!(cwd: ".", r#"
let num = 123
FOO=$"($num) bar" echo $env.FOO
"#);
assert_eq!(actual.out, "123 bar");
}
#[test]
fn env_shorthand_with_comma_equals() {
let actual = nu!(cwd: ".", r#"