Skip to content

Commit

Permalink
Auto merge of #31757 - petrochenkov:unitdotdot, r=nikomatsakis
Browse files Browse the repository at this point in the history
This warning was introduced on Nov 28, 2015 and got into 1.6 stable, it was later requalified from a hardwired warning to a warn-by-default lint.
If this patch is landed soon enough, then `match_of_unit_variant_via_paren_dotdot` will get into 1.8 stable as a deny-by-default lint.
My intention is to turn it into a hard error after March 3, 2016, then it will hit stable at 1.9.

r? @nikomatsakis
cc @pnkfelix
  • Loading branch information
bors committed Feb 20, 2016
2 parents 788a21e + e950659 commit c894ff6
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/librustc/lint/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ declare_lint! {

declare_lint! {
pub MATCH_OF_UNIT_VARIANT_VIA_PAREN_DOTDOT,
Warn,
Deny,
"unit struct or enum variant erroneously allowed to match via path::ident(..)"
}

Expand Down
20 changes: 9 additions & 11 deletions src/test/compile-fail/empty-struct-unit-pat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

// aux-build:empty-struct.rs

#![feature(rustc_attrs)]
// remove prior feature after warning cycle and promoting warnings to errors
#![feature(braced_empty_structs)]

Expand All @@ -26,8 +25,7 @@ enum E {
}

// remove attribute after warning cycle and promoting warnings to errors
#[rustc_error]
fn main() { //~ ERROR: compilation successful
fn main() {
let e2 = Empty2;
let e4 = E::Empty4;
let xe2 = XEmpty2;
Expand All @@ -41,12 +39,12 @@ fn main() { //~ ERROR: compilation successful
// XEmpty2() => () // ERROR `XEmpty2` does not name a tuple variant or a tuple struct
// }
match e2 {
Empty2(..) => () //~ WARN `Empty2` does not name a tuple variant or a tuple struct
//~^ WARN hard error
Empty2(..) => () //~ ERROR `Empty2` does not name a tuple variant or a tuple struct
//~^ ERROR hard error
}
match xe2 {
XEmpty2(..) => () //~ WARN `XEmpty2` does not name a tuple variant or a tuple struct
//~^ WARN hard error
XEmpty2(..) => () //~ ERROR `XEmpty2` does not name a tuple variant or a tuple struct
//~^ ERROR hard error
}
// Rejected by parser as yet
// match e4 {
Expand All @@ -57,12 +55,12 @@ fn main() { //~ ERROR: compilation successful
// _ => {},
// }
match e4 {
E::Empty4(..) => () //~ WARN `E::Empty4` does not name a tuple variant or a tuple struct
//~^ WARN hard error
E::Empty4(..) => () //~ ERROR `E::Empty4` does not name a tuple variant or a tuple struct
//~^ ERROR hard error
}
match xe4 {
XE::XEmpty4(..) => (), //~ WARN `XE::XEmpty4` does not name a tuple variant or a tuple
//~^ WARN hard error
XE::XEmpty4(..) => (), //~ ERROR `XE::XEmpty4` does not name a tuple variant or a tuple
//~^ ERROR hard error
_ => {},
}
}
2 changes: 2 additions & 0 deletions src/test/run-pass/issue-pr29383.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![allow(match_of_unit_variant_via_paren_dotdot)]

enum E {
A,
B,
Expand Down

0 comments on commit c894ff6

Please sign in to comment.