Skip to content

Commit 8a4902e

Browse files
committed
MegaPhase#transformNode: add missing case for Thicket
A transformX method can return a Thicket of trees that need to be transformed by subsequent phases, but so far this wasn't the case. No testcase, but this is necessary to make the next commit work properly as `ShortcutImplicits` returns a Thicket of DefDefs that need to be transformed by TailRec
1 parent d5ee92b commit 8a4902e

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

compiler/src/dotty/tools/dotc/transform/MegaPhase.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class MegaPhase(val miniPhases: Array[MiniPhase]) extends Phase {
156156
private val cpy: TypedTreeCopier = cpyBetweenPhases
157157

158158
/** Transform node using all phases in this group that have idxInGroup >= start */
159-
def transformNode(tree: Tree, start: Int)(implicit ctx: Context) = {
159+
def transformNode(tree: Tree, start: Int)(implicit ctx: Context): Tree = {
160160
def goNamed(tree: Tree, start: Int) = tree match {
161161
case tree: Ident => goIdent(tree, start)
162162
case tree: Select => goSelect(tree, start)
@@ -169,6 +169,8 @@ class MegaPhase(val miniPhases: Array[MiniPhase]) extends Phase {
169169
def goUnnamed(tree: Tree, start: Int) = tree match {
170170
case tree: Apply => goApply(tree, start)
171171
case tree: TypeTree => goTypeTree(tree, start)
172+
case tree: Thicket =>
173+
cpy.Thicket(tree)(tree.trees.mapConserve(transformNode(_, start)))
172174
case tree: This => goThis(tree, start)
173175
case tree: Literal => goLiteral(tree, start)
174176
case tree: Block => goBlock(tree, start)

0 commit comments

Comments
 (0)