about summary refs log tree commit diff
path: root/tests/ui/suggestions/field-access.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/suggestions/field-access.rs')
-rw-r--r--tests/ui/suggestions/field-access.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/ui/suggestions/field-access.rs b/tests/ui/suggestions/field-access.rs
new file mode 100644
index 00000000000..d80488e8a45
--- /dev/null
+++ b/tests/ui/suggestions/field-access.rs
@@ -0,0 +1,35 @@
+// run-rustfix
+#![allow(dead_code)]
+
+struct A {
+    b: B,
+}
+
+enum B {
+    Fst,
+    Snd,
+}
+
+union Foo {
+    bar: u32,
+    qux: f32,
+}
+
+fn main() {
+    let a = A { b: B::Fst };
+    if let B::Fst = a {}; //~ ERROR mismatched types [E0308]
+    //~^ HELP you might have meant to use field `b` whose type is `B`
+    match a {
+        //~^ HELP you might have meant to use field `b` whose type is `B`
+        //~| HELP you might have meant to use field `b` whose type is `B`
+        B::Fst => (), //~ ERROR mismatched types [E0308]
+        B::Snd => (), //~ ERROR mismatched types [E0308]
+    }
+
+    let foo = Foo { bar: 42 };
+    match foo {
+        //~^ HELP you might have meant to use field `bar` whose type is `u32`
+        1u32 => (), //~ ERROR mismatched types [E0308]
+        _ => (),
+    }
+}