2 // compile-flags:-Zpolymorphize=on
3 #![feature(fn_traits, rustc_attrs, unboxed_closures)]
5 // This test checks that the polymorphization analysis considers a closure
6 // as using all generic parameters if it does an unsizing cast.
8 #[rustc_polymorphize_error]
10 let _: T = Default::default();
11 (|| Box::new(|| {}) as Box<dyn Fn()>)();
12 //~^ ERROR item has unused generic parameters
13 //~^^ ERROR item has unused generic parameters
16 #[rustc_polymorphize_error]
17 fn foo2<T: Default>() {
18 let _: T = Default::default();
20 //~^ ERROR item has unused generic parameters
21 let call: extern "rust-call" fn(_, _) = Fn::call;
23 //~^ ERROR item has unused generic parameters