aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-19 12:42:55 +0100
committerMartin Odersky <odersky@gmail.com>2017-04-06 13:15:29 +0200
commit15317555c94f613f266d7b0fb0a75b0b6ed2da6d (patch)
tree24066bc08e95b411d2ac5f0b54ec1382e3fa9451 /compiler/src/dotty/tools/dotc/core/TypeErasure.scala
parentf6c61f3976a2780ce42ea6cd814986b662570687 (diff)
downloaddotty-15317555c94f613f266d7b0fb0a75b0b6ed2da6d.tar.gz
dotty-15317555c94f613f266d7b0fb0a75b0b6ed2da6d.tar.bz2
dotty-15317555c94f613f266d7b0fb0a75b0b6ed2da6d.zip
Make PolyType a ground type
It's too surprising to leave it as a type proxy. In all circumstances except erasure, it is not true that a PolyType is somehow the same as its result type.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/TypeErasure.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/core/TypeErasure.scala4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
index 8ff0be9d7..f35752644 100644
--- a/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
+++ b/compiler/src/dotty/tools/dotc/core/TypeErasure.scala
@@ -389,6 +389,8 @@ class TypeErasure(isJava: Boolean, semiEraseVCs: Boolean, isConstructor: Boolean
case rt =>
tp.derivedLambdaType(tp.paramNames, formals, rt)
}
+ case tp: PolyType =>
+ this(tp.resultType)
case tp @ ClassInfo(pre, cls, classParents, decls, _) =>
if (cls is Package) tp
else {
@@ -517,6 +519,8 @@ class TypeErasure(isJava: Boolean, semiEraseVCs: Boolean, isConstructor: Boolean
if (inst.exists) sigName(inst) else tpnme.Uninstantiated
case tp: TypeProxy =>
sigName(tp.underlying)
+ case tp: PolyType =>
+ sigName(tp.resultType)
case _: ErrorType | WildcardType =>
tpnme.WILDCARD
case tp: WildcardType =>