Buggy code:
public class QualifiedNameReference extends NameReference { public char [ ] [ ] tokens ; public long [ ] sourcePositions ; public FieldBinding [ ] otherBindings ; public FieldBinding [ ] otherCodegenBindings ; int [ ] otherDepths ; public int indexOfFirstFieldBinding ; SyntheticAccessMethodBinding syntheticWriteAccessor ; SyntheticAccessMethodBinding [ ] syntheticReadAccessors ; public TypeBinding genericCast ; public TypeBinding [ ] otherGenericCasts ; public QualifiedNameReference ( char [ ] [ ] sources , long [ ] positions , int sourceStart , int sourceEnd ) { } public FlowInfo analyseAssignment ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , Assignment assignment , boolean isCompound ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , boolean valueRequired ) { } public TypeBinding checkFieldAccess ( BlockScope scope ) { } public void computeConversion ( Scope scope , TypeBinding runtimeTimeType , TypeBinding compileTimeType ) { } public void generateAssignment ( BlockScope currentScope , CodeStream codeStream , Assignment assignment , boolean valueRequired ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public void generateCompoundAssignment ( BlockScope currentScope , CodeStream codeStream , Expression expression , int operator , int assignmentImplicitConversion , boolean valueRequired ) { } public void generatePostIncrement ( BlockScope currentScope , CodeStream codeStream , CompoundAssignment postIncrement , boolean valueRequired ) { } public FieldBinding generateReadSequence ( BlockScope currentScope , CodeStream codeStream ) { } public void generateReceiver ( CodeStream codeStream ) { } public TypeBinding [ ] genericTypeArguments ( ) { } protected FieldBinding getCodegenBinding ( int index ) { } protected TypeBinding getGenericCast ( int index ) { } public TypeBinding getOtherFieldBindings ( BlockScope scope ) { } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope , FlowInfo flowInfo ) { } public void manageSyntheticAccessIfNecessary ( BlockScope currentScope , FieldBinding fieldBinding , TypeBinding lastReceiverType , int index , FlowInfo flowInfo ) { } public StringBuffer printExpression ( int indent , StringBuffer output ) { } public TypeBinding reportError ( BlockScope scope ) { } public TypeBinding resolveType ( BlockScope scope ) { this . actualReceiverType = this . receiverType = scope . enclosingSourceType ( ) ; constant = Constant . NotAConstant ; if ( ( this . codegenBinding = this . binding = scope . getBinding ( tokens , ( ( bits ) & ( ASTNode . RestrictiveFlagMASK ) ) , this , true ) ) . isValidBinding ( ) ) { switch ( ( bits ) & ( ASTNode . RestrictiveFlagMASK ) ) { case VARIABLE : case ( TypeConstants . TYPE ) | ( VARIABLE ) : if ( ( binding ) instanceof LocalVariableBinding ) { if ( ( ! ( ( ( LocalVariableBinding ) ( binding ) ) . isFinal ( ) ) ) && ( ( ( bits ) & ( ASTNode . DepthMASK ) ) != 0 ) ) scope . problemReporter ( ) . cannotReferToNonFinalOuterLocal ( ( ( LocalVariableBinding ) ( binding ) ) , this ) ; bits &= ~ ( ASTNode . RestrictiveFlagMASK ) ; bits |= LOCAL ; return this . resolvedType = getOtherFieldBindings ( scope ) ; } if ( ( binding ) instanceof FieldBinding ) { FieldBinding fieldBinding = ( ( FieldBinding ) ( binding ) ) ; MethodScope methodScope = scope . methodScope ( ) ; if ( ( ( ( methodScope . enclosingSourceType ( ) ) == ( fieldBinding . declaringClass ) ) && ( ( methodScope . lastVisibleFieldID ) >= 0 ) ) && ( ( fieldBinding . id ) >= ( methodScope . lastVisibleFieldID ) ) ) { if ( ( ( ! ( fieldBinding . isStatic ( ) ) ) || ( methodScope . isStatic ) ) && ( ( this . indexOfFirstFieldBinding ) == 1 ) ) { scope . problemReporter ( ) . forwardReference ( this , 0 , scope . enclosingSourceType ( ) ) ; } } if ( ( ( ! ( fieldBinding . isStatic ( ) ) ) && ( ( this . indexOfFirstFieldBinding ) == 1 ) ) && ( ( scope . environment ( ) . options . getSeverity ( CompilerOptions . UnqualifiedFieldAccess ) ) != ( ProblemSeverities . Ignore ) ) ) { scope . problemReporter ( ) . unqualifiedFieldAccess ( this , fieldBinding ) ; } bits &= ~ ( ASTNode . RestrictiveFlagMASK ) ; bits |= FIELD ; if ( ( indexOfFirstFieldBinding ) > 1 ) { if ( isTypeUseDeprecated ( this . actualReceiverType , scope ) ) scope . problemReporter ( ) . deprecatedType ( this . actualReceiverType , this ) ; } return this . resolvedType = getOtherFieldBindings ( scope ) ; } bits &= ~ ( ASTNode . RestrictiveFlagMASK ) ; bits |= TypeConstants . TYPE ; case TypeConstants . TYPE : TypeBinding type = ( ( TypeBinding ) ( binding ) ) ; if ( isTypeUseDeprecated ( type , scope ) ) scope . problemReporter ( ) . deprecatedType ( type , this ) ; <START_BUG> return this . resolvedType = convertToRawType ( type , scope ) ; <END_BUG> } } return this . resolvedType = this . reportError ( scope ) ; } protected void setCodegenBinding ( int index , FieldBinding someCodegenBinding ) { } protected void setGenericCast ( int index , TypeBinding someGenericCast ) { } protected void setSyntheticAccessor ( FieldBinding fieldBinding , int index , SyntheticAccessMethodBinding syntheticAccessor ) { } public void setFieldIndex ( int index ) { } public void traverse ( ASTVisitor visitor , BlockScope scope ) { } public String unboundReferenceErrorName ( ) { } }

Fix:
return this . resolvedType = scope . convertToRawType ( type ) ;