about summary refs log tree commit diff
path: root/tests/ui
diff options
context:
space:
mode:
authorOli Scherer <github333195615777966@oli-obk.de>2025-06-12 19:06:16 +0000
committerOli Scherer <github333195615777966@oli-obk.de>2025-06-13 07:48:00 +0000
commitbb2b765702eb4f1d6adeef2dd4d68e97b8fb315d (patch)
tree86fbb70182c6529786f4fd1030732c27a4bd6a3c /tests/ui
parented44c0e3b3a4f90c464361ec6892c1d42c15ea8f (diff)
Require generic params for const generic params
Diffstat (limited to 'tests/ui')
-rw-r--r--tests/ui/const-generics/mgca/missing_generic_params.rs16
-rw-r--r--tests/ui/const-generics/mgca/missing_generic_params.stderr19
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/ui/const-generics/mgca/missing_generic_params.rs b/tests/ui/const-generics/mgca/missing_generic_params.rs
new file mode 100644
index 00000000000..ab1db3364ec
--- /dev/null
+++ b/tests/ui/const-generics/mgca/missing_generic_params.rs
@@ -0,0 +1,16 @@
+// This used to ICE: #137188
+// The missing parameter list on `N` was set to
+// "infer from use site" in ast lowering, which
+// caused later code to not emit a missing generic
+// param error. The missing param was then attempted
+// to be inferred, but inference of generic params
+// is only possible within bodies. So a delayed
+// bug was generated with no error ever reported.
+
+#![feature(min_generic_const_args)]
+#![allow(incomplete_features)]
+trait Trait {}
+impl Trait for [(); N] {}
+//~^ ERROR: missing generics for function `N`
+fn N<T>() {}
+pub fn main() {}
diff --git a/tests/ui/const-generics/mgca/missing_generic_params.stderr b/tests/ui/const-generics/mgca/missing_generic_params.stderr
new file mode 100644
index 00000000000..78010c75621
--- /dev/null
+++ b/tests/ui/const-generics/mgca/missing_generic_params.stderr
@@ -0,0 +1,19 @@
+error[E0107]: missing generics for function `N`
+  --> $DIR/missing_generic_params.rs:13:21
+   |
+LL | impl Trait for [(); N] {}
+   |                     ^ expected 1 generic argument
+   |
+note: function defined here, with 1 generic parameter: `T`
+  --> $DIR/missing_generic_params.rs:15:4
+   |
+LL | fn N<T>() {}
+   |    ^ -
+help: add missing generic argument
+   |
+LL | impl Trait for [(); N<T>] {}
+   |                      +++
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0107`.