Skip to content

Commit 661598c

Browse files
committed
Use the correct span for out-of-range int literals.
This corrects the error message to point at the literal, not the next token. Closes #17123.
1 parent 26282ac commit 661598c

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/libsyntax/parse/parser.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1646,7 +1646,8 @@ impl<'a> Parser<'a> {
16461646
token::LitByte(i) => LitByte(parse::byte_lit(i.as_str()).val0()),
16471647
token::LitChar(i) => LitChar(parse::char_lit(i.as_str()).val0()),
16481648
token::LitInteger(s) => parse::integer_lit(s.as_str(),
1649-
&self.sess.span_diagnostic, self.span),
1649+
&self.sess.span_diagnostic,
1650+
self.last_span),
16501651
token::LitFloat(s) => parse::float_lit(s.as_str()),
16511652
token::LitStr(s) => {
16521653
LitStr(token::intern_and_get_ident(parse::str_lit(s.as_str()).as_slice()),
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
// issue #17123
12+
13+
fn main() {
14+
100000000000000000000000000000000 //~ ERROR int literal is too large
15+
16+
; // the span shouldn't point to this.
17+
}

0 commit comments

Comments
 (0)