Apply suggestions from code review
Co-authored-by: varkor <github@varkor.com>
This commit is contained in:
parent
b9da2b372f
commit
36e3409f67
3 changed files with 4 additions and 4 deletions
|
@ -1588,7 +1588,7 @@ fn all_constructors<'p, 'tcx>(pcx: PatCtxt<'_, 'p, 'tcx>) -> Vec<Constructor<'tc
|
||||||
let is_declared_nonexhaustive = cx.is_foreign_non_exhaustive_enum(pcx.ty);
|
let is_declared_nonexhaustive = cx.is_foreign_non_exhaustive_enum(pcx.ty);
|
||||||
|
|
||||||
// If `exhaustive_patterns` is disabled and our scrutinee is an empty enum, we treat it
|
// If `exhaustive_patterns` is disabled and our scrutinee is an empty enum, we treat it
|
||||||
// as though it had an "unknown" constructor to avoid exposing its emptyness. The
|
// as though it had an "unknown" constructor to avoid exposing its emptiness. The
|
||||||
// exception is if the pattern is at the top level, because we want empty matches to be
|
// exception is if the pattern is at the top level, because we want empty matches to be
|
||||||
// considered exhaustive.
|
// considered exhaustive.
|
||||||
let is_secretly_empty = def.variants.is_empty()
|
let is_secretly_empty = def.variants.is_empty()
|
||||||
|
@ -1640,7 +1640,7 @@ fn all_constructors<'p, 'tcx>(pcx: PatCtxt<'_, 'p, 'tcx>) -> Vec<Constructor<'tc
|
||||||
vec![make_range(0, max)]
|
vec![make_range(0, max)]
|
||||||
}
|
}
|
||||||
// If `exhaustive_patterns` is disabled and our scrutinee is the never type, we cannot
|
// If `exhaustive_patterns` is disabled and our scrutinee is the never type, we cannot
|
||||||
// expose its emptyness. The exception is if the pattern is at the top level, because we
|
// expose its emptiness. The exception is if the pattern is at the top level, because we
|
||||||
// want empty matches to be considered exhaustive.
|
// want empty matches to be considered exhaustive.
|
||||||
ty::Never if !cx.tcx.features().exhaustive_patterns && !pcx.is_top_level => {
|
ty::Never if !cx.tcx.features().exhaustive_patterns && !pcx.is_top_level => {
|
||||||
vec![NonExhaustive]
|
vec![NonExhaustive]
|
||||||
|
|
|
@ -25,7 +25,7 @@ pub enum EmptyNonExhaustiveEnum {}
|
||||||
fn empty_non_exhaustive(x: EmptyNonExhaustiveEnum) {
|
fn empty_non_exhaustive(x: EmptyNonExhaustiveEnum) {
|
||||||
match x {}
|
match x {}
|
||||||
match x {
|
match x {
|
||||||
_ => {}, //~ ERROR unreachable pattern
|
_ => {} //~ ERROR unreachable pattern
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
error: unreachable pattern
|
error: unreachable pattern
|
||||||
--> $DIR/enum_same_crate_empty_match.rs:28:9
|
--> $DIR/enum_same_crate_empty_match.rs:28:9
|
||||||
|
|
|
|
||||||
LL | _ => {},
|
LL | _ => {}
|
||||||
| ^
|
| ^
|
||||||
|
|
|
|
||||||
note: the lint level is defined here
|
note: the lint level is defined here
|
||||||
|
|
Loading…
Add table
Reference in a new issue