Skip to content

Commit

Permalink
Use the correct span for out-of-range int literals.
Browse files Browse the repository at this point in the history
This corrects the error message to point at the literal, not the next
token.

Closes rust-lang#17123.
  • Loading branch information
huonw committed Nov 13, 2014
1 parent 26282ac commit 661598c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1646,7 +1646,8 @@ impl<'a> Parser<'a> {
token::LitByte(i) => LitByte(parse::byte_lit(i.as_str()).val0()),
token::LitChar(i) => LitChar(parse::char_lit(i.as_str()).val0()),
token::LitInteger(s) => parse::integer_lit(s.as_str(),
&self.sess.span_diagnostic, self.span),
&self.sess.span_diagnostic,
self.last_span),
token::LitFloat(s) => parse::float_lit(s.as_str()),
token::LitStr(s) => {
LitStr(token::intern_and_get_ident(parse::str_lit(s.as_str()).as_slice()),
Expand Down
17 changes: 17 additions & 0 deletions src/test/compile-fail/int-literal-too-large-span.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// issue #17123

fn main() {
100000000000000000000000000000000 //~ ERROR int literal is too large

; // the span shouldn't point to this.
}

0 comments on commit 661598c

Please sign in to comment.