anchor.diff:  
   interfaceMemberDeclaration
       :   constDeclaration
  -    |   interfaceMethodDeclaration
  -    |   genericInterfaceMethodDeclaration
  +    |   methodDeclaration[2]
  +    |   genericMethodDeclaration[2]
       |   interfaceDeclaration
       |   annotationTypeDeclaration
       |   classDeclaration
  
positive.code:     |   enumDeclaration
      ;
  
  /* We use rule this even for void methods which cannot have [] after parameters.
     This simplifies grammar and we can consider void to be a type, which
     renders the [] matching as a context-sensitive issue or a semantic check
     for invalid return type after parsing.
   */
  methodDeclaration
      :   (type|VOID) identifier formalParameters (LBRACK RBRACK)*
          (THROWS qualifiedClassNameList)?
          (   methodBody
          |   SEMI
          )
      ;
  
  genericMethodDeclaration
      :   typeParameters methodDeclaration
      ;
  
  constructorDeclaration
  
negative.code: 
  constantDeclarator
      :   identifier (LBRACK RBRACK)* ASSIGN variableInitializer
      ;
  
  variableDeclarators
  