26 lines
647 B
Rust
26 lines
647 B
Rust
//@ 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::<u32>(&3);
|
|
used::<u32>(&3);
|
|
}
|