summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-03-15 09:42:12 +0000
committerBurak Emir <emir@epfl.ch>2006-03-15 09:42:12 +0000
commitc516a446303b99cf59733aa52a2def627b6d0772 (patch)
tree0d7bc0cef05245e899654f7eee08a47ce9a9b06a /src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
parent51565df03873b827ce630d5d4fb9409edbf0980a (diff)
downloadscala-c516a446303b99cf59733aa52a2def627b6d0772.tar.gz
scala-c516a446303b99cf59733aa52a2def627b6d0772.tar.bz2
scala-c516a446303b99cf59733aa52a2def627b6d0772.zip
fixes bug #502
makeBind was in the wrong place, variable symbol of the makeBind in now captured by makeValue
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
index 0a72c94845..b00a4875ab 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
@@ -266,9 +266,10 @@ abstract class TreeBuilder {
val rhss = valeqs map { case ValEq(_, _, rhs) => rhs }
val defpats = pats map (x => makeBind(x.duplicate))
val pdefs = List.flatten(List.map2(defpats, rhss)(makePatDef))
- val ids = (pat :: defpats) map makeValue
+ val patX1 = makeBind(pat.duplicate);
+ val ids = (patX1 :: defpats) map makeValue
val rhs1 = makeForYield(
- List(ValFrom(pos, makeBind(pat.duplicate), rhs)),
+ List(ValFrom(pos, patX1, rhs)),
Block(pdefs, makeTupleTerm(ids)))
makeFor(mapName, flatMapName, ValFrom(pos, makeTuple(pat :: pats, true), rhs1) :: rest1, body)
case _ =>