2 // compile-flags:-Zpolymorphize=on
3 #![feature(generic_const_exprs, rustc_attrs)]
4 //~^ WARN the feature `generic_const_exprs` is incomplete
6 // This test checks that the polymorphization analysis correctly detects unused const
7 // parameters in functions.
9 // Function doesn't have any generic parameters to be unused.
10 #[rustc_polymorphize_error]
11 pub fn no_parameters() {}
13 // Function has an unused generic parameter.
14 #[rustc_polymorphize_error]
15 pub fn unused<const T: usize>() {
16 //~^ ERROR item has unused generic parameters
19 // Function uses generic parameter in value of a binding.
20 #[rustc_polymorphize_error]
21 pub fn used_binding<const T: usize>() -> usize {
26 // Function uses generic parameter in substitutions to another function.
27 #[rustc_polymorphize_error]
28 pub fn used_substs<const T: usize>() {