summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2009-06-16 11:17:07 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2009-06-16 11:17:07 +0000
commit73746f649a39156df26a289022b2f6127f8145a7 (patch)
tree2ee55ec04397dfcabb118dab7a04791cf4a2bae6 /src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala
parent53ed9b920e738e784289548d7cc90e8e2dcd0124 (diff)
downloadscala-73746f649a39156df26a289022b2f6127f8145a7.tar.gz
scala-73746f649a39156df26a289022b2f6127f8145a7.tar.bz2
scala-73746f649a39156df26a289022b2f6127f8145a7.zip
cleaned up eta-expansion of partial named appli...
cleaned up eta-expansion of partial named applications
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala b/src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala
index 68f486a600..deae3f114f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala
@@ -79,6 +79,16 @@ trait EtaExpansion { self: Analyzer =>
Ident(vname) setPos tree.pos
}
tree match {
+ // a partial application using named arguments has the following form:
+ // { val qual$1 = qual
+ // val x$1 = arg1
+ // [...]
+ // val x$n = argn
+ // qual$1.fun(x$1, ..)..(.., x$n) }
+ // Eta-expansion has to be performed on `fun'
+ case Block(stats, fun) =>
+ defs ++= stats
+ liftoutPrefix(fun)
case Apply(fn, args) =>
treeCopy.Apply(tree, liftoutPrefix(fn), List.mapConserve(args)(liftout)) setType null
case TypeApply(fn, args) =>