| // RUN: %target-parse-verify-swift |
| |
| prefix operator +++ {} |
| postfix operator +++ {} |
| infix operator +++ {} |
| infix operator +++= { |
| associativity right |
| } |
| infix operator *** { |
| precedence 123 |
| } |
| infix operator --- { |
| precedence 123 |
| associativity left |
| } |
| infix operator >>> { |
| precedence 123 |
| associativity right |
| } |
| infix operator &&& { |
| associativity none |
| precedence 123 |
| } |
| |
| |
| prefix operator // expected-error {{expected operator name in operator declaration}} |
| |
| ; |
| prefix operator %%+ // expected-error {{expected '{' after operator name in 'operator' declaration}} |
| |
| prefix operator %%/ { |
| + // expected-error {{expected operator attribute identifier in 'operator' declaration body}} |
| } |
| |
| |
| prefix operator %%% { |
| associativity none // expected-error{{'associativity' is not a valid prefix operator attribute}} |
| } |
| postfix operator %%% { |
| associativity none // expected-error{{'associativity' is not a valid postfix operator attribute}} |
| } |
| |
| infix operator !!! { |
| associativity none |
| associativity left // expected-error{{'associativity' for infix operator declared multiple times}} |
| } |
| |
| infix operator ^^^ { |
| precedence 22 |
| precedence 44 // expected-error{{'precedence' for infix operator declared multiple times}} |
| } |
| |
| infix operator === { |
| associativity free // expected-error{{'free' is not a valid infix operator associativity}} |
| } |
| |
| infix operator !== { |
| associativity 123 // expected-error{{expected identifier after 'associativity' in 'operator' declaration body}} |
| } |
| |
| infix operator !!= { |
| precedence blah // expected-error{{expected integer literal after 'precedence' in 'operator' declaration body}} |
| } |
| |
| infix operator !<> { |
| runcibility 12 // expected-error{{'runcibility' is not a valid infix operator attribute}} |
| } |
| |
| class Foo { |
| infix operator ||| {} // expected-error{{'operator' may only be declared at file scope}} |
| } |
| |
| |
| // rdar://14690497 |
| infix operator ~> { precedence 99999 } // expected-error {{'precedence' must be in the range of 0 to 255}} |
| |
| infix operator ->= { |
| assignment |
| } |
| |
| infix operator ->== { |
| assignment assignment // expected-error{{'assignment' for infix operator declared multiple}} |
| } |
| |