Use $crate instead of std for panic builtin_fn_macro

This should be closer to the expected output and gets rid of a few
type mismatches in rustc/library
This commit is contained in:
Lukas Wirth 2022-10-01 22:51:09 +02:00
parent 870825b376
commit 1574fe0d54
2 changed files with 19 additions and 19 deletions

View File

@ -93,12 +93,12 @@ macro_rules! option_env {() => {}}
fn main() { option_env!("TEST_ENV_VAR"); } fn main() { option_env!("TEST_ENV_VAR"); }
"#, "#,
expect![[r##" expect![[r#"
#[rustc_builtin_macro] #[rustc_builtin_macro]
macro_rules! option_env {() => {}} macro_rules! option_env {() => {}}
fn main() { std::option::Option::None:: < &str>; } fn main() { $crate::option::Option::None:: < &str>; }
"##]], "#]],
); );
} }
@ -191,7 +191,7 @@ fn main() {
format_args!("{} {:?}", arg1(a, b, c), arg2); format_args!("{} {:?}", arg1(a, b, c), arg2);
} }
"#, "#,
expect![[r##" expect![[r#"
#[rustc_builtin_macro] #[rustc_builtin_macro]
macro_rules! format_args { macro_rules! format_args {
($fmt:expr) => ({ /* compiler built-in */ }); ($fmt:expr) => ({ /* compiler built-in */ });
@ -199,9 +199,9 @@ macro_rules! format_args {
} }
fn main() { fn main() {
std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(arg1(a, b, c)), std::fmt::Display::fmt), std::fmt::ArgumentV1::new(&(arg2), std::fmt::Display::fmt), ]); $crate::fmt::Arguments::new_v1(&[], &[$crate::fmt::ArgumentV1::new(&(arg1(a, b, c)), $crate::fmt::Display::fmt), $crate::fmt::ArgumentV1::new(&(arg2), $crate::fmt::Display::fmt), ]);
} }
"##]], "#]],
); );
} }
@ -219,7 +219,7 @@ fn main() {
format_args!("{} {:?}", a::<A,B>(), b); format_args!("{} {:?}", a::<A,B>(), b);
} }
"#, "#,
expect![[r##" expect![[r#"
#[rustc_builtin_macro] #[rustc_builtin_macro]
macro_rules! format_args { macro_rules! format_args {
($fmt:expr) => ({ /* compiler built-in */ }); ($fmt:expr) => ({ /* compiler built-in */ });
@ -227,9 +227,9 @@ macro_rules! format_args {
} }
fn main() { fn main() {
std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(a::<A, B>()), std::fmt::Display::fmt), std::fmt::ArgumentV1::new(&(b), std::fmt::Display::fmt), ]); $crate::fmt::Arguments::new_v1(&[], &[$crate::fmt::ArgumentV1::new(&(a::<A, B>()), $crate::fmt::Display::fmt), $crate::fmt::ArgumentV1::new(&(b), $crate::fmt::Display::fmt), ]);
} }
"##]], "#]],
); );
} }
@ -248,7 +248,7 @@ fn main() {
format_args!/*+errors*/("{} {:?}", a.); format_args!/*+errors*/("{} {:?}", a.);
} }
"#, "#,
expect![[r##" expect![[r#"
#[rustc_builtin_macro] #[rustc_builtin_macro]
macro_rules! format_args { macro_rules! format_args {
($fmt:expr) => ({ /* compiler built-in */ }); ($fmt:expr) => ({ /* compiler built-in */ });
@ -258,9 +258,9 @@ macro_rules! format_args {
fn main() { fn main() {
let _ = let _ =
/* parse error: expected field name or number */ /* parse error: expected field name or number */
std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(a.), std::fmt::Display::fmt), ]); $crate::fmt::Arguments::new_v1(&[], &[$crate::fmt::ArgumentV1::new(&(a.), $crate::fmt::Display::fmt), ]);
} }
"##]], "#]],
); );
} }

View File

@ -238,9 +238,9 @@ fn format_args_expand(
) -> ExpandResult<tt::Subtree> { ) -> ExpandResult<tt::Subtree> {
// We expand `format_args!("", a1, a2)` to // We expand `format_args!("", a1, a2)` to
// ``` // ```
// std::fmt::Arguments::new_v1(&[], &[ // $crate::fmt::Arguments::new_v1(&[], &[
// std::fmt::ArgumentV1::new(&arg1,std::fmt::Display::fmt), // $crate::fmt::ArgumentV1::new(&arg1,$crate::fmt::Display::fmt),
// std::fmt::ArgumentV1::new(&arg2,std::fmt::Display::fmt), // $crate::fmt::ArgumentV1::new(&arg2,$crate::fmt::Display::fmt),
// ]) // ])
// ```, // ```,
// which is still not really correct, but close enough for now // which is still not really correct, but close enough for now
@ -262,10 +262,10 @@ fn format_args_expand(
} }
let _format_string = args.remove(0); let _format_string = args.remove(0);
let arg_tts = args.into_iter().flat_map(|arg| { let arg_tts = args.into_iter().flat_map(|arg| {
quote! { std::fmt::ArgumentV1::new(&(#arg), std::fmt::Display::fmt), } quote! { #DOLLAR_CRATE::fmt::ArgumentV1::new(&(#arg), #DOLLAR_CRATE::fmt::Display::fmt), }
}.token_trees); }.token_trees);
let expanded = quote! { let expanded = quote! {
std::fmt::Arguments::new_v1(&[], &[##arg_tts]) #DOLLAR_CRATE::fmt::Arguments::new_v1(&[], &[##arg_tts])
}; };
ExpandResult::ok(expanded) ExpandResult::ok(expanded)
} }
@ -675,8 +675,8 @@ fn option_env_expand(
}; };
let expanded = match get_env_inner(db, arg_id, &key) { let expanded = match get_env_inner(db, arg_id, &key) {
None => quote! { std::option::Option::None::<&str> }, None => quote! { #DOLLAR_CRATE::option::Option::None::<&str> },
Some(s) => quote! { std::option::Some(#s) }, Some(s) => quote! { #DOLLAR_CRATE::option::Some(#s) },
}; };
ExpandResult::ok(ExpandedEager::new(expanded)) ExpandResult::ok(ExpandedEager::new(expanded))