diff options
author | Martin Odersky <odersky@gmail.com> | 2015-06-05 18:49:36 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-06-06 11:05:27 +0200 |
commit | 080ed2f3d8b5d8fd249691aacc0fe4f9596bb772 (patch) | |
tree | 1fac280aa6832c115037e04178d791cc92f9de25 /src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala | |
parent | eaf3095494af2b0ea028452450a6af44e27f5284 (diff) | |
download | dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.gz dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.bz2 dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.zip |
Split RefinedThis and SkolemType
SkolemTypes need to behave differently form RefinedThis types in TypeMap
and TypeAccumulator. For skolem types these should follow through to the
underlying type. For RefinedThis types, these need to do nothing, in order
not to start an infinite recursion.
Diffstat (limited to 'src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala index b4549a8d8..9498cf43c 100644 --- a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala +++ b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala @@ -689,7 +689,7 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas else { def addRefinement(tp: Type, sym: Symbol) = { def subst(info: Type, rt: RefinedType) = - if (clazz.isClass) info.substThis(clazz.asClass, SkolemType(rt)) + if (clazz.isClass) info.substThis(clazz.asClass, RefinedThis(rt)) else info // turns out some symbols read into `clazz` are not classes, not sure why this is the case. RefinedType(tp, sym.name, subst(sym.info, _)) } |