rust/tests/ui/type-alias-impl-trait/recursive-tait-conflicting-...

35 lines
466 B
Rust

// issue: 113596
#![feature(type_alias_impl_trait)]
trait Test {}
struct A;
impl Test for A {}
struct B<T> {
inner: T,
}
impl<T: Test> Test for B<T> {}
type TestImpl = impl Test;
fn test() -> TestImpl {
A
}
fn make_option() -> Option<TestImpl> {
Some(test())
}
fn make_option2() -> Option<TestImpl> {
let inner = make_option().unwrap();
Some(B { inner })
//~^ ERROR concrete type differs from previous defining opaque type use
}
fn main() {}