diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 11 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/Erasure.scala | 2 |
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! |