// check-pass // edition:2018 #![allow(non_snake_case)] use std::rc::Rc; struct Struct<'a> { x: &'a u32 } type Alias<'a> = Struct<'a>; impl<'a> Alias<'a> { async fn take_self(self, f: &u32) -> &u32 { f } async fn take_Alias(self: Alias<'a>, f: &u32) -> &u32 { f } async fn take_Box_Alias(self: Box>, f: &u32) -> &u32 { f } async fn take_Box_Box_Alias(self: Box>>, f: &u32) -> &u32 { f } async fn take_Rc_Alias(self: Rc>, f: &u32) -> &u32 { f } async fn take_Box_Rc_Alias(self: Box>>, f: &u32) -> &u32 { f } } fn main() { }