Skip to content

Commit

Permalink
Rollup merge of #37475 - AndiDog:feature/error-explanation-E0532, r=G…
Browse files Browse the repository at this point in the history
…uillaumeGomez

Add E0532 error explanation

This resolves one of the error list in #35347 - just because I stumbled over it today.

I assumed the error code should be removed from `register_diagnostics!` because it's now defined above.

Since that is my first code contribution, please check that all is in order. It would be helpful to know how to run the test for the `compile_fail,E0532` part. I did `make check-stage1-cfail NO_REBUILD=1` but that doesn't test the inlined example.

r? @GuillaumeGomez
  • Loading branch information
GuillaumeGomez authored Oct 31, 2016
2 parents 46cfba2 + c8937e0 commit aa80a8c
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion src/librustc_resolve/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1461,6 +1461,47 @@ match r {
```
"##,

E0532: r##"
Pattern arm did not match expected kind.
Erroneous code example:
```compile_fail,E0532
enum State {
Succeeded,
Failed(String),
}
fn print_on_failure(state: &State) {
match *state {
// error: expected unit struct/variant or constant, found tuple
// variant `State::Failed`
State::Failed => println!("Failed"),
_ => ()
}
}
```
To fix this error, ensure the match arm kind is the same as the expression
matched.
Fixed example:
```
enum State {
Succeeded,
Failed(String),
}
fn print_on_failure(state: &State) {
match *state {
State::Failed(ref msg) => println!("Failed with {}", msg),
_ => ()
}
}
```
"##,

}

register_diagnostics! {
Expand All @@ -1480,6 +1521,5 @@ register_diagnostics! {
// E0421, merged into 531
// E0422, merged into 531/532
E0531, // unresolved pattern path kind `name`
E0532, // expected pattern path kind, found another pattern path kind
// E0427, merged into 530
}

0 comments on commit aa80a8c

Please sign in to comment.