// compile-flags: -Ztrait-solver=next #![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 cannot satisfy `T <: ::Id` } } fn transmute, U: Copy>(t: T) -> U { *t.intu() } use std::num::NonZeroU8; fn main() { let s = transmute::>(0); //~^ ERROR cannot satisfy `::Id == Option assert_eq!(s, None); }