Extend #69020 test to include reversed order.

Make sure we check the case where the generic operand comes first, in
case any future changes make this ordering matter.
This commit is contained in:
jumbatm 2020-04-02 22:45:40 +10:00
parent 0f72ce1b27
commit 0d73bb926c

View file

@ -9,9 +9,16 @@ use std::i32;
pub trait Foo {
const NEG: i32;
const GEN: i32;
const ADD: i32;
const DDA: i32;
const DIV: i32;
const VID: i32;
const OOB: i32;
const BOO: i32;
}
// These constants cannot be evaluated already (they depend on `T::N`), so
@ -20,10 +27,21 @@ pub trait Foo {
impl<T: Foo> Foo for Vec<T> {
const NEG: i32 = -i32::MIN + T::NEG;
//~^ ERROR arithmetic operation will overflow
const GEN: i32 = T::NEG + (-i32::MIN);
//~^ ERROR arithmetic operation will overflow
const ADD: i32 = (i32::MAX+1) + T::ADD;
//~^ ERROR arithmetic operation will overflow
const DDA: i32 = T::ADD + (i32::MAX+1);
//~^ ERROR arithmetic operation will overflow
const DIV: i32 = (1/0) + T::DIV;
//~^ ERROR operation will panic
const VID: i32 = T::DIV + (1/0);
//~^ ERROR operation will panic
const OOB: i32 = [1][1] + T::OOB;
//~^ ERROR operation will panic
const BOO: i32 = T::OOB + [1][1];
//~^ ERROR operation will panic
}