Buggy code:
public class QualifiedNameReference extends NameReference { public char [ ] [ ] tokens ; public FieldBinding [ ] otherBindings ; public int indexOfFirstFieldBinding ; SyntheticAccessMethodBinding syntheticWriteAccessor ; SyntheticAccessMethodBinding [ ] syntheticReadAccessors ; protected FieldBinding lastFieldBinding ; public QualifiedNameReference ( char [ ] [ ] sources , 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 generateAssignment ( BlockScope currentScope , CodeStream codeStream , Assignment assignment , boolean valueRequired ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { int pc = codeStream . position ; if ( ( constant ) != ( NotAConstant ) ) { if ( valueRequired ) { codeStream . generateConstant ( constant , implicitConversion ) ; } } else { generateReadSequence ( currentScope , codeStream , valueRequired ) ; if ( valueRequired ) { if ( ( lastFieldBinding . declaringClass ) == null ) { codeStream . arraylength ( ) ; codeStream . generateImplicitConversion ( implicitConversion ) ; } else { if ( ( lastFieldBinding . constant ) != ( NotAConstant ) ) { codeStream . generateConstant ( lastFieldBinding . constant , implicitConversion ) ; } else { SyntheticAccessMethodBinding accessor = ( ( syntheticReadAccessors ) == null ) ? null : syntheticReadAccessors [ ( ( syntheticReadAccessors . length ) - 1 ) ] ; if ( accessor == null ) { if ( lastFieldBinding . isStatic ( ) ) { codeStream . getstatic ( lastFieldBinding ) ; } else { codeStream . getfield ( lastFieldBinding ) ; } } else { codeStream . invokestatic ( accessor ) ; } codeStream . generateImplicitConversion ( implicitConversion ) ; } } } } <START_BUG> codeStream . recordPositionsFrom ( pc , this ) ; <END_BUG> } 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 void generateReadSequence ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public void generateReceiver ( CodeStream codeStream ) { } public TypeBinding getOtherFieldBindings ( BlockScope scope ) { } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope ) { } public void manageSyntheticReadAccessIfNecessary ( BlockScope currentScope , FieldBinding fieldBinding , int index ) { } public void manageSyntheticWriteAccessIfNecessary ( BlockScope currentScope , FieldBinding fieldBinding ) { } public TypeBinding reportError ( BlockScope scope ) { } public TypeBinding resolveType ( BlockScope scope ) { } public void setFieldIndex ( int index ) { } public String toStringExpression ( ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , BlockScope scope ) { } public String unboundReferenceErrorName ( ) { } }

Fix:
codeStream . recordPositionsFrom ( pc , this . sourceStart ) ;