Lines Matching defs:cl1
2704 public List<Type> union(List<Type> cl1, List<Type> cl2) {
2705 if (cl1.isEmpty()) {
2708 return cl1;
2709 } else if (cl1.head.tsym.precedes(cl2.head.tsym, this)) {
2710 return union(cl1.tail, cl2).prepend(cl1.head);
2711 } else if (cl2.head.tsym.precedes(cl1.head.tsym, this)) {
2712 return union(cl1, cl2.tail).prepend(cl2.head);
2714 return union(cl1.tail, cl2.tail).prepend(cl1.head);
2721 public List<Type> intersect(List<Type> cl1, List<Type> cl2) {
2722 if (cl1 == cl2)
2723 return cl1;
2724 if (cl1.isEmpty() || cl2.isEmpty())
2726 if (cl1.head.tsym.precedes(cl2.head.tsym, this))
2727 return intersect(cl1.tail, cl2);
2728 if (cl2.head.tsym.precedes(cl1.head.tsym, this))
2729 return intersect(cl1, cl2.tail);
2730 if (isSameType(cl1.head, cl2.head))
2731 return intersect(cl1.tail, cl2.tail).prepend(cl1.head);
2732 if (cl1.head.tsym == cl2.head.tsym &&
2733 cl1.head.tag == CLASS && cl2.head.tag == CLASS) {
2734 if (cl1.head.isParameterized() && cl2.head.isParameterized()) {
2735 Type merge = merge(cl1.head,cl2.head);
2736 return intersect(cl1.tail, cl2.tail).prepend(merge);
2738 if (cl1.head.isRaw() || cl2.head.isRaw())
2739 return intersect(cl1.tail, cl2.tail).prepend(erasure(cl1.head));
2741 return intersect(cl1.tail, cl2.tail);