about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-08-06 10:00:08 +0200
committerBastian Kauschke <bastian_kauschke@hotmail.de>2020-09-08 16:39:12 +0200
commitc81935e6dfd3877db266f0a01d9323f203f92eda (patch)
treede33a2c05acad8b98b4318a8f29e3c42de870c02 /src/test
parent7bc0bf72545f5d6ac6d9639391da875d5e147d9a (diff)
downloadrust-c81935e6dfd3877db266f0a01d9323f203f92eda.tar.gz
rust-c81935e6dfd3877db266f0a01d9323f203f92eda.zip
make `ConstEvaluatable` more strict
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/const_evaluatable/associated_const.rs11
-rw-r--r--src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.rs3
-rw-r--r--src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.stderr10
-rw-r--r--src/test/ui/impl-trait/issue-56445.rs3
-rw-r--r--src/test/ui/lazy_normalization_consts/issue-73980.rs2
-rw-r--r--src/test/ui/lazy_normalization_consts/issue-73980.stderr10
6 files changed, 34 insertions, 5 deletions
diff --git a/src/test/ui/const_evaluatable/associated_const.rs b/src/test/ui/const_evaluatable/associated_const.rs
new file mode 100644
index 00000000000..a6777632254
--- /dev/null
+++ b/src/test/ui/const_evaluatable/associated_const.rs
@@ -0,0 +1,11 @@
+// check-pass
+struct Foo<T>(T);
+impl<T> Foo<T> {
+    const VALUE: usize = std::mem::size_of::<T>();
+}
+
+fn test<T>() {
+    let _ = [0; Foo::<u8>::VALUE];
+}
+
+fn main() {}
diff --git a/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.rs b/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.rs
index 5a528379b04..5fe526df5a7 100644
--- a/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.rs
+++ b/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.rs
@@ -1,5 +1,3 @@
-// run-pass
-
 #![feature(arbitrary_enum_discriminant, core_intrinsics)]
 
 extern crate core;
@@ -9,6 +7,7 @@ use core::intrinsics::discriminant_value;
 enum MyWeirdOption<T> {
     None = 0,
     Some(T) = core::mem::size_of::<*mut T>(),
+    //~^ ERROR constant expression depends on a generic parameter
 }
 
 fn main() {
diff --git a/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.stderr b/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.stderr
new file mode 100644
index 00000000000..9aba2ea543f
--- /dev/null
+++ b/src/test/ui/enum-discriminant/issue-70453-polymorphic-ctfe.stderr
@@ -0,0 +1,10 @@
+error: constant expression depends on a generic parameter
+  --> $DIR/issue-70453-polymorphic-ctfe.rs:9:15
+   |
+LL |     Some(T) = core::mem::size_of::<*mut T>(),
+   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: this may fail depending on what value the parameter takes
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/impl-trait/issue-56445.rs b/src/test/ui/impl-trait/issue-56445.rs
index a34d7bae3a6..6dd1648c9b8 100644
--- a/src/test/ui/impl-trait/issue-56445.rs
+++ b/src/test/ui/impl-trait/issue-56445.rs
@@ -5,8 +5,7 @@
 
 use std::marker::PhantomData;
 
-pub struct S<'a>
-{
+pub struct S<'a> {
     pub m1: PhantomData<&'a u8>,
     pub m2: [u8; S::size()],
 }
diff --git a/src/test/ui/lazy_normalization_consts/issue-73980.rs b/src/test/ui/lazy_normalization_consts/issue-73980.rs
index 339b22c0b42..2e4cb9ff7a8 100644
--- a/src/test/ui/lazy_normalization_consts/issue-73980.rs
+++ b/src/test/ui/lazy_normalization_consts/issue-73980.rs
@@ -1,4 +1,3 @@
-// check-pass
 #![feature(lazy_normalization_consts)]
 #![allow(incomplete_features)]
 
@@ -10,5 +9,6 @@ impl<T: ?Sized> L<T> {
 }
 
 impl<T> X<T, [u8; L::<T>::S]> {}
+//~^ ERROR constant expression depends on a generic parameter
 
 fn main() {}
diff --git a/src/test/ui/lazy_normalization_consts/issue-73980.stderr b/src/test/ui/lazy_normalization_consts/issue-73980.stderr
new file mode 100644
index 00000000000..5ca11bf55fc
--- /dev/null
+++ b/src/test/ui/lazy_normalization_consts/issue-73980.stderr
@@ -0,0 +1,10 @@
+error: constant expression depends on a generic parameter
+  --> $DIR/issue-73980.rs:11:9
+   |
+LL | impl<T> X<T, [u8; L::<T>::S]> {}
+   |         ^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: this may fail depending on what value the parameter takes
+
+error: aborting due to previous error
+