about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthew Jasper <mjjasper1@gmail.com>2019-07-29 20:04:07 +0100
committerMatthew Jasper <mjjasper1@gmail.com>2019-07-29 20:04:07 +0100
commit0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f (patch)
tree2025e5e2936fa708302acdd6b037fb8d8c748ed0
parent8876b3b9b0bf652cddf68d9ddcb5b5fa31d829ab (diff)
downloadrust-0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f.tar.gz
rust-0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f.zip
Add another test for const parameter (non) hygiene.
-rw-r--r--src/test/ui/hygiene/issue-61574-const-parameters.rs32
-rw-r--r--src/test/ui/hygiene/issue-61574-const-parameters.stderr6
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/hygiene/issue-61574-const-parameters.rs b/src/test/ui/hygiene/issue-61574-const-parameters.rs
new file mode 100644
index 00000000000..dcfb42287d5
--- /dev/null
+++ b/src/test/ui/hygiene/issue-61574-const-parameters.rs
@@ -0,0 +1,32 @@
+// A more comprehensive test that const parameters have correctly implemented
+// hygiene
+
+// check-pass
+
+#![feature(const_generics)]
+
+use std::ops::Add;
+
+struct VectorLike<T, const SIZE: usize>([T; {SIZE}]);
+
+macro_rules! impl_operator_overload {
+    ($trait_ident:ident, $method_ident:ident) => {
+
+        impl<T, const SIZE: usize> $trait_ident for VectorLike<T, {SIZE}>
+        where
+            T: $trait_ident,
+        {
+            type Output = VectorLike<T, {SIZE}>;
+
+            fn $method_ident(self, _: VectorLike<T, {SIZE}>) -> VectorLike<T, {SIZE}> {
+                let _ = SIZE;
+                unimplemented!()
+            }
+        }
+
+    }
+}
+
+impl_operator_overload!(Add, add);
+
+fn main() {}
diff --git a/src/test/ui/hygiene/issue-61574-const-parameters.stderr b/src/test/ui/hygiene/issue-61574-const-parameters.stderr
new file mode 100644
index 00000000000..302b5fde887
--- /dev/null
+++ b/src/test/ui/hygiene/issue-61574-const-parameters.stderr
@@ -0,0 +1,6 @@
+warning: the feature `const_generics` is incomplete and may cause the compiler to crash
+  --> $DIR/issue-61574-const-parameters.rs:6:12
+   |
+LL | #![feature(const_generics)]
+   |            ^^^^^^^^^^^^^^
+