match lit.node {
ast::LitInt(_, ty) => {
let msg = if let ast::SignedIntLit(ast::TyIs(true), _) = ty {
- Some("the `i` suffix on integers is deprecated; use `is` \
- or one of the fixed-sized suffixes")
+ Some("the `i` and `is` suffixes on integers are deprecated; \
+ use `isize` or one of the fixed-sized suffixes")
} else if let ast::UnsignedIntLit(ast::TyUs(true)) = ty {
- Some("the `u` suffix on integers is deprecated; use `us` \
- or one of the fixed-sized suffixes")
+ Some("the `u` and `us` suffixes on integers are deprecated; \
+ use `usize` or one of the fixed-sized suffixes")
} else {
None
};
"u16" => ast::UnsignedIntLit(ast::TyU16),
"u32" => ast::UnsignedIntLit(ast::TyU32),
"u64" => ast::UnsignedIntLit(ast::TyU64),
+ "i" | "is" => ast::SignedIntLit(ast::TyIs(true), ast::Plus),
+ "u" | "us" => ast::UnsignedIntLit(ast::TyUs(true)),
_ => {
// i<digits> and u<digits> look like widths, so lets
// give an error message along those lines
&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)");
- }
+ sd.span_help(sp, "the suffix must be one of the integral types \
+ (`u32`, `isize`, etc)");
}
ty
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-#![allow(dead_code)]
+#![allow(dead_code, unused_variables)]
+#![feature(rustc_attrs)]
mod u {
type X = uint; //~ WARN the `uint` type is deprecated
x: uint //~ WARN the `uint` type is deprecated
}
fn bar(x: uint) { //~ WARN the `uint` type is deprecated
- 1_usize;
+ 1_u; //~ WARN the `u` and `us` suffixes on integers are deprecated
+ 1_us; //~ WARN the `u` and `us` suffixes on integers are deprecated
}
}
mod i {
x: int //~ WARN the `int` type is deprecated
}
fn bar(x: int) { //~ WARN the `int` type is deprecated
- 1_isize;
+ 1_i; //~ WARN the `i` and `is` suffixes on integers are deprecated
+ 1_is; //~ WARN the `i` and `is` suffixes on integers are deprecated
}
}
-fn main() {
- // make compilation fail, after feature gating
- let () = 1u8; //~ ERROR
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
}