mirror of
https://github.com/nushell/nushell.git
synced 2025-08-14 10:09:06 +02:00
Remove some macros (#12742)
# Description Replaces some macros with regular functions or other code.
This commit is contained in:
@ -1065,63 +1065,58 @@ mod tilde_expansion {
|
||||
mod variable_scoping {
|
||||
use nu_test_support::nu;
|
||||
|
||||
macro_rules! test_variable_scope {
|
||||
($func:literal == $res:literal $(,)*) => {
|
||||
let actual = nu!($func);
|
||||
|
||||
assert_eq!(actual.out, $res);
|
||||
};
|
||||
fn test_variable_scope(code: &str, expected: &str) {
|
||||
let actual = nu!(code);
|
||||
assert_eq!(actual.out, expected);
|
||||
}
|
||||
macro_rules! test_variable_scope_list {
|
||||
($func:literal == $res:expr $(,)*) => {
|
||||
let actual = nu!($func);
|
||||
|
||||
let result: Vec<&str> = actual.out.matches("ZZZ").collect();
|
||||
assert_eq!(result, $res);
|
||||
};
|
||||
fn test_variable_scope_list(code: &str, expected: &[&str]) {
|
||||
let actual = nu!(code);
|
||||
let result: Vec<&str> = actual.out.matches("ZZZ").collect();
|
||||
assert_eq!(result, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn access_variables_in_scopes() {
|
||||
test_variable_scope!(
|
||||
test_variable_scope(
|
||||
" def test [input] { echo [0 1 2] | do { do { echo $input } } }
|
||||
test ZZZ "
|
||||
== "ZZZ"
|
||||
test ZZZ ",
|
||||
"ZZZ",
|
||||
);
|
||||
test_variable_scope!(
|
||||
test_variable_scope(
|
||||
r#" def test [input] { echo [0 1 2] | do { do { if $input == "ZZZ" { echo $input } else { echo $input } } } }
|
||||
test ZZZ "#
|
||||
== "ZZZ"
|
||||
test ZZZ "#,
|
||||
"ZZZ",
|
||||
);
|
||||
test_variable_scope!(
|
||||
test_variable_scope(
|
||||
r#" def test [input] { echo [0 1 2] | do { do { if $input == "ZZZ" { echo $input } else { echo $input } } } }
|
||||
test ZZZ "#
|
||||
== "ZZZ"
|
||||
test ZZZ "#,
|
||||
"ZZZ",
|
||||
);
|
||||
test_variable_scope!(
|
||||
test_variable_scope(
|
||||
" def test [input] { echo [0 1 2] | do { echo $input } }
|
||||
test ZZZ "
|
||||
== "ZZZ"
|
||||
test ZZZ ",
|
||||
"ZZZ",
|
||||
);
|
||||
test_variable_scope!(
|
||||
test_variable_scope(
|
||||
" def test [input] { echo [0 1 2] | do { if $input == $input { echo $input } else { echo $input } } }
|
||||
test ZZZ "
|
||||
== "ZZZ"
|
||||
test ZZZ ",
|
||||
"ZZZ"
|
||||
);
|
||||
test_variable_scope_list!(
|
||||
test_variable_scope_list(
|
||||
" def test [input] { echo [0 1 2] | each { |_| echo $input } }
|
||||
test ZZZ "
|
||||
== ["ZZZ", "ZZZ", "ZZZ"]
|
||||
test ZZZ ",
|
||||
&["ZZZ", "ZZZ", "ZZZ"],
|
||||
);
|
||||
test_variable_scope_list!(
|
||||
test_variable_scope_list(
|
||||
" def test [input] { echo [0 1 2] | each { |it| if $it > 0 {echo $input} else {echo $input}} }
|
||||
test ZZZ "
|
||||
== ["ZZZ", "ZZZ", "ZZZ"]
|
||||
test ZZZ ",
|
||||
&["ZZZ", "ZZZ", "ZZZ"],
|
||||
);
|
||||
test_variable_scope_list!(
|
||||
test_variable_scope_list(
|
||||
" def test [input] { echo [0 1 2] | each { |_| if $input == $input {echo $input} else {echo $input}} }
|
||||
test ZZZ "
|
||||
== ["ZZZ", "ZZZ", "ZZZ"]
|
||||
test ZZZ ",
|
||||
&["ZZZ", "ZZZ", "ZZZ"],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user