Auto merge of #14890 - HKalbasi:dev, r=HKalbasi

use `::core` instead of `$crate` in `option_env!`

fix #14885
This commit is contained in:
bors 2023-05-25 15:19:18 +00:00
commit efd3094aba
3 changed files with 23 additions and 10 deletions

View file

@ -97,7 +97,7 @@ fn main() { option_env!("TEST_ENV_VAR"); }
#[rustc_builtin_macro] #[rustc_builtin_macro]
macro_rules! option_env {() => {}} macro_rules! option_env {() => {}}
fn main() { $crate::option::Option::None:: < &str>; } fn main() { ::core::option::Option::None:: < &str>; }
"#]], "#]],
); );
} }

View file

@ -820,10 +820,10 @@ fn option_env_expand(
) )
} }
}; };
// FIXME: Use `DOLLAR_CRATE` when that works in eager macros.
let expanded = match get_env_inner(db, arg_id, &key) { let expanded = match get_env_inner(db, arg_id, &key) {
None => quote! { #DOLLAR_CRATE::option::Option::None::<&str> }, None => quote! { ::core::option::Option::None::<&str> },
Some(s) => quote! { #DOLLAR_CRATE::option::Option::Some(#s) }, Some(s) => quote! { ::core::option::Option::Some(#s) },
}; };
ExpandResult::ok(ExpandedEager::new(expanded)) ExpandResult::ok(ExpandedEager::new(expanded))

View file

@ -947,7 +947,7 @@ fn infer_builtin_macros_concat_with_lazy() {
#[test] #[test]
fn infer_builtin_macros_env() { fn infer_builtin_macros_env() {
check_infer( check_types(
r#" r#"
//- /main.rs env:foo=bar //- /main.rs env:foo=bar
#[rustc_builtin_macro] #[rustc_builtin_macro]
@ -955,13 +955,26 @@ fn infer_builtin_macros_env() {
fn main() { fn main() {
let x = env!("foo"); let x = env!("foo");
//^ &str
}
"#,
);
}
#[test]
fn infer_builtin_macros_option_env() {
check_types(
r#"
//- minicore: option
//- /main.rs env:foo=bar
#[rustc_builtin_macro]
macro_rules! option_env {() => {}}
fn main() {
let x = option_env!("foo");
//^ Option<&str>
} }
"#, "#,
expect![[r#"
!0..22 '"__RA_...TED__"': &str
62..90 '{ ...o"); }': ()
72..73 'x': &str
"#]],
); );
} }