//@ edition:2018 //@ check-pass #![allow(non_snake_case)] use std::pin::Pin; struct Struct { } type Alias = Struct; impl Struct { // Test using an alias for `Struct`: // // FIXME. We currently fail to recognize this as the self type, which // feels like a bug. async fn ref_Alias(self: &Alias, f: &u32) -> &u32 { f } async fn box_ref_Alias(self: Box<&Alias>, f: &u32) -> &u32 { f } async fn pin_ref_Alias(self: Pin<&Alias>, f: &u32) -> &u32 { f } async fn box_box_ref_Alias(self: Box>, f: &u32) -> &u32 { f } async fn box_pin_ref_Alias(self: Box>, f: &u32) -> &u32 { f } } fn main() { }