2020-09-29 15:52:43 +00:00
|
|
|
enum A {
|
|
|
|
StructWithFields { x: () },
|
|
|
|
TupleWithFields(()),
|
|
|
|
Struct {},
|
|
|
|
Tuple(),
|
|
|
|
Unit,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum B {
|
|
|
|
StructWithFields { x: () },
|
|
|
|
TupleWithFields(()),
|
|
|
|
}
|
|
|
|
|
|
|
|
enum C {
|
|
|
|
StructWithFields { x: () },
|
|
|
|
TupleWithFields(()),
|
|
|
|
Unit,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum D {
|
|
|
|
TupleWithFields(()),
|
|
|
|
Unit,
|
|
|
|
}
|
|
|
|
|
2022-08-29 17:44:06 +00:00
|
|
|
enum E {
|
|
|
|
TupleWithFields(()),
|
|
|
|
}
|
|
|
|
|
2020-09-29 15:52:43 +00:00
|
|
|
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`
|
2022-08-29 17:44:06 +00:00
|
|
|
E.foo();
|
|
|
|
//~^ ERROR expected value, found enum `E`
|
2020-09-29 15:52:43 +00:00
|
|
|
|
|
|
|
// 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`
|
|
|
|
}
|