| // Ensure that we reject generic parameters on foreign items. | |
| extern "C" { | |
| fn foo<T>(); //~ ERROR foreign items may not have type parameters | |
| // Furthermore, check that type parameter defaults lead to a *hard* error, | |
| // not just a lint error, for maximum forward compatibility. | |
| #[allow(invalid_type_param_default)] // Should have no effect here. | |
| fn bar<T = ()>(); //~ ERROR foreign items may not have type parameters | |
| //~^ ERROR defaults for generic parameters are not allowed here | |
| } | |
| fn main() { | |
| unsafe { foo::<i32>() }; | |
| } |