@@ -39,16 +39,16 @@ class Synthesizer(typer: Typer)(using @constructorOnly c: Context):
3939 // bounds are usually widened during instantiation.
4040 instArg(tp.tp1)
4141 case tvar : TypeVar if ctx.typerState.constraint.contains(tvar) =>
42- // If tvar has a lower or upper bound:
43- // 1. If the bound is not another type variable, use this as approximation.
44- // 2. Otherwise, if the type can be forced to be fully defined, use that type
45- // as approximation.
46- // 3. Otherwise leave argument uninstantiated.
47- // The reason for (2) is that we observed complicated constraints in i23611.scala
48- // that get better types if a fully defined type is computed than if several type
49- // variables are approximated incrementally. This is a minimization of some ZIO code.
50- // So in order to keep backwards compatibility (where before we _only_ did 2) we
51- // add that special case.
42+ // If tvar has a lower or upper bound:
43+ // 1. If the bound is not another type variable, use this as approximation.
44+ // 2. Otherwise, if the type can be forced to be fully defined, use that type
45+ // as approximation.
46+ // 3. Otherwise leave argument uninstantiated.
47+ // The reason for (2) is that we observed complicated constraints in i23611.scala
48+ // that get better types if a fully defined type is computed than if several type
49+ // variables are approximated incrementally. This is a minimization of some ZIO code.
50+ // So in order to keep backwards compatibility (where before we _only_ did 2) we
51+ // add that special case.
5252 def isGroundConstr (tp : Type ): Boolean = tp.dealias match
5353 case tvar : TypeVar if ctx.typerState.constraint.contains(tvar) => false
5454 case pref : TypeParamRef if ctx.typerState.constraint.contains(pref) => false
0 commit comments