Buggy code:
public abstract class Scope implements BaseTypes , CompilerModifiers , ProblemReasons , TagBits , TypeConstants , TypeIds { public static final int BLOCK_SCOPE = 1 ; public static final int CLASS_SCOPE = 3 ; public static final int COMPILATION_UNIT_SCOPE = 4 ; public static final int METHOD_SCOPE = 2 ; public static final int NOT_COMPATIBLE = - 1 ; public static final int COMPATIBLE = 0 ; public static final int AUTOBOX_COMPATIBLE = 1 ; public static final int VARARGS_COMPATIBLE = 2 ; public int kind ; public Scope parent ; public static int compareTypes ( TypeBinding left , TypeBinding right ) { } public static TypeBinding getBaseType ( char [ ] name ) { } public static ReferenceBinding [ ] substitute ( Substitution substitution , ReferenceBinding [ ] originalTypes ) { } public static TypeBinding substitute ( Substitution substitution , TypeBinding originalType ) { } public static TypeBinding [ ] substitute ( Substitution substitution , TypeBinding [ ] originalTypes ) { } protected Scope ( int kind , Scope parent ) { } public TypeBinding boxing ( TypeBinding type ) { } public final ClassScope classScope ( ) { } public final CompilationUnitScope compilationUnitScope ( ) { } public final CompilerOptions compilerOptions ( ) { } protected final MethodBinding computeCompatibleMethod ( MethodBinding method , TypeBinding [ ] arguments , InvocationSite invocationSite ) { } protected boolean connectTypeVariables ( TypeParameter [ ] typeParameters ) { } public TypeBinding convertToRawType ( TypeBinding type ) { int dimension ; TypeBinding originalType ; switch ( type . kind ( ) ) { case Binding . BASE_TYPE : case Binding . TYPE_PARAMETER : case Binding . WILDCARD_TYPE : case Binding . RAW_TYPE : return type ; case Binding . ARRAY_TYPE : dimension = type . dimensions ( ) ; originalType = type . leafComponentType ( ) ; break ; default : dimension = 0 ; originalType = type ; } boolean needToConvert ; switch ( originalType . kind ( ) ) { case Binding . BASE_TYPE : return type ; case Binding . GENERIC_TYPE : needToConvert = true ; break ; case Binding . PARAMETERIZED_TYPE : ParameterizedTypeBinding paramType = ( ( ParameterizedTypeBinding ) ( originalType ) ) ; needToConvert = paramType . type . isGenericType ( ) ; break ; default : needToConvert = false ; break ; } ReferenceBinding originalEnclosing = originalType . enclosingType ( ) ; TypeBinding convertedType ; if ( originalEnclosing == null ) { convertedType = ( needToConvert ) ? environment ( ) . createRawType ( ( ( ReferenceBinding ) ( originalType . erasure ( ) ) ) , null ) : originalType ; } else { ReferenceBinding convertedEnclosing ; switch ( originalEnclosing . kind ( ) ) { case Binding . GENERIC_TYPE : case Binding . PARAMETERIZED_TYPE : if ( needToConvert || ( ( ( ReferenceBinding ) ( originalType ) ) . isStatic ( ) ) ) { convertedEnclosing = ( ( ReferenceBinding ) ( convertToRawType ( originalEnclosing ) ) ) ; } else { convertedEnclosing = originalEnclosing ; } break ; case Binding . RAW_TYPE : <START_BUG> needToConvert = ! ( ( ( ReferenceBinding ) ( originalType ) ) . isStatic ( ) ) ; <END_BUG> default : convertedEnclosing = originalEnclosing ; break ; } ReferenceBinding originalGeneric = ( ( ReferenceBinding ) ( originalType . erasure ( ) ) ) ; if ( needToConvert ) { convertedType = environment ( ) . createRawType ( originalGeneric , convertedEnclosing ) ; } else if ( originalEnclosing != convertedEnclosing ) { if ( originalGeneric . isStatic ( ) ) convertedType = createParameterizedType ( originalGeneric , null , convertedEnclosing ) ; else convertedType = environment ( ) . createRawType ( originalGeneric , convertedEnclosing ) ; } else { convertedType = originalType ; } } if ( originalType != convertedType ) { return dimension > 0 ? ( ( TypeBinding ) ( createArrayType ( convertedType , dimension ) ) ) : convertedType ; } return type ; } public ArrayBinding createArrayType ( TypeBinding type , int dimension ) { } public ParameterizedTypeBinding createParameterizedType ( ReferenceBinding genericType , TypeBinding [ ] arguments , ReferenceBinding enclosingType ) { } public TypeVariableBinding [ ] createTypeVariables ( TypeParameter [ ] typeParameters , Binding declaringElement ) { } public final ClassScope enclosingClassScope ( ) { } public final MethodScope enclosingMethodScope ( ) { } public ReferenceContext enclosingReferenceContext ( ) { } public final SourceTypeBinding enclosingSourceType ( ) { } public final LookupEnvironment environment ( ) { } public MethodBinding findDefaultAbstractMethod ( ReferenceBinding receiverType , char [ ] selector , TypeBinding [ ] argumentTypes , InvocationSite invocationSite , ReferenceBinding classHierarchyStart , MethodBinding matchingMethod , ObjectVector found ) { } public ReferenceBinding findDirectMemberType ( char [ ] typeName , ReferenceBinding enclosingType ) { } public MethodBinding findExactMethod ( ReferenceBinding receiverType , char [ ] selector , TypeBinding [ ] argumentTypes , InvocationSite invocationSite ) { } public FieldBinding findField ( TypeBinding receiverType , char [ ] fieldName , InvocationSite invocationSite , boolean needResolve ) { } public ReferenceBinding findMemberType ( char [ ] typeName , ReferenceBinding enclosingType ) { } public MethodBinding findMethod ( ReferenceBinding receiverType , char [ ] selector , TypeBinding [ ] argumentTypes , InvocationSite invocationSite ) { } public MethodBinding findMethodForArray ( ArrayBinding receiverType , char [ ] selector , TypeBinding [ ] argumentTypes , InvocationSite invocationSite ) { } public MethodBinding findMethodInSuperInterfaces ( ReferenceBinding currentType , char [ ] selector , ObjectVector found , MethodBinding matchingMethod ) { } public ReferenceBinding findType ( char [ ] typeName , PackageBinding declarationPackage , PackageBinding invocationPackage ) { } public LocalVariableBinding findVariable ( char [ ] variable ) { } public Binding getBinding ( char [ ] name , int mask , InvocationSite invocationSite , boolean needResolve ) { } public MethodBinding getConstructor ( ReferenceBinding receiverType , TypeBinding [ ] argumentTypes , InvocationSite invocationSite ) { } public final PackageBinding getCurrentPackage ( ) { } public int getDeclarationModifiers ( ) { } public FieldBinding getField ( TypeBinding receiverType , char [ ] fieldName , InvocationSite invocationSite ) { }

Fix:
needToConvert |= ! ( ( ( ReferenceBinding ) ( originalType ) ) . isStatic ( ) ) ;