}
}
def => {
- span_bug!(pat.span, "tuple struct pattern didn't resolve \
- to variant or struct {:?}", def);
+ debug!(
+ "tuple struct pattern didn't resolve to variant or struct {:?} at {:?}",
+ def,
+ pat.span,
+ );
+ self.tcx.sess.delay_span_bug(pat.span, &format!(
+ "tuple struct pattern didn't resolve to variant or struct {:?}",
+ def,
+ ));
+ return Err(());
}
};
--- /dev/null
+struct A {}
+
+impl A {
+ fn new() {}
+}
+
+fn hof<F>(_: F) where F: FnMut(()) {}
+
+fn ice() {
+ hof(|c| match c {
+ A::new() => (), //~ ERROR expected tuple struct/variant, found method
+ _ => ()
+ })
+}
+
+fn main() {}
--- /dev/null
+error[E0164]: expected tuple struct/variant, found method `<A>::new`
+ --> $DIR/fn-in-pat.rs:11:9
+ |
+LL | A::new() => (),
+ | ^^^^^^^^ not a tuple variant or struct
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0164`.