]> git.lizzy.rs Git - rust.git/blob - src/test/ui/polymorphization/unsized_cast.rs
Add comment about the lack of `ExpnData` serialization for proc-macro crates
[rust.git] / src / test / ui / polymorphization / unsized_cast.rs
1 // build-fail
2 // compile-flags:-Zpolymorphize=on
3 #![feature(fn_traits, rustc_attrs, unboxed_closures)]
4
5 // This test checks that the polymorphization analysis considers a closure
6 // as using all generic parameters if it does an unsizing cast.
7
8 #[rustc_polymorphize_error]
9 fn foo<T: Default>() {
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
14 }
15
16 #[rustc_polymorphize_error]
17 fn foo2<T: Default>() {
18     let _: T = Default::default();
19     (|| {
20         let call: extern "rust-call" fn(_, _) = Fn::call;
21         call(&|| {}, ());
22         //~^ ERROR item has unused generic parameters
23     })();
24 }
25
26 fn main() {
27     foo::<u32>();
28     foo2::<u32>();
29 }