Skip to content

Commit

Permalink
Test that label break value only works on actual blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
est31 committed May 16, 2018
1 parent f8c2598 commit 128f2b5
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/test/ui/label_break_value_illegal_uses.rs
@@ -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 changes: 31 additions & 0 deletions src/test/ui/label_break_value_illegal_uses.stderr
@@ -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

0 comments on commit 128f2b5

Please sign in to comment.