| //@ revisions: current next | |
| //@ ignore-compare-mode-next-solver (explicit revisions) | |
| //@[next] compile-flags: -Znext-solver | |
| //@ check-pass | |
| #![feature(type_alias_impl_trait)] | |
| #![allow(dead_code)] | |
| pub trait MyTrait {} | |
| impl MyTrait for bool {} | |
| pub type Foo = impl MyTrait; | |
| #[define_opaque(Foo)] | |
| pub fn make_foo() -> Foo { | |
| true | |
| } | |
| struct Blah { | |
| my_foo: Foo, | |
| my_u8: u8, | |
| } | |
| impl Blah { | |
| fn new() -> Blah { | |
| Blah { my_foo: make_foo(), my_u8: 12 } | |
| } | |
| fn into_inner(self) -> (Foo, u8, Foo) { | |
| (self.my_foo, self.my_u8, make_foo()) | |
| } | |
| } | |
| fn main() {} |