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