Skip to content

Commit

Permalink
Added proper explanation error code E0696
Browse files Browse the repository at this point in the history
  • Loading branch information
Polkaverse committed Apr 21, 2020
1 parent 20fc02f commit e5b68bc
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/librustc_error_codes/error_codes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ E0691: include_str!("./error_codes/E0691.md"),
E0692: include_str!("./error_codes/E0692.md"),
E0693: include_str!("./error_codes/E0693.md"),
E0695: include_str!("./error_codes/E0695.md"),
E0696: include_str!("./error_codes/E0696.md"),
E0697: include_str!("./error_codes/E0697.md"),
E0698: include_str!("./error_codes/E0698.md"),
E0699: include_str!("./error_codes/E0699.md"),
Expand Down Expand Up @@ -602,7 +603,6 @@ E0751: include_str!("./error_codes/E0751.md"),
E0687, // in-band lifetimes cannot be used in `fn`/`Fn` syntax
E0688, // in-band lifetimes cannot be mixed with explicit lifetime binders
// E0694, // an unknown tool name found in scoped attributes
E0696, // `continue` pointing to a labeled block
// E0702, // replaced with a generic attribute input check
// E0707, // multiple elided lifetimes used in arguments of `async fn`
// E0709, // multiple different lifetimes used in arguments of `async fn`
Expand Down
49 changes: 49 additions & 0 deletions src/librustc_error_codes/error_codes/E0696.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
A function is using `continue` keyword incorrectly.

Erroneous code example:

```compile_fail,E0696
fn continue_simple() {
'b: {
continue; // error!
}
}
fn continue_labeled() {
'b: {
continue 'b; // error!
}
}
fn continue_crossing() {
loop {
'b: {
continue; // error!
}
}
}
```

Here we have used the `continue` keyword incorrectly. As we
have seen above that `continue` pointing to a labeled block.

To fix this we have to use the labeled block properly.
For example:

```
fn continue_simple() {
'b: loop {
continue ; // ok!
}
}
fn continue_labeled() {
'b: loop {
continue 'b; // ok!
}
}
fn continue_crossing() {
loop {
'b: loop {
continue; // ok!
}
}
}
```
3 changes: 2 additions & 1 deletion src/test/ui/label/label_break_value_continue.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ LL | continue;

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0695`.
Some errors have detailed explanations: E0695, E0696.
For more information about an error, try `rustc --explain E0695`.

0 comments on commit e5b68bc

Please sign in to comment.