aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2016-02-19 18:10:18 +0100
committerodersky <odersky@gmail.com>2016-02-19 18:10:18 +0100
commit07bf063000db98789a7b0227436284ec9e77e73e (patch)
tree2508242cdd006c95e75549ab084e1215bba28b23
parentdfa3ec849ff62f682092c450129e78d43829bde3 (diff)
parentcdfbdb14f0d6bb4f3a5dd284fd17e86addaa5d03 (diff)
downloaddotty-07bf063000db98789a7b0227436284ec9e77e73e.tar.gz
dotty-07bf063000db98789a7b0227436284ec9e77e73e.tar.bz2
dotty-07bf063000db98789a7b0227436284ec9e77e73e.zip
Merge pull request #1102 from dotty-staging/fix-#1096
Keep named arguments during eta expansion
-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.