#![feature(type_alias_impl_trait)] //@ check-pass type Foo = impl std::fmt::Debug; #[define_opaque(Foo)] fn foo(b: bool) -> Foo { if b { return 42; } let x: u32 = foo(false); 99 } fn bar(b: bool) -> impl std::fmt::Debug { if b { return 42; } let x: u32 = bar(false); 99 } fn main() {}