@@ -2291,25 +2291,20 @@ fn parse_optional_meta(&parser p) -> (@ast::meta_item)[] {
2291
2291
}
2292
2292
}
2293
2293
2294
- fn parse_use( & parser p) -> @ast:: view_item {
2295
- auto lo = p. get_last_lo_pos( ) ;
2294
+ fn parse_use( & parser p) -> ast:: view_item_ {
2296
2295
auto ident = parse_ident( p) ;
2297
2296
auto metadata = parse_optional_meta( p) ;
2298
- auto hi = p. get_hi_pos( ) ;
2299
- expect( p, token:: SEMI ) ;
2300
- auto use_decl = ast:: view_item_use( ident, metadata, p. get_id( ) ) ;
2301
- ret @spanned( lo, hi, use_decl) ;
2297
+ ret ast:: view_item_use( ident, metadata, p. get_id( ) ) ;
2302
2298
}
2303
2299
2304
2300
fn parse_rest_import_name( & parser p, ast:: ident first,
2305
2301
option:: t[ ast:: ident] def_ident) ->
2306
- @ast:: view_item {
2307
- auto lo = p. get_lo_pos( ) ;
2302
+ ast:: view_item_ {
2308
2303
let ast:: ident[ ] identifiers = ~[ first] ;
2309
2304
let bool glob = false;
2310
2305
while ( true) {
2311
2306
alt ( p. peek( ) ) {
2312
- case ( token:: SEMI ) { p . bump ( ) ; break ; }
2307
+ case ( token:: SEMI ) { break ; }
2313
2308
case ( token:: MOD_SEP ) {
2314
2309
if ( glob) { p. fatal( "cannot path into a glob") ; }
2315
2310
p. bump( ) ;
@@ -2327,31 +2322,25 @@ fn parse_rest_import_name(&parser p, ast::ident first,
2327
2322
case ( _) { p. fatal( "expecting an identifier, or '*' ") ; }
2328
2323
}
2329
2324
}
2330
- auto hi = p. get_hi_pos( ) ;
2331
- auto import_decl;
2332
2325
alt ( def_ident) {
2333
2326
case ( some( ?i) ) {
2334
2327
if ( glob) { p. fatal( "globbed imports can' t be renamed") ; }
2335
- import_decl =
2336
- ast:: view_item_import( i, identifiers, p. get_id( ) ) ;
2328
+ ret ast:: view_item_import( i, identifiers, p. get_id( ) ) ;
2337
2329
}
2338
2330
case ( _) {
2339
2331
if ( glob) {
2340
- import_decl =
2341
- ast:: view_item_import_glob( identifiers, p. get_id( ) ) ;
2332
+ ret ast:: view_item_import_glob( identifiers, p. get_id( ) ) ;
2342
2333
} else {
2343
2334
auto len = ivec:: len( identifiers) ;
2344
- import_decl =
2345
- ast:: view_item_import( identifiers. ( len - 1 u) , identifiers,
2335
+ ret ast:: view_item_import( identifiers. ( len - 1 u) , identifiers,
2346
2336
p. get_id( ) ) ;
2347
2337
}
2348
2338
}
2349
2339
}
2350
- ret @spanned( lo, hi, import_decl) ;
2351
2340
}
2352
2341
2353
2342
fn parse_full_import_name( & parser p, ast:: ident def_ident) ->
2354
- @ ast:: view_item {
2343
+ ast:: view_item_ {
2355
2344
alt ( p. peek( ) ) {
2356
2345
case ( token:: IDENT ( ?i, _) ) {
2357
2346
p. bump( ) ;
@@ -2362,7 +2351,7 @@ fn parse_full_import_name(&parser p, ast::ident def_ident) ->
2362
2351
fail;
2363
2352
}
2364
2353
2365
- fn parse_import( & parser p) -> @ ast:: view_item {
2354
+ fn parse_import( & parser p) -> ast:: view_item_ {
2366
2355
alt ( p. peek( ) ) {
2367
2356
case ( token:: IDENT ( ?i, _) ) {
2368
2357
p. bump( ) ;
@@ -2381,20 +2370,20 @@ fn parse_import(&parser p) -> @ast::view_item {
2381
2370
fail;
2382
2371
}
2383
2372
2384
- fn parse_export( & parser p) -> @ast:: view_item {
2385
- auto lo = p. get_last_lo_pos( ) ;
2373
+ fn parse_export( & parser p) -> ast:: view_item_ {
2386
2374
auto id = parse_ident( p) ;
2387
- auto hi = p. get_hi_pos( ) ;
2388
- expect( p, token:: SEMI ) ;
2389
- ret @spanned( lo, hi, ast:: view_item_export( id, p. get_id( ) ) ) ;
2375
+ ret ast:: view_item_export( id, p. get_id( ) ) ;
2390
2376
}
2391
2377
2392
2378
fn parse_view_item( & parser p) -> @ast:: view_item {
2393
- if ( eat_word( p, "use ") ) {
2394
- ret parse_use( p) ;
2395
- } else if ( eat_word( p, "import") ) {
2396
- ret parse_import( p) ;
2397
- } else if ( eat_word( p, "export") ) { ret parse_export( p) ; } else { fail; }
2379
+ auto lo = p. get_lo_pos( ) ;
2380
+ auto the_item = if ( eat_word( p, "use ") ) { parse_use( p) }
2381
+ else if ( eat_word( p, "import") ) { parse_import( p) }
2382
+ else if ( eat_word( p, "export") ) { parse_export( p) }
2383
+ else { fail } ;
2384
+ auto hi = p. get_lo_pos( ) ;
2385
+ expect( p, token:: SEMI ) ;
2386
+ ret @spanned( lo, hi, the_item) ;
2398
2387
}
2399
2388
2400
2389
fn is_view_item( & parser p) -> bool {
0 commit comments