summaryrefslogtreecommitdiffstats
path: root/tests/ui/binop/borrow-suggestion-109352.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/binop/borrow-suggestion-109352.rs')
-rw-r--r--tests/ui/binop/borrow-suggestion-109352.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/binop/borrow-suggestion-109352.rs b/tests/ui/binop/borrow-suggestion-109352.rs
new file mode 100644
index 000000000..4e8510e0d
--- /dev/null
+++ b/tests/ui/binop/borrow-suggestion-109352.rs
@@ -0,0 +1,27 @@
+// run-rustfix
+
+struct Foo;
+
+impl std::ops::Mul for &Foo {
+ type Output = Foo;
+
+ fn mul(self, _rhs: Self) -> Self::Output {
+ unimplemented!()
+ }
+}
+
+fn main() {
+ let ref_mut_foo: &mut Foo = &mut Foo;
+ let ref_foo: &Foo = &Foo;
+ let owned_foo: Foo = Foo;
+
+ let _ = ref_foo * ref_foo;
+ let _ = ref_foo * ref_mut_foo;
+
+ let _ = ref_mut_foo * ref_foo;
+ //~^ ERROR cannot multiply
+ let _ = ref_mut_foo * ref_mut_foo;
+ //~^ ERROR cannot multiply
+ let _ = ref_mut_foo * &owned_foo;
+ //~^ ERROR cannot multiply
+}