Skip to content

Commit 454373e

Browse files
committed
---
yaml --- r: 8100 b: refs/heads/snap-stage3 c: 5c42e3d h: refs/heads/master v: v3
1 parent 09e8a7c commit 454373e

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
refs/heads/master: 2898dcc5d97da9427ac367542382b6239d9c0bbf
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: da61e1ff15a3f1ad3aa8dfcf7ac0a646d08f60eb
4+
refs/heads/snap-stage3: 5c42e3df9c811be18a220f33fbcb229702922104
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/snap-stage3/src/comp/syntax/parse/parser.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,28 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr {
10391039
let e = e0;
10401040
let lo = e.span.lo;
10411041
let hi = e.span.hi;
1042-
while !expr_is_complete(p, e) {
1042+
while true {
1043+
// expr.f
1044+
if eat(p, token::DOT) {
1045+
alt p.token {
1046+
token::IDENT(i, _) {
1047+
hi = p.span.hi;
1048+
p.bump();
1049+
let tys = if eat(p, token::MOD_SEP) {
1050+
expect(p, token::LT);
1051+
parse_seq_to_gt(some(token::COMMA),
1052+
{|p| parse_ty(p, false)}, p)
1053+
} else { [] };
1054+
e = mk_pexpr(p, lo, hi,
1055+
ast::expr_field(to_expr(e),
1056+
p.get_str(i),
1057+
tys));
1058+
}
1059+
t { unexpected(p, t); }
1060+
}
1061+
cont;
1062+
}
1063+
if expr_is_complete(p, e) { break; }
10431064
alt p.token {
10441065
// expr(...)
10451066
token::LPAREN if permits_call(p) {
@@ -1076,27 +1097,6 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr {
10761097
e = mk_pexpr(p, lo, hi, ast::expr_index(to_expr(e), ix));
10771098
}
10781099

1079-
// expr.f
1080-
token::DOT {
1081-
p.bump();
1082-
alt p.token {
1083-
token::IDENT(i, _) {
1084-
hi = p.span.hi;
1085-
p.bump();
1086-
let tys = if eat(p, token::MOD_SEP) {
1087-
expect(p, token::LT);
1088-
parse_seq_to_gt(some(token::COMMA),
1089-
{|p| parse_ty(p, false)}, p)
1090-
} else { [] };
1091-
e = mk_pexpr(p, lo, hi,
1092-
ast::expr_field(to_expr(e),
1093-
p.get_str(i),
1094-
tys));
1095-
}
1096-
t { unexpected(p, t); }
1097-
}
1098-
}
1099-
11001100
_ { ret e; }
11011101
}
11021102
}

0 commit comments

Comments
 (0)