Modify parser to require isize
/usize
suffixes.
This commit is contained in:
parent
dfc5c0f1e8
commit
700c518f2a
1 changed files with 13 additions and 4 deletions
|
@ -701,14 +701,12 @@ pub fn integer_lit(s: &str, suffix: Option<&str>, sd: &SpanHandler, sp: Span) ->
|
|||
if let Some(suf) = suffix {
|
||||
if suf.is_empty() { sd.span_bug(sp, "found empty literal suffix in Some")}
|
||||
ty = match suf {
|
||||
"i" => ast::SignedIntLit(ast::TyIs(true), ast::Plus),
|
||||
"is" => ast::SignedIntLit(ast::TyIs(false), ast::Plus),
|
||||
"isize" => ast::SignedIntLit(ast::TyIs(false), ast::Plus),
|
||||
"i8" => ast::SignedIntLit(ast::TyI8, ast::Plus),
|
||||
"i16" => ast::SignedIntLit(ast::TyI16, ast::Plus),
|
||||
"i32" => ast::SignedIntLit(ast::TyI32, ast::Plus),
|
||||
"i64" => ast::SignedIntLit(ast::TyI64, ast::Plus),
|
||||
"u" => ast::UnsignedIntLit(ast::TyUs(true)),
|
||||
"us" => ast::UnsignedIntLit(ast::TyUs(false)),
|
||||
"usize" => ast::UnsignedIntLit(ast::TyUs(false)),
|
||||
"u8" => ast::UnsignedIntLit(ast::TyU8),
|
||||
"u16" => ast::UnsignedIntLit(ast::TyU16),
|
||||
"u32" => ast::UnsignedIntLit(ast::TyU32),
|
||||
|
@ -722,6 +720,17 @@ pub fn integer_lit(s: &str, suffix: Option<&str>, sd: &SpanHandler, sp: Span) ->
|
|||
&suf[1..]));
|
||||
} else {
|
||||
sd.span_err(sp, &*format!("illegal suffix `{}` for numeric literal", suf));
|
||||
|
||||
if suf == "i" || suf == "is" {
|
||||
sd.span_help(sp, "per RFC 544/573, the suffix \
|
||||
for `isize` literals is now `isize`");
|
||||
} else if suf == "u" || suf == "us" {
|
||||
sd.span_help(sp, "per RFC 544/573, the suffix \
|
||||
for `usize` literals is now `usize`");
|
||||
} else {
|
||||
sd.span_help(sp, "the suffix must be one of the integral types \
|
||||
(`u32`, `isize`, etc)");
|
||||
}
|
||||
}
|
||||
|
||||
ty
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue