Skip to content

Commit 436a90e

Browse files
committed
syntax: Stop supporting old impl syntax
1 parent 43c9c63 commit 436a90e

File tree

1 file changed

+12
-59
lines changed

1 file changed

+12
-59
lines changed

src/libsyntax/parse/parser.rs

Lines changed: 12 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2440,66 +2440,19 @@ class parser {
24402440
tps = ~[];
24412441
}
24422442
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
24792445

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+
};
25032456

25042457
let mut meths = ~[];
25052458
self.expect(token::LBRACE);

0 commit comments

Comments
 (0)