#![allow(unused)] | |
struct X { | |
x: (), | |
} | |
pub trait A { | |
fn foo(&mut self, _: usize) -> &mut (); | |
} | |
impl A for X { | |
fn foo(&mut self, _: usize) -> &mut () { | |
&mut self.x | |
} | |
} | |
impl X { | |
fn foo(&mut self, _: usize) -> &mut Self { | |
self | |
} | |
} | |
fn main() { | |
let mut x = X { x: () }; | |
*x.foo(0) = (); //~ ERROR E0308 | |
} |