Buggy code:
private static final String NO_NAME = "" ; private static final ITypeBinding [ ] NO_TYPE_BINDINGS = new ITypeBinding [ 0 ] ; private static final IVariableBinding [ ] NO_VARIABLE_BINDINGS = new IVariableBinding [ 0 ] ; private static final int VALID_MODIFIERS = ( ( ( ( ( ( Modifier . PUBLIC ) | ( Modifier . PROTECTED ) ) | ( Modifier . PRIVATE ) ) | ( Modifier . ABSTRACT ) ) | ( Modifier . STATIC ) ) | ( Modifier . FINAL ) ) | ( Modifier . STRICTFP ) ; private org . eclipse . jdt . internal . compiler . lookup . TypeBinding binding ; private String key ; private BindingResolver resolver ; public TypeBinding ( BindingResolver resolver , org . eclipse . jdt . internal . compiler . lookup . TypeBinding binding ) { } public String getBinaryName ( ) { } public ITypeBinding getBound ( ) { } private IClassFile getClassFile ( char [ ] fileName ) { } private ICompilationUnit getCompilationUnit ( char [ ] fileName ) { } public IVariableBinding [ ] getDeclaredFields ( ) { } public IMethodBinding [ ] getDeclaredMethods ( ) { } public int getDeclaredModifiers ( ) { } public ITypeBinding [ ] getDeclaredTypes ( ) { } public ITypeBinding getDeclaringClass ( ) { } public int getDimensions ( ) { } public ITypeBinding getElementType ( ) { } public ITypeBinding getErasure ( ) { } public ITypeBinding [ ] getInterfaces ( ) { } public IJavaElement getJavaElement ( ) { } public String getKey ( ) { } public int getKind ( ) { } public int getModifiers ( ) { } public String getName ( ) { } public IPackageBinding getPackage ( ) { } private IPackageFragment getPackageFragment ( char [ ] fileName , int lastSlash ) { } public String getQualifiedName ( ) { if ( ( isAnonymous ( ) ) || ( isLocal ( ) ) ) { return TypeBinding . NO_NAME ; } if ( ( isPrimitive ( ) ) || ( isNullType ( ) ) ) { BaseTypeBinding baseTypeBinding = ( ( BaseTypeBinding ) ( this . binding ) ) ; return new String ( baseTypeBinding . simpleName ) ; } if ( isWildcardType ( ) ) { WildcardBinding wildcardBinding = ( ( WildcardBinding ) ( this . binding ) ) ; StringBuffer buffer = new StringBuffer ( ) ; buffer . append ( TypeConstants . WILDCARD_NAME ) ; final ITypeBinding bound = getBound ( ) ; if ( bound != null ) { switch ( wildcardBinding . kind ) { case Wildcard . SUPER : buffer . append ( TypeConstants . WILDCARD_SUPER ) ; break ; case Wildcard . EXTENDS : buffer . append ( TypeConstants . WILDCARD_EXTENDS ) ; } buffer . append ( bound . getQualifiedName ( ) ) ; } return String . valueOf ( buffer ) ; } if ( isRawType ( ) ) { return getErasure ( ) . getQualifiedName ( ) ; } if ( isArray ( ) ) { ITypeBinding elementType = getElementType ( ) ; if ( ( elementType . isLocal ( ) ) || ( elementType . isAnonymous ( ) ) ) { return TypeBinding . NO_NAME ; } final int dimensions = getDimensions ( ) ; char [ ] brackets = new char [ dimensions * 2 ] ; for ( int i = ( dimensions * 2 ) - 1 ; i >= 0 ; i -= 2 ) { brackets [ i ] = ']' ; brackets [ ( i - 1 ) ] = '[' ; } StringBuffer buffer = new StringBuffer ( elementType . getQualifiedName ( ) ) ; buffer . append ( brackets ) ; return String . valueOf ( buffer ) ; } if ( isTypeVariable ( ) ) { TypeVariableBinding typeVariableBinding = ( ( TypeVariableBinding ) ( this . binding ) ) ; return new String ( typeVariableBinding . sourceName ) ; } if ( isMember ( ) ) { StringBuffer buffer = new StringBuffer ( ) ; <START_BUG> buffer . append ( this . resolver . getTypeBinding ( this . binding . enclosingType ( ) ) . getQualifiedName ( ) ) . append ( '.' ) . append ( getName ( ) ) ; <END_BUG> return String . valueOf ( buffer ) ; } if ( isParameterizedType ( ) ) { StringBuffer buffer = new StringBuffer ( ) ; buffer . append ( getErasure ( ) . getQualifiedName ( ) ) ; ITypeBinding [ ] typeArguments = getTypeArguments ( ) ; final int typeArgumentsLength = typeArguments . length ; if ( typeArgumentsLength != 0 ) { buffer . append ( '<' ) ; for ( int i = 0 , max = typeArguments . length ; i < max ; i ++ ) { if ( i > 0 ) { buffer . append ( ',' ) ; } buffer . append ( typeArguments [ i ] . getQualifiedName ( ) ) ; } buffer . append ( '>' ) ; } return String . valueOf ( buffer ) ; } if ( isRawType ( ) ) { return getErasure ( ) . getQualifiedName ( ) ; } PackageBinding packageBinding = this . binding . getPackage ( ) ; StringBuffer buffer = new StringBuffer ( ) ; if ( ( packageBinding != null ) && ( ( packageBinding . compoundName ) != ( CharOperation . NO_CHAR_CHAR ) ) ) { buffer . append ( CharOperation . concatWith ( packageBinding . compoundName , '.' ) ) . append ( '.' ) ; } buffer . append ( getName ( ) ) ; return String . valueOf ( buffer ) ; } public ITypeBinding getSuperclass ( ) { } public ITypeBinding [ ] getTypeArguments ( ) { } public ITypeBinding [ ] getTypeBounds ( ) { } public ITypeBinding [ ] getTypeParameters ( ) { } public boolean isGenericType ( ) { } public boolean isAnnotation ( ) { }

Fix:
buffer . append ( getDeclaringClass ( ) . getQualifiedName ( ) ) . append ( '.' ) . append ( getName ( ) ) ;