// build-fail // compile-flags:-Zpolymorphize=on #![feature(rustc_attrs)] // This test checks that the polymorphization analysis doesn't break when the // function/closure doesn't just have generic parameters. // Function has an unused generic parameter. #[rustc_polymorphize_error] pub fn unused<'a, T>(_: &'a u32) { //~^ ERROR item has unused generic parameters } #[rustc_polymorphize_error] pub fn used<'a, T: Default>(_: &'a u32) -> u32 { let _: T = Default::default(); let add_one = |x: u32| x + 1; //~^ ERROR item has unused generic parameters add_one(3) } fn main() { unused::(&3); used::(&3); }