aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-07-19 12:38:19 +0200
committerMartin Odersky <odersky@gmail.com>2015-09-18 18:07:27 +0200
commit094c3bdef0fcc725c6eada7cbf70a9c51ce1ed7e (patch)
tree5da6a5fc7c050c18c83624412468a4b8730f9515
parent47049965ce2b72e49b0d1ca29c10966f7d5012fb (diff)
downloaddotty-094c3bdef0fcc725c6eada7cbf70a9c51ce1ed7e.tar.gz
dotty-094c3bdef0fcc725c6eada7cbf70a9c51ce1ed7e.tar.bz2
dotty-094c3bdef0fcc725c6eada7cbf70a9c51ce1ed7e.zip
Don't lambda abstract derived types
Derived types already contain the lambda abstractoion; lambda abstracting them again would cause a double lambda.
-rw-r--r--src/dotty/tools/dotc/typer/Namer.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Namer.scala b/src/dotty/tools/dotc/typer/Namer.scala
index 224ced0ce..225235822 100644
--- a/src/dotty/tools/dotc/typer/Namer.scala
+++ b/src/dotty/tools/dotc/typer/Namer.scala
@@ -783,7 +783,7 @@ class Namer { typer: Typer =>
//val toParameterize = tparamSyms.nonEmpty && !isDerived
//val needsLambda = sym.allOverriddenSymbols.exists(_ is HigherKinded) && !isDerived
def abstracted(tp: Type): Type =
- if (tparamSyms.nonEmpty) tp.LambdaAbstract(tparamSyms)
+ if (tparamSyms.nonEmpty && !isDerived) tp.LambdaAbstract(tparamSyms)
//else if (toParameterize) tp.parameterizeWith(tparamSyms)
else tp
sym.info = abstracted(TypeBounds.empty)