diff options
Diffstat (limited to 'tests/ui/resolve/issue-73427.rs')
-rw-r--r-- | tests/ui/resolve/issue-73427.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/ui/resolve/issue-73427.rs b/tests/ui/resolve/issue-73427.rs new file mode 100644 index 000000000..5c2459a59 --- /dev/null +++ b/tests/ui/resolve/issue-73427.rs @@ -0,0 +1,50 @@ +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` +} |