@@ -157,49 +157,57 @@ class MegaPhase(val miniPhases: Array[MiniPhase]) extends Phase {
157157
158158 /** Transform node using all phases in this group that have idxInGroup >= start */
159159 def transformNode (tree : Tree , start : Int )(implicit ctx : Context ): Tree = {
160- def goNamed (tree : Tree , start : Int ) = tree match {
161- case tree : Ident => goIdent(tree, start)
162- case tree : Select => goSelect(tree, start)
163- case tree : ValDef => goValDef(tree, start)
164- case tree : DefDef => goDefDef(tree, start)
165- case tree : TypeDef => goTypeDef(tree, start)
166- case tree : Bind => goBind(tree, start)
167- case _ => goOther(tree, start)
168- }
169- def goUnnamed (tree : Tree , start : Int ) = tree match {
170- case tree : Apply => goApply(tree, start)
171- case tree : TypeTree => goTypeTree(tree, start)
172- case tree : Thicket =>
173- cpy.Thicket (tree)(tree.trees.mapConserve(transformNode(_, start)))
174- case tree : This => goThis(tree, start)
175- case tree : Literal => goLiteral(tree, start)
176- case tree : Block => goBlock(tree, start)
177- case tree : TypeApply => goTypeApply(tree, start)
178- case tree : If => goIf(tree, start)
179- case tree : New => goNew(tree, start)
180- case tree : Typed => goTyped(tree, start)
181- case tree : CaseDef => goCaseDef(tree, start)
182- case tree : Closure => goClosure(tree, start)
183- case tree : Assign => goAssign(tree, start)
184- case tree : SeqLiteral => goSeqLiteral(tree, start)
185- case tree : Super => goSuper(tree, start)
186- case tree : Template => goTemplate(tree, start)
187- case tree : Match => goMatch(tree, start)
188- case tree : UnApply => goUnApply(tree, start)
189- case tree : PackageDef => goPackageDef(tree, start)
190- case tree : Try => goTry(tree, start)
191- case tree : Inlined => goInlined(tree, start)
192- case tree : Return => goReturn(tree, start)
193- case tree : Alternative => goAlternative(tree, start)
194- case tree => goOther(tree, start)
195- }
196- try
197- if (tree.isInstanceOf [NameTree ]) goNamed(tree, start) else goUnnamed(tree, start)
198- catch {
199- case ex : TypeError =>
200- ctx.error(ex.toMessage, tree.pos)
201- tree
202- }
160+ def goNamed (tree : Tree , start : Int ) =
161+ try
162+ tree match {
163+ case tree : Ident => goIdent(tree, start)
164+ case tree : Select => goSelect(tree, start)
165+ case tree : ValDef => goValDef(tree, start)
166+ case tree : DefDef => goDefDef(tree, start)
167+ case tree : TypeDef => goTypeDef(tree, start)
168+ case tree : Bind => goBind(tree, start)
169+ case _ => goOther(tree, start)
170+ }
171+ catch {
172+ case ex : TypeError =>
173+ ctx.error(ex.toMessage, tree.pos)
174+ tree
175+ }
176+ def goUnnamed (tree : Tree , start : Int ) =
177+ try
178+ tree match {
179+ case tree : Apply => goApply(tree, start)
180+ case tree : TypeTree => goTypeTree(tree, start)
181+ case tree : Thicket =>
182+ cpy.Thicket (tree)(tree.trees.mapConserve(transformNode(_, start)))
183+ case tree : This => goThis(tree, start)
184+ case tree : Literal => goLiteral(tree, start)
185+ case tree : Block => goBlock(tree, start)
186+ case tree : TypeApply => goTypeApply(tree, start)
187+ case tree : If => goIf(tree, start)
188+ case tree : New => goNew(tree, start)
189+ case tree : Typed => goTyped(tree, start)
190+ case tree : CaseDef => goCaseDef(tree, start)
191+ case tree : Closure => goClosure(tree, start)
192+ case tree : Assign => goAssign(tree, start)
193+ case tree : SeqLiteral => goSeqLiteral(tree, start)
194+ case tree : Super => goSuper(tree, start)
195+ case tree : Template => goTemplate(tree, start)
196+ case tree : Match => goMatch(tree, start)
197+ case tree : UnApply => goUnApply(tree, start)
198+ case tree : PackageDef => goPackageDef(tree, start)
199+ case tree : Try => goTry(tree, start)
200+ case tree : Inlined => goInlined(tree, start)
201+ case tree : Return => goReturn(tree, start)
202+ case tree : Alternative => goAlternative(tree, start)
203+ case tree => goOther(tree, start)
204+ }
205+ catch {
206+ case ex : TypeError =>
207+ ctx.error(ex.toMessage, tree.pos)
208+ tree
209+ }
210+ if (tree.isInstanceOf [NameTree ]) goNamed(tree, start) else goUnnamed(tree, start)
203211 }
204212
205213 /** Transform full tree using all phases in this group that have idxInGroup >= start */
0 commit comments