]> git.proxmox.com Git - rustc.git/blob - src/tools/rust-analyzer/crates/parser/test_data/parser/ok/0045_block_attrs.rast
New upstream version 1.64.0+dfsg1
[rustc.git] / src / tools / rust-analyzer / crates / parser / test_data / parser / ok / 0045_block_attrs.rast
1 SOURCE_FILE
2 FN
3 FN_KW "fn"
4 WHITESPACE " "
5 NAME
6 IDENT "inner"
7 PARAM_LIST
8 L_PAREN "("
9 R_PAREN ")"
10 WHITESPACE " "
11 BLOCK_EXPR
12 STMT_LIST
13 L_CURLY "{"
14 WHITESPACE "\n "
15 ATTR
16 POUND "#"
17 BANG "!"
18 L_BRACK "["
19 META
20 PATH
21 PATH_SEGMENT
22 NAME_REF
23 IDENT "doc"
24 TOKEN_TREE
25 L_PAREN "("
26 STRING "\"Inner attributes allowed here\""
27 R_PAREN ")"
28 R_BRACK "]"
29 WHITESPACE "\n "
30 COMMENT "//! As are ModuleDoc style comments"
31 WHITESPACE "\n "
32 EXPR_STMT
33 BLOCK_EXPR
34 STMT_LIST
35 L_CURLY "{"
36 WHITESPACE "\n "
37 ATTR
38 POUND "#"
39 BANG "!"
40 L_BRACK "["
41 META
42 PATH
43 PATH_SEGMENT
44 NAME_REF
45 IDENT "doc"
46 TOKEN_TREE
47 L_PAREN "("
48 STRING "\"Inner attributes are allowed in blocks used as statements\""
49 R_PAREN ")"
50 R_BRACK "]"
51 WHITESPACE "\n "
52 ATTR
53 POUND "#"
54 BANG "!"
55 L_BRACK "["
56 META
57 PATH
58 PATH_SEGMENT
59 NAME_REF
60 IDENT "doc"
61 TOKEN_TREE
62 L_PAREN "("
63 STRING "\"Being validated is not affected by duplcates\""
64 R_PAREN ")"
65 R_BRACK "]"
66 WHITESPACE "\n "
67 COMMENT "//! As are ModuleDoc style comments"
68 WHITESPACE "\n "
69 R_CURLY "}"
70 SEMICOLON ";"
71 WHITESPACE "\n "
72 BLOCK_EXPR
73 STMT_LIST
74 L_CURLY "{"
75 WHITESPACE "\n "
76 ATTR
77 POUND "#"
78 BANG "!"
79 L_BRACK "["
80 META
81 PATH
82 PATH_SEGMENT
83 NAME_REF
84 IDENT "doc"
85 TOKEN_TREE
86 L_PAREN "("
87 STRING "\"Inner attributes are allowed in blocks when they are the last statement of another block\""
88 R_PAREN ")"
89 R_BRACK "]"
90 WHITESPACE "\n "
91 COMMENT "//! As are ModuleDoc style comments"
92 WHITESPACE "\n "
93 R_CURLY "}"
94 WHITESPACE "\n"
95 R_CURLY "}"
96 WHITESPACE "\n\n"
97 FN
98 FN_KW "fn"
99 WHITESPACE " "
100 NAME
101 IDENT "outer"
102 PARAM_LIST
103 L_PAREN "("
104 R_PAREN ")"
105 WHITESPACE " "
106 BLOCK_EXPR
107 STMT_LIST
108 L_CURLY "{"
109 WHITESPACE "\n "
110 LET_STMT
111 LET_KW "let"
112 WHITESPACE " "
113 WILDCARD_PAT
114 UNDERSCORE "_"
115 WHITESPACE " "
116 EQ "="
117 WHITESPACE " "
118 BLOCK_EXPR
119 ATTR
120 POUND "#"
121 L_BRACK "["
122 META
123 PATH
124 PATH_SEGMENT
125 NAME_REF
126 IDENT "doc"
127 TOKEN_TREE
128 L_PAREN "("
129 STRING "\"Outer attributes are always allowed\""
130 R_PAREN ")"
131 R_BRACK "]"
132 WHITESPACE " "
133 STMT_LIST
134 L_CURLY "{"
135 R_CURLY "}"
136 SEMICOLON ";"
137 WHITESPACE "\n"
138 R_CURLY "}"
139 WHITESPACE "\n\n"
140 IMPL
141 COMMENT "// https://github.com/rust-lang/rust-analyzer/issues/689"
142 WHITESPACE "\n"
143 IMPL_KW "impl"
144 WHITESPACE " "
145 PATH_TYPE
146 PATH
147 PATH_SEGMENT
148 NAME_REF
149 IDENT "Whatever"
150 WHITESPACE " "
151 ASSOC_ITEM_LIST
152 L_CURLY "{"
153 WHITESPACE "\n "
154 FN
155 FN_KW "fn"
156 WHITESPACE " "
157 NAME
158 IDENT "salsa_event"
159 PARAM_LIST
160 L_PAREN "("
161 SELF_PARAM
162 AMP "&"
163 NAME
164 SELF_KW "self"
165 COMMA ","
166 WHITESPACE " "
167 PARAM
168 IDENT_PAT
169 NAME
170 IDENT "event_fn"
171 COLON ":"
172 WHITESPACE " "
173 IMPL_TRAIT_TYPE
174 IMPL_KW "impl"
175 WHITESPACE " "
176 TYPE_BOUND_LIST
177 TYPE_BOUND
178 PATH_TYPE
179 PATH
180 PATH_SEGMENT
181 NAME_REF
182 IDENT "Fn"
183 PARAM_LIST
184 L_PAREN "("
185 R_PAREN ")"
186 WHITESPACE " "
187 RET_TYPE
188 THIN_ARROW "->"
189 WHITESPACE " "
190 PATH_TYPE
191 PATH
192 PATH_SEGMENT
193 NAME_REF
194 IDENT "Event"
195 GENERIC_ARG_LIST
196 L_ANGLE "<"
197 TYPE_ARG
198 PATH_TYPE
199 PATH
200 PATH_SEGMENT
201 NAME_REF
202 SELF_TYPE_KW "Self"
203 R_ANGLE ">"
204 R_PAREN ")"
205 WHITESPACE " "
206 BLOCK_EXPR
207 STMT_LIST
208 L_CURLY "{"
209 WHITESPACE "\n "
210 ATTR
211 POUND "#"
212 BANG "!"
213 L_BRACK "["
214 META
215 PATH
216 PATH_SEGMENT
217 NAME_REF
218 IDENT "allow"
219 TOKEN_TREE
220 L_PAREN "("
221 IDENT "unused_variables"
222 R_PAREN ")"
223 R_BRACK "]"
224 WHITESPACE " "
225 COMMENT "// this is `inner_attr` of the block"
226 WHITESPACE "\n "
227 R_CURLY "}"
228 WHITESPACE "\n"
229 R_CURLY "}"
230 WHITESPACE "\n"