aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/parser.rs
diff options
context:
space:
mode:
authorMarijn Haverbeke <[email protected]>2011-05-12 15:52:12 +0200
committerMarijn Haverbeke <[email protected]>2011-05-12 15:52:12 +0200
commitdd9b6dccb4cd45c8cfab8caebd82817c106db7b8 (patch)
tree70cd58c263140d085ad7c87726e1e63916149184 /src/comp/front/parser.rs
parentKeep resolve data in external hash table, rather than embedded defs (diff)
downloadrust-dd9b6dccb4cd45c8cfab8caebd82817c106db7b8.tar.xz
rust-dd9b6dccb4cd45c8cfab8caebd82817c106db7b8.zip
Remove some truly wrong logic in parse_constrs
Diffstat (limited to 'src/comp/front/parser.rs')
-rw-r--r--src/comp/front/parser.rs21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs
index fb43188a..2295e478 100644
--- a/src/comp/front/parser.rs
+++ b/src/comp/front/parser.rs
@@ -336,19 +336,14 @@ fn parse_constrs(parser p) -> common.spanned[vec[@ast.constr]] {
let vec[@ast.constr] constrs = vec();
if (p.peek() == token.COLON) {
p.bump();
- let bool more = true;
- while (more) {
- alt (p.peek()) {
- case (token.IDENT(_)) {
- auto constr = parse_ty_constr(p);
- hi = constr.span.hi;
- Vec.push[@ast.constr](constrs, constr);
- if (p.peek() == token.COMMA) {
- p.bump();
- more = false;
- }
- }
- case (_) { more = false; }
+ while (true) {
+ auto constr = parse_ty_constr(p);
+ hi = constr.span.hi;
+ Vec.push[@ast.constr](constrs, constr);
+ if (p.peek() == token.COMMA) {
+ p.bump();
+ } else {
+ break;
}
}
}