// build-pass (FIXME(62277): could be check-pass?) | |
#![feature(type_alias_impl_trait)] | |
fn main() {} | |
// two definitions with different types | |
type Foo = impl std::fmt::Debug; | |
fn foo() -> Foo { | |
"" | |
} | |
fn bar(arg: bool) -> Foo { | |
if arg { | |
panic!() | |
} else { | |
"bar" | |
} | |
} | |
fn boo(arg: bool) -> Foo { | |
if arg { | |
loop {} | |
} else { | |
"boo" | |
} | |
} | |
fn bar2(arg: bool) -> Foo { | |
if arg { | |
"bar2" | |
} else { | |
panic!() | |
} | |
} | |
fn boo2(arg: bool) -> Foo { | |
if arg { | |
"boo2" | |
} else { | |
loop {} | |
} | |
} |