fix: Fix env/option_env macro check disregarding macro_rules definitions

This commit is contained in:
Lukas Wirth 2025-01-08 10:59:58 +01:00
parent fff668052b
commit acccd4bde6
2 changed files with 41 additions and 35 deletions

View file

@ -68,43 +68,40 @@ pub(crate) fn complete_cargo_env_vars(
mod tests {
use crate::tests::{check_edit, completion_list};
fn check(macro_name: &str) {
check_edit(
"CARGO_BIN_NAME",
&format!(
r#"
#[rustc_builtin_macro]
macro {macro_name} {{
($var:literal) => {{ 0 }}
}}
fn main() {{
let foo = {macro_name}!("CAR$0");
}}
"#
),
&format!(
r#"
#[rustc_builtin_macro]
macro {macro_name} {{
($var:literal) => {{ 0 }}
}}
fn main() {{
let foo = {macro_name}!("CARGO_BIN_NAME");
}}
"#
),
);
}
#[test]
fn completes_env_variable_in_env() {
check("env")
check_edit(
"CARGO_BIN_NAME",
r#"
//- minicore: env
fn main() {
let foo = env!("CAR$0");
}
"#,
r#"
fn main() {
let foo = env!("CARGO_BIN_NAME");
}
"#,
);
}
#[test]
fn completes_env_variable_in_option_env() {
check("option_env");
check_edit(
"CARGO_BIN_NAME",
r#"
//- minicore: env
fn main() {
let foo = option_env!("CAR$0");
}
"#,
r#"
fn main() {
let foo = option_env!("CARGO_BIN_NAME");
}
"#,
);
}
#[test]