diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index 696b38219f44..61cc63fa3177 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -44,7 +44,7 @@ E0002: r##" This error indicates that an empty match expression is invalid because the type it is matching on is non-empty (there exist values of this type). In safe code it is impossible to create an instance of an empty type, so empty match -expressions are almost never desired. This error is typically fixed by adding +expressions are almost never desired. This error is typically fixed by adding one or more cases to the match expression. An example of an empty type is `enum Empty { }`. So, the following will work: diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index d0111860b440..767eab69733c 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -218,6 +218,9 @@ fn check_expr(cx: &mut MatchCheckCtxt, ex: &hir::Expr) { span_err!(cx.tcx.sess, ex.span, E0002, "non-exhaustive patterns: type {} is non-empty", pat_ty); + span_help!(cx.tcx.sess, ex.span, + "Please ensure that all possible cases are being handled; \ + possibly adding wildcards or more match arms."); } // If the type *is* empty, it's vacuously exhaustive return;