1
Fork 0

Revert a diagnostic change in the case of integer ranges

This commit is contained in:
Nadrieril 2019-12-11 18:17:58 +00:00
parent d44774d72c
commit fbd2cd09e6
6 changed files with 11 additions and 10 deletions

View file

@ -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)

View file

@ -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: () }));

View file

@ -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

View file

@ -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: () }));

View file

@ -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

View file

@ -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