about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2024-06-04 15:46:32 -0300
committerSantiago Pastorino <spastorino@gmail.com>2024-06-05 09:36:01 -0300
commit525828d5ee9baca7f7e651918df966f6bc38596a (patch)
treeb682d5773b0bf9ac8a2446d4b116700a9142b1f4
parentbe0726c7c152700a47d91a27a4817c0af770e8e9 (diff)
downloadrust-525828d5ee9baca7f7e651918df966f6bc38596a.tar.gz
rust-525828d5ee9baca7f7e651918df966f6bc38596a.zip
Add rustfix test for unsafe extern blocks
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.fixed19
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.rs19
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.stderr25
3 files changed, 63 insertions, 0 deletions
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.fixed b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.fixed
new file mode 100644
index 00000000000..10c19759d8a
--- /dev/null
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.fixed
@@ -0,0 +1,19 @@
+//@ run-rustfix
+
+#![feature(unsafe_extern_blocks)]
+#![deny(missing_unsafe_on_extern)]
+#![allow(unused)]
+
+unsafe extern "C" {
+    //~^ ERROR extern blocks should be unsafe [missing_unsafe_on_extern]
+    //~| WARN this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2024!
+    static TEST1: i32;
+    fn test1(i: i32);
+}
+
+unsafe extern "C" {
+    static TEST2: i32;
+    fn test2(i: i32);
+}
+
+fn main() {}
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.rs b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.rs
new file mode 100644
index 00000000000..b81e52ddc58
--- /dev/null
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.rs
@@ -0,0 +1,19 @@
+//@ run-rustfix
+
+#![feature(unsafe_extern_blocks)]
+#![deny(missing_unsafe_on_extern)]
+#![allow(unused)]
+
+extern "C" {
+    //~^ ERROR extern blocks should be unsafe [missing_unsafe_on_extern]
+    //~| WARN this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2024!
+    static TEST1: i32;
+    fn test1(i: i32);
+}
+
+unsafe extern "C" {
+    static TEST2: i32;
+    fn test2(i: i32);
+}
+
+fn main() {}
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.stderr
new file mode 100644
index 00000000000..0a3c2cd25e3
--- /dev/null
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-extern-suggestion.stderr
@@ -0,0 +1,25 @@
+error: extern blocks should be unsafe
+  --> $DIR/unsafe-extern-suggestion.rs:7:1
+   |
+LL |   extern "C" {
+   |   ^
+   |   |
+   |  _help: needs `unsafe` before the extern keyword: `unsafe`
+   | |
+LL | |
+LL | |
+LL | |     static TEST1: i32;
+LL | |     fn test1(i: i32);
+LL | | }
+   | |_^
+   |
+   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2024!
+   = note: for more information, see issue #123743 <https://github.com/rust-lang/rust/issues/123743>
+note: the lint level is defined here
+  --> $DIR/unsafe-extern-suggestion.rs:4:9
+   |
+LL | #![deny(missing_unsafe_on_extern)]
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 1 previous error
+