Buggy code:
private public void complete ( IType type , char [ ] snippet , int position , char [ ] [ ] localVariableTypeNames , char [ ] [ ] localVariableNames , int [ ] localVariableModifiers , boolean isStatic ) { } private Initializer parseSnippeInitializer ( char [ ] snippet , int position , char [ ] [ ] localVariableTypeNames , char [ ] [ ] localVariableNames , int [ ] localVariableModifiers , boolean isStatic ) { } public void complete ( ICompilationUnit sourceUnit , int completionPosition , int pos ) { } private TypeBinding [ ] computeTypes ( Expression [ ] arguments ) { } private TypeBinding [ ] computeTypesIfCorrect ( Expression [ ] arguments ) { } private void findAnnotationAttributes ( char [ ] token , MemberValuePair [ ] attributesFound , ReferenceBinding annotation ) { } private void findAnnotationReference ( TypeReference ref , Scope scope ) { } private void findAnonymousType ( ReferenceBinding currentType , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite ) { } private void findClassField ( char [ ] token , TypeBinding receiverType , Scope scope ) { } private void findEnumConstant ( char [ ] enumConstantName , SwitchStatement switchStatement ) { } private void findExplicitConstructors ( char [ ] name , ReferenceBinding currentType , MethodScope scope , InvocationSite invocationSite ) { } private void findConstructors ( ReferenceBinding currentType , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite , boolean forAnonymousType ) { } private char [ ] [ ] findEnclosingTypeNames ( Scope scope ) { } private void findFields ( char [ ] fieldName , FieldBinding [ ] fields , Scope scope , ObjectVector fieldsFound , ObjectVector localsFound , boolean onlyStaticFields , ReferenceBinding receiverType , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean canBePrefixed ) { } private void findFields ( char [ ] fieldName , ReferenceBinding receiverType , Scope scope , ObjectVector fieldsFound , ObjectVector localsFound , boolean onlyStaticFields , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean canBePrefixed ) { } private void findFieldsAndMethods ( char [ ] token , TypeBinding receiverType , Scope scope , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall ) { } private void findImports ( CompletionOnImportReference importReference , boolean findMembers ) { } private void findImportsOfMemberTypes ( char [ ] typeName , ReferenceBinding ref , boolean onlyStatic ) { } private void findImportsOfStaticFields ( char [ ] fieldName , ReferenceBinding ref ) { } private void findImportsOfStaticMethods ( char [ ] methodName , ReferenceBinding ref ) { } private void findJavadocBlockTags ( CompletionOnJavadocTag javadocTag ) { } private void findJavadocInlineTags ( CompletionOnJavadocTag javadocTag ) { } private void findKeywords ( char [ ] keyword , char [ ] [ ] choices , boolean canCompleteEmptyToken ) { } private void findTrueOrFalseKeywords ( char [ ] [ ] choices ) { } private void findKeywordsForMember ( char [ ] token , int modifiers ) { } private void findMemberTypes ( char [ ] typeName , ReferenceBinding [ ] memberTypes , ObjectVector typesFound , ReferenceBinding receiverType , SourceTypeBinding invocationType , boolean staticOnly , boolean fromStaticImport , boolean checkQualification , Scope scope ) { } private void findMemberTypes ( char [ ] typeName , ReferenceBinding receiverType , Scope scope , SourceTypeBinding typeInvocation , boolean staticOnly , ObjectVector typesFound ) { } private void findMemberTypes ( char [ ] typeName , ReferenceBinding receiverType , Scope scope , SourceTypeBinding typeInvocation , boolean staticOnly , boolean fromStaticImport , boolean checkQualification , boolean proposeAllMemberTypes , SourceTypeBinding typeToIgnore , ObjectVector typesFound ) { } private void findJavadocParamNames ( char [ ] token , char [ ] [ ] missingParams , boolean isTypeParam ) { } private void findSubMemberTypes ( char [ ] typeName , ReferenceBinding receiverType , Scope scope , SourceTypeBinding typeInvocation , boolean staticOnly , boolean fromStaticImport , ObjectVector typesFound ) { } private void findInterfacesMethods ( char [ ] selector , TypeBinding [ ] typeArgTypes , TypeBinding [ ] argTypes , ReferenceBinding receiverType , ReferenceBinding [ ] itsInterfaces , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , boolean isCompletingDeclaration , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall , boolean canBePrefixed ) { } private void findImplicitMessageSends ( char [ ] token , TypeBinding [ ] argTypes , Scope scope , InvocationSite invocationSite , Scope invocationScope ) { } private void findLocalMethods ( char [ ] methodName , TypeBinding [ ] typeArgTypes , TypeBinding [ ] argTypes , MethodBinding [ ] methods , Scope scope , ObjectVector methodsFound , boolean onlyStaticMethods , boolean exactMatch , ReferenceBinding receiverType , InvocationSite invocationSite , Scope invocationScope , boolean implicitCall , boolean superCall , boolean canBePrefixed ) { ObjectVector newMethodsFound = new ObjectVector ( ) ; int methodLength = methodName . length ; int minTypeArgLength = ( typeArgTypes == null ) ? 0 : typeArgTypes . length ; int minArgLength = ( argTypes == null ) ? 0 : argTypes . length ; next : for ( int f = methods . length ; ( -- f ) >= 0 ; ) { MethodBinding method = methods [ f ] ; if ( method . isSynthetic ( ) ) continue next ; if ( method . isDefaultAbstract ( ) ) continue next ; if ( method . isConstructor ( ) ) continue next ; if ( ( ( this . options . checkDeprecation ) && ( method . isViewedAsDeprecated ( ) ) ) && ( ! ( scope . isDefinedInSameUnit ( method . declaringClass ) ) ) ) continue next ; if ( onlyStaticMethods && ( ! ( method . isStatic ( ) ) ) ) continue next ; if ( ( this . options . checkVisibility ) && ( ! ( method . canBeSeenBy ( receiverType , invocationSite , scope ) ) ) ) continue next ; if ( superCall && ( method . isAbstract ( ) ) ) { methodsFound . add ( new Object [ ] { method , receiverType } ) ; continue next ; } if ( exactMatch ) { if ( ! ( CharOperation . equals ( methodName , method . selector , false ) ) ) { continue next ; } } else { if ( methodLength > ( method . selector . length ) ) continue next ; if ( ( ! ( CharOperation . prefixEquals ( methodName , method . selector , false ) ) ) && ( ! ( ( this . options . camelCaseMatch ) && ( CharOperation . camelCaseMatch ( methodName , method . selector ) ) ) ) ) { continue next ; } } if ( ( minTypeArgLength != 0 ) && ( minTypeArgLength != ( method . typeVariables . length ) ) ) continue next ; if ( minTypeArgLength != 0 ) { <START_BUG> method = new ParameterizedGenericMethodBinding ( method , typeArgTypes , scope . environment ( ) ) ; <END_BUG>

Fix:
method = scope . environment ( ) . createParameterizedGenericMethod ( method , typeArgTypes ) ;