diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-06-16 11:17:07 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-06-16 11:17:07 +0000 |
commit | 73746f649a39156df26a289022b2f6127f8145a7 (patch) | |
tree | 2ee55ec04397dfcabb118dab7a04791cf4a2bae6 /src/compiler/scala/tools/nsc/typechecker/EtaExpansion.scala | |
parent | 53ed9b920e738e784289548d7cc90e8e2dcd0124 (diff) | |
download | scala-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.scala | 10 |
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) => |