@@ -279,41 +279,46 @@ class parser {
279
279
do self . parse_unspanned_seq ( token:: LBRACE , token:: RBRACE ,
280
280
seq_sep_none ( ) ) |p| {
281
281
let attrs = p. parse_outer_attributes ( ) ;
282
- let flo = p. span . lo ;
282
+ let lo = p. span . lo ;
283
283
let pur = p. parse_fn_purity ( ) ;
284
+ // NB: at the moment, trait methods are public by default; this
285
+ // could change.
286
+ let vis = p. parse_visibility ( public) ;
284
287
let ident = p. parse_method_name ( ) ;
285
288
let tps = p. parse_ty_params ( ) ;
286
- let d = p. parse_ty_fn_decl ( pur) , fhi = p. last_span . hi ;
287
- #debug[ "parse_trait_methods(): trait method ends in %s" ,
288
- token_to_str ( self . reader , self . token ) ] ;
289
- alt self. token {
289
+ let d = p. parse_ty_fn_decl ( pur) ;
290
+ let hi = p. last_span . hi ;
291
+ #debug[ "parse_trait_methods(): trait method signature ends in \
292
+ `%s`",
293
+ token_to_str ( p. reader , p. token ) ] ;
294
+ alt p. token {
290
295
token:: SEMI {
291
- self. bump ( ) ;
296
+ p. bump ( ) ;
297
+ #debug[ "parse_trait_methods(): parsing required method" ] ;
298
+ // NB: at the moment, visibility annotations on required
299
+ // methods are ignored; this could change.
292
300
required ( { ident: ident, attrs: attrs,
293
301
decl : { purity : pur with d} , tps: tps,
294
- span: mk_sp ( flo , fhi ) } )
302
+ span: mk_sp ( lo , hi ) } )
295
303
}
296
304
token:: LBRACE {
297
- self . bump ( ) ;
305
+ #debug [ "parse_trait_methods ( ) : parsing provided method "] ;
298
306
let (inner_attrs, body) =
299
- self . parse_inner_attrs_and_block ( true ) ;
307
+ p .parse_inner_attrs_and_block(true);
300
308
let attrs = vec::append(attrs, inner_attrs);
301
- self . eat ( token:: RBRACE ) ;
302
309
provided(@{ident: ident,
303
310
attrs: attrs,
304
311
tps: tps,
305
312
decl: d,
306
313
body: body,
307
- id: self . get_id ( ) ,
308
- span: mk_sp ( flo, fhi) ,
309
- self_id: self . get_id ( ) ,
310
- // Provided traits methods always public for now
311
- vis: public} )
314
+ id: p.get_id(),
315
+ span: mk_sp(lo, hi),
316
+ self_id: p.get_id(),
317
+ vis: vis})
312
318
}
313
319
314
- _ { self . fatal ( "expected `;` or `}` \
315
- but found `"
316
- + token_to_str ( self . reader , self . token ) + "`" ) ;
320
+ _ { p.fatal(" expected `; ` or `} ` but found `" +
321
+ token_to_str( p. reader, p. token) + "`" ) ;
317
322
}
318
323
}
319
324
}
0 commit comments