| //! Test that empty type parameter list <> is equivalent to no type parameters | |
| //! | |
| //! Checks` that empty angle brackets <> are syntactically valid and equivalent | |
| //! to omitting type parameters entirely across various language constructs. | |
| //@ run-pass | |
| struct S<>; | |
| trait T<> {} //~ WARN trait `T` is never used | |
| enum E<> { | |
| V | |
| } | |
| impl<> T<> for S<> {} | |
| impl T for E {} | |
| fn foo<>() {} | |
| fn bar() {} | |
| fn main() { | |
| let _ = S; | |
| let _ = S::<>; | |
| let _ = E::V; | |
| let _ = E::<>::V; | |
| foo(); | |
| foo::<>(); | |
| // Test that we can supply <> to non-generic things | |
| bar::<>(); | |
| let _: i32<>; | |
| } |