about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2024-04-28 15:14:32 +0200
committerest31 <MTest31@outlook.com>2024-04-28 21:27:26 +0200
commit4284bca7209fc9eb03a8db5a388479ff723cc70d (patch)
treec1a17a7f511d00f76c718c030334bf384f94aa70 /tests
parent4d570eea025a19564429eb52b34ec34e14659f55 (diff)
downloadrust-4284bca7209fc9eb03a8db5a388479ff723cc70d.tar.gz
rust-4284bca7209fc9eb03a8db5a388479ff723cc70d.zip
Add a note to the ArbitraryExpressionInPattern error
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/issues/issue-43250.stderr4
-rw-r--r--tests/ui/lowering/expr-in-pat-issue-99380.rs11
-rw-r--r--tests/ui/lowering/expr-in-pat-issue-99380.stderr10
-rw-r--r--tests/ui/macros/vec-macro-in-pattern.stderr1
-rw-r--r--tests/ui/match/expr_before_ident_pat.stderr2
-rw-r--r--tests/ui/pattern/issue-92074-macro-ice.stderr3
6 files changed, 31 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-43250.stderr b/tests/ui/issues/issue-43250.stderr
index f729c5cf10c..01c22a9e791 100644
--- a/tests/ui/issues/issue-43250.stderr
+++ b/tests/ui/issues/issue-43250.stderr
@@ -3,12 +3,16 @@ error: arbitrary expressions aren't allowed in patterns
    |
 LL |     m!(y);
    |        ^
+   |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
 
 error: arbitrary expressions aren't allowed in patterns
   --> $DIR/issue-43250.rs:11:8
    |
 LL |     m!(C);
    |        ^
+   |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
 
 error: aborting due to 2 previous errors
 
diff --git a/tests/ui/lowering/expr-in-pat-issue-99380.rs b/tests/ui/lowering/expr-in-pat-issue-99380.rs
new file mode 100644
index 00000000000..1d4a047f717
--- /dev/null
+++ b/tests/ui/lowering/expr-in-pat-issue-99380.rs
@@ -0,0 +1,11 @@
+macro_rules! foo {
+    ($p:expr) => {
+        if let $p = Some(42) {
+            return;
+        }
+    };
+}
+
+fn main() {
+    foo!(Some(3)); //~ ERROR arbitrary expressions aren't allowed in patterns
+}
diff --git a/tests/ui/lowering/expr-in-pat-issue-99380.stderr b/tests/ui/lowering/expr-in-pat-issue-99380.stderr
new file mode 100644
index 00000000000..7438bba270c
--- /dev/null
+++ b/tests/ui/lowering/expr-in-pat-issue-99380.stderr
@@ -0,0 +1,10 @@
+error: arbitrary expressions aren't allowed in patterns
+  --> $DIR/expr-in-pat-issue-99380.rs:10:10
+   |
+LL |     foo!(Some(3));
+   |          ^^^^^^^
+   |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/macros/vec-macro-in-pattern.stderr b/tests/ui/macros/vec-macro-in-pattern.stderr
index 447f5dcf864..7c87f3b7b8e 100644
--- a/tests/ui/macros/vec-macro-in-pattern.stderr
+++ b/tests/ui/macros/vec-macro-in-pattern.stderr
@@ -4,6 +4,7 @@ error: arbitrary expressions aren't allowed in patterns
 LL |         Some(vec![43]) => {}
    |              ^^^^^^^^
    |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: aborting due to 1 previous error
diff --git a/tests/ui/match/expr_before_ident_pat.stderr b/tests/ui/match/expr_before_ident_pat.stderr
index 57a2d2b26cf..2f59573b53f 100644
--- a/tests/ui/match/expr_before_ident_pat.stderr
+++ b/tests/ui/match/expr_before_ident_pat.stderr
@@ -9,6 +9,8 @@ error: arbitrary expressions aren't allowed in patterns
    |
 LL |     funny!(a, a);
    |            ^
+   |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
 
 error: aborting due to 2 previous errors
 
diff --git a/tests/ui/pattern/issue-92074-macro-ice.stderr b/tests/ui/pattern/issue-92074-macro-ice.stderr
index b340afff010..bf53eb4bbcd 100644
--- a/tests/ui/pattern/issue-92074-macro-ice.stderr
+++ b/tests/ui/pattern/issue-92074-macro-ice.stderr
@@ -7,6 +7,7 @@ LL |     () => { force_expr!(Vec::new()) }
 LL |     assert!(matches!(x, En::A(make_vec!())));
    |                               ----------- in this macro invocation
    |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
    = note: this error originates in the macro `make_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: arbitrary expressions aren't allowed in patterns
@@ -18,6 +19,7 @@ LL |     () => { force_pat!(get_usize(), get_usize()) }
 LL |     assert!(matches!(5, make_pat!()));
    |                         ----------- in this macro invocation
    |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
    = note: this error originates in the macro `make_pat` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: arbitrary expressions aren't allowed in patterns
@@ -29,6 +31,7 @@ LL |     () => { force_pat!(get_usize(), get_usize()) }
 LL |     assert!(matches!(5, make_pat!()));
    |                         ----------- in this macro invocation
    |
+   = note: the :expr fragment specifier forces the metavariable's content to be an expression
    = note: this error originates in the macro `make_pat` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: aborting due to 3 previous errors