Buggy code:
public void illegalModifierForMethod ( AbstractMethodDeclaration methodDecl ) { } public void illegalModifierForVariable ( LocalDeclaration localDecl , boolean complainAsArgument ) { } public void illegalPrimitiveOrArrayTypeForEnclosingInstance ( TypeBinding enclosingType , ASTNode location ) { } public void illegalQualifiedParameterizedTypeAllocation ( TypeReference qualifiedTypeReference , TypeBinding allocatedType ) { } public void illegalStaticModifierForMemberType ( SourceTypeBinding type ) { } public void illegalUsageOfQualifiedTypeReference ( QualifiedTypeReference qualifiedTypeReference ) { } public void illegalVararg ( Argument argType , AbstractMethodDeclaration methodDecl ) { } public void illegalVisibilityModifierCombinationForField ( ReferenceBinding type , FieldDeclaration fieldDecl ) { } public void illegalVisibilityModifierCombinationForMemberType ( SourceTypeBinding type ) { } public void illegalVisibilityModifierCombinationForMethod ( ReferenceBinding type , AbstractMethodDeclaration methodDecl ) { } public void illegalVisibilityModifierForInterfaceMemberType ( SourceTypeBinding type ) { } public void illegalVoidExpression ( ASTNode location ) { } public void importProblem ( ImportReference importRef , Binding expectedImport ) { } public void incompatibleExceptionInThrowsClause ( SourceTypeBinding type , MethodBinding currentMethod , MethodBinding inheritedMethod , ReferenceBinding exceptionType ) { } public void incompatibleReturnType ( MethodBinding currentMethod , MethodBinding inheritedMethod ) { } public void incorrectArityForParameterizedType ( ASTNode location , TypeBinding type , TypeBinding [ ] argumentTypes ) { } public void incorrectLocationForNonEmptyDimension ( ArrayAllocationExpression expression , int index ) { } public void incorrectSwitchType ( Expression expression , TypeBinding testType ) { } public void indirectAccessToStaticField ( ASTNode location , FieldBinding field ) { } public void indirectAccessToStaticMethod ( ASTNode location , MethodBinding method ) { } public void indirectAccessToStaticType ( ASTNode location , ReferenceBinding type ) { } public void inheritedMethodReducesVisibility ( SourceTypeBinding type , MethodBinding concreteMethod , MethodBinding [ ] abstractMethods ) { } public void inheritedMethodsHaveIncompatibleReturnTypes ( SourceTypeBinding type , MethodBinding [ ] inheritedMethods , int length ) { } public void inheritedMethodsHaveNameClash ( SourceTypeBinding type , MethodBinding oneMethod , MethodBinding twoMethod ) { } public void initializerMustCompleteNormally ( FieldDeclaration fieldDecl ) { } public void innerTypesCannotDeclareStaticInitializers ( ReferenceBinding innerType , ASTNode location ) { } public void interfaceCannotHaveConstructors ( ConstructorDeclaration constructor ) { } public void interfaceCannotHaveInitializers ( SourceTypeBinding type , FieldDeclaration fieldDecl ) { } public void invalidAnnotationMemberType ( MethodDeclaration methodDecl ) { } public void invalidBreak ( ASTNode location ) { } public void invalidConstructor ( Statement statement , MethodBinding targetConstructor ) { } public void invalidContinue ( ASTNode location ) { } public void invalidEnclosingType ( Expression expression , TypeBinding type , ReferenceBinding enclosingType ) { } public void invalidExplicitConstructorCall ( ASTNode location ) { } public void invalidExpressionAsStatement ( Expression expression ) { } public void invalidField ( FieldReference fieldRef , TypeBinding searchedType ) { } public void invalidField ( NameReference nameRef , FieldBinding field ) { } public void invalidField ( QualifiedNameReference nameRef , FieldBinding field , int index , TypeBinding searchedType ) { } public void invalidFileNameForPackageAnnotations ( Annotation annotation ) { } public void invalidMethod ( MessageSend messageSend , MethodBinding method ) { } public void invalidNullToSynchronize ( Expression expression ) { } public void invalidOperator ( BinaryExpression expression , TypeBinding leftType , TypeBinding rightType ) { } public void invalidOperator ( CompoundAssignment assign , TypeBinding leftType , TypeBinding rightType ) { } public void invalidOperator ( UnaryExpression expression , TypeBinding type ) { } public void invalidParameterizedExceptionType ( TypeBinding exceptionType , ASTNode location ) { } public void invalidParenthesizedExpression ( ASTNode reference ) { } public void invalidType ( ASTNode location , TypeBinding type ) { int id = IProblem . UndefinedType ; switch ( type . problemId ( ) ) { case ProblemReasons . NotFound : id = IProblem . UndefinedType ; break ; case ProblemReasons . NotVisible : id = IProblem . NotVisibleType ; break ; case ProblemReasons . Ambiguous : id = IProblem . AmbiguousType ; break ; case ProblemReasons . InternalNameProvided : id = IProblem . InternalTypeNameProvided ; break ; case ProblemReasons . InheritedNameHidesEnclosingName : id = IProblem . InheritedTypeHidesEnclosingName ; break ; case ProblemReasons . NonStaticReferenceInStaticContext : <START_BUG> id = TypeVariableReferenceFromStaticContext ; <END_BUG> break ; case ProblemReasons . IllegalSuperTypeVariable : id = IProblem . IllegalTypeVariableSuperReference ; break ; case ProblemReasons . NoError : default : needImplementation ( ) ; break ; } int end = location . sourceEnd ; if ( location instanceof QualifiedNameReference ) { QualifiedNameReference ref = ( ( QualifiedNameReference ) ( location ) ) ; if ( ( ref . indexOfFirstFieldBinding ) >= 1 ) end = ( ( int ) ( ref . sourcePositions [ ( ( ref . indexOfFirstFieldBinding ) - 1 ) ] ) ) ; } else if ( location instanceof ArrayQualifiedTypeReference ) { ArrayQualifiedTypeReference arrayQualifiedTypeReference = ( ( ArrayQualifiedTypeReference ) ( location ) ) ; long [ ] positions = arrayQualifiedTypeReference . sourcePositions ; end = ( ( int ) ( positions [ ( ( positions . length ) - 1 ) ] ) ) ; } else if ( location instanceof QualifiedTypeReference ) { QualifiedTypeReference ref = ( ( QualifiedTypeReference ) ( location ) ) ; if ( type instanceof ReferenceBinding ) { char [ ] [ ] name = ( ( ReferenceBinding ) ( type ) ) . compoundName ; end = ( ( int ) ( ref . sourcePositions [ ( ( name . length ) - 1 ) ] ) ) ; } } else if ( location instanceof ImportReference ) { ImportReference ref = ( ( ImportReference ) ( location ) ) ; if ( type instanceof ReferenceBinding ) { char [ ] [ ] name = ( ( ReferenceBinding ) ( type ) ) . compoundName ; end = ( ( int ) ( ref . sourcePositions [ ( ( name . length ) - 1 ) ] ) ) ; } } else if ( location instanceof ArrayTypeReference ) { ArrayTypeReference arrayTypeReference = ( ( ArrayTypeReference ) ( location ) ) ; end = arrayTypeReference . originalSourceEnd ; } this . handle ( id , new String [ ] { new String ( type . leafComponentType ( ) . readableName ( ) ) }

Fix:
id = IProblem . NonStaticTypeFromStaticInvocation ;