--- /dev/null
+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`.
--- /dev/null
+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`.
--- /dev/null
+// 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() {}