From 0d73bb926c271f494f22818ec25984057dcdfb4d Mon Sep 17 00:00:00 2001 From: jumbatm Date: Thu, 2 Apr 2020 22:45:40 +1000 Subject: [PATCH] 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. --- src/test/ui/consts/issue-69020.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 }