diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/const-eval/issue-52442.rs | 13 | ||||
| -rw-r--r-- | src/test/ui/const-eval/issue-52442.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/const-eval/issue-52443.rs | 18 | ||||
| -rw-r--r-- | src/test/ui/const-eval/issue-52443.stderr | 51 |
4 files changed, 91 insertions, 0 deletions
diff --git a/src/test/ui/const-eval/issue-52442.rs b/src/test/ui/const-eval/issue-52442.rs new file mode 100644 index 00000000000..755dc153d40 --- /dev/null +++ b/src/test/ui/const-eval/issue-52442.rs @@ -0,0 +1,13 @@ +// 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. + +fn main() { + [(); { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type +} diff --git a/src/test/ui/const-eval/issue-52442.stderr b/src/test/ui/const-eval/issue-52442.stderr new file mode 100644 index 00000000000..586c9fa22ce --- /dev/null +++ b/src/test/ui/const-eval/issue-52442.stderr @@ -0,0 +1,9 @@ +error[E0019]: constant contains unimplemented expression type + --> $DIR/issue-52442.rs:12:14 + | +LL | [(); { &loop { break } as *const _ as usize } ]; //~ ERROR unimplemented expression type + | ^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0019`. diff --git a/src/test/ui/const-eval/issue-52443.rs b/src/test/ui/const-eval/issue-52443.rs new file mode 100644 index 00000000000..2ae94f6d642 --- /dev/null +++ b/src/test/ui/const-eval/issue-52443.rs @@ -0,0 +1,18 @@ +// 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. + +fn main() { + [(); & { loop { continue } } ]; //~ ERROR mismatched types + [(); loop { break }]; //~ ERROR mismatched types + [(); {while true {break}; 0}]; //~ ERROR constant contains unimplemented expression type + [(); { for _ in 0usize.. {}; 0}]; //~ ERROR calls in constants are limited to constant functions + //~^ ERROR constant contains unimplemented expression type + //~| ERROR could not evaluate repeat length +} diff --git a/src/test/ui/const-eval/issue-52443.stderr b/src/test/ui/const-eval/issue-52443.stderr new file mode 100644 index 00000000000..3a145ba78d9 --- /dev/null +++ b/src/test/ui/const-eval/issue-52443.stderr @@ -0,0 +1,51 @@ +error[E0308]: mismatched types + --> $DIR/issue-52443.rs:12:10 + | +LL | [(); & { loop { continue } } ]; //~ ERROR mismatched types + | ^^^^^^^^^^^^^^^^^^^^^^^ + | | + | expected usize, found reference + | help: consider removing the borrow: `{ loop { continue } }` + | + = note: expected type `usize` + found type `&_` + +error[E0308]: mismatched types + --> $DIR/issue-52443.rs:13:17 + | +LL | [(); loop { break }]; //~ ERROR mismatched types + | ^^^^^ expected (), found usize + | + = note: expected type `()` + found type `usize` + +error[E0019]: constant contains unimplemented expression type + --> $DIR/issue-52443.rs:14:11 + | +LL | [(); {while true {break}; 0}]; //~ ERROR constant contains unimplemented expression type + | ^^^^^^^^^^^^^^^^^^ + +error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants + --> $DIR/issue-52443.rs:15:21 + | +LL | [(); { for _ in 0usize.. {}; 0}]; //~ ERROR calls in constants are limited to constant functions + | ^^^^^^^^ + +error[E0019]: constant contains unimplemented expression type + --> $DIR/issue-52443.rs:15:21 + | +LL | [(); { for _ in 0usize.. {}; 0}]; //~ ERROR calls in constants are limited to constant functions + | ^^^^^^^^ + +error[E0080]: could not evaluate repeat length + --> $DIR/issue-52443.rs:15:10 + | +LL | [(); { for _ in 0usize.. {}; 0}]; //~ ERROR calls in constants are limited to constant functions + | ^^^^^^^^^^^--------^^^^^^^ + | | + | calling non-const fn `<I as std::iter::IntoIterator><std::ops::RangeFrom<usize>>::into_iter` + +error: aborting due to 6 previous errors + +Some errors occurred: E0015, E0019, E0080, E0308. +For more information about an error, try `rustc --explain E0015`. |
