28 lines
562 B
Rust
28 lines
562 B
Rust
|
//@ 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
|
||
|
}
|