diff --git a/tests/ui/fmt/no-inline-literals-out-of-range.rs b/tests/ui/fmt/no-inline-literals-out-of-range.rs index 05a0b64f77d..d2532cdfbff 100644 --- a/tests/ui/fmt/no-inline-literals-out-of-range.rs +++ b/tests/ui/fmt/no-inline-literals-out-of-range.rs @@ -1,8 +1,14 @@ +//@ only-64bit + fn main() { format_args!("{}", 0x8f_i8); // issue #115423 //~^ ERROR literal out of range for `i8` format_args!("{}", 0xffff_ffff_u8); // issue #116633 //~^ ERROR literal out of range for `u8` + format_args!("{}", 0xffff_ffff_ffff_ffff_ffff_usize); + //~^ ERROR literal out of range for `usize` + format_args!("{}", 0x8000_0000_0000_0000_isize); + //~^ ERROR literal out of range for `isize` format_args!("{}", 0xffff_ffff); // treat unsuffixed literals as i32 //~^ ERROR literal out of range for `i32` } diff --git a/tests/ui/fmt/no-inline-literals-out-of-range.stderr b/tests/ui/fmt/no-inline-literals-out-of-range.stderr index 22104d6134f..78ec4888c27 100644 --- a/tests/ui/fmt/no-inline-literals-out-of-range.stderr +++ b/tests/ui/fmt/no-inline-literals-out-of-range.stderr @@ -1,5 +1,5 @@ error: literal out of range for `i8` - --> $DIR/no-inline-literals-out-of-range.rs:2:24 + --> $DIR/no-inline-literals-out-of-range.rs:4:24 | LL | format_args!("{}", 0x8f_i8); // issue #115423 | ^^^^^^^ @@ -16,15 +16,31 @@ LL | format_args!("{}", 0x8f_u8 as i8); // issue #115423 | ~~~~~~~~~~~~~ error: literal out of range for `u8` - --> $DIR/no-inline-literals-out-of-range.rs:4:24 + --> $DIR/no-inline-literals-out-of-range.rs:6:24 | LL | format_args!("{}", 0xffff_ffff_u8); // issue #116633 | ^^^^^^^^^^^^^^ help: consider using the type `u32` instead: `0xffff_ffff_u32` | = note: the literal `0xffff_ffff_u8` (decimal `4294967295`) does not fit into the type `u8` and will become `255u8` +error: literal out of range for `usize` + --> $DIR/no-inline-literals-out-of-range.rs:8:24 + | +LL | format_args!("{}", 0xffff_ffff_ffff_ffff_ffff_usize); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the literal `0xffff_ffff_ffff_ffff_ffff_usize` (decimal `1208925819614629174706175`) does not fit into the type `usize` and will become `18446744073709551615usize` + +error: literal out of range for `isize` + --> $DIR/no-inline-literals-out-of-range.rs:10:24 + | +LL | format_args!("{}", 0x8000_0000_0000_0000_isize); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the literal `0x8000_0000_0000_0000_isize` (decimal `9223372036854775808`) does not fit into the type `isize` and will become `-9223372036854775808isize` + error: literal out of range for `i32` - --> $DIR/no-inline-literals-out-of-range.rs:6:24 + --> $DIR/no-inline-literals-out-of-range.rs:12:24 | LL | format_args!("{}", 0xffff_ffff); // treat unsuffixed literals as i32 | ^^^^^^^^^^^ @@ -36,5 +52,5 @@ help: to use as a negative number (decimal `-1`), consider using the type `u32` LL | format_args!("{}", 0xffff_ffffu32 as i32); // treat unsuffixed literals as i32 | ~~~~~~~~~~~~~~~~~~~~~ -error: aborting due to 3 previous errors +error: aborting due to 5 previous errors