Skip to content

Commit

Permalink
Revert a diagnostic change in the case of integer ranges
Browse files Browse the repository at this point in the history
  • Loading branch information
Nadrieril committed Dec 11, 2019
1 parent d44774d commit fbd2cd0
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 10 deletions.
5 changes: 3 additions & 2 deletions src/librustc_mir/hair/pattern/_match.rs
Expand Up @@ -1778,8 +1778,9 @@ pub fn is_useful<'p, 'tcx>(
// satisfied with `(_, _, true)`. In this case,
// `used_ctors` is empty.
// The exception is: if we are at the top-level, for example in an empty match, we
// prefer reporting the list of constructors instead of just `_`.
if missing_ctors.all_ctors_are_missing() && !is_top_level {
// sometimes prefer reporting the list of constructors instead of just `_`.
let report_ctors_rather_than_wildcard = is_top_level && !IntRange::is_integral(pcx.ty);
if missing_ctors.all_ctors_are_missing() && !report_ctors_rather_than_wildcard {
// All constructors are unused. Add a wild pattern
// rather than each individual constructor.
usefulness.apply_wildcard(pcx.ty)
Expand Down
Expand Up @@ -77,7 +77,7 @@ fn main() {
//~^ ERROR `V1`, `V2`, `V3` and 2 more not covered

match_false!(0u8);
//~^ ERROR `0u8..=std::u8::MAX` not covered
//~^ ERROR `_` not covered
match_false!(NonEmptyStruct(true));
//~^ ERROR `NonEmptyStruct(_)` not covered
match_false!((NonEmptyUnion1 { foo: () }));
Expand Down
Expand Up @@ -123,11 +123,11 @@ LL | match_empty!(NonEmptyEnum5::V1);
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error[E0004]: non-exhaustive patterns: `0u8..=std::u8::MAX` not covered
error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/match-empty-exhaustive_patterns.rs:79:18
|
LL | match_false!(0u8);
| ^^^ pattern `0u8..=std::u8::MAX` not covered
| ^^^ pattern `_` not covered
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/pattern/usefulness/match-empty.rs
Expand Up @@ -76,7 +76,7 @@ fn main() {
//~^ ERROR `V1`, `V2`, `V3` and 2 more not covered

match_false!(0u8);
//~^ ERROR `0u8..=std::u8::MAX` not covered
//~^ ERROR `_` not covered
match_false!(NonEmptyStruct(true));
//~^ ERROR `NonEmptyStruct(_)` not covered
match_false!((NonEmptyUnion1 { foo: () }));
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/pattern/usefulness/match-empty.stderr
Expand Up @@ -104,11 +104,11 @@ LL | match_empty!(NonEmptyEnum5::V1);
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error[E0004]: non-exhaustive patterns: `0u8..=std::u8::MAX` not covered
error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/match-empty.rs:78:18
|
LL | match_false!(0u8);
| ^^^ pattern `0u8..=std::u8::MAX` not covered
| ^^^ pattern `_` not covered
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/pattern/usefulness/match-non-exhaustive.stderr
Expand Up @@ -6,11 +6,11 @@ LL | match 0 { 1 => () }
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error[E0004]: non-exhaustive patterns: `std::i32::MIN..=std::i32::MAX` not covered
error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/match-non-exhaustive.rs:3:11
|
LL | match 0 { 0 if false => () }
| ^ pattern `std::i32::MIN..=std::i32::MAX` not covered
| ^ pattern `_` not covered
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

Expand Down

0 comments on commit fbd2cd0

Please sign in to comment.