Type m; if (mergeCache.add(pair)) { m = new WildcardType(lub(upperBound(act1.head), upperBound(act2.head)), BoundKind.EXTENDS, mergeCache.remove(pair); } else { m = new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass);
void debugContainsType(WildcardType t, Type s) { System.err.println(); System.err.format(" does %s contain %s?%n", t, s); System.err.format(" %s U(%s) <: U(%s) %s = %s%n", upperBound(s), s, t, U(t), t.isSuperBound() || isSubtypeNoCapture(upperBound(s), U(t))); System.err.format(" %s L(%s) <: L(%s) %s = %s%n", L(t), t, s, lowerBound(s), t.isExtendsBound() || isSubtypeNoCapture(L(t), lowerBound(s))); System.err.println(); }
sigp++; Type t = sigToType(); return new WildcardType(t, BoundKind.EXTENDS, syms.boundClass); return new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass); case '-': { sigp++; Type t = sigToType(); return new WildcardType(t, BoundKind.SUPER, syms.boundClass);
JCWildcard wc = (JCWildcard) enclTr; if (wc.getKind() == JCTree.Kind.EXTENDS_WILDCARD) { validateAnnotatedType(wc.getBound(), ((WildcardType)enclTy.unannotatedType()).getExtendsBound()); } else if (wc.getKind() == JCTree.Kind.SUPER_WILDCARD) { validateAnnotatedType(wc.getBound(), ((WildcardType)enclTy.unannotatedType()).getSuperBound()); } else {
JCWildcard wc = (JCWildcard) enclTr; if (wc.getKind() == JCTree.Kind.EXTENDS_WILDCARD) { validateAnnotatedType(wc.getBound(), ((WildcardType)enclTy.unannotatedType()).getExtendsBound()); } else if (wc.getKind() == JCTree.Kind.SUPER_WILDCARD) { validateAnnotatedType(wc.getBound(), ((WildcardType)enclTy.unannotatedType()).getSuperBound()); } else {
break; case EXTENDS: Si.bound = glb(Ti.getExtendsBound(), subst(Ui, A, S)); Si.lower = syms.botType; break; case SUPER: Si.bound = subst(Ui, A, S); Si.lower = Ti.getSuperBound(); break;
break; case EXTENDS: Si.bound = glb(Ti.getExtendsBound(), subst(Ui, A, S)); Si.lower = syms.botType; break; case SUPER: Si.bound = subst(Ui, A, S); Si.lower = Ti.getSuperBound(); break;
break; case EXTENDS: Si.bound = glb(Ti.getExtendsBound(), subst(Ui, A, S)); Si.lower = syms.botType; break; case SUPER: Si.bound = subst(Ui, A, S); Si.lower = Ti.getSuperBound(); break;
wildcard.type = new Type.WildcardType( objectSym.type, wildcard.kind.kind, wildcard.type.tsym );
break; case EXTENDS: Si.bound = glb(Ti.getExtendsBound(), subst(Ui, A, S)); Si.lower = syms.botType; break; case SUPER: Si.bound = subst(Ui, A, S); Si.lower = Ti.getSuperBound(); break;
wildcard.type = new Type.WildcardType( objectSym.type, wildcard.kind.kind, wildcard.type.tsym );
ListBuffer<Type> qs = new ListBuffer<Type>(); for (List<Type> iter = opens; iter.nonEmpty(); iter = iter.tail) { qs.append(new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass, (TypeVar) iter.head.unannotatedType()));
wildcard.type = new Type.WildcardType( objectSym.type, wildcard.kind.kind, wildcard.type.tsym );
ListBuffer<Type> qs = new ListBuffer<Type>(); for (List<Type> iter = opens; iter.nonEmpty(); iter = iter.tail) { qs.append(new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass, (TypeVar) iter.head.unannotatedType()));
wildcard.type = new Type.WildcardType( objectSym.type, wildcard.kind.kind, wildcard.type.tsym );
ListBuffer<Type> qs = new ListBuffer<Type>(); for (List<Type> iter = opens; iter.nonEmpty(); iter = iter.tail) { qs.append(new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass, (TypeVar) iter.head));
ListBuffer<Type> qs = new ListBuffer<Type>(); for (List<Type> iter = opens; iter.nonEmpty(); iter = iter.tail) { qs.append(new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass, (TypeVar) iter.head));
Type m; if (mergeCache.add(pair)) { m = new WildcardType(lub(upperBound(act1.head), upperBound(act2.head)), BoundKind.EXTENDS, mergeCache.remove(pair); } else { m = new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass);
Type m; if (mergeCache.add(pair)) { m = new WildcardType(lub(wildUpperBound(act1.head), wildUpperBound(act2.head)), BoundKind.EXTENDS, mergeCache.remove(pair); } else { m = new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass);
Type m; if (mergeCache.add(pair)) { m = new WildcardType(lub(upperBound(act1.head), upperBound(act2.head)), BoundKind.EXTENDS, mergeCache.remove(pair); } else { m = new WildcardType(syms.objectType, BoundKind.UNBOUND, syms.boundClass);