about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorjumbatm <jumbatm@gmail.com>2020-04-02 22:45:40 +1000
committerjumbatm <jumbatm@gmail.com>2020-04-02 22:45:40 +1000
commit0d73bb926c271f494f22818ec25984057dcdfb4d (patch)
tree1845494dee803879b65bfe276e143b785d2e3f6d /src/test
parent0f72ce1b271b40a5652049362e6aab5914f7b1d3 (diff)
downloadrust-0d73bb926c271f494f22818ec25984057dcdfb4d.tar.gz
rust-0d73bb926c271f494f22818ec25984057dcdfb4d.zip
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.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/consts/issue-69020.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/ui/consts/issue-69020.rs b/src/test/ui/consts/issue-69020.rs
index e079feb04d4..9a31c10a0c6 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<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
 }