@@ -128,13 +128,9 @@ impl<'a> Parser<'a> {
128
128
constness : respan ( fn_span, Constness :: NotConst ) ,
129
129
abi : opt_abi. unwrap_or ( Abi :: C ) ,
130
130
} ) ?;
131
- let prev_span = self . prev_span ;
132
- let item = self . mk_item ( lo. to ( prev_span) ,
133
- ident,
134
- item_,
135
- visibility,
136
- maybe_append ( attrs, extra_attrs) ) ;
137
- return Ok ( Some ( item) ) ;
131
+ let span = lo. to ( self . prev_span ) ;
132
+ let attrs = maybe_append ( attrs, extra_attrs) ;
133
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
138
134
} else if self . check ( & token:: OpenDelim ( token:: Brace ) ) {
139
135
return Ok ( Some (
140
136
self . parse_item_foreign_mod ( lo, opt_abi, visibility, attrs, extern_sp) ?,
@@ -149,13 +145,9 @@ impl<'a> Parser<'a> {
149
145
// STATIC ITEM
150
146
let m = self . parse_mutability ( ) ;
151
147
let ( ident, item_, extra_attrs) = self . parse_item_const ( Some ( m) ) ?;
152
- let prev_span = self . prev_span ;
153
- let item = self . mk_item ( lo. to ( prev_span) ,
154
- ident,
155
- item_,
156
- visibility,
157
- maybe_append ( attrs, extra_attrs) ) ;
158
- return Ok ( Some ( item) ) ;
148
+ let span = lo. to ( self . prev_span ) ;
149
+ let attrs = maybe_append ( attrs, extra_attrs) ;
150
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
159
151
}
160
152
if self . eat_keyword ( kw:: Const ) {
161
153
let const_span = self . prev_span ;
@@ -171,13 +163,9 @@ impl<'a> Parser<'a> {
171
163
constness : respan ( const_span, Constness :: Const ) ,
172
164
abi : Abi :: Rust ,
173
165
} ) ?;
174
- let prev_span = self . prev_span ;
175
- let item = self . mk_item ( lo. to ( prev_span) ,
176
- ident,
177
- item_,
178
- visibility,
179
- maybe_append ( attrs, extra_attrs) ) ;
180
- return Ok ( Some ( item) ) ;
166
+ let span = lo. to ( self . prev_span ) ;
167
+ let attrs = maybe_append ( attrs, extra_attrs) ;
168
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
181
169
}
182
170
183
171
// CONST ITEM
@@ -194,13 +182,9 @@ impl<'a> Parser<'a> {
194
182
. emit ( ) ;
195
183
}
196
184
let ( ident, item_, extra_attrs) = self . parse_item_const ( None ) ?;
197
- let prev_span = self . prev_span ;
198
- let item = self . mk_item ( lo. to ( prev_span) ,
199
- ident,
200
- item_,
201
- visibility,
202
- maybe_append ( attrs, extra_attrs) ) ;
203
- return Ok ( Some ( item) ) ;
185
+ let span = lo. to ( self . prev_span ) ;
186
+ let attrs = maybe_append ( attrs, extra_attrs) ;
187
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
204
188
}
205
189
206
190
// Parses `async unsafe? fn`.
@@ -224,14 +208,10 @@ impl<'a> Parser<'a> {
224
208
constness : respan ( fn_span, Constness :: NotConst ) ,
225
209
abi : Abi :: Rust ,
226
210
} ) ?;
227
- let prev_span = self . prev_span ;
228
- let item = self . mk_item ( lo. to ( prev_span) ,
229
- ident,
230
- item_,
231
- visibility,
232
- maybe_append ( attrs, extra_attrs) ) ;
233
211
self . ban_async_in_2015 ( async_span) ;
234
- return Ok ( Some ( item) ) ;
212
+ let span = lo. to ( self . prev_span ) ;
213
+ let attrs = maybe_append ( attrs, extra_attrs) ;
214
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
235
215
}
236
216
}
237
217
if self . check_keyword ( kw:: Unsafe ) &&
@@ -246,15 +226,10 @@ impl<'a> Parser<'a> {
246
226
self . expect_keyword ( kw:: Trait ) ?;
247
227
IsAuto :: Yes
248
228
} ;
249
- let ( ident, item_, extra_attrs) =
250
- self . parse_item_trait ( is_auto, Unsafety :: Unsafe ) ?;
251
- let prev_span = self . prev_span ;
252
- let item = self . mk_item ( lo. to ( prev_span) ,
253
- ident,
254
- item_,
255
- visibility,
256
- maybe_append ( attrs, extra_attrs) ) ;
257
- return Ok ( Some ( item) ) ;
229
+ let ( ident, item_, extra_attrs) = self . parse_item_trait ( is_auto, Unsafety :: Unsafe ) ?;
230
+ let span = lo. to ( self . prev_span ) ;
231
+ let attrs = maybe_append ( attrs, extra_attrs) ;
232
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
258
233
}
259
234
if self . check_keyword ( kw:: Impl ) ||
260
235
self . check_keyword ( kw:: Unsafe ) &&
@@ -265,10 +240,10 @@ impl<'a> Parser<'a> {
265
240
let defaultness = self . parse_defaultness ( ) ;
266
241
let unsafety = self . parse_unsafety ( ) ;
267
242
self . expect_keyword ( kw:: Impl ) ?;
268
- let ( ident, item , extra_attrs) = self . parse_item_impl ( unsafety, defaultness) ?;
243
+ let ( ident, item_ , extra_attrs) = self . parse_item_impl ( unsafety, defaultness) ?;
269
244
let span = lo. to ( self . prev_span ) ;
270
- return Ok ( Some ( self . mk_item ( span , ident , item , visibility ,
271
- maybe_append ( attrs , extra_attrs ) ) ) ) ;
245
+ let attrs = maybe_append ( attrs , extra_attrs ) ;
246
+ return Ok ( Some ( self . mk_item ( span , ident , item_ , visibility , attrs ) ) ) ;
272
247
}
273
248
if self . check_keyword ( kw:: Fn ) {
274
249
// FUNCTION ITEM
@@ -280,13 +255,9 @@ impl<'a> Parser<'a> {
280
255
constness : respan ( fn_span, Constness :: NotConst ) ,
281
256
abi : Abi :: Rust ,
282
257
} ) ?;
283
- let prev_span = self . prev_span ;
284
- let item = self . mk_item ( lo. to ( prev_span) ,
285
- ident,
286
- item_,
287
- visibility,
288
- maybe_append ( attrs, extra_attrs) ) ;
289
- return Ok ( Some ( item) ) ;
258
+ let span = lo. to ( self . prev_span ) ;
259
+ let attrs = maybe_append ( attrs, extra_attrs) ;
260
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
290
261
}
291
262
if self . check_keyword ( kw:: Unsafe )
292
263
&& self . look_ahead ( 1 , |t| * t != token:: OpenDelim ( token:: Brace ) ) {
@@ -307,25 +278,16 @@ impl<'a> Parser<'a> {
307
278
constness : respan ( fn_span, Constness :: NotConst ) ,
308
279
abi,
309
280
} ) ?;
310
- let prev_span = self . prev_span ;
311
- let item = self . mk_item ( lo. to ( prev_span) ,
312
- ident,
313
- item_,
314
- visibility,
315
- maybe_append ( attrs, extra_attrs) ) ;
316
- return Ok ( Some ( item) ) ;
281
+ let span = lo. to ( self . prev_span ) ;
282
+ let attrs = maybe_append ( attrs, extra_attrs) ;
283
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
317
284
}
318
285
if self . eat_keyword ( kw:: Mod ) {
319
286
// MODULE ITEM
320
- let ( ident, item_, extra_attrs) =
321
- self . parse_item_mod ( & attrs[ ..] ) ?;
322
- let prev_span = self . prev_span ;
323
- let item = self . mk_item ( lo. to ( prev_span) ,
324
- ident,
325
- item_,
326
- visibility,
327
- maybe_append ( attrs, extra_attrs) ) ;
328
- return Ok ( Some ( item) ) ;
287
+ let ( ident, item_, extra_attrs) = self . parse_item_mod ( & attrs[ ..] ) ?;
288
+ let span = lo. to ( self . prev_span ) ;
289
+ let attrs = maybe_append ( attrs, extra_attrs) ;
290
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
329
291
}
330
292
if let Some ( type_) = self . eat_type ( ) {
331
293
let ( ident, alias, generics) = type_?;
@@ -334,24 +296,15 @@ impl<'a> Parser<'a> {
334
296
AliasKind :: Weak ( ty) => ItemKind :: TyAlias ( ty, generics) ,
335
297
AliasKind :: OpaqueTy ( bounds) => ItemKind :: OpaqueTy ( bounds, generics) ,
336
298
} ;
337
- let prev_span = self . prev_span ;
338
- let item = self . mk_item ( lo. to ( prev_span) ,
339
- ident,
340
- item_,
341
- visibility,
342
- attrs) ;
343
- return Ok ( Some ( item) ) ;
299
+ let span = lo. to ( self . prev_span ) ;
300
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
344
301
}
345
302
if self . eat_keyword ( kw:: Enum ) {
346
303
// ENUM ITEM
347
304
let ( ident, item_, extra_attrs) = self . parse_item_enum ( ) ?;
348
- let prev_span = self . prev_span ;
349
- let item = self . mk_item ( lo. to ( prev_span) ,
350
- ident,
351
- item_,
352
- visibility,
353
- maybe_append ( attrs, extra_attrs) ) ;
354
- return Ok ( Some ( item) ) ;
305
+ let span = lo. to ( self . prev_span ) ;
306
+ let attrs = maybe_append ( attrs, extra_attrs) ;
307
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
355
308
}
356
309
if self . check_keyword ( kw:: Trait )
357
310
|| ( self . check_keyword ( kw:: Auto )
@@ -365,38 +318,25 @@ impl<'a> Parser<'a> {
365
318
IsAuto :: Yes
366
319
} ;
367
320
// TRAIT ITEM
368
- let ( ident, item_, extra_attrs) =
369
- self . parse_item_trait ( is_auto, Unsafety :: Normal ) ?;
370
- let prev_span = self . prev_span ;
371
- let item = self . mk_item ( lo. to ( prev_span) ,
372
- ident,
373
- item_,
374
- visibility,
375
- maybe_append ( attrs, extra_attrs) ) ;
376
- return Ok ( Some ( item) ) ;
321
+ let ( ident, item_, extra_attrs) = self . parse_item_trait ( is_auto, Unsafety :: Normal ) ?;
322
+ let span = lo. to ( self . prev_span ) ;
323
+ let attrs = maybe_append ( attrs, extra_attrs) ;
324
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
377
325
}
378
326
if self . eat_keyword ( kw:: Struct ) {
379
327
// STRUCT ITEM
380
328
let ( ident, item_, extra_attrs) = self . parse_item_struct ( ) ?;
381
- let prev_span = self . prev_span ;
382
- let item = self . mk_item ( lo. to ( prev_span) ,
383
- ident,
384
- item_,
385
- visibility,
386
- maybe_append ( attrs, extra_attrs) ) ;
387
- return Ok ( Some ( item) ) ;
329
+ let span = lo. to ( self . prev_span ) ;
330
+ let attrs = maybe_append ( attrs, extra_attrs) ;
331
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
388
332
}
389
333
if self . is_union_item ( ) {
390
334
// UNION ITEM
391
335
self . bump ( ) ;
392
336
let ( ident, item_, extra_attrs) = self . parse_item_union ( ) ?;
393
- let prev_span = self . prev_span ;
394
- let item = self . mk_item ( lo. to ( prev_span) ,
395
- ident,
396
- item_,
397
- visibility,
398
- maybe_append ( attrs, extra_attrs) ) ;
399
- return Ok ( Some ( item) ) ;
337
+ let span = lo. to ( self . prev_span ) ;
338
+ let attrs = maybe_append ( attrs, extra_attrs) ;
339
+ return Ok ( Some ( self . mk_item ( span, ident, item_, visibility, attrs) ) ) ;
400
340
}
401
341
if let Some ( macro_def) = self . eat_macro_def ( & attrs, & visibility, lo) ? {
402
342
return Ok ( Some ( macro_def) ) ;
0 commit comments