| //! 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<>; |
| } |