Skip to content

Commit

Permalink
Auto merge of #12719 - davidlattimore:format-args-no-unsafe, r=jonas-…
Browse files Browse the repository at this point in the history
…schievink

Remove unnecessary unsafe from format_args expansion
  • Loading branch information
bors committed Jul 8, 2022
2 parents 7181a39 + 6f819e3 commit c419aa9
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 16 deletions.
12 changes: 3 additions & 9 deletions crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,7 @@ macro_rules! format_args {
}
fn main() {
unsafe {
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), ])
};
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), ]);
}
"##]],
);
Expand Down Expand Up @@ -229,9 +227,7 @@ macro_rules! format_args {
}
fn main() {
unsafe {
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), ])
};
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), ]);
}
"##]],
);
Expand Down Expand Up @@ -262,9 +258,7 @@ macro_rules! format_args {
fn main() {
let _ =
/* parse error: expected field name or number */
unsafe {
std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(a.), std::fmt::Display::fmt), ])
};
std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(a.), std::fmt::Display::fmt), ]);
}
"##]],
);
Expand Down
8 changes: 1 addition & 7 deletions crates/hir-expand/src/builtin_fn_macro.rs
Original file line number Diff line number Diff line change
Expand Up @@ -261,13 +261,7 @@ fn format_args_expand(
quote! { std::fmt::ArgumentV1::new(&(#arg), std::fmt::Display::fmt), }
}.token_trees);
let expanded = quote! {
// It's unsafe since https://github.com/rust-lang/rust/pull/83302
// Wrap an unsafe block to avoid false-positive `missing-unsafe` lint.
// FIXME: Currently we don't have `unused_unsafe` lint so an extra unsafe block won't cause issues on early
// stable rust-src.
unsafe {
std::fmt::Arguments::new_v1(&[], &[##arg_tts])
}
std::fmt::Arguments::new_v1(&[], &[##arg_tts])
};
ExpandResult::ok(expanded)
}
Expand Down

0 comments on commit c419aa9

Please sign in to comment.