Buggy code:
public class CodeSnippetMessageSend extends MessageSend implements ProblemReasons , EvaluationConstants { EvaluationContext evaluationContext ; FieldBinding delegateThis ; public CodeSnippetMessageSend ( EvaluationContext evaluationContext ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { int pc = codeStream . position ; if ( binding . canBeSeenBy ( receiverType , this , currentScope ) ) { boolean isStatic = binding . isStatic ( ) ; if ( ( ! isStatic ) && ( ( ( bits ) & ( ASTNode . DepthMASK ) ) != 0 ) ) { Object [ ] path = currentScope . getExactEmulationPath ( currentScope . enclosingSourceType ( ) . enclosingTypeAt ( ( ( ( bits ) & ( ASTNode . DepthMASK ) ) > > ( ASTNode . DepthSHIFT ) ) ) ) ; if ( path == null ) { currentScope . problemReporter ( ) . needImplementation ( ) ; } else { codeStream . generateOuterAccess ( path , this , currentScope ) ; } } else { receiver . generateCode ( currentScope , codeStream , ( ! isStatic ) ) ; } if ( ( arguments ) != null ) { for ( int i = 0 , max = arguments . length ; i < max ; i ++ ) { arguments [ i ] . generateCode ( currentScope , codeStream , true ) ; } } if ( isStatic ) { codeStream . invokestatic ( binding ) ; } else { if ( receiver . isSuper ( ) ) { codeStream . invokespecial ( binding ) ; } else { if ( binding . declaringClass . isInterface ( ) ) { codeStream . invokeinterface ( binding ) ; } else { codeStream . invokevirtual ( binding ) ; } } } } else { ( ( CodeSnippetCodeStream ) ( codeStream ) ) . generateEmulationForMethod ( currentScope , binding ) ; boolean isStatic = binding . isStatic ( ) ; if ( ( ! isStatic ) && ( ( ( bits ) & ( ASTNode . DepthMASK ) ) != 0 ) ) { currentScope . problemReporter ( ) . needImplementation ( ) ; } else { receiver . generateCode ( currentScope , codeStream , ( ! isStatic ) ) ; } if ( isStatic ) { codeStream . aconst_null ( ) ; } if ( ( arguments ) != null ) { int argsLength = arguments . length ; codeStream . generateInlinedValue ( argsLength ) ; codeStream . newArray ( currentScope , new ArrayBinding ( currentScope . getType ( JAVA_LANG_OBJECT ) , 1 ) ) ; codeStream . dup ( ) ; for ( int i = 0 ; i < argsLength ; i ++ ) { codeStream . generateInlinedValue ( i ) ; arguments [ i ] . generateCode ( currentScope , codeStream , true ) ; if ( binding . parameters [ i ] . isBaseType ( ) ) { ( ( CodeSnippetCodeStream ) ( codeStream ) ) . generateObjectWrapperForType ( binding . parameters [ i ] ) ; } codeStream . aastore ( ) ; if ( i < ( argsLength - 1 ) ) { codeStream . dup ( ) ; } } } else { codeStream . generateInlinedValue ( 0 ) ; codeStream . newArray ( currentScope , new ArrayBinding ( currentScope . getType ( JAVA_LANG_OBJECT ) , 1 ) ) ; } ( ( CodeSnippetCodeStream ) ( codeStream ) ) . invokeJavaLangReflectMethodInvoke ( ) ; if ( binding . returnType . isBaseType ( ) ) { int typeID = binding . returnType . id ; if ( typeID == ( TypeIds . T_void ) ) { codeStream . pop ( ) ; } ( ( CodeSnippetCodeStream ) ( codeStream ) ) . checkcast ( typeID ) ; ( ( CodeSnippetCodeStream ) ( codeStream ) ) . getBaseTypeValue ( typeID ) ; } else { codeStream . checkcast ( binding . returnType ) ; } } if ( valueRequired ) { codeStream . generateImplicitConversion ( implicitConversion ) ; } else { switch ( binding . returnType . id ) { case TypeIds . T_long : case TypeIds . T_double : codeStream . pop2 ( ) ; break ; case TypeIds . T_void : break ; default : codeStream . pop ( ) ; } } <START_BUG> codeStream . recordPositionsFrom ( pc , this ) ; <END_BUG> } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope ) { } public void manageSyntheticAccessIfNecessary ( BlockScope currentScope ) { } public TypeBinding resolveType ( BlockScope scope ) { } }

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