diff options
| author | David Wood <david@davidtw.co> | 2020-06-25 15:16:38 +0100 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2020-07-02 13:48:32 +0100 |
| commit | cb541dc12cdf2ba14a8f5d210ac7a6b1efa69c22 (patch) | |
| tree | ffa00e1d79b5033bdb8e4aa51a92726e942842a1 /src/test/ui/error-codes | |
| parent | b7856f695d65a8ebc846754f97d15814bcb1c244 (diff) | |
| download | rust-cb541dc12cdf2ba14a8f5d210ac7a6b1efa69c22.tar.gz rust-cb541dc12cdf2ba14a8f5d210ac7a6b1efa69c22.zip | |
resolve: disallow label use through closure/async
This commit modifies resolve to disallow `break`/`continue` to labels through closures or async blocks. This doesn't make sense and should have been prohibited anyway. Signed-off-by: David Wood <david@davidtw.co>
Diffstat (limited to 'src/test/ui/error-codes')
| -rw-r--r-- | src/test/ui/error-codes/E0767.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0767.stderr | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/error-codes/E0767.rs b/src/test/ui/error-codes/E0767.rs new file mode 100644 index 00000000000..6c6cb746e6c --- /dev/null +++ b/src/test/ui/error-codes/E0767.rs @@ -0,0 +1,7 @@ +fn main () { + 'a: loop { + || { + loop { break 'a; } //~ ERROR E0767 + } + } +} diff --git a/src/test/ui/error-codes/E0767.stderr b/src/test/ui/error-codes/E0767.stderr new file mode 100644 index 00000000000..2429823306b --- /dev/null +++ b/src/test/ui/error-codes/E0767.stderr @@ -0,0 +1,14 @@ +error[E0767]: use of unreachable label `'a` + --> $DIR/E0767.rs:4:26 + | +LL | 'a: loop { + | -- unreachable label defined here +LL | || { +LL | loop { break 'a; } + | ^^ unreachable label `'a` + | + = note: labels are unreachable through functions, closures, async blocks and modules + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0767`. |
