#![feature(type_alias_impl_trait)] // check-pass type Foo = impl std::fmt::Debug; fn foo(b: bool) -> Foo { if b { return vec![]; } let x: Vec = foo(false); std::iter::empty().collect() } fn bar(b: bool) -> impl std::fmt::Debug { if b { return vec![] } let x: Vec = bar(false); std::iter::empty().collect() } fn main() {}