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:     ;
  
  memberDeclaration
      :   methodDeclaration[0]
      |   genericMethodDeclaration[0]
      |   fieldDeclaration
      |   constructorDeclaration
      |   genericConstructorDeclaration
  