]> git.lizzy.rs Git - rust.git/commitdiff
Add test for attempting to use array indexing for conditional const eval
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Thu, 25 Jan 2018 13:15:12 +0000 (14:15 +0100)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Thu, 8 Mar 2018 07:34:09 +0000 (08:34 +0100)
src/test/ui/const-eval/conditional_array_execution.rs [new file with mode: 0644]
src/test/ui/const-eval/conditional_array_execution.stderr [new file with mode: 0644]

diff --git a/src/test/ui/const-eval/conditional_array_execution.rs b/src/test/ui/const-eval/conditional_array_execution.rs
new file mode 100644 (file)
index 0000000..41ceb60
--- /dev/null
@@ -0,0 +1,17 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+const X: u32 = 5;
+const Y: u32 = 6;
+const FOO: u32 = [X - Y, Y - X][(X < Y) as usize]; //~ E0080
+
+fn main() {
+    println!("{}", FOO); //~ E0080
+}
diff --git a/src/test/ui/const-eval/conditional_array_execution.stderr b/src/test/ui/const-eval/conditional_array_execution.stderr
new file mode 100644 (file)
index 0000000..0e26db7
--- /dev/null
@@ -0,0 +1,26 @@
+error[E0080]: constant evaluation error
+  --> $DIR/conditional_array_execution.rs:13:19
+   |
+13 | const FOO: u32 = [X - Y, Y - X][(X < Y) as usize]; //~ E0080
+   |                   ^^^^^ attempt to subtract with overflow
+   |
+note: inside call to FOO
+  --> $DIR/conditional_array_execution.rs:13:1
+   |
+13 | const FOO: u32 = [X - Y, Y - X][(X < Y) as usize]; //~ E0080
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error[E0080]: constant evaluation error
+  --> $DIR/conditional_array_execution.rs:16:20
+   |
+16 |     println!("{}", FOO); //~ E0080
+   |                    ^^^ attempt to subtract with overflow
+   |
+note: inside call to main
+  --> $DIR/conditional_array_execution.rs:16:20
+   |
+16 |     println!("{}", FOO); //~ E0080
+   |                    ^^^
+
+error: aborting due to 2 previous errors
+