1
Fork 0
rust/src/test/ui/consts/const-eval/const-eval-overflow2c.rs
bstrie 90a2e5e3fe 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.
2020-11-29 00:55:55 -05:00

71 lines
1.4 KiB
Rust

#![allow(unused_imports)]
// Note: the relevant lint pass here runs before some of the constant
// evaluation below (e.g., that performed by codegen and llvm), so if you
// change this warn to a deny, then the compiler will exit before
// those errors are detected.
#![deny(const_err)]
use std::fmt;
const VALS_I8: (i8,) =
(
i8::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I16: (i16,) =
(
i16::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I32: (i32,) =
(
i32::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_I64: (i64,) =
(
i64::MIN * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U8: (u8,) =
(
u8::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U16: (u16,) = (
u16::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U32: (u32,) = (
u32::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
const VALS_U64: (u64,) =
(
u64::MAX * 2,
);
//~^^ ERROR any use of this value will cause an error
fn main() {
foo(VALS_I8);
foo(VALS_I16);
foo(VALS_I32);
foo(VALS_I64);
foo(VALS_U8);
foo(VALS_U16);
foo(VALS_U32);
foo(VALS_U64);
}
fn foo<T>(_: T) {
}