1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// check-pass #![feature(specialization)] #![feature(lint_reasons)] #![allow(incomplete_features)] pub trait Foo { fn bar(&self) -> impl Sized; } impl<U> Foo for U where U: Copy, { #[expect(refining_impl_trait)] fn bar(&self) -> U { *self } } impl Foo for i32 {} fn main() { let _: i32 = 1i32.bar(); }