aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-02-18 10:29:41 +0100
committerMartin Odersky <odersky@gmail.com>2016-02-18 10:29:41 +0100
commitcdfbdb14f0d6bb4f3a5dd284fd17e86addaa5d03 (patch)
treef72e1fa6bab1af4d2839f7a8c25c60cae95581bc
parent7a893f590b3b211ab6de4efb6708a63c8439506a (diff)
downloaddotty-cdfbdb14f0d6bb4f3a5dd284fd17e86addaa5d03.tar.gz
dotty-cdfbdb14f0d6bb4f3a5dd284fd17e86addaa5d03.tar.bz2
dotty-cdfbdb14f0d6bb4f3a5dd284fd17e86addaa5d03.zip
Keep named arguments during eta expansion
Fixes #1096.
-rw-r--r--src/dotty/tools/dotc/typer/EtaExpansion.scala10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/typer/EtaExpansion.scala b/src/dotty/tools/dotc/typer/EtaExpansion.scala
index aa210e6ed..f4a1f97cd 100644
--- a/src/dotty/tools/dotc/typer/EtaExpansion.scala
+++ b/src/dotty/tools/dotc/typer/EtaExpansion.scala
@@ -48,13 +48,11 @@ object EtaExpansion {
}
/** Lift a function argument, stripping any NamedArg wrapper */
- def liftArg(defs: mutable.ListBuffer[Tree], arg: Tree, prefix: String = "")(implicit ctx: Context): Tree = {
- val arg1 = arg match {
- case NamedArg(_, arg1) => arg1
- case arg => arg
+ def liftArg(defs: mutable.ListBuffer[Tree], arg: Tree, prefix: String = "")(implicit ctx: Context): Tree =
+ arg match {
+ case arg @ NamedArg(name, arg1) => cpy.NamedArg(arg)(name, lift(defs, arg1, prefix))
+ case arg => lift(defs, arg, prefix)
}
- lift(defs, arg1, prefix)
- }
/** Lift arguments that are not-idempotent into ValDefs in buffer `defs`
* and replace by the idents of so created ValDefs.