blob: f70a08e2eae784630c4b009abeb9ce3de6917ce0 [file]
//! Regression test for https://github.com/rust-lang/rust/issues/118478.
//@ check-pass
//@ compile-flags: -Zmir-opt-level=3
#![feature(type_alias_impl_trait)]
#![crate_type = "lib"]
pub trait Tr {
fn get(&self) -> u32;
}
impl Tr for (u32,) {
#[inline]
fn get(&self) -> u32 { self.0 }
}
pub fn tr1() -> impl Tr {
(32,)
}
pub fn tr2() -> impl Tr {
struct Inner {
x: X,
}
type X = impl Tr;
impl Tr for Inner {
fn get(&self) -> u32 {
self.x.get()
}
}
Inner {
x: tr1(),
}
}