about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-07-08 14:10:19 +0000
committerbors <bors@rust-lang.org>2022-07-08 14:10:19 +0000
commitc419aa9775bbbb877ae699f7520b4b1c77406996 (patch)
tree58244a2805338a755c0e7b37dba4f948c4449fde
parent7181a39d4c3456c6ce9e16899d7b1b60982bea09 (diff)
parent6f819e30e41dd0c0d91287e367469513edc8a56d (diff)
downloadrust-c419aa9775bbbb877ae699f7520b4b1c77406996.tar.gz
rust-c419aa9775bbbb877ae699f7520b4b1c77406996.zip
Auto merge of #12719 - davidlattimore:format-args-no-unsafe, r=jonas-schievink
Remove unnecessary unsafe from format_args expansion
-rw-r--r--crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs12
-rw-r--r--crates/hir-expand/src/builtin_fn_macro.rs8
2 files changed, 4 insertions, 16 deletions
diff --git a/crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs b/crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs
index a28478ff4d8..92dffa7f372 100644
--- a/crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs
+++ b/crates/hir-def/src/macro_expansion_tests/builtin_fn_macro.rs
@@ -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), ]);
 }
 "##]],
     );
@@ -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), ]);
 }
 "##]],
     );
@@ -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), ]);
 }
 "##]],
     );
diff --git a/crates/hir-expand/src/builtin_fn_macro.rs b/crates/hir-expand/src/builtin_fn_macro.rs
index c3a9091ee79..76da7c9f1ee 100644
--- a/crates/hir-expand/src/builtin_fn_macro.rs
+++ b/crates/hir-expand/src/builtin_fn_macro.rs
@@ -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)
 }