diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-09 12:00:38 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-09 12:00:38 +0200 |
commit | 29e4d716fc188694b223970a9e81767d74a70c8b (patch) | |
tree | 6dadab58cc7e7ddc6b9ce77c167e97bcdd47d978 /src/dotty | |
parent | 6fe7bdc091cee3f20f579409ba08800c5a1158d8 (diff) | |
download | dotty-29e4d716fc188694b223970a9e81767d74a70c8b.tar.gz dotty-29e4d716fc188694b223970a9e81767d74a70c8b.tar.bz2 dotty-29e4d716fc188694b223970a9e81767d74a70c8b.zip |
Producing denotations for typeConstructors in ClassInfos early.
Motovation: We have the denotation modulo asSeenFrom, so no member lookup needed
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/core/Types.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/UnPickler.scala | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala index 99f76d214..b436a4c11 100644 --- a/src/dotty/tools/dotc/core/Types.scala +++ b/src/dotty/tools/dotc/core/Types.scala @@ -1430,7 +1430,7 @@ object Types { def typeConstructor(implicit ctx: Context): Type = if ((cls is PackageClass) || cls.owner.isTerm) TypeRef(prefix, cls) - else TypeRef(prefix, cls.name) + else TypeRef(prefix, cls.name).withDenot(cls.denot.asSeenFrom(prefix)) // cached because baseType needs parents private var parentsCache: List[TypeRef] = null diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala index 99852477f..f2cd78e35 100644 --- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala +++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala @@ -634,10 +634,8 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: val tycon = if (isLocal(sym)) { TypeRef( - if ((pre eq NoPrefix) && (sym is TypeParam)) - sym.owner.thisType - else - pre, + if ((pre eq NoPrefix) && (sym is TypeParam)) sym.owner.thisType + else pre, sym.asType) } else TypeRef(pre, sym.name.asTypeName).withDenot(sym) val args = until(end, readTypeRef) |