about summary refs log tree commit diff
path: root/tests/ui/parser
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2024-05-31 16:57:07 -0300
committerSantiago Pastorino <spastorino@gmail.com>2024-06-05 09:35:57 -0300
commit0380321e7806bdab232d7e95be2de47fad8f3c09 (patch)
treeff816fc584906f75507dd8f60dbf9f3dc79e9197 /tests/ui/parser
parentbac72cf7cf823bbf10e7d093a8225490bf8d1350 (diff)
Add unsafe_extern_blocks feature flag
Diffstat (limited to 'tests/ui/parser')
-rw-r--r--tests/ui/parser/unsafe-foreign-mod-2.rs2
-rw-r--r--tests/ui/parser/unsafe-foreign-mod-2.stderr17
-rw-r--r--tests/ui/parser/unsafe-foreign-mod.rs6
-rw-r--r--tests/ui/parser/unsafe-foreign-mod.stderr8
4 files changed, 29 insertions, 4 deletions
diff --git a/tests/ui/parser/unsafe-foreign-mod-2.rs b/tests/ui/parser/unsafe-foreign-mod-2.rs
index 6d339cd9088..0b63a993c5b 100644
--- a/tests/ui/parser/unsafe-foreign-mod-2.rs
+++ b/tests/ui/parser/unsafe-foreign-mod-2.rs
@@ -1,6 +1,8 @@
 extern "C" unsafe {
     //~^ ERROR expected `{`, found keyword `unsafe`
+    //~| ERROR extern block cannot be declared unsafe
     unsafe fn foo();
+    //~^ ERROR items in unadorned `extern` blocks cannot have safety qualifiers
 }
 
 fn main() {}
diff --git a/tests/ui/parser/unsafe-foreign-mod-2.stderr b/tests/ui/parser/unsafe-foreign-mod-2.stderr
index 0625e3362ed..e59352395ed 100644
--- a/tests/ui/parser/unsafe-foreign-mod-2.stderr
+++ b/tests/ui/parser/unsafe-foreign-mod-2.stderr
@@ -4,5 +4,20 @@ error: expected `{`, found keyword `unsafe`
 LL | extern "C" unsafe {
    |            ^^^^^^ expected `{`
 
-error: aborting due to 1 previous error
+error: extern block cannot be declared unsafe
+  --> $DIR/unsafe-foreign-mod-2.rs:1:12
+   |
+LL | extern "C" unsafe {
+   |            ^^^^^^
+
+error: items in unadorned `extern` blocks cannot have safety qualifiers
+  --> $DIR/unsafe-foreign-mod-2.rs:4:5
+   |
+LL | extern "C" unsafe {
+   | ----------------- help: add unsafe to this `extern` block
+...
+LL |     unsafe fn foo();
+   |     ^^^^^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
 
diff --git a/tests/ui/parser/unsafe-foreign-mod.rs b/tests/ui/parser/unsafe-foreign-mod.rs
index 26015a3c444..eab134a4a4d 100644
--- a/tests/ui/parser/unsafe-foreign-mod.rs
+++ b/tests/ui/parser/unsafe-foreign-mod.rs
@@ -1,5 +1,5 @@
-//@ build-pass
-
-unsafe extern "C" {}
+unsafe extern "C" {
+    //~^ ERROR extern block cannot be declared unsafe
+}
 
 fn main() {}
diff --git a/tests/ui/parser/unsafe-foreign-mod.stderr b/tests/ui/parser/unsafe-foreign-mod.stderr
new file mode 100644
index 00000000000..77f6e93be10
--- /dev/null
+++ b/tests/ui/parser/unsafe-foreign-mod.stderr
@@ -0,0 +1,8 @@
+error: extern block cannot be declared unsafe
+  --> $DIR/unsafe-foreign-mod.rs:1:1
+   |
+LL | unsafe extern "C" {
+   | ^^^^^^
+
+error: aborting due to 1 previous error
+