aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/Erasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-09-06 08:47:08 +0200
committerMartin Odersky <odersky@gmail.com>2014-09-06 08:47:08 +0200
commite1040935cbcc1d767933c38a141372538ef63ac2 (patch)
treed2f05fa2319fe80a76f660e043d42a06d5e9ba8a /src/dotty/tools/dotc/transform/Erasure.scala
parent44bdec1a44db7ac880183e0c70b5f5668048961e (diff)
downloaddotty-e1040935cbcc1d767933c38a141372538ef63ac2.tar.gz
dotty-e1040935cbcc1d767933c38a141372538ef63ac2.tar.bz2
dotty-e1040935cbcc1d767933c38a141372538ef63ac2.zip
Better tests and more fixes for ExplicitOuter
Now also testing that after erasure no outer this exists. Tests suit now includes calls to local classes and methods which need an outer pointer, as well as passing an outer pointer along a secondary constructor.
Diffstat (limited to 'src/dotty/tools/dotc/transform/Erasure.scala')
-rw-r--r--src/dotty/tools/dotc/transform/Erasure.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala
index 82acb482d..fe5e516bf 100644
--- a/src/dotty/tools/dotc/transform/Erasure.scala
+++ b/src/dotty/tools/dotc/transform/Erasure.scala
@@ -309,7 +309,7 @@ object Erasure {
case fun1 =>
fun1.tpe.widen match {
case mt: MethodType =>
- val outers = outer.args(fun1) map untpd.TypedSplice
+ val outers = outer.args(fun.asInstanceOf[tpd.Tree]) // can't use fun1 here because its type is already erased
val args1 = (outers ::: args ++ protoArgs(pt)).zipWithConserve(mt.paramTypes)(typedExpr)
untpd.cpy.Apply(tree)(fun1, args1) withType mt.resultType
case _ =>