]> git.lizzy.rs Git - rust.git/blob - src/test/ui/self/elision/ref-assoc.rs
Rollup merge of #63055 - Mark-Simulacrum:save-analysis-clean-2, r=Xanewok
[rust.git] / src / test / ui / self / elision / ref-assoc.rs
1 // check-pass
2
3 #![feature(arbitrary_self_types)]
4 #![allow(non_snake_case)]
5
6 use std::pin::Pin;
7
8 trait Trait {
9     type AssocType;
10 }
11
12 struct Struct { }
13
14 impl Trait for Struct {
15     type AssocType = Self;
16 }
17
18 impl Struct {
19     fn ref_AssocType(self: &<Struct as Trait>::AssocType, f: &u32) -> &u32 {
20         f
21     }
22
23     fn box_ref_AssocType(self: Box<&<Struct as Trait>::AssocType>, f: &u32) -> &u32 {
24         f
25     }
26
27     fn pin_ref_AssocType(self: Pin<&<Struct as Trait>::AssocType>, f: &u32) -> &u32 {
28         f
29     }
30
31     fn box_box_ref_AssocType(self: Box<Box<&<Struct as Trait>::AssocType>>, f: &u32) -> &u32 {
32         f
33     }
34
35     fn box_pin_ref_AssocType(self: Box<Pin<&<Struct as Trait>::AssocType>>, f: &u32) -> &u32 {
36         f
37     }
38 }
39
40 fn main() { }