rust/tests/ui/resolve/issue-73427.rs

51 lines
1.0 KiB
Rust

enum A {
StructWithFields { x: () },
TupleWithFields(()),
Struct {},
Tuple(),
Unit,
}
enum B {
StructWithFields { x: () },
TupleWithFields(()),
}
enum C {
StructWithFields { x: () },
TupleWithFields(()),
Unit,
}
enum D {
TupleWithFields(()),
Unit,
}
enum E {
TupleWithFields(()),
}
fn main() {
// Only variants without fields are suggested (and others mentioned in a note) where an enum
// is used rather than a variant.
A.foo();
//~^ ERROR expected value, found enum `A`
B.foo();
//~^ ERROR expected value, found enum `B`
C.foo();
//~^ ERROR expected value, found enum `C`
D.foo();
//~^ ERROR expected value, found enum `D`
E.foo();
//~^ ERROR expected value, found enum `E`
// Only tuple variants are suggested in calls or tuple struct pattern matching.
let x = A(3);
//~^ ERROR expected function, tuple struct or tuple variant, found enum `A`
if let A(3) = x { }
//~^ ERROR expected tuple struct or tuple variant, found enum `A`
}