// 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 }