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:
parent
0f72ce1b27
commit
0d73bb926c
1 changed files with 18 additions and 0 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue