-
Notifications
You must be signed in to change notification settings - Fork 1.1k
SOE in TypeSizeAccumulator.apply #7745
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The problem is that the TypeSize and ConveringSet accumulators infinitely recurse through the F-bound. The @@ -5175,7 +5174,7 @@ object Types {
case tp: TypeRef if tp.info.isTypeAlias =>
apply(n, tp.superType)
case tp: TypeParamRef =>
- apply(n, ctx.typeComparer.bounds(tp))
+ n//apply(n, ctx.typeComparer.bounds(tp))
case _ =>
foldOver(n, tp)
}
@@ -5203,7 +5202,7 @@ object Types {
val tsym = if (tp.termSymbol.is(Param)) tp.underlying.typeSymbol else tp.termSymbol
foldOver(cs + tsym, tp)
case tp: TypeParamRef =>
- apply(cs, ctx.typeComparer.bounds(tp))
+ cs//apply(cs, ctx.typeComparer.bounds(tp))
case other =>
foldOver(cs, tp)
} That fixed #7745 but broke #6058 again. It seems we need a more refined approach to type size and covering sets. @milessabin Do you have an idea how to fix this? |
Is it possible to reproduce this in cases where there are actually some constraints on the type variables? |
minimized code
Stack trace
Possibly related to #7744 ?
The text was updated successfully, but these errors were encountered: