Buggy code:
public class QualifiedAllocationExpression extends AllocationExpression { public Expression enclosingInstance ; public AnonymousLocalTypeDeclaration anonymousType ; public QualifiedAllocationExpression ( ) { } public QualifiedAllocationExpression ( AnonymousLocalTypeDeclaration anonymousType ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public Expression enclosingInstance ( ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public boolean isSuperAccess ( ) { } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope ) { } public TypeBinding resolveType ( BlockScope scope ) { if ( ( ( anonymousType ) == null ) && ( ( enclosingInstance ) == null ) ) { return super . resolveType ( scope ) ; } constant = NotAConstant ; TypeBinding enclosingInstanceType = null ; TypeBinding receiverType = null ; boolean hasError = false ; if ( ( anonymousType ) == null ) { if ( ( enclosingInstanceType = enclosingInstance . resolveType ( scope ) ) == null ) { hasError = true ; } else if ( ( enclosingInstanceType . isBaseType ( ) ) || ( enclosingInstanceType . isArrayType ( ) ) ) { scope . problemReporter ( ) . illegalPrimitiveOrArrayTypeForEnclosingInstance ( enclosingInstanceType , enclosingInstance ) ; } else <START_BUG> if ( ( this . expressionType = receiverType = ( ( SingleTypeReference ) ( type ) ) . resolveTypeEnclosing ( scope , ( ( ReferenceBinding ) ( enclosingInstanceType ) ) ) ) == null ) { <END_BUG> hasError = true ; } TypeBinding [ ] argumentTypes = NoParameters ; if ( ( arguments ) != null ) { int length = arguments . length ; argumentTypes = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) if ( ( argumentTypes [ i ] = arguments [ i ] . resolveType ( scope ) ) == null ) { hasError = true ; } } if ( hasError ) { return receiverType ; } if ( ! ( receiverType . canBeInstantiated ( ) ) ) { scope . problemReporter ( ) . cannotInstantiate ( type , receiverType ) ; return receiverType ; } if ( ( binding = scope . getConstructor ( ( ( ReferenceBinding ) ( receiverType ) ) , argumentTypes , this ) ) . isValidBinding ( ) ) { if ( isMethodUseDeprecated ( binding , scope ) ) scope . problemReporter ( ) . deprecatedMethod ( binding , this ) ; if ( ( arguments ) != null ) for ( int i = 0 ; i < ( arguments . length ) ; i ++ ) arguments [ i ] . implicitWidening ( binding . parameters [ i ] , argumentTypes [ i ] ) ; } else { if ( ( binding . declaringClass ) == null ) binding . declaringClass = ( ( ReferenceBinding ) ( receiverType ) ) ; scope . problemReporter ( ) . invalidConstructor ( this , binding ) ; return receiverType ; } ReferenceBinding expectedType = binding . declaringClass . enclosingType ( ) ; if ( org . eclipse . jdt . internal . compiler . lookup . Scope . areTypesCompatible ( enclosingInstanceType , expectedType ) ) return receiverType ; scope . problemReporter ( ) . typeMismatchErrorActualTypeExpectedType ( enclosingInstance , enclosingInstanceType , expectedType ) ; return receiverType ; } if ( ( enclosingInstance ) != null ) { if ( ( enclosingInstanceType = enclosingInstance . resolveType ( scope ) ) == null ) { hasError = true ; } else if ( ( enclosingInstanceType . isBaseType ( ) ) || ( enclosingInstanceType . isArrayType ( ) ) ) { scope . problemReporter ( ) . illegalPrimitiveOrArrayTypeForEnclosingInstance ( enclosingInstanceType , enclosingInstance ) ; hasError = true ; } else { receiverType = ( ( SingleTypeReference ) ( type ) ) . resolveTypeEnclosing ( scope , ( ( ReferenceBinding ) ( enclosingInstanceType ) ) ) ; } } else { receiverType = type . resolveType ( scope ) ; } if ( receiverType == null ) { hasError = true ; } else if ( ( ( ReferenceBinding ) ( receiverType ) ) . isFinal ( ) ) { scope . problemReporter ( ) . anonymousClassCannotExtendFinalClass ( type , receiverType ) ; hasError = true ; } TypeBinding [ ] argumentTypes = NoParameters ; if ( ( arguments ) != null ) { int length = arguments . length ; argumentTypes = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) if ( ( argumentTypes [ i ] = arguments [ i ] . resolveType ( scope ) ) == null ) { hasError = true ; } } if ( hasError ) { return receiverType ; } ReferenceBinding superBinding = ( receiverType . isInterface ( ) ) ? scope . getJavaLangObject ( ) : ( ( ReferenceBinding ) ( receiverType ) ) ; MethodBinding inheritedBinding = scope . getConstructor ( superBinding , argumentTypes , this ) ; if ( ! ( inheritedBinding . isValidBinding ( ) ) ) { if ( ( inheritedBinding . declaringClass ) == null ) inheritedBinding . declaringClass = superBinding ; scope . problemReporter ( ) . invalidConstructor ( this , inheritedBinding ) ; return null ; } if ( ( enclosingInstance ) != null ) { if ( ! ( org . eclipse . jdt . internal . compiler . lookup . Scope . areTypesCompatible ( enclosingInstanceType , inheritedBinding . declaringClass . enclosingType ( ) ) ) ) { scope . problemReporter ( ) . typeMismatchErrorActualTypeExpectedType ( enclosingInstance , enclosingInstanceType , inheritedBinding . declaringClass . enclosingType ( ) ) ; return null ; } } if ( ( arguments ) != null ) for ( int i = 0 ; i < ( arguments . length ) ; i ++ ) arguments [ i ] . implicitWidening ( inheritedBinding . parameters [ i ] , argumentTypes [ i ] ) ;

Fix:
if ( ( this . resolvedType = receiverType = ( ( SingleTypeReference ) ( type ) ) . resolveTypeEnclosing ( scope , ( ( ReferenceBinding ) ( enclosingInstanceType ) ) ) ) == null ) {