code: public IntersectionClassType makeIntersectionType(List<Type> bounds) {
          return makeIntersectionType(bounds, bounds.head.tsym.isInterface());
      }
docs: Make an intersection type from non-empty list of types.  The list should be ordered according to
  {@link TypeSymbol#precedes(TypeSymbol, Types)}. Note that this might cause a symbol completion.
  Hence, this version of makeIntersectionType may not be called during a classfile read.
  
  @param bounds    the types from which the intersection type is formed