]> git.lizzy.rs Git - rust.git/blob - tests/ui/rfc-2565-param-attrs/param-attrs-pretty.rs
Rollup merge of #105172 - alexs-sh:issue-98861-fix-next, r=scottmcm
[rust.git] / tests / ui / rfc-2565-param-attrs / param-attrs-pretty.rs
1 // aux-build:param-attrs.rs
2
3 // check-pass
4
5 #![feature(c_variadic)]
6
7 extern crate param_attrs;
8
9 use param_attrs::*;
10
11 struct W(u8);
12
13 #[attr_extern]
14 extern "C" { fn ffi(#[a1] arg1: i32, #[a2] ...); }
15
16 #[attr_extern_cvar]
17 unsafe extern "C" fn cvar(arg1: i32, #[a1] mut args: ...) {}
18
19 #[attr_alias]
20 type Alias = fn(#[a1] u8, #[a2] ...);
21
22 #[attr_free]
23 fn free(#[a1] arg1: u8) {
24     let lam = |#[a2] W(x), #[a3] y| ();
25 }
26
27 impl W {
28     #[attr_inherent_1]
29     fn inherent1(#[a1] self, #[a2] arg1: u8) {}
30
31     #[attr_inherent_2]
32     fn inherent2(#[a1] &self, #[a2] arg1: u8) {}
33
34     #[attr_inherent_3]
35     fn inherent3<'a>(#[a1] &'a mut self, #[a2] arg1: u8) {}
36
37     #[attr_inherent_4]
38     fn inherent4<'a>(#[a1] self: Box<Self>, #[a2] arg1: u8) {}
39
40     #[attr_inherent_issue_64682]
41     fn inherent5(#[a1] #[a2] arg1: u8, #[a3] arg2: u8) {}
42 }
43
44 trait A {
45     #[attr_trait_1]
46     fn trait1(#[a1] self, #[a2] arg1: u8);
47
48     #[attr_trait_2]
49     fn trait2(#[a1] &self, #[a2] arg1: u8);
50
51     #[attr_trait_3]
52     fn trait3<'a>(#[a1] &'a mut self, #[a2] arg1: u8);
53
54     #[attr_trait_4]
55     fn trait4<'a>(#[a1] self: Box<Self>, #[a2] arg1: u8, #[a3] Vec<u8>);
56
57     #[attr_trait_issue_64682]
58     fn trait5(#[a1] #[a2] arg1: u8, #[a3] arg2: u8);
59 }
60
61 fn main() {}