-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Summon allows to ignore type bounds #17168
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
I think that's due to the way type S = F[Int] =:= Int I get
But the problem is that the bounds check happens after typer (why only then? Because of F-bounds which can force cyclic reference errors otherwise). But since val a: Int =:= Int =
{
val x$proxy1: Int =:= Int = <:<.refl[Int]
x$proxy1
} |
To fix this, we could simply change the case Inlined(call, bindings, expansion) if !call.isEmpty =>
val pos = call.sourcePos
CrossVersionChecks.checkExperimentalRef(call.symbol, pos)
super.transform(call) <<<<<<<<<<<<< insert this line
val callTrace = Inlines.inlineCallTrace(call.symbol, pos)(using ctx.withSource(pos.source))
cpy.Inlined(tree)(callTrace, transformSub(bindings), transform(expansion)(using inlineContext(call))) But I am worried that this could give exponential blowup of checks for deeply nested inlines. So we probably need something a little smarter than this. |
Compiler version
3.3.0-RC1
Minimized code
Output
Works. Both in REPL and Compiler.
Expectation
The text was updated successfully, but these errors were encountered: