about summary refs log tree commit diff
path: root/src/test/ui/const-generics/const_evaluatable_checked
diff options
context:
space:
mode:
authorEllen <supbscripter@gmail.com>2021-02-01 20:05:43 +0000
committerEllen <supbscripter@gmail.com>2021-02-01 20:05:50 +0000
commit7f8530f16b8cc908cb77970967addf39ae1a975d (patch)
tree8d1794b58d4356023bdc8419a827cf07210c0bce /src/test/ui/const-generics/const_evaluatable_checked
parent02b85d722050d61b40ae9746b3bac54ab55b1056 (diff)
downloadrust-7f8530f16b8cc908cb77970967addf39ae1a975d.tar.gz
rust-7f8530f16b8cc908cb77970967addf39ae1a975d.zip
more things are const evaluatable *sparkles*
Diffstat (limited to 'src/test/ui/const-generics/const_evaluatable_checked')
-rw-r--r--src/test/ui/const-generics/const_evaluatable_checked/nested_uneval_unification-1.rs1
-rw-r--r--src/test/ui/const-generics/const_evaluatable_checked/subexprs_are_const_evalutable.rs17
2 files changed, 17 insertions, 1 deletions
diff --git a/src/test/ui/const-generics/const_evaluatable_checked/nested_uneval_unification-1.rs b/src/test/ui/const-generics/const_evaluatable_checked/nested_uneval_unification-1.rs
index 1428f774b0d..4d0b87efc77 100644
--- a/src/test/ui/const-generics/const_evaluatable_checked/nested_uneval_unification-1.rs
+++ b/src/test/ui/const-generics/const_evaluatable_checked/nested_uneval_unification-1.rs
@@ -21,7 +21,6 @@ where
 
 fn substs3<const L: usize>() -> Substs1<{ (L - 1) * 2 }>
 where
-    [(); (L - 1)]: ,
     [(); (L - 1) * 2 + 1]: ,
 {
     substs2::<{ L - 1 }>()
diff --git a/src/test/ui/const-generics/const_evaluatable_checked/subexprs_are_const_evalutable.rs b/src/test/ui/const-generics/const_evaluatable_checked/subexprs_are_const_evalutable.rs
new file mode 100644
index 00000000000..11c0760cdfe
--- /dev/null
+++ b/src/test/ui/const-generics/const_evaluatable_checked/subexprs_are_const_evalutable.rs
@@ -0,0 +1,17 @@
+// run-pass
+#![feature(const_generics, const_evaluatable_checked)]
+#![allow(incomplete_features)]
+
+fn make_array<const M: usize>() -> [(); M + 1] {
+    [(); M + 1]
+}
+
+fn foo<const N: usize>() -> [(); (N * 2) + 1] {
+    make_array::<{ N * 2 }>()
+}
+
+fn main() {
+    assert_eq!(foo::<10>(), [(); 10 * 2 + 1])
+}
+
+// Tests that N * 2 is considered const_evalutable by appearing as part of the (N * 2) + 1 const