check_pat_enum(pcx, pat, path, subpats.as_ref().map(|v| &v[..]), expected, true);
}
PatKind::Path(ref path) => {
- check_pat_enum(pcx, pat, path, None, expected, false);
+ check_pat_enum(pcx, pat, path, Some(&[]), expected, false);
}
PatKind::QPath(ref qself, ref path) => {
let self_ty = fcx.to_ty(&qself.ty);
--- /dev/null
+// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+enum Foo {
+ Bar(i32),
+ Baz
+}
+
+struct S;
+
+fn main() {
+ match Foo::Baz {
+ Foo::Bar => {}
+ //~^ ERROR this pattern has 0 fields, but the corresponding variant
+ _ => {}
+ }
+
+ match S {
+ S(()) => {}
+ //~^ ERROR this pattern has 1 field, but the corresponding struct
+ }
+}