//@ compile-flags: -Znext-solver #![feature(specialization)] //~^ WARN the feature `specialization` is incomplete trait Default { type Id; fn intu(&self) -> &Self::Id; } impl Default for T { default type Id = T; fn intu(&self) -> &Self::Id { self //~ ERROR mismatched types } } fn transmute, U: Copy>(t: T) -> U { *t.intu() } use std::num::NonZero; fn main() { let s = transmute::>>(0); //~^ ERROR type mismatch resolving `::Id == Option>` assert_eq!(s, None); }