equal
deleted
inserted
replaced
303 uv.inst = inst.head; |
303 uv.inst = inst.head; |
304 } |
304 } |
305 uv.hibounds = hibounds.toList(); |
305 uv.hibounds = hibounds.toList(); |
306 } |
306 } |
307 Type qtype1 = types.subst(that.qtype, that.tvars, undetvars); |
307 Type qtype1 = types.subst(that.qtype, that.tvars, undetvars); |
308 if (!types.isSubtype(qtype1, to)) { |
308 if (!types.isSubtype(qtype1, |
|
309 qtype1.tag == UNDETVAR ? types.boxedTypeOrType(to) : to)) { |
309 throw unambiguousNoInstanceException |
310 throw unambiguousNoInstanceException |
310 .setMessage("infer.no.conforming.instance.exists", |
311 .setMessage("infer.no.conforming.instance.exists", |
311 that.tvars, that.qtype, to); |
312 that.tvars, that.qtype, to); |
312 } |
313 } |
313 for (List<Type> l = undetvars; l.nonEmpty(); l = l.tail) |
314 for (List<Type> l = undetvars; l.nonEmpty(); l = l.tail) |