Test that label break value only works on actual blocks
This commit is contained in:
parent
f8c2598dfc
commit
128f2b5870
2 changed files with 60 additions and 0 deletions
29
src/test/ui/label_break_value_illegal_uses.rs
Normal file
29
src/test/ui/label_break_value_illegal_uses.rs
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution and at
|
||||||
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
// These are forbidden occurences of label-break-value
|
||||||
|
|
||||||
|
fn labeled_unsafe() {
|
||||||
|
unsafe 'b: {} //~ ERROR expected one of `extern`, `fn`, or `{`
|
||||||
|
}
|
||||||
|
|
||||||
|
fn labeled_if() {
|
||||||
|
if true 'b: {} //~ ERROR expected `{`, found `'b`
|
||||||
|
}
|
||||||
|
|
||||||
|
fn labeled_else() {
|
||||||
|
if true {} else 'b: {} //~ ERROR expected `{`, found `'b`
|
||||||
|
}
|
||||||
|
|
||||||
|
fn labeled_match() {
|
||||||
|
match false 'b: {} //~ ERROR expected one of `.`, `?`, `{`, or an operator
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn main() {}
|
31
src/test/ui/label_break_value_illegal_uses.stderr
Normal file
31
src/test/ui/label_break_value_illegal_uses.stderr
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
error: expected one of `extern`, `fn`, or `{`, found `'b`
|
||||||
|
--> $DIR/label_break_value_illegal_uses.rs:14:12
|
||||||
|
|
|
||||||
|
LL | unsafe 'b: {} //~ ERROR expected one of `extern`, `fn`, or `{`
|
||||||
|
| ^^ expected one of `extern`, `fn`, or `{` here
|
||||||
|
|
||||||
|
error: expected `{`, found `'b`
|
||||||
|
--> $DIR/label_break_value_illegal_uses.rs:18:13
|
||||||
|
|
|
||||||
|
LL | if true 'b: {} //~ ERROR expected `{`, found `'b`
|
||||||
|
| -- ^^----
|
||||||
|
| | |
|
||||||
|
| | help: try placing this code inside a block: `{ 'b: { } }`
|
||||||
|
| this `if` statement has a condition, but no block
|
||||||
|
|
||||||
|
error: expected `{`, found `'b`
|
||||||
|
--> $DIR/label_break_value_illegal_uses.rs:22:21
|
||||||
|
|
|
||||||
|
LL | if true {} else 'b: {} //~ ERROR expected `{`, found `'b`
|
||||||
|
| ^^----
|
||||||
|
| |
|
||||||
|
| help: try placing this code inside a block: `{ 'b: { } }`
|
||||||
|
|
||||||
|
error: expected one of `.`, `?`, `{`, or an operator, found `'b`
|
||||||
|
--> $DIR/label_break_value_illegal_uses.rs:26:17
|
||||||
|
|
|
||||||
|
LL | match false 'b: {} //~ ERROR expected one of `.`, `?`, `{`, or an operator
|
||||||
|
| ^^ expected one of `.`, `?`, `{`, or an operator here
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue