diff options
| author | Marcus Klaas <mail@marcusklaas.nl> | 2015-07-21 23:04:23 +0200 |
|---|---|---|
| committer | Marcus Klaas <mail@marcusklaas.nl> | 2015-07-21 23:04:23 +0200 |
| commit | b36d107b83388606ed4ce2b58941f0d905983958 (patch) | |
| tree | 7d25ae24ed4151dedb89d4ad66ca043a9758cfb4 /src/libsyntax/parse/parser.rs | |
| parent | 2fe870a5a7449643f5cf79c0d14d47888472c6ca (diff) | |
| download | rust-b36d107b83388606ed4ce2b58941f0d905983958.tar.gz rust-b36d107b83388606ed4ce2b58941f0d905983958.zip | |
Assign proper span to range expression
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 28802d323c6..be13f9a130e 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2738,14 +2738,15 @@ impl<'a> Parser<'a> { // (much lower than other prefix expressions) to be consistent // with the postfix-form 'expr..' let lo = self.span.lo; + let mut hi = self.span.hi; try!(self.bump()); let opt_end = if self.is_at_start_of_range_notation_rhs() { let end = try!(self.parse_binops()); + hi = end.span.hi; Some(end) } else { None }; - let hi = self.span.hi; let ex = self.mk_range(None, opt_end); Ok(self.mk_expr(lo, hi, ex)) } @@ -2787,17 +2788,17 @@ impl<'a> Parser<'a> { } // A range expression, either `expr..expr` or `expr..`. token::DotDot => { + let lo = lhs.span.lo; + let mut hi = self.span.hi; try!(self.bump()); let opt_end = if self.is_at_start_of_range_notation_rhs() { let end = try!(self.parse_binops()); + hi = end.span.hi; Some(end) } else { None }; - - let lo = lhs.span.lo; - let hi = self.span.hi; let range = self.mk_range(Some(lhs), opt_end); return Ok(self.mk_expr(lo, hi, range)); } |
