Skip to content

Commit eff0919

Browse files
committed
---
yaml --- r: 83949 b: refs/heads/dist-snap c: 30fca57 h: refs/heads/master i: 83947: c43132c v: v3
1 parent ed907ad commit eff0919

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: 0983ebe5310d4eb6d289f636f7ed0536c08bbc0e
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 20458899d53074c2b503ec08a5c1ec4decb2b28f
9+
refs/heads/dist-snap: 30fca57f17dea0b32500937bf80ab1039c50f9f1
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libsyntax/parse/parser.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1549,10 +1549,10 @@ impl Parser {
15491549
} else if self.eat_keyword(keywords::If) {
15501550
return self.parse_if_expr();
15511551
} else if self.eat_keyword(keywords::For) {
1552-
return self.parse_sugary_call_expr(~"for", ForSugar,
1552+
return self.parse_sugary_call_expr(lo, ~"for", ForSugar,
15531553
expr_loop_body);
15541554
} else if self.eat_keyword(keywords::Do) {
1555-
return self.parse_sugary_call_expr(~"do", DoSugar,
1555+
return self.parse_sugary_call_expr(lo, ~"do", DoSugar,
15561556
expr_do_body);
15571557
} else if self.eat_keyword(keywords::While) {
15581558
return self.parse_while_expr();
@@ -2264,12 +2264,11 @@ impl Parser {
22642264
// parse a 'for' or 'do'.
22652265
// the 'for' and 'do' expressions parse as calls, but look like
22662266
// function calls followed by a closure expression.
2267-
pub fn parse_sugary_call_expr(&self,
2267+
pub fn parse_sugary_call_expr(&self, lo: BytePos,
22682268
keyword: ~str,
22692269
sugar: CallSugar,
22702270
ctor: &fn(v: @expr) -> expr_)
22712271
-> @expr {
2272-
let lo = self.last_span;
22732272
// Parse the callee `foo` in
22742273
// for foo || {
22752274
// for foo.bar || {
@@ -2286,21 +2285,21 @@ impl Parser {
22862285
let last_arg = self.mk_expr(block.span.lo, block.span.hi,
22872286
ctor(block));
22882287
let args = vec::append(copy *args, [last_arg]);
2289-
self.mk_expr(lo.lo, block.span.hi, expr_call(f, args, sugar))
2288+
self.mk_expr(lo, block.span.hi, expr_call(f, args, sugar))
22902289
}
22912290
expr_method_call(_, f, i, ref tps, ref args, NoSugar) => {
22922291
let block = self.parse_lambda_block_expr();
22932292
let last_arg = self.mk_expr(block.span.lo, block.span.hi,
22942293
ctor(block));
22952294
let args = vec::append(copy *args, [last_arg]);
2296-
self.mk_expr(lo.lo, block.span.hi,
2295+
self.mk_expr(lo, block.span.hi,
22972296
self.mk_method_call(f, i, copy *tps, args, sugar))
22982297
}
22992298
expr_field(f, i, ref tps) => {
23002299
let block = self.parse_lambda_block_expr();
23012300
let last_arg = self.mk_expr(block.span.lo, block.span.hi,
23022301
ctor(block));
2303-
self.mk_expr(lo.lo, block.span.hi,
2302+
self.mk_expr(lo, block.span.hi,
23042303
self.mk_method_call(f, i, copy *tps, ~[last_arg], sugar))
23052304
}
23062305
expr_path(*) | expr_call(*) | expr_method_call(*) |
@@ -2309,7 +2308,7 @@ impl Parser {
23092308
let last_arg = self.mk_expr(block.span.lo, block.span.hi,
23102309
ctor(block));
23112310
self.mk_expr(
2312-
lo.lo,
2311+
lo,
23132312
last_arg.span.hi,
23142313
self.mk_call(e, ~[last_arg], sugar))
23152314
}
@@ -2319,7 +2318,7 @@ impl Parser {
23192318
// but they aren't represented by tests
23202319
debug!("sugary call on %?", e.node);
23212320
self.span_fatal(
2322-
*lo,
2321+
e.span,
23232322
fmt!("`%s` must be followed by a block call", keyword));
23242323
}
23252324
}

0 commit comments

Comments
 (0)