trait T1 { fn method1(self: Box); } trait T2 { fn method2(self: Box); } impl T1 for i32 { fn method1(self: Box) {} } fn main() { let r = Box::new(0) as Box; let r2: Box = unsafe { std::mem::transmute(r) }; r2.method2(); //~ERROR: call on a pointer whose vtable does not match its type }