diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2018-01-25 14:15:12 +0100 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2018-03-08 08:34:09 +0100 |
| commit | cf056615a85a14f7a07f30f9e2a7ec3d13e9237c (patch) | |
| tree | cf2bdf8b7508201cf0ebb4715e1c08c3264f5a48 | |
| parent | 4f6c557c9d9c7cfade41cf473935a26ad54351d4 (diff) | |
| download | rust-cf056615a85a14f7a07f30f9e2a7ec3d13e9237c.tar.gz rust-cf056615a85a14f7a07f30f9e2a7ec3d13e9237c.zip | |
Add test for attempting to use array indexing for conditional const eval
| -rw-r--r-- | src/test/ui/const-eval/conditional_array_execution.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/const-eval/conditional_array_execution.stderr | 26 |
2 files changed, 43 insertions, 0 deletions
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 index 00000000000..41ceb609df5 --- /dev/null +++ b/src/test/ui/const-eval/conditional_array_execution.rs @@ -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 index 00000000000..0e26db7ac08 --- /dev/null +++ b/src/test/ui/const-eval/conditional_array_execution.stderr @@ -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 + |
