From 93ba5d929347647d77e20f6e003f575b60ff8fda Mon Sep 17 00:00:00 2001 From: Miles Sabin Date: Tue, 14 Jul 2009 21:58:03 +0000 Subject: Fix for a RangePosition overlap bug with guards... Fix for a RangePosition overlap bug with guards in for comprehensions; added tree node unique id to output in tree browser. --- src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala | 3 ++- src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala index 35a22a4f2c..af9a45fde5 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala @@ -215,7 +215,8 @@ abstract class TreeBrowsers { case ProgramTree(_) => () case UnitTree(_) => () case _ => - str.append("tree.pos: ").append(t.pos) + str.append("tree.id: ").append(t.id) + str.append("\ntree.pos: ").append(t.pos) str.append("\nSymbol: ").append(TreeInfo.symbolText(t)) str.append("\nSymbol owner: ").append( if ((t.symbol ne null) && t.symbol != NoSymbol) diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala index e13b76239b..b3e73333c6 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala @@ -354,7 +354,7 @@ abstract class TreeBuilder { makeFor(mapName, flatMapName, rest, body)) case ValFrom(pos, pat, rhs) :: Filter(_, test) :: rest => makeFor(mapName, flatMapName, - ValFrom(pos, pat, makeCombination(closurePos(pos), nme.filter, rhs, pat.syntheticDuplicate, test)) :: rest, + ValFrom(pos, pat, makeCombination(r2p(rhs.pos.start, pos.point, test.pos.end), nme.filter, rhs, pat.syntheticDuplicate, test)) :: rest, body) case ValFrom(pos, pat, rhs) :: rest => val valeqs = rest.take(definitions.MaxTupleArity - 1).takeWhile(_.isInstanceOf[ValEq]); -- cgit v1.2.3