about summary refs log tree commit diff
path: root/tests/ui/generics/generic-extern.rs
blob: b4f00fc11876706e4c0e6e4862460376e41fb94a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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>() };
}