Bug 92563 [content assist] Warm code assist performance for many types
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/GenericJavaTypeProposal.java
private TypeArgumentProposal[] computeTypeArgumentProposals() throws JavaModelException {
		IType type= getProposedType();
		if (type == null)
			return new TypeArgumentProposal[0];
		ITypeParameter[] parameters= type.getTypeParameters();
		if (parameters.length == 0)
			return new TypeArgumentProposal[0];
		TypeArgumentProposal[] arguments= new TypeArgumentProposal[parameters.length];
		ITypeBinding expectedTypeBinding= getExpectedType();
		if (expectedTypeBinding != null && expectedTypeBinding.isParameterizedType()) {
			
			
			IType expectedType= (IType) expectedTypeBinding.getJavaElement();
			IType[] path= computeInheritancePath(type, expectedType);
			if (path == null)
				
				
				
				return new TypeArgumentProposal[0];
			int[] indices= new int[parameters.length];
			for (int paramIdx= 0; paramIdx < parameters.length; paramIdx++) {
				indices[paramIdx]= mapTypeParameterIndex(path, path.length - 1, paramIdx);
			}
			
			
			ITypeBinding[] typeArguments= expectedTypeBinding.getTypeArguments();
			for (int paramIdx= 0; paramIdx < parameters.length; paramIdx++) {
				if (indices[paramIdx] != -1) {
					
					ITypeBinding binding= typeArguments[indices[paramIdx]];