mirror of https://github.com/rust-lang/rust
33 lines
490 B
Rust
33 lines
490 B
Rust
//@ check-pass
|
|
//@ compile-flags: -Z mir-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(),
|
|
}
|
|
}
|