langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java
changeset 27228 da96e0643b5c
parent 27224 228abfa87080
child 27391 17f7b6c40c6d
equal deleted inserted replaced
27227:b63718dce4c1 27228:da96e0643b5c
   864                 while (boundList.nonEmpty()) {
   864                 while (boundList.nonEmpty()) {
   865                     List<Type> tmpTail = boundListTail;
   865                     List<Type> tmpTail = boundListTail;
   866                     while (tmpTail.nonEmpty()) {
   866                     while (tmpTail.nonEmpty()) {
   867                         Type b1 = boundList.head;
   867                         Type b1 = boundList.head;
   868                         Type b2 = tmpTail.head;
   868                         Type b2 = tmpTail.head;
   869                         if (b1 != b2) {
   869                         /* This wildcard check is temporary workaround. This code may need to be
       
   870                          * revisited once spec bug JDK-7034922 is fixed.
       
   871                          */
       
   872                         if (b1 != b2 && !b1.hasTag(WILDCARD) && !b2.hasTag(WILDCARD)) {
   870                             for (Pair<Type, Type> commonSupers : infer.getParameterizedSupers(b1, b2)) {
   873                             for (Pair<Type, Type> commonSupers : infer.getParameterizedSupers(b1, b2)) {
   871                                 List<Type> allParamsSuperBound1 = commonSupers.fst.allparams();
   874                                 List<Type> allParamsSuperBound1 = commonSupers.fst.allparams();
   872                                 List<Type> allParamsSuperBound2 = commonSupers.snd.allparams();
   875                                 List<Type> allParamsSuperBound2 = commonSupers.snd.allparams();
   873                                 while (allParamsSuperBound1.nonEmpty() && allParamsSuperBound2.nonEmpty()) {
   876                                 while (allParamsSuperBound1.nonEmpty() && allParamsSuperBound2.nonEmpty()) {
   874                                     //traverse the list of all params comparing them
   877                                     //traverse the list of all params comparing them