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