diff options
| -rw-r--r-- | src/librustc_const_eval/diagnostics.rs | 27 | ||||
| -rw-r--r-- | src/test/compile-fail/feature-gate-rustc-diagnostic-macros.rs | 4 |
2 files changed, 29 insertions, 2 deletions
diff --git a/src/librustc_const_eval/diagnostics.rs b/src/librustc_const_eval/diagnostics.rs index c809eef917f..ff0976afc0c 100644 --- a/src/librustc_const_eval/diagnostics.rs +++ b/src/librustc_const_eval/diagnostics.rs @@ -15,6 +15,33 @@ // In vim you can `:set tw=80` and use `gq` to wrap paragraphs. Use `:set tw=0` to disable. register_long_diagnostics! { +E0001: r##" +## Note: this error code is no longer emitted by the compiler. + +This error suggests that the expression arm corresponding to the noted pattern +will never be reached as for all possible values of the expression being +matched, one of the preceding patterns will match. + +This means that perhaps some of the preceding patterns are too general, this +one is too specific or the ordering is incorrect. + +For example, the following `match` block has too many arms: + +```compile_fail,E0001 +match Some(0) { + Some(bar) => {/* ... */} + x => {/* ... */} // This handles the `None` case + _ => {/* ... */} // All possible cases have already been handled +} +``` + +`match` blocks have their patterns matched in order, so, for example, putting +a wildcard arm above a more specific arm will make the latter arm irrelevant. + +Ensure the ordering of the match arm is correct and remove any superfluous +arms. +"##, + E0002: r##" ## Note: this error code is no longer emitted by the compiler. diff --git a/src/test/compile-fail/feature-gate-rustc-diagnostic-macros.rs b/src/test/compile-fail/feature-gate-rustc-diagnostic-macros.rs index 04e95584407..8286d833e8d 100644 --- a/src/test/compile-fail/feature-gate-rustc-diagnostic-macros.rs +++ b/src/test/compile-fail/feature-gate-rustc-diagnostic-macros.rs @@ -11,11 +11,11 @@ // Test that diagnostic macros are gated by `rustc_diagnostic_macros` feature // gate -__register_diagnostic!(E0002); +__register_diagnostic!(E0001); //~^ ERROR macro undefined: '__register_diagnostic!' fn main() { - __diagnostic_used!(E0002); + __diagnostic_used!(E0001); //~^ ERROR macro undefined: '__diagnostic_used!' } |
