about summary refs log tree commit diff
path: root/tests/ui/proc-macro/proc-macro-gates.rs
diff options
context:
space:
mode:
authorAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-05 09:13:28 +0100
committerAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-11 09:32:08 +0000
commitcf2dff2b1e3fa55fa5415d524200070d0d7aacfe (patch)
tree40a88d9a46aaf3e8870676eb2538378b75a263eb /tests/ui/proc-macro/proc-macro-gates.rs
parentca855e6e42787ecd062d81d53336fe6788ef51a9 (diff)
downloadrust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.tar.gz
rust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.zip
Move /src/test to /tests
Diffstat (limited to 'tests/ui/proc-macro/proc-macro-gates.rs')
-rw-r--r--tests/ui/proc-macro/proc-macro-gates.rs53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/ui/proc-macro/proc-macro-gates.rs b/tests/ui/proc-macro/proc-macro-gates.rs
new file mode 100644
index 00000000000..e2cf4e73987
--- /dev/null
+++ b/tests/ui/proc-macro/proc-macro-gates.rs
@@ -0,0 +1,53 @@
+// aux-build:test-macros.rs
+// gate-test-proc_macro_hygiene
+
+#![feature(stmt_expr_attributes)]
+
+#[macro_use]
+extern crate test_macros;
+
+fn _test_inner() {
+    #![empty_attr] //~ ERROR: inner macro attributes are unstable
+}
+
+mod _test2_inner {
+    #![empty_attr] //~ ERROR: inner macro attributes are unstable
+}
+
+#[empty_attr = "y"] //~ ERROR: key-value macro attributes are not supported
+fn _test3() {}
+
+fn attrs() {
+    // Statement, item
+    #[empty_attr] // OK
+    struct S;
+
+    // Statement, macro
+    #[empty_attr] //~ ERROR: custom attributes cannot be applied to statements
+    println!();
+
+    // Statement, semi
+    #[empty_attr] //~ ERROR: custom attributes cannot be applied to statements
+    S;
+
+    // Statement, local
+    #[empty_attr] //~ ERROR: custom attributes cannot be applied to statements
+    let _x = 2;
+
+    // Expr
+    let _x = #[identity_attr] 2; //~ ERROR: custom attributes cannot be applied to expressions
+
+    // Opt expr
+    let _x = [#[identity_attr] 2]; //~ ERROR: custom attributes cannot be applied to expressions
+
+    // Expr macro
+    let _x = #[identity_attr] println!();
+    //~^ ERROR: custom attributes cannot be applied to expressions
+}
+
+fn test_case() {
+    #![test] //~ ERROR inner macro attributes are unstable
+             //~| WARN this was previously accepted
+}
+
+fn main() {}