// Test a default that references `Self` which is then used in an // object type. Issue #18956. In this case, the value is supplied by // the user, but pretty-printing the type during the error message // caused an ICE. trait MyAdd { fn add(&self, other: &Rhs) -> Self; } impl MyAdd for i32 { fn add(&self, other: &i32) -> i32 { *self + *other } } fn main() { let x: i32 = 5; let y = x as dyn MyAdd; //~^ ERROR E0038 //~| ERROR cast to unsized type: `i32` as `dyn MyAdd` }