aboutsummaryrefslogtreecommitdiff
path: root/src/dotty
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala11
-rw-r--r--src/dotty/tools/dotc/transform/Erasure.scala2
2 files changed, 7 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 0068c0a77..53e8b4d2c 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -77,8 +77,8 @@ class Definitions {
newPolyMethod(cls, name, 1, pt => MethodType(Nil, Nil, resultTypeFn(pt)), flags)
private def mkArityArray(name: String, arity: Int, countFrom: Int): Array[ClassSymbol] = {
- val arr = new Array[ClassSymbol](arity)
- for (i <- countFrom until arity) arr(i) = ctx.requiredClass("scala." + name + i)
+ val arr = new Array[ClassSymbol](arity + 1)
+ for (i <- countFrom to arity) arr(i) = ctx.requiredClass(name + i)
arr
}
@@ -339,9 +339,10 @@ class Definitions {
// ----- Symbol sets ---------------------------------------------------
- lazy val FunctionClass = mkArityArray("Function", MaxFunctionArity, 0)
- lazy val TupleClass = mkArityArray("Tuple", MaxTupleArity, 2)
- lazy val ProductNClass = mkArityArray("Product", MaxTupleArity, 2)
+ lazy val AbstractFunctionClass = mkArityArray("scala.runtime.AbstractFunction", MaxFunctionArity, 0)
+ lazy val FunctionClass = mkArityArray("scala.Function", MaxFunctionArity, 0)
+ lazy val TupleClass = mkArityArray("scala.Tuple", MaxTupleArity, 2)
+ lazy val ProductNClass = mkArityArray("scala.Product", MaxTupleArity, 2)
lazy val FunctionClasses: Set[Symbol] = FunctionClass.toSet
lazy val TupleClasses: Set[Symbol] = TupleClass.toSet
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala
index 8d9ebfdee..d0c51c8b9 100644
--- a/src/dotty/tools/dotc/transform/Erasure.scala
+++ b/src/dotty/tools/dotc/transform/Erasure.scala
@@ -266,7 +266,7 @@ object Erasure {
val statsFlatten = Trees.flatten(stats)
val stats1 = super.typedStats(statsFlatten, exprOwner)
- if (ctx.owner.isClass) addBridges(statsFlatten, stats1)(ctx) else stats1
+ if (ctx.owner.isClass) stats1:::addBridges(statsFlatten, stats1)(ctx) else stats1
}
// this implementation doesn't check for bridge clashes with value types!