Remove some macros (#12742)

# Description
Replaces some macros with regular functions or other code.
This commit is contained in:
Ian Manske
2024-05-03 08:35:37 +00:00
committed by GitHub
parent eff2f1b3b0
commit f32ecc641f
5 changed files with 220 additions and 302 deletions

View File

@ -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"],
);
}
}