about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-11-10 09:35:02 +0100
committerBastian Kauschke <bastian_kauschke@hotmail.de>2020-11-10 09:51:02 +0100
commit359031e1d38a5705fa85b866130379da98d54329 (patch)
tree77bbba4daa241fad5e8d58448079b3baacbf7564
parentd76cdb052e8ee95b8baa96fc19771c169d7b424a (diff)
downloadrust-359031e1d38a5705fa85b866130379da98d54329.tar.gz
rust-359031e1d38a5705fa85b866130379da98d54329.zip
add generic param mismatch test
-rw-r--r--src/test/ui/const-generics/generic-param-mismatch.full.stderr14
-rw-r--r--src/test/ui/const-generics/generic-param-mismatch.min.stderr14
-rw-r--r--src/test/ui/const-generics/generic-param-mismatch.rs10
3 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/generic-param-mismatch.full.stderr b/src/test/ui/const-generics/generic-param-mismatch.full.stderr
new file mode 100644
index 00000000000..6befa9d1f69
--- /dev/null
+++ b/src/test/ui/const-generics/generic-param-mismatch.full.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/generic-param-mismatch.rs:7:5
+   |
+LL | fn test<const N: usize, const M: usize>() -> [u8; M] {
+   |                                              ------- expected `[u8; M]` because of return type
+LL |     [0; N]
+   |     ^^^^^^ expected `M`, found `N`
+   |
+   = note: expected array `[u8; M]`
+              found array `[u8; N]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/const-generics/generic-param-mismatch.min.stderr b/src/test/ui/const-generics/generic-param-mismatch.min.stderr
new file mode 100644
index 00000000000..6befa9d1f69
--- /dev/null
+++ b/src/test/ui/const-generics/generic-param-mismatch.min.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/generic-param-mismatch.rs:7:5
+   |
+LL | fn test<const N: usize, const M: usize>() -> [u8; M] {
+   |                                              ------- expected `[u8; M]` because of return type
+LL |     [0; N]
+   |     ^^^^^^ expected `M`, found `N`
+   |
+   = note: expected array `[u8; M]`
+              found array `[u8; N]`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/const-generics/generic-param-mismatch.rs b/src/test/ui/const-generics/generic-param-mismatch.rs
new file mode 100644
index 00000000000..e409094eb73
--- /dev/null
+++ b/src/test/ui/const-generics/generic-param-mismatch.rs
@@ -0,0 +1,10 @@
+// revisions: full min
+#![cfg_attr(full, allow(incomplete_features))]
+#![cfg_attr(full, feature(const_generics))]
+#![cfg_attr(min, feature(min_const_generics))]
+
+fn test<const N: usize, const M: usize>() -> [u8; M] {
+    [0; N] //~ ERROR mismatched types
+}
+
+fn main() {}