Skip to content

Commit 3f56e88

Browse files
committed
fixup
1 parent a8d4032 commit 3f56e88

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

src/main/scala/scala/async/internal/ExprBuilder.scala

+4-9
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ trait ExprBuilder {
489489
val stateMemberSymbol = symLookup.stateMachineMember(name.state)
490490
val stateMemberRef = symLookup.memberRef(name.state)
491491
val body = Match(stateMemberRef, mkCombinedHandlerCases[T] ++ initStates.flatMap(_.mkOnCompleteHandler[T]) ++ List(CaseDef(Ident(nme.WILDCARD), EmptyTree, Throw(Apply(Select(New(Ident(defn.IllegalStateExceptionClass)), termNames.CONSTRUCTOR), List())))))
492-
val body1 = eliminateDeadStates(body)
492+
val body1 = compactStates(body)
493493

494494
maybeTry(
495495
body1,
@@ -508,14 +508,9 @@ trait ExprBuilder {
508508
})), EmptyTree)
509509
}
510510

511-
// Identify dead states: `case <id> => { state = nextId; (); (); ... }, eliminated, and compact state ids to
512-
// enable emission of a tableswitch.
513-
private def eliminateDeadStates(m: Match): Tree = {
511+
private def compactStates(m: Match): Tree = {
514512
val stateMemberSymbol = symLookup.stateMachineMember(name.state)
515-
// - remove CaseDef-s for dead states
516-
// - rewrite state transitions to dead states to instead transition to the
517-
// non-dead successor.
518-
val elimDeadStateTransform = new Transformer {
513+
val compactStateTransform = new Transformer {
519514
override def transform(tree: Tree): Tree = tree match {
520515
case as @ Assign(lhs, Literal(Constant(i: Integer))) if lhs.symbol == stateMemberSymbol =>
521516
val replacement = switchIds(i)
@@ -528,7 +523,7 @@ trait ExprBuilder {
528523
val cases1 = m.cases.flatMap {
529524
case cd @ CaseDef(Literal(Constant(i: Integer)), EmptyTree, rhs) =>
530525
val replacement = switchIds(i)
531-
val rhs1 = elimDeadStateTransform.transform(rhs)
526+
val rhs1 = compactStateTransform.transform(rhs)
532527
treeCopy.CaseDef(cd, Literal(Constant(replacement)), EmptyTree, rhs1) :: Nil
533528
case x => x :: Nil
534529
}

src/test/scala/scala/async/run/late/LateExpansion.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package scala.async.run.late
33
import java.io.File
44

55
import junit.framework.Assert.assertEquals
6-
import org.junit.{Assert, Test}
6+
import org.junit.{Assert, Ignore, Test}
77

88
import scala.annotation.StaticAnnotation
99
import scala.annotation.meta.{field, getter}

0 commit comments

Comments
 (0)