rust/src/test/ui/empty/empty-struct-tuple-pat.rs
Esteban Küber b26ddb8af3 Point at local similarly named element and tweak references to variants
Point at the span for the definition of ADTs internal to the current
crate.

Look at the leading char of the ident to determine whether we're
expecting a likely fn or any of a fn, a tuple struct or a tuple variant.

Turn fn `add_typo_suggestion` into a `Resolver` method.
2019-10-27 11:50:43 -07:00

37 lines
859 B
Rust

// Can't use unit struct as enum pattern
// aux-build:empty-struct.rs
extern crate empty_struct;
use empty_struct::*;
struct Empty2();
enum E {
Empty4()
}
// remove attribute after warning cycle and promoting warnings to errors
fn main() {
let e2 = Empty2();
let e4 = E::Empty4();
let xe6 = XEmpty6();
let xe5 = XE::XEmpty5();
match e2 {
Empty2 => () //~ ERROR match bindings cannot shadow tuple structs
}
match xe6 {
XEmpty6 => () //~ ERROR match bindings cannot shadow tuple structs
}
match e4 {
E::Empty4 => ()
//~^ ERROR expected unit struct, unit variant or constant, found tuple variant `E::Empty4`
}
match xe5 {
XE::XEmpty5 => (),
//~^ ERROR expected unit struct, unit variant or constant, found tuple variant `XE::XEmpty5`
_ => {},
}
}