diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-09-17 16:25:26 -0700 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-09-28 07:06:51 -0700 |
| commit | 457c3aa6722cd8d2599c7f78347b2f8f586f3527 (patch) | |
| tree | 8cedd346aa409f0e242ae90fc59b0bcb03c4ddd7 | |
| parent | 717c64e18884c20a11603f181b207ff280b13f9a (diff) | |
| download | rust-457c3aa6722cd8d2599c7f78347b2f8f586f3527.tar.gz rust-457c3aa6722cd8d2599c7f78347b2f8f586f3527.zip | |
Add additional `const` tests
| -rw-r--r-- | src/test/ui/consts/const-if.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/consts/const-if.stderr | 15 | ||||
| -rw-r--r-- | src/test/ui/consts/const-multi-ref.rs | 11 | ||||
| -rw-r--r-- | src/test/ui/consts/const-multi-ref.stderr | 15 |
4 files changed, 46 insertions, 0 deletions
diff --git a/src/test/ui/consts/const-if.rs b/src/test/ui/consts/const-if.rs new file mode 100644 index 00000000000..9bb5bcc499e --- /dev/null +++ b/src/test/ui/consts/const-if.rs @@ -0,0 +1,5 @@ +const _X: i32 = if true { 5 } else { 6 }; +//~^ ERROR constant contains unimplemented expression type +//~| ERROR constant contains unimplemented expression type + +fn main() {} diff --git a/src/test/ui/consts/const-if.stderr b/src/test/ui/consts/const-if.stderr new file mode 100644 index 00000000000..655fcdae587 --- /dev/null +++ b/src/test/ui/consts/const-if.stderr @@ -0,0 +1,15 @@ +error[E0019]: constant contains unimplemented expression type + --> $DIR/const-if.rs:1:20 + | +LL | const _X: i32 = if true { 5 } else { 6 }; + | ^^^^ + +error[E0019]: constant contains unimplemented expression type + --> $DIR/const-if.rs:1:17 + | +LL | const _X: i32 = if true { 5 } else { 6 }; + | ^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0019`. diff --git a/src/test/ui/consts/const-multi-ref.rs b/src/test/ui/consts/const-multi-ref.rs new file mode 100644 index 00000000000..498e99e668b --- /dev/null +++ b/src/test/ui/consts/const-multi-ref.rs @@ -0,0 +1,11 @@ +const _X: i32 = { + let mut a = 5; + let p = &mut a; //~ ERROR references in constants may only refer to immutable values + + let reborrow = {p}; //~ ERROR references in constants may only refer to immutable values + let pp = &reborrow; + let ppp = &pp; + ***ppp +}; + +fn main() {} diff --git a/src/test/ui/consts/const-multi-ref.stderr b/src/test/ui/consts/const-multi-ref.stderr new file mode 100644 index 00000000000..9e525ef9aac --- /dev/null +++ b/src/test/ui/consts/const-multi-ref.stderr @@ -0,0 +1,15 @@ +error[E0017]: references in constants may only refer to immutable values + --> $DIR/const-multi-ref.rs:3:13 + | +LL | let p = &mut a; + | ^^^^^^ constants require immutable values + +error[E0017]: references in constants may only refer to immutable values + --> $DIR/const-multi-ref.rs:5:21 + | +LL | let reborrow = {p}; + | ^ constants require immutable values + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0017`. |
