1
Fork 0

Update tests to remove old numeric constants

Part of #68490.

Care has been taken to leave the old consts where appropriate, for testing backcompat regressions, module shadowing, etc. The intrinsics docs were accidentally referring to some methods on f64 as std::f64, which I changed due to being contrary with how we normally disambiguate the shadow module from the primitive. In one other place I changed std::u8 to std::ops since it was just testing path handling in macros.

For places which have legitimate uses of the old consts, deprecated attributes have been optimistically inserted. Although currently unnecessary, they exist to emphasize to any future deprecation effort the necessity of these specific symbols and prevent them from being accidentally removed.
This commit is contained in:
bstrie 2020-10-24 19:21:40 -04:00
parent 914d07ae5f
commit 90a2e5e3fe
106 changed files with 463 additions and 528 deletions

View file

@ -1173,133 +1173,133 @@ extern "rust-intrinsic" {
/// Returns the square root of an `f32` /// Returns the square root of an `f32`
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::sqrt`](../../std/primitive.f32.html#method.sqrt) /// [`f32::sqrt`](../../std/primitive.f32.html#method.sqrt)
pub fn sqrtf32(x: f32) -> f32; pub fn sqrtf32(x: f32) -> f32;
/// Returns the square root of an `f64` /// Returns the square root of an `f64`
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::sqrt`](../../std/primitive.f64.html#method.sqrt) /// [`f64::sqrt`](../../std/primitive.f64.html#method.sqrt)
pub fn sqrtf64(x: f64) -> f64; pub fn sqrtf64(x: f64) -> f64;
/// Raises an `f32` to an integer power. /// Raises an `f32` to an integer power.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::powi`](../../std/primitive.f32.html#method.powi) /// [`f32::powi`](../../std/primitive.f32.html#method.powi)
pub fn powif32(a: f32, x: i32) -> f32; pub fn powif32(a: f32, x: i32) -> f32;
/// Raises an `f64` to an integer power. /// Raises an `f64` to an integer power.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::powi`](../../std/primitive.f64.html#method.powi) /// [`f64::powi`](../../std/primitive.f64.html#method.powi)
pub fn powif64(a: f64, x: i32) -> f64; pub fn powif64(a: f64, x: i32) -> f64;
/// Returns the sine of an `f32`. /// Returns the sine of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::sin`](../../std/primitive.f32.html#method.sin) /// [`f32::sin`](../../std/primitive.f32.html#method.sin)
pub fn sinf32(x: f32) -> f32; pub fn sinf32(x: f32) -> f32;
/// Returns the sine of an `f64`. /// Returns the sine of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::sin`](../../std/primitive.f64.html#method.sin) /// [`f64::sin`](../../std/primitive.f64.html#method.sin)
pub fn sinf64(x: f64) -> f64; pub fn sinf64(x: f64) -> f64;
/// Returns the cosine of an `f32`. /// Returns the cosine of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::cos`](../../std/primitive.f32.html#method.cos) /// [`f32::cos`](../../std/primitive.f32.html#method.cos)
pub fn cosf32(x: f32) -> f32; pub fn cosf32(x: f32) -> f32;
/// Returns the cosine of an `f64`. /// Returns the cosine of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::cos`](../../std/primitive.f64.html#method.cos) /// [`f64::cos`](../../std/primitive.f64.html#method.cos)
pub fn cosf64(x: f64) -> f64; pub fn cosf64(x: f64) -> f64;
/// Raises an `f32` to an `f32` power. /// Raises an `f32` to an `f32` power.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::powf`](../../std/primitive.f32.html#method.powf) /// [`f32::powf`](../../std/primitive.f32.html#method.powf)
pub fn powf32(a: f32, x: f32) -> f32; pub fn powf32(a: f32, x: f32) -> f32;
/// Raises an `f64` to an `f64` power. /// Raises an `f64` to an `f64` power.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::powf`](../../std/primitive.f64.html#method.powf) /// [`f64::powf`](../../std/primitive.f64.html#method.powf)
pub fn powf64(a: f64, x: f64) -> f64; pub fn powf64(a: f64, x: f64) -> f64;
/// Returns the exponential of an `f32`. /// Returns the exponential of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::exp`](../../std/primitive.f32.html#method.exp) /// [`f32::exp`](../../std/primitive.f32.html#method.exp)
pub fn expf32(x: f32) -> f32; pub fn expf32(x: f32) -> f32;
/// Returns the exponential of an `f64`. /// Returns the exponential of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::exp`](../../std/primitive.f64.html#method.exp) /// [`f64::exp`](../../std/primitive.f64.html#method.exp)
pub fn expf64(x: f64) -> f64; pub fn expf64(x: f64) -> f64;
/// Returns 2 raised to the power of an `f32`. /// Returns 2 raised to the power of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::exp2`](../../std/primitive.f32.html#method.exp2) /// [`f32::exp2`](../../std/primitive.f32.html#method.exp2)
pub fn exp2f32(x: f32) -> f32; pub fn exp2f32(x: f32) -> f32;
/// Returns 2 raised to the power of an `f64`. /// Returns 2 raised to the power of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::exp2`](../../std/primitive.f64.html#method.exp2) /// [`f64::exp2`](../../std/primitive.f64.html#method.exp2)
pub fn exp2f64(x: f64) -> f64; pub fn exp2f64(x: f64) -> f64;
/// Returns the natural logarithm of an `f32`. /// Returns the natural logarithm of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::ln`](../../std/primitive.f32.html#method.ln) /// [`f32::ln`](../../std/primitive.f32.html#method.ln)
pub fn logf32(x: f32) -> f32; pub fn logf32(x: f32) -> f32;
/// Returns the natural logarithm of an `f64`. /// Returns the natural logarithm of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::ln`](../../std/primitive.f64.html#method.ln) /// [`f64::ln`](../../std/primitive.f64.html#method.ln)
pub fn logf64(x: f64) -> f64; pub fn logf64(x: f64) -> f64;
/// Returns the base 10 logarithm of an `f32`. /// Returns the base 10 logarithm of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::log10`](../../std/primitive.f32.html#method.log10) /// [`f32::log10`](../../std/primitive.f32.html#method.log10)
pub fn log10f32(x: f32) -> f32; pub fn log10f32(x: f32) -> f32;
/// Returns the base 10 logarithm of an `f64`. /// Returns the base 10 logarithm of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::log10`](../../std/primitive.f64.html#method.log10) /// [`f64::log10`](../../std/primitive.f64.html#method.log10)
pub fn log10f64(x: f64) -> f64; pub fn log10f64(x: f64) -> f64;
/// Returns the base 2 logarithm of an `f32`. /// Returns the base 2 logarithm of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::log2`](../../std/primitive.f32.html#method.log2) /// [`f32::log2`](../../std/primitive.f32.html#method.log2)
pub fn log2f32(x: f32) -> f32; pub fn log2f32(x: f32) -> f32;
/// Returns the base 2 logarithm of an `f64`. /// Returns the base 2 logarithm of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::log2`](../../std/primitive.f64.html#method.log2) /// [`f64::log2`](../../std/primitive.f64.html#method.log2)
pub fn log2f64(x: f64) -> f64; pub fn log2f64(x: f64) -> f64;
/// Returns `a * b + c` for `f32` values. /// Returns `a * b + c` for `f32` values.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::mul_add`](../../std/primitive.f32.html#method.mul_add) /// [`f32::mul_add`](../../std/primitive.f32.html#method.mul_add)
pub fn fmaf32(a: f32, b: f32, c: f32) -> f32; pub fn fmaf32(a: f32, b: f32, c: f32) -> f32;
/// Returns `a * b + c` for `f64` values. /// Returns `a * b + c` for `f64` values.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::mul_add`](../../std/primitive.f64.html#method.mul_add) /// [`f64::mul_add`](../../std/primitive.f64.html#method.mul_add)
pub fn fmaf64(a: f64, b: f64, c: f64) -> f64; pub fn fmaf64(a: f64, b: f64, c: f64) -> f64;
/// Returns the absolute value of an `f32`. /// Returns the absolute value of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::abs`](../../std/primitive.f32.html#method.abs) /// [`f32::abs`](../../std/primitive.f32.html#method.abs)
pub fn fabsf32(x: f32) -> f32; pub fn fabsf32(x: f32) -> f32;
/// Returns the absolute value of an `f64`. /// Returns the absolute value of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::abs`](../../std/primitive.f64.html#method.abs) /// [`f64::abs`](../../std/primitive.f64.html#method.abs)
pub fn fabsf64(x: f64) -> f64; pub fn fabsf64(x: f64) -> f64;
/// Returns the minimum of two `f32` values. /// Returns the minimum of two `f32` values.
@ -1326,45 +1326,45 @@ extern "rust-intrinsic" {
/// Copies the sign from `y` to `x` for `f32` values. /// Copies the sign from `y` to `x` for `f32` values.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::copysign`](../../std/primitive.f32.html#method.copysign) /// [`f32::copysign`](../../std/primitive.f32.html#method.copysign)
pub fn copysignf32(x: f32, y: f32) -> f32; pub fn copysignf32(x: f32, y: f32) -> f32;
/// Copies the sign from `y` to `x` for `f64` values. /// Copies the sign from `y` to `x` for `f64` values.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::copysign`](../../std/primitive.f64.html#method.copysign) /// [`f64::copysign`](../../std/primitive.f64.html#method.copysign)
pub fn copysignf64(x: f64, y: f64) -> f64; pub fn copysignf64(x: f64, y: f64) -> f64;
/// Returns the largest integer less than or equal to an `f32`. /// Returns the largest integer less than or equal to an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::floor`](../../std/primitive.f32.html#method.floor) /// [`f32::floor`](../../std/primitive.f32.html#method.floor)
pub fn floorf32(x: f32) -> f32; pub fn floorf32(x: f32) -> f32;
/// Returns the largest integer less than or equal to an `f64`. /// Returns the largest integer less than or equal to an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::floor`](../../std/primitive.f64.html#method.floor) /// [`f64::floor`](../../std/primitive.f64.html#method.floor)
pub fn floorf64(x: f64) -> f64; pub fn floorf64(x: f64) -> f64;
/// Returns the smallest integer greater than or equal to an `f32`. /// Returns the smallest integer greater than or equal to an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::ceil`](../../std/primitive.f32.html#method.ceil) /// [`f32::ceil`](../../std/primitive.f32.html#method.ceil)
pub fn ceilf32(x: f32) -> f32; pub fn ceilf32(x: f32) -> f32;
/// Returns the smallest integer greater than or equal to an `f64`. /// Returns the smallest integer greater than or equal to an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::ceil`](../../std/primitive.f64.html#method.ceil) /// [`f64::ceil`](../../std/primitive.f64.html#method.ceil)
pub fn ceilf64(x: f64) -> f64; pub fn ceilf64(x: f64) -> f64;
/// Returns the integer part of an `f32`. /// Returns the integer part of an `f32`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::trunc`](../../std/primitive.f32.html#method.trunc) /// [`f32::trunc`](../../std/primitive.f32.html#method.trunc)
pub fn truncf32(x: f32) -> f32; pub fn truncf32(x: f32) -> f32;
/// Returns the integer part of an `f64`. /// Returns the integer part of an `f64`.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::trunc`](../../std/primitive.f64.html#method.trunc) /// [`f64::trunc`](../../std/primitive.f64.html#method.trunc)
pub fn truncf64(x: f64) -> f64; pub fn truncf64(x: f64) -> f64;
/// Returns the nearest integer to an `f32`. May raise an inexact floating-point exception /// Returns the nearest integer to an `f32`. May raise an inexact floating-point exception
@ -1386,12 +1386,12 @@ extern "rust-intrinsic" {
/// Returns the nearest integer to an `f32`. Rounds half-way cases away from zero. /// Returns the nearest integer to an `f32`. Rounds half-way cases away from zero.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f32::round`](../../std/primitive.f32.html#method.round) /// [`f32::round`](../../std/primitive.f32.html#method.round)
pub fn roundf32(x: f32) -> f32; pub fn roundf32(x: f32) -> f32;
/// Returns the nearest integer to an `f64`. Rounds half-way cases away from zero. /// Returns the nearest integer to an `f64`. Rounds half-way cases away from zero.
/// ///
/// The stabilized version of this intrinsic is /// The stabilized version of this intrinsic is
/// [`std::f64::round`](../../std/primitive.f64.html#method.round) /// [`f64::round`](../../std/primitive.f64.html#method.round)
pub fn roundf64(x: f64) -> f64; pub fn roundf64(x: f64) -> f64;
/// Float addition that allows optimizations based on algebraic rules. /// Float addition that allows optimizations based on algebraic rules.

View file

@ -1,6 +1,5 @@
#[test] #[test]
fn test_nan() { fn test_nan() {
use core::f64;
let x = "NaN".to_string(); let x = "NaN".to_string();
assert_eq!(format!("{}", f64::NAN), x); assert_eq!(format!("{}", f64::NAN), x);
assert_eq!(format!("{:e}", f64::NAN), x); assert_eq!(format!("{:e}", f64::NAN), x);

View file

@ -4,14 +4,14 @@
#[repr(i64)] #[repr(i64)]
pub enum I64 { pub enum I64 {
I64Min = std::i64::MIN, I64Min = i64::MIN,
I64Max = std::i64::MAX, I64Max = i64::MAX,
} }
#[repr(u64)] #[repr(u64)]
pub enum U64 { pub enum U64 {
U64Min = std::u64::MIN, U64Min = u64::MIN,
U64Max = std::u64::MAX, U64Max = u64::MAX,
} }
fn main() { fn main() {

View file

@ -1,7 +1,6 @@
// compile-flags: -C no-prepopulate-passes // compile-flags: -C no-prepopulate-passes
#![crate_type="rlib"] #![crate_type="rlib"]
use std::usize;
#[repr(align(16))] #[repr(align(16))]
pub struct S { pub struct S {

View file

@ -3,5 +3,5 @@
// error-pattern: are too big for the current architecture // error-pattern: are too big for the current architecture
fn main() { fn main() {
println!("Size: {}", std::mem::size_of::<[u8; std::u64::MAX as usize]>()); println!("Size: {}", std::mem::size_of::<[u8; u64::MAX as usize]>());
} }

View file

@ -6,6 +6,7 @@ extern crate reexport_check;
// @!has 'foo/index.html' '//code' 'pub use self::i32;' // @!has 'foo/index.html' '//code' 'pub use self::i32;'
// @has 'foo/index.html' '//tr[@class="module-item"]' 'i32' // @has 'foo/index.html' '//tr[@class="module-item"]' 'i32'
// @has 'foo/i32/index.html' // @has 'foo/i32/index.html'
#[allow(deprecated, deprecated_in_future)]
pub use std::i32; pub use std::i32;
// @!has 'foo/index.html' '//code' 'pub use self::string::String;' // @!has 'foo/index.html' '//code' 'pub use self::string::String;'
// @has 'foo/index.html' '//tr[@class="module-item"]' 'String' // @has 'foo/index.html' '//tr[@class="module-item"]' 'String'

View file

@ -52,6 +52,7 @@ pub const MY_TYPE_WITH_STR: MyTypeWithStr = MyTypeWithStr("show this");
pub use std::f32::consts::PI; pub use std::f32::consts::PI;
// @has show_const_contents/constant.MAX.html '= i32::MAX; // 2_147_483_647i32' // @has show_const_contents/constant.MAX.html '= i32::MAX; // 2_147_483_647i32'
#[allow(deprecated, deprecated_in_future)]
pub use std::i32::MAX; pub use std::i32::MAX;
macro_rules! int_module { macro_rules! int_module {

View file

@ -2,7 +2,6 @@
// error-pattern:index out of bounds // error-pattern:index out of bounds
// ignore-emscripten no processes // ignore-emscripten no processes
use std::usize;
use std::mem::size_of; use std::mem::size_of;
fn main() { fn main() {

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:27:22
| |
LL | const NEG: i32 = -i32::MIN + T::NEG; LL | const NEG: i32 = -i32::MIN + T::NEG;
| ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
@ -7,25 +7,25 @@ LL | const NEG: i32 = -i32::MIN + T::NEG;
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:31:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:35
| |
LL | const NEG_REV: i32 = T::NEG + (-i32::MIN); LL | const NEG_REV: i32 = T::NEG + (-i32::MIN);
| ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:32:22
| |
LL | const ADD: i32 = (i32::MAX+1) + T::ADD; LL | const ADD: i32 = (i32::MAX+1) + T::ADD;
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:36:36 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:36
| |
LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1); LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1);
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:37:22
| |
LL | const DIV: i32 = (1/0) + T::DIV; LL | const DIV: i32 = (1/0) + T::DIV;
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
@ -33,19 +33,19 @@ LL | const DIV: i32 = (1/0) + T::DIV;
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:41:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:35
| |
LL | const DIV_REV: i32 = T::DIV + (1/0); LL | const DIV_REV: i32 = T::DIV + (1/0);
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:42:22
| |
LL | const OOB: i32 = [1][1] + T::OOB; LL | const OOB: i32 = [1][1] + T::OOB;
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:46:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:35
| |
LL | const OOB_REV: i32 = T::OOB + [1][1]; LL | const OOB_REV: i32 = T::OOB + [1][1];
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:27:22
| |
LL | const NEG: i32 = -i32::MIN + T::NEG; LL | const NEG: i32 = -i32::MIN + T::NEG;
| ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
@ -7,25 +7,25 @@ LL | const NEG: i32 = -i32::MIN + T::NEG;
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:31:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:35
| |
LL | const NEG_REV: i32 = T::NEG + (-i32::MIN); LL | const NEG_REV: i32 = T::NEG + (-i32::MIN);
| ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:32:22
| |
LL | const ADD: i32 = (i32::MAX+1) + T::ADD; LL | const ADD: i32 = (i32::MAX+1) + T::ADD;
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:36:36 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:36
| |
LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1); LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1);
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:37:22
| |
LL | const DIV: i32 = (1/0) + T::DIV; LL | const DIV: i32 = (1/0) + T::DIV;
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
@ -33,19 +33,19 @@ LL | const DIV: i32 = (1/0) + T::DIV;
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:41:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:35
| |
LL | const DIV_REV: i32 = T::DIV + (1/0); LL | const DIV_REV: i32 = T::DIV + (1/0);
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:42:22
| |
LL | const OOB: i32 = [1][1] + T::OOB; LL | const OOB: i32 = [1][1] + T::OOB;
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:46:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:35
| |
LL | const OOB_REV: i32 = T::OOB + [1][1]; LL | const OOB_REV: i32 = T::OOB + [1][1];
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:27:22
| |
LL | const NEG: i32 = -i32::MIN + T::NEG; LL | const NEG: i32 = -i32::MIN + T::NEG;
| ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
@ -7,25 +7,25 @@ LL | const NEG: i32 = -i32::MIN + T::NEG;
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:31:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:29:35
| |
LL | const NEG_REV: i32 = T::NEG + (-i32::MIN); LL | const NEG_REV: i32 = T::NEG + (-i32::MIN);
| ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow | ^^^^^^^^^^^ attempt to negate `i32::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:32:22
| |
LL | const ADD: i32 = (i32::MAX+1) + T::ADD; LL | const ADD: i32 = (i32::MAX+1) + T::ADD;
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:36:36 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:34:36
| |
LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1); LL | const ADD_REV: i32 = T::ADD + (i32::MAX+1);
| ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:37:22
| |
LL | const DIV: i32 = (1/0) + T::DIV; LL | const DIV: i32 = (1/0) + T::DIV;
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
@ -33,19 +33,19 @@ LL | const DIV: i32 = (1/0) + T::DIV;
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:41:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:39:35
| |
LL | const DIV_REV: i32 = T::DIV + (1/0); LL | const DIV_REV: i32 = T::DIV + (1/0);
| ^^^^^ attempt to divide `1_i32` by zero | ^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:22 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:42:22
| |
LL | const OOB: i32 = [1][1] + T::OOB; LL | const OOB: i32 = [1][1] + T::OOB;
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-69020-assoc-const-arith-overflow.rs:46:35 --> $DIR/issue-69020-assoc-const-arith-overflow.rs:44:35
| |
LL | const OOB_REV: i32 = T::OOB + [1][1]; LL | const OOB_REV: i32 = T::OOB + [1][1];
| ^^^^^^ index out of bounds: the length is 1 but the index is 1 | ^^^^^^ index out of bounds: the length is 1 but the index is 1

View file

@ -5,8 +5,6 @@
#![crate_type="lib"] #![crate_type="lib"]
use std::i32;
pub trait Foo { pub trait Foo {
const NEG: i32; const NEG: i32;
const NEG_REV: i32; const NEG_REV: i32;

View file

@ -10,8 +10,8 @@ pub fn main() {
assert_eq!((-2147483648i32).wrapping_sub(1), 2147483647); assert_eq!((-2147483648i32).wrapping_sub(1), 2147483647);
assert_eq!(-3.40282356e+38_f32, ::std::f32::MIN); assert_eq!(-3.40282356e+38_f32, f32::MIN);
assert_eq!(3.40282356e+38_f32, ::std::f32::MAX); assert_eq!(3.40282356e+38_f32, f32::MAX);
assert_eq!(-1.7976931348623158e+308_f64, ::std::f64::MIN); assert_eq!(-1.7976931348623158e+308_f64, f64::MIN);
assert_eq!(1.7976931348623158e+308_f64, ::std::f64::MAX); assert_eq!(1.7976931348623158e+308_f64, f64::MAX);
} }

View file

@ -6,7 +6,7 @@ const fn test_me<T>(a: usize, b: usize) -> usize {
if a < b { if a < b {
std::mem::size_of::<T>() std::mem::size_of::<T>()
} else { } else {
std::usize::MAX usize::MAX
} }
} }

View file

@ -1,7 +1,7 @@
error: constant expression depends on a generic parameter error: constant expression depends on a generic parameter
--> $DIR/issue-72819-generic-in-const-eval.rs:9:47 --> $DIR/issue-72819-generic-in-const-eval.rs:9:39
| |
LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue, LL | where Assert::<{N < usize::MAX / 2}>: IsTrue,
| ^^^^^^ | ^^^^^^
| |
= note: this may fail depending on what value the parameter takes = note: this may fail depending on what value the parameter takes

View file

@ -1,7 +1,7 @@
error: generic parameters may not be used in const operations error: generic parameters may not be used in const operations
--> $DIR/issue-72819-generic-in-const-eval.rs:9:17 --> $DIR/issue-72819-generic-in-const-eval.rs:9:17
| |
LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue, LL | where Assert::<{N < usize::MAX / 2}>: IsTrue,
| ^ cannot perform const operation using `N` | ^ cannot perform const operation using `N`
| |
= help: const parameters may only be used as standalone arguments, i.e. `N` = help: const parameters may only be used as standalone arguments, i.e. `N`

View file

@ -6,7 +6,7 @@
#![cfg_attr(min, feature(min_const_generics))] #![cfg_attr(min, feature(min_const_generics))]
struct Arr<const N: usize> struct Arr<const N: usize>
where Assert::<{N < usize::max_value() / 2}>: IsTrue, where Assert::<{N < usize::MAX / 2}>: IsTrue,
//[full]~^ ERROR constant expression depends on a generic parameter //[full]~^ ERROR constant expression depends on a generic parameter
//[min]~^^ ERROR generic parameters may not be used in const operations //[min]~^^ ERROR generic parameters may not be used in const operations
{ {
@ -19,5 +19,5 @@ trait IsTrue {}
impl IsTrue for Assert<true> {} impl IsTrue for Assert<true> {}
fn main() { fn main() {
let x: Arr<{usize::max_value()}> = Arr {}; let x: Arr<{usize::MAX}> = Arr {};
} }

View file

@ -3,7 +3,7 @@
#![feature(const_generics)] #![feature(const_generics)]
#![allow(incomplete_features)] #![allow(incomplete_features)]
struct Arr<const N: usize> struct Arr<const N: usize>
where Assert::<{N < usize::max_value() / 2}>: IsTrue, //~ ERROR constant expression where Assert::<{N < usize::MAX / 2}>: IsTrue, //~ ERROR constant expression
{ {
} }
@ -14,7 +14,7 @@ trait IsTrue {}
impl IsTrue for Assert<true> {} impl IsTrue for Assert<true> {}
fn main() { fn main() {
let x: Arr<{usize::max_value()}> = Arr {}; let x: Arr<{usize::MAX}> = Arr {};
//~^ ERROR mismatched types //~^ ERROR mismatched types
//~| ERROR mismatched types //~| ERROR mismatched types
} }

View file

@ -1,7 +1,7 @@
error: constant expression depends on a generic parameter error: constant expression depends on a generic parameter
--> $DIR/issue-73260.rs:6:47 --> $DIR/issue-73260.rs:6:39
| |
LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue, LL | where Assert::<{N < usize::MAX / 2}>: IsTrue,
| ^^^^^^ | ^^^^^^
| |
= note: this may fail depending on what value the parameter takes = note: this may fail depending on what value the parameter takes
@ -9,16 +9,16 @@ LL | where Assert::<{N < usize::max_value() / 2}>: IsTrue,
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/issue-73260.rs:17:12 --> $DIR/issue-73260.rs:17:12
| |
LL | let x: Arr<{usize::max_value()}> = Arr {}; LL | let x: Arr<{usize::MAX}> = Arr {};
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `false`, found `true` | ^^^^^^^^^^^^^^^^^ expected `false`, found `true`
| |
= note: expected type `false` = note: expected type `false`
found type `true` found type `true`
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/issue-73260.rs:17:40 --> $DIR/issue-73260.rs:17:32
| |
LL | let x: Arr<{usize::max_value()}> = Arr {}; LL | let x: Arr<{usize::MAX}> = Arr {};
| ^^^ expected `false`, found `true` | ^^^ expected `false`, found `true`
| |
= note: expected type `false` = note: expected type `false`

View file

@ -1,6 +1,6 @@
#![deny(const_err)] #![deny(const_err)]
pub const A: i8 = -std::i8::MIN; //~ ERROR const_err pub const A: i8 = -i8::MIN; //~ ERROR const_err
pub const B: u8 = 200u8 + 200u8; //~ ERROR const_err pub const B: u8 = 200u8 + 200u8; //~ ERROR const_err
pub const C: u8 = 200u8 * 4; //~ ERROR const_err pub const C: u8 = 200u8 * 4; //~ ERROR const_err
pub const D: u8 = 42u8 - (42u8 + 1); //~ ERROR const_err pub const D: u8 = 42u8 - (42u8 + 1); //~ ERROR const_err

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-err-early.rs:3:19 --> $DIR/const-err-early.rs:3:19
| |
LL | pub const A: i8 = -std::i8::MIN; LL | pub const A: i8 = -i8::MIN;
| ------------------^^^^^^^^^^^^^- | ------------------^^^^^^^^-
| | | |
| attempt to negate `i8::MIN`, which would overflow | attempt to negate `i8::MIN`, which would overflow
| |

View file

@ -1,6 +1,6 @@
#![deny(const_err)] #![deny(const_err)]
pub const A: i8 = -std::i8::MIN; pub const A: i8 = -i8::MIN;
//~^ ERROR const_err //~^ ERROR const_err
pub const B: i8 = A; pub const B: i8 = A;
//~^ ERROR const_err //~^ ERROR const_err

View file

@ -1,8 +1,8 @@
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-err-multi.rs:3:19 --> $DIR/const-err-multi.rs:3:19
| |
LL | pub const A: i8 = -std::i8::MIN; LL | pub const A: i8 = -i8::MIN;
| ------------------^^^^^^^^^^^^^- | ------------------^^^^^^^^-
| | | |
| attempt to negate `i8::MIN`, which would overflow | attempt to negate `i8::MIN`, which would overflow
| |

View file

@ -1,16 +1,16 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:19:13 --> $DIR/const-err2.rs:19:13
| |
LL | let a = -std::i8::MIN; LL | let a = -i8::MIN;
| ^^^^^^^^^^^^^ attempt to negate `i8::MIN`, which would overflow | ^^^^^^^^ attempt to negate `i8::MIN`, which would overflow
| |
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:21:18 --> $DIR/const-err2.rs:21:18
| |
LL | let a_i128 = -std::i128::MIN; LL | let a_i128 = -i128::MIN;
| ^^^^^^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow | ^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:23:13 --> $DIR/const-err2.rs:23:13
@ -21,8 +21,8 @@ LL | let b = 200u8 + 200u8 + 200u8;
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:25:18 --> $DIR/const-err2.rs:25:18
| |
LL | let b_i128 = std::i128::MIN - std::i128::MAX; LL | let b_i128 = i128::MIN - i128::MAX;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow | ^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:27:13 --> $DIR/const-err2.rs:27:13

View file

@ -1,16 +1,16 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:19:13 --> $DIR/const-err2.rs:19:13
| |
LL | let a = -std::i8::MIN; LL | let a = -i8::MIN;
| ^^^^^^^^^^^^^ attempt to negate `i8::MIN`, which would overflow | ^^^^^^^^ attempt to negate `i8::MIN`, which would overflow
| |
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:21:18 --> $DIR/const-err2.rs:21:18
| |
LL | let a_i128 = -std::i128::MIN; LL | let a_i128 = -i128::MIN;
| ^^^^^^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow | ^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:23:13 --> $DIR/const-err2.rs:23:13
@ -21,8 +21,8 @@ LL | let b = 200u8 + 200u8 + 200u8;
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:25:18 --> $DIR/const-err2.rs:25:18
| |
LL | let b_i128 = std::i128::MIN - std::i128::MAX; LL | let b_i128 = i128::MIN - i128::MAX;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow | ^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:27:13 --> $DIR/const-err2.rs:27:13

View file

@ -1,16 +1,16 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:19:13 --> $DIR/const-err2.rs:19:13
| |
LL | let a = -std::i8::MIN; LL | let a = -i8::MIN;
| ^^^^^^^^^^^^^ attempt to negate `i8::MIN`, which would overflow | ^^^^^^^^ attempt to negate `i8::MIN`, which would overflow
| |
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:21:18 --> $DIR/const-err2.rs:21:18
| |
LL | let a_i128 = -std::i128::MIN; LL | let a_i128 = -i128::MIN;
| ^^^^^^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow | ^^^^^^^^^^ attempt to negate `i128::MIN`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:23:13 --> $DIR/const-err2.rs:23:13
@ -21,8 +21,8 @@ LL | let b = 200u8 + 200u8 + 200u8;
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:25:18 --> $DIR/const-err2.rs:25:18
| |
LL | let b_i128 = std::i128::MIN - std::i128::MAX; LL | let b_i128 = i128::MIN - i128::MAX;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow | ^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i128::MIN - i128::MAX`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/const-err2.rs:27:13 --> $DIR/const-err2.rs:27:13

View file

@ -16,13 +16,13 @@ fn black_box<T>(_: T) {
} }
fn main() { fn main() {
let a = -std::i8::MIN; let a = -i8::MIN;
//~^ ERROR arithmetic operation will overflow //~^ ERROR arithmetic operation will overflow
let a_i128 = -std::i128::MIN; let a_i128 = -i128::MIN;
//~^ ERROR arithmetic operation will overflow //~^ ERROR arithmetic operation will overflow
let b = 200u8 + 200u8 + 200u8; let b = 200u8 + 200u8 + 200u8;
//~^ ERROR arithmetic operation will overflow //~^ ERROR arithmetic operation will overflow
let b_i128 = std::i128::MIN - std::i128::MAX; let b_i128 = i128::MIN - i128::MAX;
//~^ ERROR arithmetic operation will overflow //~^ ERROR arithmetic operation will overflow
let c = 200u8 * 4; let c = 200u8 * 4;
//~^ ERROR arithmetic operation will overflow //~^ ERROR arithmetic operation will overflow

View file

@ -12,8 +12,6 @@
#![allow(unused_imports)] #![allow(unused_imports)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const A_I8_I const A_I8_I
: [u32; (i8::MAX as usize) + 1] : [u32; (i8::MAX as usize) + 1]

View file

@ -1,5 +1,5 @@
error[E0080]: evaluation of constant value failed error[E0080]: evaluation of constant value failed
--> $DIR/const-eval-overflow-3.rs:20:11 --> $DIR/const-eval-overflow-3.rs:18:11
| |
LL | = [0; (i8::MAX + 1) as usize]; LL | = [0; (i8::MAX + 1) as usize];
| ^^^^^^^^^^^^^ attempt to compute `i8::MAX + 1_i8`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i8::MAX + 1_i8`, which would overflow

View file

@ -10,8 +10,6 @@
#![allow(unused_imports)] #![allow(unused_imports)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const A_I8_I const A_I8_I
: [u32; (i8::MAX as usize) + 1] : [u32; (i8::MAX as usize) + 1]

View file

@ -1,11 +1,11 @@
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/const-eval-overflow-3b.rs:18:22 --> $DIR/const-eval-overflow-3b.rs:16:22
| |
LL | = [0; (i8::MAX + 1u8) as usize]; LL | = [0; (i8::MAX + 1u8) as usize];
| ^^^ expected `i8`, found `u8` | ^^^ expected `i8`, found `u8`
error[E0277]: cannot add `u8` to `i8` error[E0277]: cannot add `u8` to `i8`
--> $DIR/const-eval-overflow-3b.rs:18:20 --> $DIR/const-eval-overflow-3b.rs:16:20
| |
LL | = [0; (i8::MAX + 1u8) as usize]; LL | = [0; (i8::MAX + 1u8) as usize];
| ^ no implementation for `i8 + u8` | ^ no implementation for `i8 + u8`

View file

@ -6,8 +6,6 @@
#![allow(unused_imports)] #![allow(unused_imports)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const A_I8_T const A_I8_T
: [u32; (i8::MAX as i8 + 1i8) as usize] : [u32; (i8::MAX as i8 + 1i8) as usize]

View file

@ -1,5 +1,5 @@
error[E0080]: evaluation of constant value failed error[E0080]: evaluation of constant value failed
--> $DIR/const-eval-overflow-4.rs:13:13 --> $DIR/const-eval-overflow-4.rs:11:13
| |
LL | : [u32; (i8::MAX as i8 + 1i8) as usize] LL | : [u32; (i8::MAX as i8 + 1i8) as usize]
| ^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i8::MAX + 1_i8`, which would overflow | ^^^^^^^^^^^^^^^^^^^^^ attempt to compute `i8::MAX + 1_i8`, which would overflow

View file

@ -5,9 +5,6 @@
#![allow(unused_imports)] #![allow(unused_imports)]
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const A_I8_T const A_I8_T
: [u32; (i8::MAX as i8 + 1u8) as usize] : [u32; (i8::MAX as i8 + 1u8) as usize]
//~^ ERROR mismatched types //~^ ERROR mismatched types

View file

@ -1,11 +1,11 @@
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/const-eval-overflow-4b.rs:12:30 --> $DIR/const-eval-overflow-4b.rs:9:30
| |
LL | : [u32; (i8::MAX as i8 + 1u8) as usize] LL | : [u32; (i8::MAX as i8 + 1u8) as usize]
| ^^^ expected `i8`, found `u8` | ^^^ expected `i8`, found `u8`
error[E0277]: cannot add `u8` to `i8` error[E0277]: cannot add `u8` to `i8`
--> $DIR/const-eval-overflow-4b.rs:12:28 --> $DIR/const-eval-overflow-4b.rs:9:28
| |
LL | : [u32; (i8::MAX as i8 + 1u8) as usize] LL | : [u32; (i8::MAX as i8 + 1u8) as usize]
| ^ no implementation for `i8 + u8` | ^ no implementation for `i8 + u8`
@ -13,7 +13,7 @@ LL | : [u32; (i8::MAX as i8 + 1u8) as usize]
= help: the trait `Add<u8>` is not implemented for `i8` = help: the trait `Add<u8>` is not implemented for `i8`
error[E0604]: only `u8` can be cast as `char`, not `i8` error[E0604]: only `u8` can be cast as `char`, not `i8`
--> $DIR/const-eval-overflow-4b.rs:25:13 --> $DIR/const-eval-overflow-4b.rs:22:13
| |
LL | : [u32; 5i8 as char as usize] LL | : [u32; 5i8 as char as usize]
| ^^^^^^^^^^^ invalid cast | ^^^^^^^^^^^ invalid cast

View file

@ -8,8 +8,6 @@
#![deny(const_err)] #![deny(const_err)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = const VALS_I8: (i8,) =
( (

View file

@ -1,5 +1,5 @@
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:16:6 --> $DIR/const-eval-overflow2.rs:14:6
| |
LL | / const VALS_I8: (i8,) = LL | / const VALS_I8: (i8,) =
LL | | ( LL | | (
@ -15,7 +15,7 @@ LL | #![deny(const_err)]
| ^^^^^^^^^ | ^^^^^^^^^
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:22:6 --> $DIR/const-eval-overflow2.rs:20:6
| |
LL | / const VALS_I16: (i16,) = LL | / const VALS_I16: (i16,) =
LL | | ( LL | | (
@ -25,7 +25,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:28:6 --> $DIR/const-eval-overflow2.rs:26:6
| |
LL | / const VALS_I32: (i32,) = LL | / const VALS_I32: (i32,) =
LL | | ( LL | | (
@ -35,7 +35,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:34:6 --> $DIR/const-eval-overflow2.rs:32:6
| |
LL | / const VALS_I64: (i64,) = LL | / const VALS_I64: (i64,) =
LL | | ( LL | | (
@ -45,7 +45,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:40:6 --> $DIR/const-eval-overflow2.rs:38:6
| |
LL | / const VALS_U8: (u8,) = LL | / const VALS_U8: (u8,) =
LL | | ( LL | | (
@ -55,7 +55,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:45:6 --> $DIR/const-eval-overflow2.rs:43:6
| |
LL | / const VALS_U16: (u16,) = ( LL | / const VALS_U16: (u16,) = (
LL | | u16::MIN - 1, LL | | u16::MIN - 1,
@ -64,7 +64,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:50:6 --> $DIR/const-eval-overflow2.rs:48:6
| |
LL | / const VALS_U32: (u32,) = ( LL | / const VALS_U32: (u32,) = (
LL | | u32::MIN - 1, LL | | u32::MIN - 1,
@ -73,7 +73,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2.rs:56:6 --> $DIR/const-eval-overflow2.rs:54:6
| |
LL | / const VALS_U64: (u64,) = LL | / const VALS_U64: (u64,) =
LL | | ( LL | | (

View file

@ -8,8 +8,6 @@
#![deny(const_err)] #![deny(const_err)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = const VALS_I8: (i8,) =
( (

View file

@ -1,5 +1,5 @@
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:16:6 --> $DIR/const-eval-overflow2b.rs:14:6
| |
LL | / const VALS_I8: (i8,) = LL | / const VALS_I8: (i8,) =
LL | | ( LL | | (
@ -15,7 +15,7 @@ LL | #![deny(const_err)]
| ^^^^^^^^^ | ^^^^^^^^^
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:22:6 --> $DIR/const-eval-overflow2b.rs:20:6
| |
LL | / const VALS_I16: (i16,) = LL | / const VALS_I16: (i16,) =
LL | | ( LL | | (
@ -25,7 +25,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:28:6 --> $DIR/const-eval-overflow2b.rs:26:6
| |
LL | / const VALS_I32: (i32,) = LL | / const VALS_I32: (i32,) =
LL | | ( LL | | (
@ -35,7 +35,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:34:6 --> $DIR/const-eval-overflow2b.rs:32:6
| |
LL | / const VALS_I64: (i64,) = LL | / const VALS_I64: (i64,) =
LL | | ( LL | | (
@ -45,7 +45,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:40:6 --> $DIR/const-eval-overflow2b.rs:38:6
| |
LL | / const VALS_U8: (u8,) = LL | / const VALS_U8: (u8,) =
LL | | ( LL | | (
@ -55,7 +55,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:45:6 --> $DIR/const-eval-overflow2b.rs:43:6
| |
LL | / const VALS_U16: (u16,) = ( LL | / const VALS_U16: (u16,) = (
LL | | u16::MAX + 1, LL | | u16::MAX + 1,
@ -64,7 +64,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:50:6 --> $DIR/const-eval-overflow2b.rs:48:6
| |
LL | / const VALS_U32: (u32,) = ( LL | / const VALS_U32: (u32,) = (
LL | | u32::MAX + 1, LL | | u32::MAX + 1,
@ -73,7 +73,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2b.rs:56:6 --> $DIR/const-eval-overflow2b.rs:54:6
| |
LL | / const VALS_U64: (u64,) = LL | / const VALS_U64: (u64,) =
LL | | ( LL | | (

View file

@ -8,8 +8,6 @@
#![deny(const_err)] #![deny(const_err)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const VALS_I8: (i8,) = const VALS_I8: (i8,) =
( (

View file

@ -1,5 +1,5 @@
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:16:6 --> $DIR/const-eval-overflow2c.rs:14:6
| |
LL | / const VALS_I8: (i8,) = LL | / const VALS_I8: (i8,) =
LL | | ( LL | | (
@ -15,7 +15,7 @@ LL | #![deny(const_err)]
| ^^^^^^^^^ | ^^^^^^^^^
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:22:6 --> $DIR/const-eval-overflow2c.rs:20:6
| |
LL | / const VALS_I16: (i16,) = LL | / const VALS_I16: (i16,) =
LL | | ( LL | | (
@ -25,7 +25,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:28:6 --> $DIR/const-eval-overflow2c.rs:26:6
| |
LL | / const VALS_I32: (i32,) = LL | / const VALS_I32: (i32,) =
LL | | ( LL | | (
@ -35,7 +35,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:34:6 --> $DIR/const-eval-overflow2c.rs:32:6
| |
LL | / const VALS_I64: (i64,) = LL | / const VALS_I64: (i64,) =
LL | | ( LL | | (
@ -45,7 +45,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:40:6 --> $DIR/const-eval-overflow2c.rs:38:6
| |
LL | / const VALS_U8: (u8,) = LL | / const VALS_U8: (u8,) =
LL | | ( LL | | (
@ -55,7 +55,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:45:6 --> $DIR/const-eval-overflow2c.rs:43:6
| |
LL | / const VALS_U16: (u16,) = ( LL | / const VALS_U16: (u16,) = (
LL | | u16::MAX * 2, LL | | u16::MAX * 2,
@ -64,7 +64,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:50:6 --> $DIR/const-eval-overflow2c.rs:48:6
| |
LL | / const VALS_U32: (u32,) = ( LL | / const VALS_U32: (u32,) = (
LL | | u32::MAX * 2, LL | | u32::MAX * 2,
@ -73,7 +73,7 @@ LL | | );
| |_______- | |_______-
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/const-eval-overflow2c.rs:56:6 --> $DIR/const-eval-overflow2c.rs:54:6
| |
LL | / const VALS_U64: (u64,) = LL | / const VALS_U64: (u64,) =
LL | | ( LL | | (

View file

@ -1,6 +1,6 @@
#![feature(const_raw_ptr_deref)] #![feature(const_raw_ptr_deref)]
use std::{mem, usize}; use std::mem;
// Make sure we error with the right kind of error on a too large slice. // Make sure we error with the right kind of error on a too large slice.
const TEST: () = { unsafe { //~ NOTE const TEST: () = { unsafe { //~ NOTE

View file

@ -5,8 +5,6 @@
#![feature(const_overflowing_int_methods)] #![feature(const_overflowing_int_methods)]
#![feature(const_wrapping_int_methods)] #![feature(const_wrapping_int_methods)]
use std::{i8, i128};
macro_rules! suite { macro_rules! suite {
($( ($(
$fn:ident -> $ty:ty { $( $label:ident : $expr:expr, $result:expr; )* } $fn:ident -> $ty:ty { $( $label:ident : $expr:expr, $result:expr; )* }

View file

@ -16,7 +16,7 @@ const SHR_A: (u32, bool) = 0x10u32.overflowing_shr(4);
const SHR_B: (u32, bool) = 0x10u32.overflowing_shr(132); const SHR_B: (u32, bool) = 0x10u32.overflowing_shr(132);
const NEG_A: (u32, bool) = 0u32.overflowing_neg(); const NEG_A: (u32, bool) = 0u32.overflowing_neg();
const NEG_B: (u32, bool) = core::u32::MAX.overflowing_neg(); const NEG_B: (u32, bool) = u32::MAX.overflowing_neg();
const ABS_POS: (i32, bool) = 10i32.overflowing_abs(); const ABS_POS: (i32, bool) = 10i32.overflowing_abs();
const ABS_NEG: (i32, bool) = (-10i32).overflowing_abs(); const ABS_NEG: (i32, bool) = (-10i32).overflowing_abs();

View file

@ -8,19 +8,19 @@ fn main() {
const I: isize = -2147483648isize; const I: isize = -2147483648isize;
#[cfg(target_pointer_width = "64")] #[cfg(target_pointer_width = "64")]
const I: isize = -9223372036854775808isize; const I: isize = -9223372036854775808isize;
assert_eq!(::std::i32::MIN as u64, 0xffffffff80000000); assert_eq!(i32::MIN as u64, 0xffffffff80000000);
assert_eq!(-2147483648isize as u64, 0xffffffff80000000); assert_eq!(-2147483648isize as u64, 0xffffffff80000000);
assert_eq!(-2147483648i32 as u64, 0xffffffff80000000); assert_eq!(-2147483648i32 as u64, 0xffffffff80000000);
assert_eq!(::std::i64::MIN as u64, 0x8000000000000000); assert_eq!(i64::MIN as u64, 0x8000000000000000);
#[cfg(target_pointer_width = "64")] #[cfg(target_pointer_width = "64")]
assert_eq!(-9223372036854775808isize as u64, 0x8000000000000000); assert_eq!(-9223372036854775808isize as u64, 0x8000000000000000);
#[cfg(target_pointer_width = "32")] #[cfg(target_pointer_width = "32")]
assert_eq!(-9223372036854775808isize as u64, 0); assert_eq!(-9223372036854775808isize as u64, 0);
assert_eq!(-9223372036854775808i32 as u64, 0); assert_eq!(-9223372036854775808i32 as u64, 0);
const J: usize = ::std::i32::MAX as usize; const J: usize = i32::MAX as usize;
const K: usize = -1i32 as u32 as usize; const K: usize = -1i32 as u32 as usize;
const L: usize = ::std::i32::MIN as usize; const L: usize = i32::MIN as usize;
const M: usize = ::std::i64::MIN as usize; const M: usize = i64::MIN as usize;
match 5 { match 5 {
J => {}, J => {},
K => {}, K => {},

View file

@ -1,7 +1,5 @@
// Regression test for #63952, shouldn't hang. // Regression test for #63952, shouldn't hang.
use std::usize;
#[repr(C)] #[repr(C)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
struct SliceRepr { struct SliceRepr {

View file

@ -1,5 +1,5 @@
error[E0080]: it is undefined behavior to use this value error[E0080]: it is undefined behavior to use this value
--> $DIR/issue-63952.rs:18:1 --> $DIR/issue-63952.rs:16:1
| |
LL | / const SLICE_WAY_TOO_LONG: &[u8] = unsafe { LL | / const SLICE_WAY_TOO_LONG: &[u8] = unsafe {
LL | | SliceTransmute { LL | | SliceTransmute {

View file

@ -1,3 +1,4 @@
#![allow(deprecated, deprecated_in_future)] // can be removed if different fns are chosen
// build-pass (FIXME(62277): could be check-pass?) // build-pass (FIXME(62277): could be check-pass?)
fn main() { fn main() {

View file

@ -13,5 +13,5 @@ fn main() {
// make sure that these do not cause trouble despite overflowing // make sure that these do not cause trouble despite overflowing
baz_u32(&(0-1)); baz_u32(&(0-1));
baz_i32(&-std::i32::MIN); baz_i32(&-i32::MIN);
} }

View file

@ -7,8 +7,6 @@
#![allow(dead_code, unused_variables, unused_imports)] #![allow(dead_code, unused_variables, unused_imports)]
use std::{i8,u8,i16,u16,i32,u32,i64, u64};
fn f_i8() { fn f_i8() {
#[repr(i8)] #[repr(i8)]
enum A { enum A {

View file

@ -1,5 +1,5 @@
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:17:16 --> $DIR/discrim-ill-typed.rs:15:16
| |
LL | OhNo = 0_u8, LL | OhNo = 0_u8,
| ^^^^ expected `i8`, found `u8` | ^^^^ expected `i8`, found `u8`
@ -10,7 +10,7 @@ LL | OhNo = 0_i8,
| ^^^^ | ^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:30:16 --> $DIR/discrim-ill-typed.rs:28:16
| |
LL | OhNo = 0_i8, LL | OhNo = 0_i8,
| ^^^^ expected `u8`, found `i8` | ^^^^ expected `u8`, found `i8`
@ -21,7 +21,7 @@ LL | OhNo = 0_u8,
| ^^^^ | ^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:43:16 --> $DIR/discrim-ill-typed.rs:41:16
| |
LL | OhNo = 0_u16, LL | OhNo = 0_u16,
| ^^^^^ expected `i16`, found `u16` | ^^^^^ expected `i16`, found `u16`
@ -32,7 +32,7 @@ LL | OhNo = 0_i16,
| ^^^^^ | ^^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:56:16 --> $DIR/discrim-ill-typed.rs:54:16
| |
LL | OhNo = 0_i16, LL | OhNo = 0_i16,
| ^^^^^ expected `u16`, found `i16` | ^^^^^ expected `u16`, found `i16`
@ -43,7 +43,7 @@ LL | OhNo = 0_u16,
| ^^^^^ | ^^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:69:16 --> $DIR/discrim-ill-typed.rs:67:16
| |
LL | OhNo = 0_u32, LL | OhNo = 0_u32,
| ^^^^^ expected `i32`, found `u32` | ^^^^^ expected `i32`, found `u32`
@ -54,7 +54,7 @@ LL | OhNo = 0_i32,
| ^^^^^ | ^^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:82:16 --> $DIR/discrim-ill-typed.rs:80:16
| |
LL | OhNo = 0_i32, LL | OhNo = 0_i32,
| ^^^^^ expected `u32`, found `i32` | ^^^^^ expected `u32`, found `i32`
@ -65,7 +65,7 @@ LL | OhNo = 0_u32,
| ^^^^^ | ^^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:95:16 --> $DIR/discrim-ill-typed.rs:93:16
| |
LL | OhNo = 0_u64, LL | OhNo = 0_u64,
| ^^^^^ expected `i64`, found `u64` | ^^^^^ expected `i64`, found `u64`
@ -76,7 +76,7 @@ LL | OhNo = 0_i64,
| ^^^^^ | ^^^^^
error[E0308]: mismatched types error[E0308]: mismatched types
--> $DIR/discrim-ill-typed.rs:108:16 --> $DIR/discrim-ill-typed.rs:106:16
| |
LL | OhNo = 0_i64, LL | OhNo = 0_i64,
| ^^^^^ expected `u64`, found `i64` | ^^^^^ expected `u64`, found `i64`

View file

@ -5,8 +5,6 @@
// See also run-pass/discrim-explicit-23030.rs where the suggested // See also run-pass/discrim-explicit-23030.rs where the suggested
// workaround is tested. // workaround is tested.
use std::{i8,u8,i16,u16,i32,u32,i64, u64};
fn f_i8() { fn f_i8() {
#[repr(i8)] #[repr(i8)]
enum A { enum A {

View file

@ -1,5 +1,5 @@
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:15:9 --> $DIR/discrim-overflow-2.rs:13:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 127 | ^^^^ overflowed on value after 127
@ -7,7 +7,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -128` if that is desired outcome = note: explicitly set `OhNo = -128` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:24:9 --> $DIR/discrim-overflow-2.rs:22:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 255 | ^^^^ overflowed on value after 255
@ -15,7 +15,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:33:9 --> $DIR/discrim-overflow-2.rs:31:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 32767 | ^^^^ overflowed on value after 32767
@ -23,7 +23,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -32768` if that is desired outcome = note: explicitly set `OhNo = -32768` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:42:9 --> $DIR/discrim-overflow-2.rs:40:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 65535 | ^^^^ overflowed on value after 65535
@ -31,7 +31,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:51:9 --> $DIR/discrim-overflow-2.rs:49:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 2147483647 | ^^^^ overflowed on value after 2147483647
@ -39,7 +39,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -2147483648` if that is desired outcome = note: explicitly set `OhNo = -2147483648` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:60:9 --> $DIR/discrim-overflow-2.rs:58:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 4294967295 | ^^^^ overflowed on value after 4294967295
@ -47,7 +47,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:69:9 --> $DIR/discrim-overflow-2.rs:67:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 9223372036854775807 | ^^^^ overflowed on value after 9223372036854775807
@ -55,7 +55,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome = note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow-2.rs:78:9 --> $DIR/discrim-overflow-2.rs:76:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 18446744073709551615 | ^^^^ overflowed on value after 18446744073709551615

View file

@ -3,8 +3,6 @@
// See also run-pass/discrim-explicit-23030.rs where the suggested // See also run-pass/discrim-explicit-23030.rs where the suggested
// workaround is tested. // workaround is tested.
use std::{i8,u8,i16,u16,i32,u32,i64, u64};
fn f_i8() { fn f_i8() {
#[repr(i8)] #[repr(i8)]
enum A { enum A {

View file

@ -1,5 +1,5 @@
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:13:9 --> $DIR/discrim-overflow.rs:11:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 127 | ^^^^ overflowed on value after 127
@ -7,7 +7,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -128` if that is desired outcome = note: explicitly set `OhNo = -128` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:24:9 --> $DIR/discrim-overflow.rs:22:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 255 | ^^^^ overflowed on value after 255
@ -15,7 +15,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:35:9 --> $DIR/discrim-overflow.rs:33:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 32767 | ^^^^ overflowed on value after 32767
@ -23,7 +23,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -32768` if that is desired outcome = note: explicitly set `OhNo = -32768` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:46:9 --> $DIR/discrim-overflow.rs:44:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 65535 | ^^^^ overflowed on value after 65535
@ -31,7 +31,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:58:9 --> $DIR/discrim-overflow.rs:56:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 2147483647 | ^^^^ overflowed on value after 2147483647
@ -39,7 +39,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -2147483648` if that is desired outcome = note: explicitly set `OhNo = -2147483648` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:70:9 --> $DIR/discrim-overflow.rs:68:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 4294967295 | ^^^^ overflowed on value after 4294967295
@ -47,7 +47,7 @@ LL | OhNo,
= note: explicitly set `OhNo = 0` if that is desired outcome = note: explicitly set `OhNo = 0` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:82:9 --> $DIR/discrim-overflow.rs:80:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 9223372036854775807 | ^^^^ overflowed on value after 9223372036854775807
@ -55,7 +55,7 @@ LL | OhNo,
= note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome = note: explicitly set `OhNo = -9223372036854775808` if that is desired outcome
error[E0370]: enum discriminant overflowed error[E0370]: enum discriminant overflowed
--> $DIR/discrim-overflow.rs:94:9 --> $DIR/discrim-overflow.rs:92:9
| |
LL | OhNo, LL | OhNo,
| ^^^^ overflowed on value after 18446744073709551615 | ^^^^ overflowed on value after 18446744073709551615

View file

@ -18,7 +18,6 @@ use std::{
ptr, ptr,
rc::Rc, rc::Rc,
task::{Context, Poll, RawWaker, RawWakerVTable, Waker}, task::{Context, Poll, RawWaker, RawWakerVTable, Waker},
usize,
}; };
struct InjectedFailure; struct InjectedFailure;

View file

@ -12,7 +12,6 @@ use std::mem::ManuallyDrop;
use std::ops::Generator; use std::ops::Generator;
use std::panic; use std::panic;
use std::pin::Pin; use std::pin::Pin;
use std::usize;
struct InjectedFailure; struct InjectedFailure;

View file

@ -1,5 +1,3 @@
use std::{isize, usize};
fn main() { fn main() {
match 0usize { match 0usize {
//~^ ERROR non-exhaustive patterns: `_` not covered //~^ ERROR non-exhaustive patterns: `_` not covered

View file

@ -1,5 +1,5 @@
error[E0004]: non-exhaustive patterns: `_` not covered error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/feature-gate-precise_pointer_size_matching.rs:4:11 --> $DIR/feature-gate-precise_pointer_size_matching.rs:2:11
| |
LL | match 0usize { LL | match 0usize {
| ^^^^^^ pattern `_` not covered | ^^^^^^ pattern `_` not covered
@ -10,7 +10,7 @@ LL | match 0usize {
= help: add `#![feature(precise_pointer_size_matching)]` to the crate attributes to enable precise `usize` matching = help: add `#![feature(precise_pointer_size_matching)]` to the crate attributes to enable precise `usize` matching
error[E0004]: non-exhaustive patterns: `_` not covered error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/feature-gate-precise_pointer_size_matching.rs:12:11 --> $DIR/feature-gate-precise_pointer_size_matching.rs:10:11
| |
LL | match 0isize { LL | match 0isize {
| ^^^^^^ pattern `_` not covered | ^^^^^^ pattern `_` not covered

View file

@ -13,8 +13,8 @@ macro_rules! m {
} }
fn floats() { fn floats() {
m!(0f32, core::f32::NEG_INFINITY..); //~ ERROR non-exhaustive patterns: `_` not covered m!(0f32, f32::NEG_INFINITY..); //~ ERROR non-exhaustive patterns: `_` not covered
m!(0f32, ..core::f32::INFINITY); //~ ERROR non-exhaustive patterns: `_` not covered m!(0f32, ..f32::INFINITY); //~ ERROR non-exhaustive patterns: `_` not covered
} }
fn khar() { fn khar() {
@ -33,12 +33,12 @@ fn khar() {
mod unsigned { mod unsigned {
fn u8() { fn u8() {
const ALMOST_MAX: u8 = core::u8::MAX - 1; const ALMOST_MAX: u8 = u8::MAX - 1;
const ALMOST_MIN: u8 = core::u8::MIN + 1; const ALMOST_MIN: u8 = u8::MIN + 1;
const VAL: u8 = 42; const VAL: u8 = 42;
const VAL_1: u8 = VAL + 1; const VAL_1: u8 = VAL + 1;
const VAL_2: u8 = VAL + 2; const VAL_2: u8 = VAL + 2;
m!(0, ..core::u8::MAX); //~ ERROR non-exhaustive patterns m!(0, ..u8::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -46,12 +46,12 @@ mod unsigned {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn u16() { fn u16() {
const ALMOST_MAX: u16 = core::u16::MAX - 1; const ALMOST_MAX: u16 = u16::MAX - 1;
const ALMOST_MIN: u16 = core::u16::MIN + 1; const ALMOST_MIN: u16 = u16::MIN + 1;
const VAL: u16 = 42; const VAL: u16 = 42;
const VAL_1: u16 = VAL + 1; const VAL_1: u16 = VAL + 1;
const VAL_2: u16 = VAL + 2; const VAL_2: u16 = VAL + 2;
m!(0, ..core::u16::MAX); //~ ERROR non-exhaustive patterns m!(0, ..u16::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -59,12 +59,12 @@ mod unsigned {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn u32() { fn u32() {
const ALMOST_MAX: u32 = core::u32::MAX - 1; const ALMOST_MAX: u32 = u32::MAX - 1;
const ALMOST_MIN: u32 = core::u32::MIN + 1; const ALMOST_MIN: u32 = u32::MIN + 1;
const VAL: u32 = 42; const VAL: u32 = 42;
const VAL_1: u32 = VAL + 1; const VAL_1: u32 = VAL + 1;
const VAL_2: u32 = VAL + 2; const VAL_2: u32 = VAL + 2;
m!(0, ..core::u32::MAX); //~ ERROR non-exhaustive patterns m!(0, ..u32::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -72,12 +72,12 @@ mod unsigned {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn u64() { fn u64() {
const ALMOST_MAX: u64 = core::u64::MAX - 1; const ALMOST_MAX: u64 = u64::MAX - 1;
const ALMOST_MIN: u64 = core::u64::MIN + 1; const ALMOST_MIN: u64 = u64::MIN + 1;
const VAL: u64 = 42; const VAL: u64 = 42;
const VAL_1: u64 = VAL + 1; const VAL_1: u64 = VAL + 1;
const VAL_2: u64 = VAL + 2; const VAL_2: u64 = VAL + 2;
m!(0, ..core::u64::MAX); //~ ERROR non-exhaustive patterns m!(0, ..u64::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -85,12 +85,12 @@ mod unsigned {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn u128() { fn u128() {
const ALMOST_MAX: u128 = core::u128::MAX - 1; const ALMOST_MAX: u128 = u128::MAX - 1;
const ALMOST_MIN: u128 = core::u128::MIN + 1; const ALMOST_MIN: u128 = u128::MIN + 1;
const VAL: u128 = 42; const VAL: u128 = 42;
const VAL_1: u128 = VAL + 1; const VAL_1: u128 = VAL + 1;
const VAL_2: u128 = VAL + 2; const VAL_2: u128 = VAL + 2;
m!(0, ..core::u128::MAX); //~ ERROR non-exhaustive patterns m!(0, ..u128::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -101,12 +101,12 @@ mod unsigned {
mod signed { mod signed {
fn i8() { fn i8() {
const ALMOST_MAX: i8 = core::i8::MAX - 1; const ALMOST_MAX: i8 = i8::MAX - 1;
const ALMOST_MIN: i8 = core::i8::MIN + 1; const ALMOST_MIN: i8 = i8::MIN + 1;
const VAL: i8 = 42; const VAL: i8 = 42;
const VAL_1: i8 = VAL + 1; const VAL_1: i8 = VAL + 1;
const VAL_2: i8 = VAL + 2; const VAL_2: i8 = VAL + 2;
m!(0, ..core::i8::MAX); //~ ERROR non-exhaustive patterns m!(0, ..i8::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -114,12 +114,12 @@ mod signed {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn i16() { fn i16() {
const ALMOST_MAX: i16 = core::i16::MAX - 1; const ALMOST_MAX: i16 = i16::MAX - 1;
const ALMOST_MIN: i16 = core::i16::MIN + 1; const ALMOST_MIN: i16 = i16::MIN + 1;
const VAL: i16 = 42; const VAL: i16 = 42;
const VAL_1: i16 = VAL + 1; const VAL_1: i16 = VAL + 1;
const VAL_2: i16 = VAL + 2; const VAL_2: i16 = VAL + 2;
m!(0, ..core::i16::MAX); //~ ERROR non-exhaustive patterns m!(0, ..i16::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -127,12 +127,12 @@ mod signed {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn i32() { fn i32() {
const ALMOST_MAX: i32 = core::i32::MAX - 1; const ALMOST_MAX: i32 = i32::MAX - 1;
const ALMOST_MIN: i32 = core::i32::MIN + 1; const ALMOST_MIN: i32 = i32::MIN + 1;
const VAL: i32 = 42; const VAL: i32 = 42;
const VAL_1: i32 = VAL + 1; const VAL_1: i32 = VAL + 1;
const VAL_2: i32 = VAL + 2; const VAL_2: i32 = VAL + 2;
m!(0, ..core::i32::MAX); //~ ERROR non-exhaustive patterns m!(0, ..i32::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -140,12 +140,12 @@ mod signed {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn i64() { fn i64() {
const ALMOST_MAX: i64 = core::i64::MAX - 1; const ALMOST_MAX: i64 = i64::MAX - 1;
const ALMOST_MIN: i64 = core::i64::MIN + 1; const ALMOST_MIN: i64 = i64::MIN + 1;
const VAL: i64 = 42; const VAL: i64 = 42;
const VAL_1: i64 = VAL + 1; const VAL_1: i64 = VAL + 1;
const VAL_2: i64 = VAL + 2; const VAL_2: i64 = VAL + 2;
m!(0, ..core::i64::MAX); //~ ERROR non-exhaustive patterns m!(0, ..i64::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns
@ -153,12 +153,12 @@ mod signed {
m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns m!(0, ..VAL_1 | VAL_2..); //~ ERROR non-exhaustive patterns
} }
fn i128() { fn i128() {
const ALMOST_MAX: i128 = core::i128::MAX - 1; const ALMOST_MAX: i128 = i128::MAX - 1;
const ALMOST_MIN: i128 = core::i128::MIN + 1; const ALMOST_MIN: i128 = i128::MIN + 1;
const VAL: i128 = 42; const VAL: i128 = 42;
const VAL_1: i128 = VAL + 1; const VAL_1: i128 = VAL + 1;
const VAL_2: i128 = VAL + 2; const VAL_2: i128 = VAL + 2;
m!(0, ..core::i128::MAX); //~ ERROR non-exhaustive patterns m!(0, ..i128::MAX); //~ ERROR non-exhaustive patterns
m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..ALMOST_MAX); //~ ERROR non-exhaustive patterns
m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns m!(0, ALMOST_MIN..); //~ ERROR non-exhaustive patterns
m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns m!(0, ..=ALMOST_MAX); //~ ERROR non-exhaustive patterns

View file

@ -1,7 +1,7 @@
error[E0004]: non-exhaustive patterns: `_` not covered error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:16:8 --> $DIR/half-open-range-pats-exhaustive-fail.rs:16:8
| |
LL | m!(0f32, core::f32::NEG_INFINITY..); LL | m!(0f32, f32::NEG_INFINITY..);
| ^^^^ pattern `_` not covered | ^^^^ pattern `_` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -10,7 +10,7 @@ LL | m!(0f32, core::f32::NEG_INFINITY..);
error[E0004]: non-exhaustive patterns: `_` not covered error[E0004]: non-exhaustive patterns: `_` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:17:8 --> $DIR/half-open-range-pats-exhaustive-fail.rs:17:8
| |
LL | m!(0f32, ..core::f32::INFINITY); LL | m!(0f32, ..f32::INFINITY);
| ^^^^ pattern `_` not covered | ^^^^ pattern `_` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -73,7 +73,7 @@ LL | m!('a', ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `u8::MAX` not covered error[E0004]: non-exhaustive patterns: `u8::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:41:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:41:12
| |
LL | m!(0, ..core::u8::MAX); LL | m!(0, ..u8::MAX);
| ^ pattern `u8::MAX` not covered | ^ pattern `u8::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -127,7 +127,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `u16::MAX` not covered error[E0004]: non-exhaustive patterns: `u16::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:54:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:54:12
| |
LL | m!(0, ..core::u16::MAX); LL | m!(0, ..u16::MAX);
| ^ pattern `u16::MAX` not covered | ^ pattern `u16::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -181,7 +181,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `u32::MAX` not covered error[E0004]: non-exhaustive patterns: `u32::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:67:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:67:12
| |
LL | m!(0, ..core::u32::MAX); LL | m!(0, ..u32::MAX);
| ^ pattern `u32::MAX` not covered | ^ pattern `u32::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -235,7 +235,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `u64::MAX` not covered error[E0004]: non-exhaustive patterns: `u64::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:80:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:80:12
| |
LL | m!(0, ..core::u64::MAX); LL | m!(0, ..u64::MAX);
| ^ pattern `u64::MAX` not covered | ^ pattern `u64::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -289,7 +289,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `u128::MAX` not covered error[E0004]: non-exhaustive patterns: `u128::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:93:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:93:12
| |
LL | m!(0, ..core::u128::MAX); LL | m!(0, ..u128::MAX);
| ^ pattern `u128::MAX` not covered | ^ pattern `u128::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -343,7 +343,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `i8::MAX` not covered error[E0004]: non-exhaustive patterns: `i8::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:109:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:109:12
| |
LL | m!(0, ..core::i8::MAX); LL | m!(0, ..i8::MAX);
| ^ pattern `i8::MAX` not covered | ^ pattern `i8::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -397,7 +397,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `i16::MAX` not covered error[E0004]: non-exhaustive patterns: `i16::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:122:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:122:12
| |
LL | m!(0, ..core::i16::MAX); LL | m!(0, ..i16::MAX);
| ^ pattern `i16::MAX` not covered | ^ pattern `i16::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -451,7 +451,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `i32::MAX` not covered error[E0004]: non-exhaustive patterns: `i32::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:135:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:135:12
| |
LL | m!(0, ..core::i32::MAX); LL | m!(0, ..i32::MAX);
| ^ pattern `i32::MAX` not covered | ^ pattern `i32::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -505,7 +505,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `i64::MAX` not covered error[E0004]: non-exhaustive patterns: `i64::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:148:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:148:12
| |
LL | m!(0, ..core::i64::MAX); LL | m!(0, ..i64::MAX);
| ^ pattern `i64::MAX` not covered | ^ pattern `i64::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
@ -559,7 +559,7 @@ LL | m!(0, ..VAL_1 | VAL_2..);
error[E0004]: non-exhaustive patterns: `i128::MAX` not covered error[E0004]: non-exhaustive patterns: `i128::MAX` not covered
--> $DIR/half-open-range-pats-exhaustive-fail.rs:161:12 --> $DIR/half-open-range-pats-exhaustive-fail.rs:161:12
| |
LL | m!(0, ..core::i128::MAX); LL | m!(0, ..i128::MAX);
| ^ pattern `i128::MAX` not covered | ^ pattern `i128::MAX` not covered
| |
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

View file

@ -26,19 +26,19 @@ macro_rules! test_int {
} }
fn unsigned_int() { fn unsigned_int() {
test_int!(0u8, core::u8::MIN, core::u8::MAX); test_int!(0u8, u8::MIN, u8::MAX);
test_int!(0u16, core::u16::MIN, core::u16::MAX); test_int!(0u16, u16::MIN, u16::MAX);
test_int!(0u32, core::u32::MIN, core::u32::MAX); test_int!(0u32, u32::MIN, u32::MAX);
test_int!(0u64, core::u64::MIN, core::u64::MAX); test_int!(0u64, u64::MIN, u64::MAX);
test_int!(0u128, core::u128::MIN, core::u128::MAX); test_int!(0u128, u128::MIN, u128::MAX);
} }
fn signed_int() { fn signed_int() {
test_int!(0i8, core::i8::MIN, core::i8::MAX); test_int!(0i8, i8::MIN, i8::MAX);
test_int!(0i16, core::i16::MIN, core::i16::MAX); test_int!(0i16, i16::MIN, i16::MAX);
test_int!(0i32, core::i32::MIN, core::i32::MAX); test_int!(0i32, i32::MIN, i32::MAX);
test_int!(0i64, core::i64::MIN, core::i64::MAX); test_int!(0i64, i64::MIN, i64::MAX);
test_int!(0i128, core::i128::MIN, core::i128::MAX); test_int!(0i128, i128::MIN, i128::MAX);
} }
fn khar() { fn khar() {

View file

@ -24,15 +24,15 @@ fn range_to_inclusive() {
//--------------------------------------- //---------------------------------------
// u8; `..=X` // u8; `..=X`
assert!(yes!(core::u8::MIN, ..=core::u8::MIN)); assert!(yes!(u8::MIN, ..=u8::MIN));
assert!(yes!(core::u8::MIN, ..=5)); assert!(yes!(u8::MIN, ..=5));
assert!(yes!(5u8, ..=5)); assert!(yes!(5u8, ..=5));
assert!(!yes!(6u8, ..=5)); assert!(!yes!(6u8, ..=5));
// i16; `..=X` // i16; `..=X`
assert!(yes!(core::i16::MIN, ..=core::i16::MIN)); assert!(yes!(i16::MIN, ..=i16::MIN));
assert!(yes!(core::i16::MIN, ..=0)); assert!(yes!(i16::MIN, ..=0));
assert!(yes!(core::i16::MIN, ..=-5)); assert!(yes!(i16::MIN, ..=-5));
assert!(yes!(-5, ..=-5)); assert!(yes!(-5, ..=-5));
assert!(!yes!(-4, ..=-5)); assert!(!yes!(-4, ..=-5));
@ -43,14 +43,14 @@ fn range_to_inclusive() {
assert!(!yes!('b', ..='a')); assert!(!yes!('b', ..='a'));
// f32; `..=X` // f32; `..=X`
assert!(yes!(core::f32::NEG_INFINITY, ..=core::f32::NEG_INFINITY)); assert!(yes!(f32::NEG_INFINITY, ..=f32::NEG_INFINITY));
assert!(yes!(core::f32::NEG_INFINITY, ..=1.0f32)); assert!(yes!(f32::NEG_INFINITY, ..=1.0f32));
assert!(yes!(1.5f32, ..=1.5f32)); assert!(yes!(1.5f32, ..=1.5f32));
assert!(!yes!(1.6f32, ..=-1.5f32)); assert!(!yes!(1.6f32, ..=-1.5f32));
// f64; `..=X` // f64; `..=X`
assert!(yes!(core::f64::NEG_INFINITY, ..=core::f64::NEG_INFINITY)); assert!(yes!(f64::NEG_INFINITY, ..=f64::NEG_INFINITY));
assert!(yes!(core::f64::NEG_INFINITY, ..=1.0f64)); assert!(yes!(f64::NEG_INFINITY, ..=1.0f64));
assert!(yes!(1.5f64, ..=1.5f64)); assert!(yes!(1.5f64, ..=1.5f64));
assert!(!yes!(1.6f64, ..=-1.5f64)); assert!(!yes!(1.6f64, ..=-1.5f64));
} }
@ -66,16 +66,16 @@ fn range_to() {
assert!(!yes!(6u8, ..5)); assert!(!yes!(6u8, ..5));
// u8; `..X` // u8; `..X`
const NU8: u8 = core::u8::MIN + 1; const NU8: u8 = u8::MIN + 1;
assert!(yes!(core::u8::MIN, ..NU8)); assert!(yes!(u8::MIN, ..NU8));
assert!(yes!(0u8, ..5)); assert!(yes!(0u8, ..5));
assert!(!yes!(5u8, ..5)); assert!(!yes!(5u8, ..5));
assert!(!yes!(6u8, ..5)); assert!(!yes!(6u8, ..5));
// i16; `..X` // i16; `..X`
const NI16: i16 = core::i16::MIN + 1; const NI16: i16 = i16::MIN + 1;
assert!(yes!(core::i16::MIN, ..NI16)); assert!(yes!(i16::MIN, ..NI16));
assert!(yes!(core::i16::MIN, ..5)); assert!(yes!(i16::MIN, ..5));
assert!(yes!(-6, ..-5)); assert!(yes!(-6, ..-5));
assert!(!yes!(-5, ..-5)); assert!(!yes!(-5, ..-5));
@ -87,16 +87,16 @@ fn range_to() {
assert!(!yes!('b', ..'a')); assert!(!yes!('b', ..'a'));
// f32; `..X` // f32; `..X`
assert!(yes!(core::f32::NEG_INFINITY, ..1.0f32)); assert!(yes!(f32::NEG_INFINITY, ..1.0f32));
assert!(!yes!(1.5f32, ..1.5f32)); assert!(!yes!(1.5f32, ..1.5f32));
const E32: f32 = 1.5f32 + core::f32::EPSILON; const E32: f32 = 1.5f32 + f32::EPSILON;
assert!(yes!(1.5f32, ..E32)); assert!(yes!(1.5f32, ..E32));
assert!(!yes!(1.6f32, ..1.5f32)); assert!(!yes!(1.6f32, ..1.5f32));
// f64; `..X` // f64; `..X`
assert!(yes!(core::f64::NEG_INFINITY, ..1.0f64)); assert!(yes!(f64::NEG_INFINITY, ..1.0f64));
assert!(!yes!(1.5f64, ..1.5f64)); assert!(!yes!(1.5f64, ..1.5f64));
const E64: f64 = 1.5f64 + core::f64::EPSILON; const E64: f64 = 1.5f64 + f64::EPSILON;
assert!(yes!(1.5f64, ..E64)); assert!(yes!(1.5f64, ..E64));
assert!(!yes!(1.6f64, ..1.5f64)); assert!(!yes!(1.6f64, ..1.5f64));
} }
@ -106,23 +106,23 @@ fn range_from() {
//-------------------------------- //--------------------------------
// u8; `X..` // u8; `X..`
assert!(yes!(core::u8::MIN, core::u8::MIN..)); assert!(yes!(u8::MIN, u8::MIN..));
assert!(yes!(core::u8::MAX, core::u8::MIN..)); assert!(yes!(u8::MAX, u8::MIN..));
assert!(!yes!(core::u8::MIN, 1..)); assert!(!yes!(u8::MIN, 1..));
assert!(!yes!(4, 5..)); assert!(!yes!(4, 5..));
assert!(yes!(5, 5..)); assert!(yes!(5, 5..));
assert!(yes!(6, 5..)); assert!(yes!(6, 5..));
assert!(yes!(core::u8::MAX, core::u8::MAX..)); assert!(yes!(u8::MAX, u8::MAX..));
// i16; `X..` // i16; `X..`
assert!(yes!(core::i16::MIN, core::i16::MIN..)); assert!(yes!(i16::MIN, i16::MIN..));
assert!(yes!(core::i16::MAX, core::i16::MIN..)); assert!(yes!(i16::MAX, i16::MIN..));
const NI16: i16 = core::i16::MIN + 1; const NI16: i16 = i16::MIN + 1;
assert!(!yes!(core::i16::MIN, NI16..)); assert!(!yes!(i16::MIN, NI16..));
assert!(!yes!(-4, 5..)); assert!(!yes!(-4, 5..));
assert!(yes!(-4, -4..)); assert!(yes!(-4, -4..));
assert!(yes!(-3, -4..)); assert!(yes!(-3, -4..));
assert!(yes!(core::i16::MAX, core::i16::MAX..)); assert!(yes!(i16::MAX, i16::MAX..));
// char; `X..` // char; `X..`
assert!(yes!('\u{0}', '\u{0}'..)); assert!(yes!('\u{0}', '\u{0}'..));
@ -133,24 +133,24 @@ fn range_from() {
assert!(yes!(core::char::MAX, core::char::MAX..)); assert!(yes!(core::char::MAX, core::char::MAX..));
// f32; `X..` // f32; `X..`
assert!(yes!(core::f32::NEG_INFINITY, core::f32::NEG_INFINITY..)); assert!(yes!(f32::NEG_INFINITY, f32::NEG_INFINITY..));
assert!(yes!(core::f32::INFINITY, core::f32::NEG_INFINITY..)); assert!(yes!(f32::INFINITY, f32::NEG_INFINITY..));
assert!(!yes!(core::f32::NEG_INFINITY, 1.0f32..)); assert!(!yes!(f32::NEG_INFINITY, 1.0f32..));
assert!(yes!(core::f32::INFINITY, 1.0f32..)); assert!(yes!(f32::INFINITY, 1.0f32..));
assert!(!yes!(1.0f32 - core::f32::EPSILON, 1.0f32..)); assert!(!yes!(1.0f32 - f32::EPSILON, 1.0f32..));
assert!(yes!(1.0f32, 1.0f32..)); assert!(yes!(1.0f32, 1.0f32..));
assert!(yes!(core::f32::INFINITY, 1.0f32..)); assert!(yes!(f32::INFINITY, 1.0f32..));
assert!(yes!(core::f32::INFINITY, core::f32::INFINITY..)); assert!(yes!(f32::INFINITY, f32::INFINITY..));
// f64; `X..` // f64; `X..`
assert!(yes!(core::f64::NEG_INFINITY, core::f64::NEG_INFINITY..)); assert!(yes!(f64::NEG_INFINITY, f64::NEG_INFINITY..));
assert!(yes!(core::f64::INFINITY, core::f64::NEG_INFINITY..)); assert!(yes!(f64::INFINITY, f64::NEG_INFINITY..));
assert!(!yes!(core::f64::NEG_INFINITY, 1.0f64..)); assert!(!yes!(f64::NEG_INFINITY, 1.0f64..));
assert!(yes!(core::f64::INFINITY, 1.0f64..)); assert!(yes!(f64::INFINITY, 1.0f64..));
assert!(!yes!(1.0f64 - core::f64::EPSILON, 1.0f64..)); assert!(!yes!(1.0f64 - f64::EPSILON, 1.0f64..));
assert!(yes!(1.0f64, 1.0f64..)); assert!(yes!(1.0f64, 1.0f64..));
assert!(yes!(core::f64::INFINITY, 1.0f64..)); assert!(yes!(f64::INFINITY, 1.0f64..));
assert!(yes!(core::f64::INFINITY, core::f64::INFINITY..)); assert!(yes!(f64::INFINITY, f64::INFINITY..));
} }
fn main() { fn main() {

View file

@ -9,42 +9,42 @@ macro_rules! m {
} }
fn main() { fn main() {
m!(0, ..core::u8::MIN); m!(0, ..u8::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::u16::MIN); m!(0, ..u16::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::u32::MIN); m!(0, ..u32::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::u64::MIN); m!(0, ..u64::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::u128::MIN); m!(0, ..u128::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::i8::MIN); m!(0, ..i8::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::i16::MIN); m!(0, ..i16::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::i32::MIN); m!(0, ..i32::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::i64::MIN); m!(0, ..i64::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0, ..core::i128::MIN); m!(0, ..i128::MIN);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0f32, ..core::f32::NEG_INFINITY); m!(0f32, ..f32::NEG_INFINITY);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper
m!(0f64, ..core::f64::NEG_INFINITY); m!(0f64, ..f64::NEG_INFINITY);
//~^ ERROR lower range bound must be less than upper //~^ ERROR lower range bound must be less than upper
//~| ERROR lower range bound must be less than upper //~| ERROR lower range bound must be less than upper

View file

@ -1,74 +1,74 @@
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:12:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:12:11
| |
LL | m!(0, ..core::u8::MIN); LL | m!(0, ..u8::MIN);
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:15:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:15:11
| |
LL | m!(0, ..core::u16::MIN); LL | m!(0, ..u16::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:18:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:18:11
| |
LL | m!(0, ..core::u32::MIN); LL | m!(0, ..u32::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:21:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:21:11
| |
LL | m!(0, ..core::u64::MIN); LL | m!(0, ..u64::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:24:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:24:11
| |
LL | m!(0, ..core::u128::MIN); LL | m!(0, ..u128::MIN);
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:28:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:28:11
| |
LL | m!(0, ..core::i8::MIN); LL | m!(0, ..i8::MIN);
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:31:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:31:11
| |
LL | m!(0, ..core::i16::MIN); LL | m!(0, ..i16::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:34:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:34:11
| |
LL | m!(0, ..core::i32::MIN); LL | m!(0, ..i32::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:37:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:37:11
| |
LL | m!(0, ..core::i64::MIN); LL | m!(0, ..i64::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:40:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:40:11
| |
LL | m!(0, ..core::i128::MIN); LL | m!(0, ..i128::MIN);
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:44:14 --> $DIR/half-open-range-pats-thir-lower-empty.rs:44:14
| |
LL | m!(0f32, ..core::f32::NEG_INFINITY); LL | m!(0f32, ..f32::NEG_INFINITY);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:47:14 --> $DIR/half-open-range-pats-thir-lower-empty.rs:47:14
| |
LL | m!(0f64, ..core::f64::NEG_INFINITY); LL | m!(0f64, ..f64::NEG_INFINITY);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:51:13 --> $DIR/half-open-range-pats-thir-lower-empty.rs:51:13
@ -79,74 +79,74 @@ LL | m!('a', ..'\u{0}');
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:12:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:12:11
| |
LL | m!(0, ..core::u8::MIN); LL | m!(0, ..u8::MIN);
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:15:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:15:11
| |
LL | m!(0, ..core::u16::MIN); LL | m!(0, ..u16::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:18:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:18:11
| |
LL | m!(0, ..core::u32::MIN); LL | m!(0, ..u32::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:21:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:21:11
| |
LL | m!(0, ..core::u64::MIN); LL | m!(0, ..u64::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:24:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:24:11
| |
LL | m!(0, ..core::u128::MIN); LL | m!(0, ..u128::MIN);
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:28:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:28:11
| |
LL | m!(0, ..core::i8::MIN); LL | m!(0, ..i8::MIN);
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:31:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:31:11
| |
LL | m!(0, ..core::i16::MIN); LL | m!(0, ..i16::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:34:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:34:11
| |
LL | m!(0, ..core::i32::MIN); LL | m!(0, ..i32::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:37:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:37:11
| |
LL | m!(0, ..core::i64::MIN); LL | m!(0, ..i64::MIN);
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:40:11 --> $DIR/half-open-range-pats-thir-lower-empty.rs:40:11
| |
LL | m!(0, ..core::i128::MIN); LL | m!(0, ..i128::MIN);
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:44:14 --> $DIR/half-open-range-pats-thir-lower-empty.rs:44:14
| |
LL | m!(0f32, ..core::f32::NEG_INFINITY); LL | m!(0f32, ..f32::NEG_INFINITY);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:47:14 --> $DIR/half-open-range-pats-thir-lower-empty.rs:47:14
| |
LL | m!(0f64, ..core::f64::NEG_INFINITY); LL | m!(0f64, ..f64::NEG_INFINITY);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
error[E0579]: lower range bound must be less than upper error[E0579]: lower range bound must be less than upper
--> $DIR/half-open-range-pats-thir-lower-empty.rs:51:13 --> $DIR/half-open-range-pats-thir-lower-empty.rs:51:13

View file

@ -3,7 +3,6 @@
// ignore-emscripten no processes // ignore-emscripten no processes
use std::collections::hash_map::HashMap; use std::collections::hash_map::HashMap;
use std::usize;
use std::mem::size_of; use std::mem::size_of;
fn main() { fn main() {

View file

@ -4,6 +4,7 @@
#![allow(unused_imports)] #![allow(unused_imports)]
#![allow(non_upper_case_globals)] #![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)] #![allow(non_camel_case_types)]
#![allow(deprecated, deprecated_in_future)]
// aux-build:i8.rs // aux-build:i8.rs
// ignore-pretty issue #37201 // ignore-pretty issue #37201

View file

@ -1,8 +1,6 @@
// run-pass // run-pass
#![allow(unused_imports)] #![allow(unused_imports)]
use std::fmt; use std::fmt;
use std::{i8, i16, i32, i64, isize};
use std::{u8, u16, u32, u64, usize};
const A_I8_T const A_I8_T
: [u32; (i8::MAX as i8 - 1i8) as usize] : [u32; (i8::MAX as i8 - 1i8) as usize]

View file

@ -1,7 +1,7 @@
// run-pass // run-pass
fn main() { fn main() {
match (0, 0) { match (0, 0) {
(std::usize::MIN, std::usize::MAX) => {} (usize::MIN, usize::MAX) => {}
_ => {} _ => {}
} }
} }

View file

@ -19,7 +19,7 @@ impl<T: Clone, F> Iterator for Iterate<T, F> where F: Fn(&T) -> T {
Some(self.state.clone()) Some(self.state.clone())
} }
#[inline] #[inline]
fn size_hint(&self) -> (usize, Option<usize>) { (std::usize::MAX, None) } fn size_hint(&self) -> (usize, Option<usize>) { (usize::MAX, None) }
} }
fn main() { fn main() {

View file

@ -6,10 +6,10 @@ use std::iter::Step;
#[cfg(target_pointer_width = "16")] #[cfg(target_pointer_width = "16")]
fn main() { fn main() {
assert!(Step::steps_between(&0u32, &::std::u32::MAX).is_none()); assert!(Step::steps_between(&0u32, &u32::MAX).is_none());
} }
#[cfg(any(target_pointer_width = "32", target_pointer_width = "64"))] #[cfg(any(target_pointer_width = "32", target_pointer_width = "64"))]
fn main() { fn main() {
assert!(Step::steps_between(&0u32, &::std::u32::MAX).is_some()); assert!(Step::steps_between(&0u32, &u32::MAX).is_some());
} }

View file

@ -3,7 +3,6 @@
extern crate test; extern crate test;
use std::f64::{NAN, NEG_INFINITY, INFINITY, MAX};
use std::mem::size_of; use std::mem::size_of;
use test::black_box; use test::black_box;
@ -12,7 +11,7 @@ use test::black_box;
macro_rules! compare { macro_rules! compare {
($op:tt) => { ($op:tt) => {
compare!( compare!(
[NEG_INFINITY, -MAX, -1.0, -0.0, 0.0, 1.0, MAX, INFINITY, NAN], [f64::NEG_INFINITY, -f64::MAX, -1.0, -0.0, 0.0, 1.0, f64::MAX, f64::INFINITY, f64::NAN],
$op $op
); );
}; };
@ -20,7 +19,7 @@ macro_rules! compare {
$(compare!( $(compare!(
$lhs, $lhs,
$op, $op,
[NEG_INFINITY, -MAX, -1.0, -0.0, 0.0, 1.0, MAX, INFINITY, NAN] [f64::NEG_INFINITY, -f64::MAX, -1.0, -0.0, 0.0, 1.0, f64::MAX, f64::INFINITY, f64::NAN]
);)+ );)+
}; };
($lhs:expr, $op:tt, [$($rhs:expr),+]) => { ($lhs:expr, $op:tt, [$($rhs:expr),+]) => {
@ -44,8 +43,8 @@ macro_rules! compare {
fn main() { fn main() {
assert_eq!(0.0/0.0 < 0.0/0.0, false); assert_eq!(0.0/0.0 < 0.0/0.0, false);
assert_eq!(0.0/0.0 > 0.0/0.0, false); assert_eq!(0.0/0.0 > 0.0/0.0, false);
assert_eq!(NAN < NAN, false); assert_eq!(f64::NAN < f64::NAN, false);
assert_eq!(NAN > NAN, false); assert_eq!(f64::NAN > f64::NAN, false);
compare!(==); compare!(==);
compare!(!=); compare!(!=);

View file

@ -1,5 +1,5 @@
// build-pass // build-pass
fn main() { fn main() {
println!("{}", [(); std::usize::MAX].len()); println!("{}", [(); usize::MAX].len());
} }

View file

@ -3,7 +3,7 @@
#![allow(unused)] #![allow(unused)]
#![deny(illegal_floating_point_literal_pattern)] #![deny(illegal_floating_point_literal_pattern)]
use std::f64::NAN; const NAN: f64 = f64::NAN;
fn main() { fn main() {
let x = NAN; let x = NAN;

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:14:36 --> $DIR/issue-8460-const.rs:13:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow
@ -7,37 +7,37 @@ LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:16:36 --> $DIR/issue-8460-const.rs:15:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:18:36 --> $DIR/issue-8460-const.rs:17:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:20:36 --> $DIR/issue-8460-const.rs:19:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:22:36 --> $DIR/issue-8460-const.rs:21:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:24:36 --> $DIR/issue-8460-const.rs:23:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:26:36 --> $DIR/issue-8460-const.rs:25:36
| |
LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
| ^^^^^^^^^^ attempt to divide `1_isize` by zero | ^^^^^^^^^^ attempt to divide `1_isize` by zero
@ -45,103 +45,103 @@ LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:28:36 --> $DIR/issue-8460-const.rs:27:36
| |
LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err());
| ^^^^^^^ attempt to divide `1_i8` by zero | ^^^^^^^ attempt to divide `1_i8` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:30:36 --> $DIR/issue-8460-const.rs:29:36
| |
LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i16` by zero | ^^^^^^^^ attempt to divide `1_i16` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:32:36 --> $DIR/issue-8460-const.rs:31:36
| |
LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i32` by zero | ^^^^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:34:36 --> $DIR/issue-8460-const.rs:33:36
| |
LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i64` by zero | ^^^^^^^^ attempt to divide `1_i64` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:36:36 --> $DIR/issue-8460-const.rs:35:36
| |
LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err());
| ^^^^^^^^^ attempt to divide `1_i128` by zero | ^^^^^^^^^ attempt to divide `1_i128` by zero
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:38:36 --> $DIR/issue-8460-const.rs:37:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:40:36 --> $DIR/issue-8460-const.rs:39:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:42:36 --> $DIR/issue-8460-const.rs:41:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:44:36 --> $DIR/issue-8460-const.rs:43:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:46:36 --> $DIR/issue-8460-const.rs:45:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:48:36 --> $DIR/issue-8460-const.rs:47:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:50:36 --> $DIR/issue-8460-const.rs:49:36
| |
LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err());
| ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:52:36 --> $DIR/issue-8460-const.rs:51:36
| |
LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err());
| ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:54:36 --> $DIR/issue-8460-const.rs:53:36
| |
LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:56:36 --> $DIR/issue-8460-const.rs:55:36
| |
LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:58:36 --> $DIR/issue-8460-const.rs:57:36
| |
LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:60:36 --> $DIR/issue-8460-const.rs:59:36
| |
LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err());
| ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:14:36 --> $DIR/issue-8460-const.rs:13:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow
@ -7,37 +7,37 @@ LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:16:36 --> $DIR/issue-8460-const.rs:15:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:18:36 --> $DIR/issue-8460-const.rs:17:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:20:36 --> $DIR/issue-8460-const.rs:19:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:22:36 --> $DIR/issue-8460-const.rs:21:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:24:36 --> $DIR/issue-8460-const.rs:23:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:26:36 --> $DIR/issue-8460-const.rs:25:36
| |
LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
| ^^^^^^^^^^ attempt to divide `1_isize` by zero | ^^^^^^^^^^ attempt to divide `1_isize` by zero
@ -45,103 +45,103 @@ LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:28:36 --> $DIR/issue-8460-const.rs:27:36
| |
LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err());
| ^^^^^^^ attempt to divide `1_i8` by zero | ^^^^^^^ attempt to divide `1_i8` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:30:36 --> $DIR/issue-8460-const.rs:29:36
| |
LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i16` by zero | ^^^^^^^^ attempt to divide `1_i16` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:32:36 --> $DIR/issue-8460-const.rs:31:36
| |
LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i32` by zero | ^^^^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:34:36 --> $DIR/issue-8460-const.rs:33:36
| |
LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i64` by zero | ^^^^^^^^ attempt to divide `1_i64` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:36:36 --> $DIR/issue-8460-const.rs:35:36
| |
LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err());
| ^^^^^^^^^ attempt to divide `1_i128` by zero | ^^^^^^^^^ attempt to divide `1_i128` by zero
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:38:36 --> $DIR/issue-8460-const.rs:37:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:40:36 --> $DIR/issue-8460-const.rs:39:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:42:36 --> $DIR/issue-8460-const.rs:41:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:44:36 --> $DIR/issue-8460-const.rs:43:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:46:36 --> $DIR/issue-8460-const.rs:45:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:48:36 --> $DIR/issue-8460-const.rs:47:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:50:36 --> $DIR/issue-8460-const.rs:49:36
| |
LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err());
| ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:52:36 --> $DIR/issue-8460-const.rs:51:36
| |
LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err());
| ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:54:36 --> $DIR/issue-8460-const.rs:53:36
| |
LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:56:36 --> $DIR/issue-8460-const.rs:55:36
| |
LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:58:36 --> $DIR/issue-8460-const.rs:57:36
| |
LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:60:36 --> $DIR/issue-8460-const.rs:59:36
| |
LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err());
| ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero

View file

@ -1,5 +1,5 @@
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:14:36 --> $DIR/issue-8460-const.rs:13:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow
@ -7,37 +7,37 @@ LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err());
= note: `#[deny(arithmetic_overflow)]` on by default = note: `#[deny(arithmetic_overflow)]` on by default
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:16:36 --> $DIR/issue-8460-const.rs:15:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:18:36 --> $DIR/issue-8460-const.rs:17:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:20:36 --> $DIR/issue-8460-const.rs:19:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:22:36 --> $DIR/issue-8460-const.rs:21:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:24:36 --> $DIR/issue-8460-const.rs:23:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:26:36 --> $DIR/issue-8460-const.rs:25:36
| |
LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
| ^^^^^^^^^^ attempt to divide `1_isize` by zero | ^^^^^^^^^^ attempt to divide `1_isize` by zero
@ -45,103 +45,103 @@ LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err());
= note: `#[deny(unconditional_panic)]` on by default = note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:28:36 --> $DIR/issue-8460-const.rs:27:36
| |
LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err());
| ^^^^^^^ attempt to divide `1_i8` by zero | ^^^^^^^ attempt to divide `1_i8` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:30:36 --> $DIR/issue-8460-const.rs:29:36
| |
LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i16` by zero | ^^^^^^^^ attempt to divide `1_i16` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:32:36 --> $DIR/issue-8460-const.rs:31:36
| |
LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i32` by zero | ^^^^^^^^ attempt to divide `1_i32` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:34:36 --> $DIR/issue-8460-const.rs:33:36
| |
LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err());
| ^^^^^^^^ attempt to divide `1_i64` by zero | ^^^^^^^^ attempt to divide `1_i64` by zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:36:36 --> $DIR/issue-8460-const.rs:35:36
| |
LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err());
| ^^^^^^^^^ attempt to divide `1_i128` by zero | ^^^^^^^^^ attempt to divide `1_i128` by zero
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:38:36 --> $DIR/issue-8460-const.rs:37:36
| |
LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:40:36 --> $DIR/issue-8460-const.rs:39:36
| |
LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:42:36 --> $DIR/issue-8460-const.rs:41:36
| |
LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:44:36 --> $DIR/issue-8460-const.rs:43:36
| |
LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:46:36 --> $DIR/issue-8460-const.rs:45:36
| |
LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow
error: this arithmetic operation will overflow error: this arithmetic operation will overflow
--> $DIR/issue-8460-const.rs:48:36 --> $DIR/issue-8460-const.rs:47:36
| |
LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err());
| ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:50:36 --> $DIR/issue-8460-const.rs:49:36
| |
LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err());
| ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:52:36 --> $DIR/issue-8460-const.rs:51:36
| |
LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err());
| ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:54:36 --> $DIR/issue-8460-const.rs:53:36
| |
LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:56:36 --> $DIR/issue-8460-const.rs:55:36
| |
LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:58:36 --> $DIR/issue-8460-const.rs:57:36
| |
LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err());
| ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero
error: this operation will panic at runtime error: this operation will panic at runtime
--> $DIR/issue-8460-const.rs:60:36 --> $DIR/issue-8460-const.rs:59:36
| |
LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err());
| ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero

View file

@ -7,7 +7,6 @@
#![deny(const_err)] #![deny(const_err)]
use std::{isize, i8, i16, i32, i64, i128};
use std::thread; use std::thread;
fn main() { fn main() {

View file

@ -4,13 +4,12 @@
// compile-flags: -C debug_assertions=yes -C opt-level=3 // compile-flags: -C debug_assertions=yes -C opt-level=3
use std::panic; use std::panic;
use std::usize::MAX;
fn main() { fn main() {
assert_eq!((0..MAX).by_ref().count(), MAX); assert_eq!((0..usize::MAX).by_ref().count(), usize::MAX);
let r = panic::catch_unwind(|| { let r = panic::catch_unwind(|| {
(0..=MAX).by_ref().count() (0..=usize::MAX).by_ref().count()
}); });
assert!(r.is_err()); assert!(r.is_err());
} }

View file

@ -2,9 +2,7 @@
// only-32bit too impatient for 2⁶⁴ items // only-32bit too impatient for 2⁶⁴ items
// compile-flags: -C debug_assertions=no -C opt-level=3 // compile-flags: -C debug_assertions=no -C opt-level=3
use std::usize::MAX;
fn main() { fn main() {
assert_eq!((0..MAX).by_ref().count(), MAX); assert_eq!((0..usize::MAX).by_ref().count(), usize::MAX);
assert_eq!((0..=MAX).by_ref().count(), 0); assert_eq!((0..=usize::MAX).by_ref().count(), 0);
} }

View file

@ -4,11 +4,10 @@
// compile-flags: -C debug_assertions=yes -C opt-level=3 // compile-flags: -C debug_assertions=yes -C opt-level=3
use std::panic; use std::panic;
use std::usize::MAX;
fn main() { fn main() {
let n = MAX as u64; let n = usize::MAX as u64;
assert_eq!((0..).by_ref().position(|i| i >= n), Some(MAX)); assert_eq!((0..).by_ref().position(|i| i >= n), Some(usize::MAX));
let r = panic::catch_unwind(|| { let r = panic::catch_unwind(|| {
(0..).by_ref().position(|i| i > n) (0..).by_ref().position(|i| i > n)

View file

@ -2,11 +2,9 @@
// only-32bit too impatient for 2⁶⁴ items // only-32bit too impatient for 2⁶⁴ items
// compile-flags: -C debug_assertions=no -C opt-level=3 // compile-flags: -C debug_assertions=no -C opt-level=3
use std::usize::MAX;
fn main() { fn main() {
let n = MAX as u64; let n = usize::MAX as u64;
assert_eq!((0..).by_ref().position(|i| i >= n), Some(MAX)); assert_eq!((0..).by_ref().position(|i| i >= n), Some(usize::MAX));
assert_eq!((0..).by_ref().position(|i| i > n), Some(0)); assert_eq!((0..).by_ref().position(|i| i > n), Some(0));
assert_eq!((0..=n + 1).by_ref().position(|_| false), None); assert_eq!((0..=n + 1).by_ref().position(|_| false), None);
} }

View file

@ -249,7 +249,7 @@ macro_rules! test_path {
test_path!(); test_path!();
test_path!(,); test_path!(,);
test_path!(::std); test_path!(::std);
test_path!(std::u8,); test_path!(std::ops,);
test_path!(any, super, super::super::self::path, X<Y>::Z<'a, T=U>); test_path!(any, super, super::super::self::path, X<Y>::Z<'a, T=U>);
macro_rules! test_lifetime { macro_rules! test_lifetime {

View file

@ -1,7 +1,5 @@
#![feature(box_syntax, unboxed_closures)] #![feature(box_syntax, unboxed_closures)]
use std::usize;
fn to_fn<A,F:Fn<A>>(f: F) -> F { f } fn to_fn<A,F:Fn<A>>(f: F) -> F { f }
fn test(_x: Box<usize>) {} fn test(_x: Box<usize>) {}

View file

@ -1,5 +1,5 @@
error[E0507]: cannot move out of `i`, a captured variable in an `Fn` closure error[E0507]: cannot move out of `i`, a captured variable in an `Fn` closure
--> $DIR/moves-based-on-type-move-out-of-closure-env-issue-1965.rs:11:28 --> $DIR/moves-based-on-type-move-out-of-closure-env-issue-1965.rs:9:28
| |
LL | let i = box 3; LL | let i = box 3;
| - captured outer variable | - captured outer variable

View file

@ -2,8 +2,6 @@
#![deny(const_err)] #![deny(const_err)]
use std::{f32, f64};
// Forces evaluation of constants, triggering hard error // Forces evaluation of constants, triggering hard error
fn force<T>(_: T) {} fn force<T>(_: T) {}

View file

@ -1,5 +1,4 @@
// run-pass // run-pass
use std::f64;
pub fn main() { pub fn main() {
let nan: f64 = f64::NAN; let nan: f64 = f64::NAN;

View file

@ -21,7 +21,8 @@ macro_rules! int_modules {
($(($name:ident, $size:expr),)*) => ($( ($(($name:ident, $size:expr),)*) => ($(
mod $name { mod $name {
pub const BITS: usize = $size; pub const BITS: usize = $size;
pub use std::$name::*; pub const MAX: $name = $name::MAX;
pub const MIN: $name = $name::MIN;
} }
)*) )*)
} }

View file

@ -6,5 +6,5 @@
#![allow(arithmetic_overflow)] #![allow(arithmetic_overflow)]
fn main() { fn main() {
let _x = -std::i8::MIN; let _x = -i8::MIN;
} }

View file

@ -11,10 +11,6 @@
extern crate test; extern crate test;
use self::test::black_box; use self::test::black_box;
use std::{f32, f64};
#[cfg(not(target_os = "emscripten"))]
use std::{i128, u128};
use std::{i16, i32, i64, i8, u16, u32, u64, u8};
macro_rules! test { macro_rules! test {
($val:expr, $src_ty:ident -> $dest_ty:ident, $expected:expr) => ( ($val:expr, $src_ty:ident -> $dest_ty:ident, $expected:expr) => (

View file

@ -47,21 +47,21 @@ fn test_left_shift() {
let x = 1_u8 << id(0); let x = 1_u8 << id(0);
assert_eq!(x, 1); assert_eq!(x, 1);
let x = 1_i8 << id(7); let x = 1_i8 << id(7);
assert_eq!(x, std::i8::MIN); assert_eq!(x, i8::MIN);
let x = 1_u8 << id(7); let x = 1_u8 << id(7);
assert_eq!(x, 0x80); assert_eq!(x, 0x80);
// high-order bits on LHS are silently discarded without panic. // high-order bits on LHS are silently discarded without panic.
let x = 3_i8 << id(7); let x = 3_i8 << id(7);
assert_eq!(x, std::i8::MIN); assert_eq!(x, i8::MIN);
let x = 3_u8 << id(7); let x = 3_u8 << id(7);
assert_eq!(x, 0x80); assert_eq!(x, 0x80);
// above is (approximately) expanded from: // above is (approximately) expanded from:
tests!(i8, u8, 7, std::i8::MIN, 0x80_u8); tests!(i8, u8, 7, i8::MIN, 0x80_u8);
tests!(i16, u16, 15, std::i16::MIN, 0x8000_u16); tests!(i16, u16, 15, i16::MIN, 0x8000_u16);
tests!(i32, u32, 31, std::i32::MIN, 0x8000_0000_u32); tests!(i32, u32, 31, i32::MIN, 0x8000_0000_u32);
tests!(i64, u64, 63, std::i64::MIN, 0x8000_0000_0000_0000_u64); tests!(i64, u64, 63, i64::MIN, 0x8000_0000_0000_0000_u64);
} }
fn test_right_shift() { fn test_right_shift() {
@ -92,9 +92,9 @@ fn test_right_shift() {
} } } }
} }
tests!(i8, u8, 7, std::i8::MIN, 0x40_i8, 0x80_u8); tests!(i8, u8, 7, i8::MIN, 0x40_i8, 0x80_u8);
tests!(i16, u16, 15, std::i16::MIN, 0x4000_u16, 0x8000_u16); tests!(i16, u16, 15, i16::MIN, 0x4000_u16, 0x8000_u16);
tests!(i32, u32, 31, std::i32::MIN, 0x4000_0000_u32, 0x8000_0000_u32); tests!(i32, u32, 31, i32::MIN, 0x4000_0000_u32, 0x8000_0000_u32);
tests!(i64, u64, 63, std::i64::MIN, tests!(i64, u64, 63, i64::MIN,
0x4000_0000_0000_0000_u64, 0x8000_0000_0000_0000_u64); 0x4000_0000_0000_0000_u64, 0x8000_0000_0000_0000_u64);
} }

View file

@ -4,8 +4,6 @@
#![deny(overflowing_literals)] #![deny(overflowing_literals)]
extern crate test; extern crate test;
use std::f32;
use std::u128;
use test::black_box; use test::black_box;
macro_rules! test { macro_rules! test {

View file

@ -1,5 +1,5 @@
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/regions-addr-of-upvar-self.rs:10:20 --> $DIR/regions-addr-of-upvar-self.rs:8:20
| |
LL | let _f = || { LL | let _f = || {
| -- lifetime `'1` represents this closure's body | -- lifetime `'1` represents this closure's body
@ -9,7 +9,7 @@ LL | let p: &'static mut usize = &mut self.food;
= note: closure implements `FnMut`, so references to captured variables can't escape the closure = note: closure implements `FnMut`, so references to captured variables can't escape the closure
error: lifetime may not live long enough error: lifetime may not live long enough
--> $DIR/regions-addr-of-upvar-self.rs:10:20 --> $DIR/regions-addr-of-upvar-self.rs:8:20
| |
LL | pub fn chase_cat(&mut self) { LL | pub fn chase_cat(&mut self) {
| - let's call the lifetime of this reference `'1` | - let's call the lifetime of this reference `'1`
@ -18,7 +18,7 @@ LL | let p: &'static mut usize = &mut self.food;
| ^^^^^^^^^^^^^^^^^^ type annotation requires that `'1` must outlive `'static` | ^^^^^^^^^^^^^^^^^^ type annotation requires that `'1` must outlive `'static`
error[E0597]: `self` does not live long enough error[E0597]: `self` does not live long enough
--> $DIR/regions-addr-of-upvar-self.rs:10:46 --> $DIR/regions-addr-of-upvar-self.rs:8:46
| |
LL | let _f = || { LL | let _f = || {
| -- value captured here | -- value captured here

View file

@ -1,5 +1,3 @@
use std::usize;
struct Dog { struct Dog {
food: usize, food: usize,
} }

View file

@ -1,22 +1,22 @@
error[E0495]: cannot infer an appropriate lifetime for borrow expression due to conflicting requirements error[E0495]: cannot infer an appropriate lifetime for borrow expression due to conflicting requirements
--> $DIR/regions-addr-of-upvar-self.rs:10:41 --> $DIR/regions-addr-of-upvar-self.rs:8:41
| |
LL | let p: &'static mut usize = &mut self.food; LL | let p: &'static mut usize = &mut self.food;
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
note: first, the lifetime cannot outlive the lifetime `'_` as defined on the body at 9:18... note: first, the lifetime cannot outlive the lifetime `'_` as defined on the body at 7:18...
--> $DIR/regions-addr-of-upvar-self.rs:9:18 --> $DIR/regions-addr-of-upvar-self.rs:7:18
| |
LL | let _f = || { LL | let _f = || {
| ^^ | ^^
note: ...so that closure can access `self` note: ...so that closure can access `self`
--> $DIR/regions-addr-of-upvar-self.rs:10:41 --> $DIR/regions-addr-of-upvar-self.rs:8:41
| |
LL | let p: &'static mut usize = &mut self.food; LL | let p: &'static mut usize = &mut self.food;
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= note: but, the lifetime must be valid for the static lifetime... = note: but, the lifetime must be valid for the static lifetime...
note: ...so that reference does not outlive borrowed content note: ...so that reference does not outlive borrowed content
--> $DIR/regions-addr-of-upvar-self.rs:10:41 --> $DIR/regions-addr-of-upvar-self.rs:8:41
| |
LL | let p: &'static mut usize = &mut self.food; LL | let p: &'static mut usize = &mut self.food;
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^

View file

@ -1,5 +1,3 @@
use std::f32;
#[derive(PartialEq)] #[derive(PartialEq)]
struct Foo { struct Foo {
x: u32 x: u32

View file

@ -1,11 +1,11 @@
error: to use a constant of type `Foo` in a pattern, `Foo` must be annotated with `#[derive(PartialEq, Eq)]` error: to use a constant of type `Foo` in a pattern, `Foo` must be annotated with `#[derive(PartialEq, Eq)]`
--> $DIR/match-forbidden-without-eq.rs:13:9 --> $DIR/match-forbidden-without-eq.rs:11:9
| |
LL | FOO => { } LL | FOO => { }
| ^^^ | ^^^
warning: floating-point types cannot be used in patterns warning: floating-point types cannot be used in patterns
--> $DIR/match-forbidden-without-eq.rs:20:9 --> $DIR/match-forbidden-without-eq.rs:18:9
| |
LL | f32::INFINITY => { } LL | f32::INFINITY => { }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
@ -15,7 +15,7 @@ LL | f32::INFINITY => { }
= note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620> = note: for more information, see issue #41620 <https://github.com/rust-lang/rust/issues/41620>
warning: floating-point types cannot be used in patterns warning: floating-point types cannot be used in patterns
--> $DIR/match-forbidden-without-eq.rs:20:9 --> $DIR/match-forbidden-without-eq.rs:18:9
| |
LL | f32::INFINITY => { } LL | f32::INFINITY => { }
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^

View file

@ -20,11 +20,11 @@ fn main() {
let y = f32x4(2.0, 1.0, 4.0, 3.0); let y = f32x4(2.0, 1.0, 4.0, 3.0);
#[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))]
let nan = ::std::f32::NAN; let nan = f32::NAN;
// MIPS hardware treats f32::NAN as SNAN. Clear the signaling bit. // MIPS hardware treats f32::NAN as SNAN. Clear the signaling bit.
// See https://github.com/rust-lang/rust/issues/52746. // See https://github.com/rust-lang/rust/issues/52746.
#[cfg(any(target_arch = "mips", target_arch = "mips64"))] #[cfg(any(target_arch = "mips", target_arch = "mips64"))]
let nan = f32::from_bits(::std::f32::NAN.to_bits() - 1); let nan = f32::from_bits(f32::NAN.to_bits() - 1);
let n = f32x4(nan, nan, nan, nan); let n = f32x4(nan, nan, nan, nan);

View file

@ -4,8 +4,6 @@
#![feature(repr_simd, platform_intrinsics, concat_idents)] #![feature(repr_simd, platform_intrinsics, concat_idents)]
#![allow(non_camel_case_types)] #![allow(non_camel_case_types)]
use std::f32::NAN;
#[repr(simd)] #[repr(simd)]
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
struct i32x4(i32, i32, i32, i32); struct i32x4(i32, i32, i32, i32);
@ -94,7 +92,7 @@ fn main() {
// NAN comparisons are special: // NAN comparisons are special:
// -11 (*) 13 // -11 (*) 13
// -5 -100 (*) // -5 -100 (*)
let f4 = f32x4(NAN, f1.1, NAN, f2.3); let f4 = f32x4(f32::NAN, f1.1, f32::NAN, f2.3);
unsafe { unsafe {
tests! { tests! {

View file

@ -4,7 +4,6 @@
use std::thread::{self, sleep}; use std::thread::{self, sleep};
use std::time::Duration; use std::time::Duration;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::u64;
fn main() { fn main() {
let finished = Arc::new(Mutex::new(false)); let finished = Arc::new(Mutex::new(false));

Some files were not shown because too many files have changed in this diff Show more