diff options
author | Burak Emir <emir@epfl.ch> | 2006-03-15 09:42:12 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2006-03-15 09:42:12 +0000 |
commit | c516a446303b99cf59733aa52a2def627b6d0772 (patch) | |
tree | 0d7bc0cef05245e899654f7eee08a47ce9a9b06a /src | |
parent | 51565df03873b827ce630d5d4fb9409edbf0980a (diff) | |
download | scala-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')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala | 5 |
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 _ => |