about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-02-25 23:55:16 +0000
committervarkor <github@varkor.com>2019-03-12 18:34:43 +0000
commitec56d6e5b95a88314af608756f54b4fccb16353e (patch)
tree37c983f2dfc6b2f1c666e7a6bac464e311fc211a
parent3f16518c054c5bfe8093250ed3c1a5b4db2209b1 (diff)
downloadrust-ec56d6e5b95a88314af608756f54b4fccb16353e.tar.gz
rust-ec56d6e5b95a88314af608756f54b4fccb16353e.zip
Add a test for #44255
-rw-r--r--src/test/ui/issues/issue-44255.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-44255.rs b/src/test/ui/issues/issue-44255.rs
new file mode 100644
index 00000000000..22450320432
--- /dev/null
+++ b/src/test/ui/issues/issue-44255.rs
@@ -0,0 +1,29 @@
+// run-pass
+
+use std::marker::PhantomData;
+
+fn main() {
+    let _arr = [1; <Multiply<Five, Five>>::VAL];
+}
+
+trait TypeVal<T> {
+    const VAL: T;
+}
+
+struct Five;
+
+impl TypeVal<usize> for Five {
+    const VAL: usize = 5;
+}
+
+struct Multiply<N, M> {
+    _n: PhantomData<N>,
+    _m: PhantomData<M>,
+}
+
+impl<N, M> TypeVal<usize> for Multiply<N, M>
+    where N: TypeVal<usize>,
+          M: TypeVal<usize>,
+{
+    const VAL: usize = N::VAL * M::VAL;
+}