@@ -2440,66 +2440,19 @@ class parser {
2440
2440
tps = ~[];
2441
2441
}
2442
2442
2443
- let mut ident;
2444
- let ty, traits;
2445
- if !self.is_keyword(~" of") &&
2446
- !self . token_is_keyword ( ~"of", self . look_ahead ( 1 ) ) &&
2447
- !self . token_is_keyword ( ~"for ", self.look_ahead(1)) &&
2448
- self.look_ahead(1) != token::BINOP(token::SLASH) &&
2449
- (self.look_ahead(1) != token::LT
2450
- || (self.look_ahead(1) == token::LT && tps.is_not_empty())) {
2451
-
2452
- // This is a new-style impl declaration.
2453
- ident = @~" __extensions__"; // XXX: clownshoes
2454
-
2455
- // Parse the type.
2456
- ty = self . parse_ty ( false ) ;
2457
-
2458
- // Parse traits, if necessary.
2459
- if self . token == token:: COLON {
2460
- self . bump ( ) ;
2461
- traits = self . parse_trait_ref_list ( token:: LBRACE ) ;
2462
- } else {
2463
- traits = ~[ ] ;
2464
- }
2465
- } else {
2466
- self . warn ( ~"old-style named impl ?") ;
2467
- let mut ident_old;
2468
- if self . token == token:: BINOP ( token:: SLASH ) {
2469
- self . parse_region_param ( ) ;
2470
- ident_old = none;
2471
- tps = self . parse_ty_params ( ) ;
2472
- } else if self . is_keyword ( ~"of") {
2473
- ident_old = none;
2474
- } else {
2475
- ident_old = some ( self . parse_ident ( ) ) ;
2476
- self . parse_region_param ( ) ;
2477
- tps = self . parse_ty_params ( ) ;
2478
- }
2443
+ // This is a new-style impl declaration.
2444
+ let ident = @~" __extensions__"; // XXX: clownshoes
2479
2445
2480
- if self . eat_keyword ( ~"of") {
2481
- let for_atom = ( * self . reader . interner ( ) ) . intern ( @~"for ");
2482
- traits = self.parse_trait_ref_list
2483
- (token::IDENT(for_atom, false));
2484
- if traits.len() >= 1 && option::is_none(ident_old) {
2485
- ident_old = some(vec::last(traits[0].path.idents));
2486
- }
2487
- if traits.len() == 0 {
2488
- self.fatal(~" BUG : ' of' but no trait ") ;
2489
- }
2490
- if traits. len ( ) > 1 {
2491
- self . fatal ( ~"BUG : multiple traits") ;
2492
- }
2493
- } else {
2494
- traits = ~[ ] ;
2495
- } ;
2496
- ident = match ident_old {
2497
- some( name) => name,
2498
- none => { self . expect_keyword ( ~"of") ; fail; }
2499
- } ;
2500
- self . expect_keyword ( ~"for ");
2501
- ty = self.parse_ty(false);
2502
- }
2446
+ // Parse the type.
2447
+ let ty = self . parse_ty ( false ) ;
2448
+
2449
+ // Parse traits, if necessary.
2450
+ let traits = if self . token == token:: COLON {
2451
+ self . bump ( ) ;
2452
+ self . parse_trait_ref_list ( token:: LBRACE )
2453
+ } else {
2454
+ ~[ ]
2455
+ } ;
2503
2456
2504
2457
let mut meths = ~[ ] ;
2505
2458
self . expect ( token:: LBRACE ) ;
0 commit comments