You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
result of test.scala after TreeTransform:{patternMatcher, explicitOuter, splitter}:package<empty> {
finallazy module valTest:Test$ =newTest$()
final module classTest$() extendsObject() { this:Test.type=>deff(x: Int):Nothing=try {
???
} catch {
case ex1 @ _ =>casevalselector11:Throwable= ex1
{
defcase11():Nothing= {
defcase21():Nothing= {
defmatchFail11():Nothing=thrownewMatchError(selector11)
{
throw ex1
}
}
if
selector11.isInstanceOf[
runtime.NonLocalReturnControl[T@unchecked]
]
then {
valex: runtime.NonLocalReturnControl[T@unchecked] =
selector11.asInstanceOf[
runtime.NonLocalReturnControl[T@unchecked](ex)
]
{
{
???
}
}
} else case21()
}
case11()
}
}
}
}
Needless to say, this makes every try very expensive. We need to back off here and keep typed patterns until the backend can convert them into proper exception handlers.
This currently blocks the implementation of non local returns because I do not know what code should be generated; i.e. what the precise code of the given example is after pattern matching.
The text was updated successfully, but these errors were encountered:
Trying to fix NonLocalReturns I tried to compile this:
and got this output:
Needless to say, this makes every try very expensive. We need to back off here and keep typed patterns until the backend can convert them into proper exception handlers.
This currently blocks the implementation of non local returns because I do not know what code should be generated; i.e. what the precise code of the given example is after pattern matching.
The text was updated successfully, but these errors were encountered: