1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// check-pass #![feature(lint_reasons)] #![allow(incomplete_features)] pub trait Foo { fn f() -> Box<impl Sized>; } impl Foo for () { #[expect(refining_impl_trait)] fn f() -> Box<String> { Box::new(String::new()) } } fn main() { let x: Box<String> = <() as Foo>::f(); }