about summary refs log tree commit diff
path: root/tests/ui/parser/macro/bad-macro-definition.stderr
diff options
context:
space:
mode:
authorMatthias Krüger <476013+matthiaskrgr@users.noreply.github.com>2025-10-02 10:27:49 +0200
committerGitHub <noreply@github.com>2025-10-02 10:27:49 +0200
commitac7beab527861103dd1e1515d534f87956786554 (patch)
tree52d7ecb9c0fd9d077a7a7a897d052734e2629cb7 /tests/ui/parser/macro/bad-macro-definition.stderr
parent92aac1bdf61642cfc99498ca86e663cf53d2039e (diff)
parent4fc0a0d42a66e9b248fa527f7f063ec7226803dd (diff)
downloadrust-ac7beab527861103dd1e1515d534f87956786554.tar.gz
rust-ac7beab527861103dd1e1515d534f87956786554.zip
Rollup merge of #146535 - joshtriplett:mbe-unsafe-attr, r=petrochenkov
mbe: Implement `unsafe` attribute rules

This implements `unsafe attr` rules for declarative `macro_rules!` attributes, as specified in [RFC 3697](https://github.com/rust-lang/rfcs/pull/3697).

An invocation of an attribute that uses an `unsafe attr` rule requires the `unsafe(attr(...))` syntax.

An invocation of an attribute that uses an ordinary `attr` rule must *not* use the `unsafe(attr(...))` syntax.

`unsafe` is only supported on an `attr` rule, not any other kind of `macro_rules!` rule.

Tracking issue for `macro_rules!` attributes: https://github.com/rust-lang/rust/issues/143547
Diffstat (limited to 'tests/ui/parser/macro/bad-macro-definition.stderr')
-rw-r--r--tests/ui/parser/macro/bad-macro-definition.stderr8
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/ui/parser/macro/bad-macro-definition.stderr b/tests/ui/parser/macro/bad-macro-definition.stderr
index de6d9d6a38b..d15f33f708d 100644
--- a/tests/ui/parser/macro/bad-macro-definition.stderr
+++ b/tests/ui/parser/macro/bad-macro-definition.stderr
@@ -52,5 +52,11 @@ error: macros must contain at least one rule
 LL | macro_rules! f {}
    | ^^^^^^^^^^^^^^^^^
 
-error: aborting due to 9 previous errors
+error: `unsafe` is only supported on `attr` rules
+  --> $DIR/bad-macro-definition.rs:24:18
+   |
+LL | macro_rules! g { unsafe {} => {} }
+   |                  ^^^^^^
+
+error: aborting due to 10 previous errors