1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
// 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> {}
mod helper {
use super::*;
pub type TestImpl = impl Test;
pub fn test() -> TestImpl {
A
}
fn make_option2() -> Option<TestImpl> {
let inner = make_option().unwrap();
Some(B { inner })
//~^ ERROR concrete type differs from previous defining opaque type use
}
}
fn make_option() -> Option<helper::TestImpl> {
Some(helper::test())
}
fn main() {}
|