Adds or edits a method contract annotation in a separate annotations.xml file. A method contract has the following syntax:

 contract ::= (clause ';')* clause
 clause ::= args '->' effect
 args ::= ((arg ',')* arg )?
 arg ::= value-constraint
 value-constraint ::= '_' | 'null' | '!null' | 'false' | 'true'
 effect ::= value-constraint | 'fail' | 'new' | 'this' | 'param' number
 number ::= [1-9] [0-9]*
The constraints denote the following:
Examples:

This intention is available for library code. To enable it for project code use the Use external annotations option under Settings | Editor | Code Style | Java | Code Generation.