diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-01-19 08:15:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-19 08:15:03 +0100 |
| commit | 2e4c6fc9985c5675e8148886cf83d7d683ac80a4 (patch) | |
| tree | 3253d2201a5fb3b4301fecc1541fa0876c6a956c /tests | |
| parent | 2d828cd25347b791b3dd4271d8c05c998f698b62 (diff) | |
| parent | ec263df5e440598159f19a42c104c3b5f13888a0 (diff) | |
| download | rust-2e4c6fc9985c5675e8148886cf83d7d683ac80a4.tar.gz rust-2e4c6fc9985c5675e8148886cf83d7d683ac80a4.zip | |
Rollup merge of #119062 - compiler-errors:asm-in-let-else, r=davidtwco,est31
Deny braced macro invocations in let-else Fixes #119057 Pending T-lang decision cc `@dtolnay`
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/parser/bad-let-else-statement.rs | 25 | ||||
| -rw-r--r-- | tests/ui/parser/bad-let-else-statement.stderr | 28 |
2 files changed, 52 insertions, 1 deletions
diff --git a/tests/ui/parser/bad-let-else-statement.rs b/tests/ui/parser/bad-let-else-statement.rs index 7b927c89ba0..a42e8c41c2e 100644 --- a/tests/ui/parser/bad-let-else-statement.rs +++ b/tests/ui/parser/bad-let-else-statement.rs @@ -161,4 +161,29 @@ fn q() { }; } +fn r() { + let ok = format_args!("") else { return; }; + + let bad = format_args! {""} else { return; }; + //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed +} + +fn s() { + macro_rules! a { + () => { {} } + } + + macro_rules! b { + (1) => { + let x = a!() else { return; }; + }; + (2) => { + let x = a! {} else { return; }; + //~^ ERROR right curly brace `}` before `else` in a `let...else` statement not allowed + }; + } + + b!(1); b!(2); +} + fn main() {} diff --git a/tests/ui/parser/bad-let-else-statement.stderr b/tests/ui/parser/bad-let-else-statement.stderr index 7cbda25e417..887455913d8 100644 --- a/tests/ui/parser/bad-let-else-statement.stderr +++ b/tests/ui/parser/bad-let-else-statement.stderr @@ -228,5 +228,31 @@ LL | x LL ~ }) else { | -error: aborting due to 17 previous errors +error: right curly brace `}` before `else` in a `let...else` statement not allowed + --> $DIR/bad-let-else-statement.rs:167:31 + | +LL | let bad = format_args! {""} else { return; }; + | ^ + | +help: use parentheses instead of braces for this macro + | +LL | let bad = format_args! ("") else { return; }; + | ~ ~ + +error: right curly brace `}` before `else` in a `let...else` statement not allowed + --> $DIR/bad-let-else-statement.rs:181:25 + | +LL | let x = a! {} else { return; }; + | ^ +... +LL | b!(1); b!(2); + | ----- in this macro invocation + | + = note: this error originates in the macro `b` (in Nightly builds, run with -Z macro-backtrace for more info) +help: use parentheses instead of braces for this macro + | +LL | let x = a! () else { return; }; + | ~~ + +error: aborting due to 19 previous errors |
