Buggy code:
} } if ( argHasError ) { return null ; } } if ( ( this . actualReceiverType ) == null ) { return null ; } this . actualReceiverType = scope . environment ( ) . convertToRawType ( this . receiver . resolvedType ) ; SourceTypeBinding enclosingType = scope . enclosingSourceType ( ) ; this . superAccess = ( enclosingType == null ) ? false : enclosingType . isCompatibleWith ( this . actualReceiverType ) ; if ( this . actualReceiverType . isBaseType ( ) ) { scope . problemReporter ( ) . javadocErrorNoMethodFor ( this , this . actualReceiverType , argumentTypes , scope . getDeclarationModifiers ( ) ) ; return null ; } this . binding = scope . getMethod ( this . actualReceiverType , this . selector , argumentTypes , this ) ; if ( ! ( this . binding . isValidBinding ( ) ) ) { TypeBinding enclosingTypeBinding = this . actualReceiverType ; MethodBinding methodBinding = this . binding ; while ( ( ! ( methodBinding . isValidBinding ( ) ) ) && ( ( enclosingTypeBinding . isMemberType ( ) ) || ( enclosingTypeBinding . isLocalType ( ) ) ) ) { enclosingTypeBinding = enclosingTypeBinding . enclosingType ( ) ; methodBinding = scope . getMethod ( enclosingTypeBinding , this . selector , argumentTypes , this ) ; } if ( methodBinding . isValidBinding ( ) ) { this . binding = methodBinding ; } else { enclosingTypeBinding = this . actualReceiverType ; MethodBinding contructorBinding = this . binding ; while ( ( ! ( contructorBinding . isValidBinding ( ) ) ) && ( ( enclosingTypeBinding . isMemberType ( ) ) || ( enclosingTypeBinding . isLocalType ( ) ) ) ) { enclosingTypeBinding = enclosingTypeBinding . enclosingType ( ) ; if ( CharOperation . equals ( this . selector , enclosingTypeBinding . shortReadableName ( ) ) ) { contructorBinding = scope . getConstructor ( ( ( ReferenceBinding ) ( enclosingTypeBinding ) ) , argumentTypes , this ) ; } } if ( contructorBinding . isValidBinding ( ) ) { this . binding = contructorBinding ; } } } if ( ! ( this . binding . isValidBinding ( ) ) ) { switch ( this . binding . problemId ( ) ) { case ProblemReasons . NonStaticReferenceInConstructorInvocation : case ProblemReasons . NonStaticReferenceInStaticContext : case ProblemReasons . InheritedNameHidesEnclosingName : MethodBinding closestMatch = ( ( ProblemMethodBinding ) ( this . binding ) ) . closestMatch ; if ( closestMatch != null ) { this . binding = closestMatch ; } } } if ( ! ( this . binding . isValidBinding ( ) ) ) { if ( ( this . binding . declaringClass ) == null ) { if ( ( this . actualReceiverType ) instanceof ReferenceBinding ) { this . binding . declaringClass = ( ( ReferenceBinding ) ( this . actualReceiverType ) ) ; } else { scope . problemReporter ( ) . javadocErrorNoMethodFor ( this , this . actualReceiverType , argumentTypes , scope . getDeclarationModifiers ( ) ) ; return null ; } } scope . problemReporter ( ) . javadocInvalidMethod ( this , this . binding , scope . getDeclarationModifiers ( ) ) ; if ( ( this . binding ) instanceof ProblemMethodBinding ) { MethodBinding closestMatch = ( ( ProblemMethodBinding ) ( this . binding ) ) . closestMatch ; if ( closestMatch != null ) this . binding = closestMatch ; } return this . resolvedType = ( ( this . binding ) == null ) ? null : this . binding . returnType ; } else if ( hasArgsTypeVar ) { MethodBinding problem = new ProblemMethodBinding ( this . binding , this . selector , argumentTypes , ProblemReasons . NotFound ) ; scope . problemReporter ( ) . javadocInvalidMethod ( this , problem , scope . getDeclarationModifiers ( ) ) ; } else if ( binding . isVarargs ( ) ) { int length = argumentTypes . length ; if ( ! ( ( ( binding . parameters . length ) == length ) && ( argumentTypes [ ( length - 1 ) ] . isArrayType ( ) ) ) ) { MethodBinding problem = new ProblemMethodBinding ( this . binding , this . selector , argumentTypes , ProblemReasons . NotFound ) ; scope . problemReporter ( ) . javadocInvalidMethod ( this , problem , scope . getDeclarationModifiers ( ) ) ; } } else if ( ( ( this . binding ) instanceof ParameterizedMethodBinding ) && ( ( this . actualReceiverType ) instanceof ReferenceBinding ) ) { ParameterizedMethodBinding paramMethodBinding = ( ( ParameterizedMethodBinding ) ( this . binding ) ) ; if ( paramMethodBinding . hasSubstitutedParameters ( ) ) { int length = argumentTypes . length ; for ( int i = 0 ; i < length ; i ++ ) { if ( ( ( paramMethodBinding . parameters [ i ] ) != ( argumentTypes [ i ] ) ) && ( ( paramMethodBinding . parameters [ i ] . erasure ( ) ) != ( argumentTypes [ i ] . erasure ( ) ) ) ) { MethodBinding problem = new ProblemMethodBinding ( this . binding , this . selector , argumentTypes , ProblemReasons . NotFound ) ; scope . problemReporter ( ) . javadocInvalidMethod ( this , problem , scope . getDeclarationModifiers ( ) ) ; break ; } } } } <START_BUG> if ( isMethodUseDeprecated ( this . binding , scope ) ) { <END_BUG> scope . problemReporter ( ) . javadocDeprecatedMethod ( this . binding , this , scope . getDeclarationModifiers ( ) ) ; } return this . resolvedType = this . binding . returnType ; } public boolean isSuperAccess ( ) { } public StringBuffer printExpression ( int indent , StringBuffer output ) { } public TypeBinding resolveType ( BlockScope scope ) { } public TypeBinding resolveType ( ClassScope scope ) { } public void traverse ( ASTVisitor visitor , BlockScope blockScope ) { } }

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