782 while (boundList.nonEmpty()) { |
782 while (boundList.nonEmpty()) { |
783 List<Type> tmpTail = boundListTail; |
783 List<Type> tmpTail = boundListTail; |
784 while (tmpTail.nonEmpty()) { |
784 while (tmpTail.nonEmpty()) { |
785 Type b1 = boundList.head; |
785 Type b1 = boundList.head; |
786 Type b2 = tmpTail.head; |
786 Type b2 = tmpTail.head; |
787 if (b1 != b2) { |
787 /* This wildcard check is temporary workaround. This code may need to be |
|
788 * revisited once spec bug JDK-7034922 is fixed. |
|
789 */ |
|
790 if (b1 != b2 && !b1.hasTag(WILDCARD) && !b2.hasTag(WILDCARD)) { |
788 Pair<Type, Type> commonSupers = infer.getParameterizedSupers(b1, b2); |
791 Pair<Type, Type> commonSupers = infer.getParameterizedSupers(b1, b2); |
789 if (commonSupers != null) { |
792 if (commonSupers != null) { |
790 List<Type> allParamsSuperBound1 = commonSupers.fst.allparams(); |
793 List<Type> allParamsSuperBound1 = commonSupers.fst.allparams(); |
791 List<Type> allParamsSuperBound2 = commonSupers.snd.allparams(); |
794 List<Type> allParamsSuperBound2 = commonSupers.snd.allparams(); |
792 while (allParamsSuperBound1.nonEmpty() && allParamsSuperBound2.nonEmpty()) { |
795 while (allParamsSuperBound1.nonEmpty() && allParamsSuperBound2.nonEmpty()) { |