|
#![feature(type_alias_impl_trait)]
|
|
|
|
fn main() {}
|
|
|
|
// two definitions with different types
|
|
type Foo = impl std::fmt::Debug;
|
|
|
|
fn foo() -> Foo {
|
|
""
|
|
}
|
|
|
|
fn bar() -> Foo { //~ ERROR: concrete type differs from previous defining opaque type use
|
|
panic!()
|
|
}
|
|
|
|
fn boo() -> Foo {
|
|
loop {}
|
|
}
|