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
/**
	 * Returns a type argument proposal for a given type binding. The proposal
	 * is the simple type name for unbounded types or the upper bound of
	 * wildcard types or the the bound of type variables with a single bound.
	 *
	 * @param binding the type argument binding
	 * @return a type argument proposal for <code>binding</code>
	 */
	private TypeArgumentProposal computeTypeProposal(ITypeBinding binding) {
		if (binding.isWildcardType()) {
			if (binding.isUpperbound())
				
				return new TypeArgumentProposal(binding.getBound().getName(), true);
			
			return new TypeArgumentProposal("Object", true); 
		}
		if (binding.isTypeVariable()) {
			final ITypeBinding[] bounds= binding.getTypeBounds();
			if (bounds.length == 1)
				return new TypeArgumentProposal(bounds[0].getName(), true);
			return new TypeArgumentProposal(binding.getName(), true);
		}
		
		return new TypeArgumentProposal(binding.getName(), false);
	}
	/**
	 * Computes one inheritance path from <code>superType</code> to
	 * <code>subType</code> or <code>null</code> if <code>subType</code>
	 * does not inherit from <code>superType</code>. Note that there may be
	 * more than one inheritance path - this method simply returns one.