Buggy code:
} } } else { if ( ( this . type ) == null ) { receiverType = scope . enclosingSourceType ( ) ; } else { receiverType = this . type . resolveType ( scope , true ) ; checkParameterizedAllocation : { if ( receiverType == null ) break checkParameterizedAllocation ; if ( ( this . type ) instanceof ParameterizedQualifiedTypeReference ) { ReferenceBinding currentType = ( ( ReferenceBinding ) ( receiverType ) ) ; do { if ( ( ( currentType . modifiers ) & ( ClassFileConstants . AccStatic ) ) != 0 ) break checkParameterizedAllocation ; if ( currentType . isRawType ( ) ) break checkParameterizedAllocation ; } while ( ( currentType = currentType . enclosingType ( ) ) != null ) ; ParameterizedQualifiedTypeReference qRef = ( ( ParameterizedQualifiedTypeReference ) ( this . type ) ) ; for ( int i = ( qRef . typeArguments . length ) - 2 ; i >= 0 ; i -- ) { if ( ( qRef . typeArguments [ i ] ) != null ) { scope . problemReporter ( ) . illegalQualifiedParameterizedTypeAllocation ( this . type , receiverType ) ; break ; } } } } } } if ( receiverType == null ) { hasError = true ; } else if ( ( ( ReferenceBinding ) ( receiverType ) ) . isFinal ( ) ) { if ( ( this . anonymousType ) != null ) { if ( ! ( receiverType . isEnum ( ) ) ) { scope . problemReporter ( ) . anonymousClassCannotExtendFinalClass ( type , receiverType ) ; hasError = true ; } } else if ( ! ( receiverType . canBeInstantiated ( ) ) ) { scope . problemReporter ( ) . cannotInstantiate ( type , receiverType ) ; return this . resolvedType = receiverType ; } } if ( ( this . typeArguments ) != null ) { int length = this . typeArguments . length ; this . genericTypeArguments = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { TypeBinding argType = this . typeArguments [ i ] . resolveType ( scope , true ) ; if ( argType == null ) return null ; this . genericTypeArguments [ i ] = argType ; } } TypeBinding [ ] argumentTypes = NoParameters ; if ( ( arguments ) != null ) { int length = arguments . length ; argumentTypes = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { Expression argument = this . arguments [ i ] ; if ( argument instanceof CastExpression ) { argument . bits |= ASTNode . DisableUnnecessaryCastCheck ; argsContainCast = true ; } if ( ( argumentTypes [ i ] = argument . resolveType ( scope ) ) == null ) { hasError = true ; } } } if ( hasError ) return this . resolvedType = receiverType ; if ( ( this . anonymousType ) == null ) { if ( ! ( receiverType . canBeInstantiated ( ) ) ) { scope . problemReporter ( ) . cannotInstantiate ( type , receiverType ) ; return this . resolvedType = receiverType ; } ReferenceBinding allocationType = ( ( ReferenceBinding ) ( receiverType ) ) ; if ( ( this . binding = scope . getConstructor ( allocationType , argumentTypes , this ) ) . isValidBinding ( ) ) { <START_BUG> if ( isMethodUseDeprecated ( binding , scope ) ) { <END_BUG> scope . problemReporter ( ) . deprecatedMethod ( this . binding , this ) ; } ASTNode . checkInvocationArguments ( scope , null , allocationType , binding , this . arguments , argumentTypes , argsContainCast , this ) ; } else { if ( ( this . binding . declaringClass ) == null ) { this . binding . declaringClass = allocationType ; } scope . problemReporter ( ) . invalidConstructor ( this , this . binding ) ; return this . resolvedType = receiverType ; } ReferenceBinding expectedType = this . binding . declaringClass . enclosingType ( ) ; if ( expectedType != enclosingInstanceType ) scope . compilationUnitScope ( ) . recordTypeConversion ( expectedType , enclosingInstanceType ) ; if ( ( enclosingInstanceType . isCompatibleWith ( expectedType ) ) || ( scope . isBoxingCompatibleWith ( enclosingInstanceType , expectedType ) ) ) { enclosingInstance . computeConversion ( scope , expectedType , enclosingInstanceType ) ; return this . resolvedType = receiverType ; } scope . problemReporter ( ) . typeMismatchError ( enclosingInstanceType , expectedType , this . enclosingInstance ) ; return this . resolvedType = receiverType ; } if ( receiverType . isTypeVariable ( ) ) { receiverType = new ProblemReferenceBinding ( receiverType . sourceName ( ) , ( ( ReferenceBinding ) ( receiverType ) ) , ProblemReasons . IllegalSuperTypeVariable ) ; scope . problemReporter ( ) . invalidType ( this , receiverType ) ; return null ; } else if ( ( ( type ) != null ) && ( receiverType . isEnum ( ) ) ) { scope . problemReporter ( ) . cannotInstantiate ( type , receiverType ) ; return this . resolvedType = receiverType ; } this . superTypeBinding = ( receiverType . isInterface ( ) ) ? scope . getJavaLangObject ( ) : ( ( ReferenceBinding ) ( receiverType ) ) ; scope . addAnonymousType ( this . anonymousType , ( ( ReferenceBinding ) ( receiverType ) ) ) ; this . anonymousType . resolve ( scope ) ; if ( ( ( receiverType . tagBits ) & ( TagBits . HasDirectWildcard ) ) != 0 ) { scope . problemReporter ( ) . superTypeCannotUseWildcard ( anonymousType . binding , this . type , receiverType ) ; } MethodBinding inheritedBinding = scope . getConstructor ( this . superTypeBinding , argumentTypes , this ) ;

Fix:
if ( isMethodUseDeprecated ( binding , scope , true ) ) {