about summary refs log tree commit diff
path: root/src/test/ui/parser
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@gmail.com>2020-08-23 03:42:19 -0700
committerDavid Tolnay <dtolnay@gmail.com>2020-09-10 06:56:33 -0700
commitfd4dd00ddef578aa01744e4146c1dfe3fbca4866 (patch)
tree161ef33a80c7d1e5ca046fe37f2e7987ae35cc74 /src/test/ui/parser
parent25b2f4861222d6507598149f576e7d25dc308c8c (diff)
downloadrust-fd4dd00ddef578aa01744e4146c1dfe3fbca4866.tar.gz
rust-fd4dd00ddef578aa01744e4146c1dfe3fbca4866.zip
Syntactically permit unsafety on mods
Diffstat (limited to 'src/test/ui/parser')
-rw-r--r--src/test/ui/parser/unsafe-foreign-mod.rs9
-rw-r--r--src/test/ui/parser/unsafe-foreign-mod.stderr14
-rw-r--r--src/test/ui/parser/unsafe-mod.rs9
-rw-r--r--src/test/ui/parser/unsafe-mod.stderr23
4 files changed, 55 insertions, 0 deletions
diff --git a/src/test/ui/parser/unsafe-foreign-mod.rs b/src/test/ui/parser/unsafe-foreign-mod.rs
new file mode 100644
index 00000000000..872af95bd22
--- /dev/null
+++ b/src/test/ui/parser/unsafe-foreign-mod.rs
@@ -0,0 +1,9 @@
+unsafe extern {
+    //~^ ERROR extern block cannot be declared unsafe
+}
+
+unsafe extern "C" {
+    //~^ ERROR extern block cannot be declared unsafe
+}
+
+fn main() {}
diff --git a/src/test/ui/parser/unsafe-foreign-mod.stderr b/src/test/ui/parser/unsafe-foreign-mod.stderr
new file mode 100644
index 00000000000..5e10988051e
--- /dev/null
+++ b/src/test/ui/parser/unsafe-foreign-mod.stderr
@@ -0,0 +1,14 @@
+error: extern block cannot be declared unsafe
+  --> $DIR/unsafe-foreign-mod.rs:1:1
+   |
+LL | unsafe extern {
+   | ^^^^^^
+
+error: extern block cannot be declared unsafe
+  --> $DIR/unsafe-foreign-mod.rs:5:1
+   |
+LL | unsafe extern "C" {
+   | ^^^^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/ui/parser/unsafe-mod.rs b/src/test/ui/parser/unsafe-mod.rs
new file mode 100644
index 00000000000..7916d878ea5
--- /dev/null
+++ b/src/test/ui/parser/unsafe-mod.rs
@@ -0,0 +1,9 @@
+unsafe mod m {
+    //~^ ERROR module cannot be declared unsafe
+}
+
+unsafe mod n;
+//~^ ERROR module cannot be declared unsafe
+//~^^ ERROR file not found for module `n`
+
+fn main() {}
diff --git a/src/test/ui/parser/unsafe-mod.stderr b/src/test/ui/parser/unsafe-mod.stderr
new file mode 100644
index 00000000000..259b2c1d61e
--- /dev/null
+++ b/src/test/ui/parser/unsafe-mod.stderr
@@ -0,0 +1,23 @@
+error[E0583]: file not found for module `n`
+  --> $DIR/unsafe-mod.rs:5:1
+   |
+LL | unsafe mod n;
+   | ^^^^^^^^^^^^^
+   |
+   = help: to create the module `n`, create file "$DIR/n.rs"
+
+error: module cannot be declared unsafe
+  --> $DIR/unsafe-mod.rs:1:1
+   |
+LL | unsafe mod m {
+   | ^^^^^^
+
+error: module cannot be declared unsafe
+  --> $DIR/unsafe-mod.rs:5:1
+   |
+LL | unsafe mod n;
+   | ^^^^^^
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0583`.