src/share/classes/com/sun/tools/javac/comp/Infer.java

changeset 1689
137994c189e5
parent 1674
b71a61d39cf7
child 1800
c8acc254b6d7
equal deleted inserted replaced
1688:d13af7751456 1689:137994c189e5
260 //step 1 - create fresh tvars 260 //step 1 - create fresh tvars
261 for (Type t : vars) { 261 for (Type t : vars) {
262 UndetVar uv = (UndetVar)inferenceContext.asFree(t); 262 UndetVar uv = (UndetVar)inferenceContext.asFree(t);
263 List<Type> upperBounds = uv.getBounds(InferenceBound.UPPER); 263 List<Type> upperBounds = uv.getBounds(InferenceBound.UPPER);
264 if (Type.containsAny(upperBounds, vars)) { 264 if (Type.containsAny(upperBounds, vars)) {
265 TypeSymbol fresh_tvar = new TypeSymbol(Flags.SYNTHETIC, uv.qtype.tsym.name, null, uv.qtype.tsym.owner); 265 TypeSymbol fresh_tvar = new TypeVariableSymbol(Flags.SYNTHETIC, uv.qtype.tsym.name, null, uv.qtype.tsym.owner);
266 fresh_tvar.type = new TypeVar(fresh_tvar, types.makeCompoundType(uv.getBounds(InferenceBound.UPPER)), null); 266 fresh_tvar.type = new TypeVar(fresh_tvar, types.makeCompoundType(uv.getBounds(InferenceBound.UPPER)), null);
267 todo.append(uv); 267 todo.append(uv);
268 uv.inst = fresh_tvar.type; 268 uv.inst = fresh_tvar.type;
269 } else if (upperBounds.nonEmpty()) { 269 } else if (upperBounds.nonEmpty()) {
270 uv.inst = types.glb(upperBounds); 270 uv.inst = types.glb(upperBounds);

mercurial