// build-fail // compile-flags:-Zpolymorphize=on #![feature(generic_const_exprs, rustc_attrs)] //~^ WARN the feature `generic_const_exprs` is incomplete // This test checks that the polymorphization analysis correctly detects unused const // parameters in functions. // Function doesn't have any generic parameters to be unused. #[rustc_polymorphize_error] pub fn no_parameters() {} // Function has an unused generic parameter. #[rustc_polymorphize_error] pub fn unused() { //~^ ERROR item has unused generic parameters } // Function uses generic parameter in value of a binding. #[rustc_polymorphize_error] pub fn used_binding() -> usize { let x: usize = T; x } // Function uses generic parameter in substitutions to another function. #[rustc_polymorphize_error] pub fn used_substs() { unused::() } fn main() { no_parameters(); unused::<1>(); used_binding::<1>(); used_substs::<1>(); }