Skip to content

Commit d5edb52

Browse files
committed
Substitute the compacted state ids into the code snipptets in .dot
1 parent 990bf1c commit d5edb52

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

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

+13-12
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ trait ExprBuilder {
397397
dotBuilder.append(s"""${stateLabel(state.state)} [label=""").append("<")
398398
if (i != length - 1) {
399399
val CaseDef(_, _, body) = state.mkHandlerCaseForState
400-
toHtmlLabel(stateLabel(state.state), showCode(body), dotBuilder)
400+
toHtmlLabel(stateLabel(state.state), showCode(compactStateTransform.transform(body)), dotBuilder)
401401
} else {
402402
toHtmlLabel(stateLabel(state.state), state.allStats.map(showCode(_)).mkString("\n"), dotBuilder)
403403
}
@@ -506,18 +506,19 @@ trait ExprBuilder {
506506
})), EmptyTree)
507507
}
508508

509-
private def compactStates(m: Match): Tree = {
510-
val stateMemberSymbol = symLookup.stateMachineMember(name.state)
511-
val compactStateTransform = new Transformer {
512-
override def transform(tree: Tree): Tree = tree match {
513-
case as @ Assign(lhs, Literal(Constant(i: Integer))) if lhs.symbol == stateMemberSymbol =>
514-
val replacement = switchIds(i)
515-
treeCopy.Assign(tree, lhs, Literal(Constant(replacement)))
516-
case _: Match | _: CaseDef | _: Block | _: If =>
517-
super.transform(tree)
518-
case _ => tree
519-
}
509+
private lazy val stateMemberSymbol = symLookup.stateMachineMember(name.state)
510+
private val compactStateTransform = new Transformer {
511+
override def transform(tree: Tree): Tree = tree match {
512+
case as @ Assign(lhs, Literal(Constant(i: Integer))) if lhs.symbol == stateMemberSymbol =>
513+
val replacement = switchIds(i)
514+
treeCopy.Assign(tree, lhs, Literal(Constant(replacement)))
515+
case _: Match | _: CaseDef | _: Block | _: If =>
516+
super.transform(tree)
517+
case _ => tree
520518
}
519+
}
520+
521+
private def compactStates(m: Match): Tree = {
521522
val cases1 = m.cases.flatMap {
522523
case cd @ CaseDef(Literal(Constant(i: Integer)), EmptyTree, rhs) =>
523524
val replacement = switchIds(i)

0 commit comments

Comments
 (0)