diff --git a/src/test/ui/consts/issue-69020.rs b/src/test/ui/consts/issue-69020.rs index e079feb04d44..9a31c10a0c64 100644 --- a/src/test/ui/consts/issue-69020.rs +++ b/src/test/ui/consts/issue-69020.rs @@ -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 Foo for Vec { 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 }