about summary refs log tree commit diff
path: root/tests/ui
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2023-04-19 16:47:06 +0000
committerMichael Goulet <michael@errs.io>2023-04-19 16:47:11 +0000
commitb0a7d6e4b7627be023625e62c529f659de56f8fe (patch)
tree0e515a54cc19dd6a596525c54e8496086582cdb4 /tests/ui
parentde96f3d8735b70d5dc1ca178aaee198b329b8f3d (diff)
downloadrust-b0a7d6e4b7627be023625e62c529f659de56f8fe.tar.gz
rust-b0a7d6e4b7627be023625e62c529f659de56f8fe.zip
Suggest deref on comparison binop RHS even if type is not Copy
Diffstat (limited to 'tests/ui')
-rw-r--r--tests/ui/inference/deref-suggestion.rs9
-rw-r--r--tests/ui/inference/deref-suggestion.stderr15
2 files changed, 23 insertions, 1 deletions
diff --git a/tests/ui/inference/deref-suggestion.rs b/tests/ui/inference/deref-suggestion.rs
index 0d8e7289dc8..dc39cc9dbff 100644
--- a/tests/ui/inference/deref-suggestion.rs
+++ b/tests/ui/inference/deref-suggestion.rs
@@ -72,4 +72,13 @@ fn main() {
     } else {
         &0
     };
+
+    #[derive(PartialEq, Eq)]
+    struct Foo;
+    let foo = Foo;
+    let bar = &Foo;
+
+    if foo == bar {
+    //~^ ERROR mismatched types
+    }
 }
diff --git a/tests/ui/inference/deref-suggestion.stderr b/tests/ui/inference/deref-suggestion.stderr
index 1626032ae99..6f5aacacfc1 100644
--- a/tests/ui/inference/deref-suggestion.stderr
+++ b/tests/ui/inference/deref-suggestion.stderr
@@ -175,6 +175,19 @@ LL | ||     };
    |  |_____`if` and `else` have incompatible types
    |        expected `i32`, found `&{integer}`
 
-error: aborting due to 13 previous errors
+error[E0308]: mismatched types
+  --> $DIR/deref-suggestion.rs:81:15
+   |
+LL |     if foo == bar {
+   |        ---    ^^^ expected `Foo`, found `&Foo`
+   |        |
+   |        expected because this is `Foo`
+   |
+help: consider dereferencing the borrow
+   |
+LL |     if foo == *bar {
+   |               +
+
+error: aborting due to 14 previous errors
 
 For more information about this error, try `rustc --explain E0308`.