| #![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 | |
| } |