Skip to content

Commit 846196a

Browse files
committed
fix call order for TypeLambdaTree and Block, use of fold for MatchType
1 parent 5ac8990 commit 846196a

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

library/src/scala/tasty/reflect/TreeUtils.scala

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,11 @@ trait TreeUtils
9999
case TypeTree.Applied(tpt, args) => foldTypeTrees(foldTypeTree(x, tpt), args)
100100
case TypeTree.ByName(result) => foldTypeTree(x, result)
101101
case TypeTree.Annotated(arg, annot) => foldTree(foldTypeTree(x, arg), annot)
102-
case TypeTree.TypeLambdaTree(typedefs, arg) => foldTrees(foldTypeTree(x, arg), typedefs)
102+
case TypeTree.TypeLambdaTree(typedefs, arg) => foldTypeTree(foldTrees(x, typedefs), arg)
103103
case TypeTree.Bind(_, tbt) => foldTypeTree(x, tbt)
104-
case TypeTree.Block(typedefs, tpt) => foldTrees(foldTypeTree(x, tpt), typedefs)
105-
case TypeTree.MatchType(boundopt, selector, cases) => {
106-
val bound_fold_result = boundopt.map(foldTypeTree(x, _)).getOrElse(x)
107-
foldTypeCaseDefs(foldTypeTree(bound_fold_result, selector), cases)
108-
}
104+
case TypeTree.Block(typedefs, tpt) => foldTypeTree(foldTrees(x, typedefs), tpt)
105+
case TypeTree.MatchType(boundopt, selector, cases) =>
106+
foldTypeCaseDefs(foldTypeTree(boundopt.fold(x)(foldTypeTree(x, _)), selector), cases)
109107
case TypeBoundsTree(lo, hi) => foldTypeTree(foldTypeTree(x, lo), hi)
110108
}
111109

@@ -117,7 +115,6 @@ trait TreeUtils
117115
case TypeCaseDef(pat, body) => foldTypeTree(foldTypeTree(x, pat), body)
118116
}
119117

120-
121118
def foldOverPattern(x: X, tree: Pattern)(implicit ctx: Context): X = tree match {
122119
case Pattern.Value(v) => foldTree(x, v)
123120
case Pattern.Bind(_, body) => foldPattern(x, body)

0 commit comments

Comments
 (0)