aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/TypeErasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-08-31 19:34:55 +0200
committerMartin Odersky <odersky@gmail.com>2014-08-31 19:34:55 +0200
commitec1d2745dce34f81578967a032253a1a84361bc7 (patch)
tree5347568cee6bf4f7c7bc6f30248362eb1bb45f7c /src/dotty/tools/dotc/TypeErasure.scala
parent47b1d735e8323b2587aeb4b2a7ce5e214d9f1f8d (diff)
downloaddotty-ec1d2745dce34f81578967a032253a1a84361bc7.tar.gz
dotty-ec1d2745dce34f81578967a032253a1a84361bc7.tar.bz2
dotty-ec1d2745dce34f81578967a032253a1a84361bc7.zip
Add outer parameters in constructor calls.
1) Constructors of inner classes get outer parameters 2) Outer arguments are passed as needed.
Diffstat (limited to 'src/dotty/tools/dotc/TypeErasure.scala')
-rw-r--r--src/dotty/tools/dotc/TypeErasure.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/TypeErasure.scala b/src/dotty/tools/dotc/TypeErasure.scala
index d2b241e71..a5dbd5731 100644
--- a/src/dotty/tools/dotc/TypeErasure.scala
+++ b/src/dotty/tools/dotc/TypeErasure.scala
@@ -1,7 +1,9 @@
-package dotty.tools.dotc
+package dotty.tools
+package dotc
package core
import Symbols._, Types._, Contexts._, Flags._, Names._, StdNames._, Decorators._, Flags.JavaDefined
+import dotc.transform.OuterAccessors._
import util.DotClass
/** Erased types are:
@@ -110,6 +112,7 @@ object TypeErasure {
if ((sym eq defn.Any_asInstanceOf) || (sym eq defn.Any_isInstanceOf)) eraseParamBounds(sym.info.asInstanceOf[PolyType])
else if (sym.isAbstractType) TypeAlias(WildcardType)
+ else if (sym.isConstructor) addOuterParam(sym.owner.asClass, erase(tp))
else erase(tp)
}