diff options
author | Martin Odersky <odersky@gmail.com> | 2013-11-23 17:41:22 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-11-23 17:41:22 +0100 |
commit | 92ed954f361ed08ef4821afd530357379956904a (patch) | |
tree | 0e4df5d262d79225a2cae19620d398c75d1a4c0e /src/dotty/tools/dotc/core/pickling | |
parent | 9e1bf7743355de040a23fbcfe9b1efb9b1db1789 (diff) | |
download | dotty-92ed954f361ed08ef4821afd530357379956904a.tar.gz dotty-92ed954f361ed08ef4821afd530357379956904a.tar.bz2 dotty-92ed954f361ed08ef4821afd530357379956904a.zip |
Cleanup of named type creation from SymDenotations.
New operations:
- typeRef
- termRef
- valRef (like termRef, but with NotAMethod signature)
- termRefWithSig (like termRef, but with denotation's signature)
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/UnPickler.scala | 13 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala index b68f9eb6f..dbd8088bf 100644 --- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala +++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala @@ -190,7 +190,7 @@ class ClassfileParser( */ def normalizeConstructorInfo() = { val mt @ MethodType(paramnames, paramtypes) = denot.info - val rt = classRoot.typeRef appliedTo (classRoot.typeParams map (_.symRef)) + val rt = classRoot.typeRef appliedTo (classRoot.typeParams map (_.typeRef)) denot.info = mt.derivedMethodType(paramnames, paramtypes, rt) addConstructorTypeParams(denot) } diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala index 02db4b0b0..415bc250a 100644 --- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala +++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala @@ -934,7 +934,7 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: val ldef = DefDef(symbol.asTerm, rhs) def isCaseLabel(sym: Symbol) = sym.name.startsWith(nme.CASEkw) if (isCaseLabel(symbol)) ldef - else Block(ldef :: Nil, Apply(Ident(symbol.symRef), Nil)) + else Block(ldef :: Nil, Apply(Ident(symbol.termRef), Nil)) case IMPORTtree => setSym() @@ -955,7 +955,7 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: val self = readValDefRef() val body = until(end, readTreeRef) untpd.Template(???, parents, self, body) // !!! TODO: pull out primary constructor - .withType(symbol.symRef) + .withType(symbol.namedType) case BLOCKtree => val expr = readTreeRef() @@ -1016,7 +1016,7 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: case RETURNtree => setSym() - Return(readTreeRef(), Ident(symbol.symRef)) + Return(readTreeRef(), Ident(symbol.termRef)) case TREtree => val block = readTreeRef() @@ -1072,11 +1072,10 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: setSym() val qualifier = readTreeRef() val selector = readNameRef() - Select(qualifier, symbol.symRef) - + Select(qualifier, symbol.namedType) case IDENTtree => setSymName() - Ident(symbol.symRef) + Ident(symbol.namedType) case LITERALtree => Literal(readConstantRef()) @@ -1095,7 +1094,7 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: case SELECTFROMTYPEtree => val qualifier = readTreeRef() val selector = readTypeNameRef() - SelectFromTypeTree(qualifier, symbol.symRef) + SelectFromTypeTree(qualifier, symbol.namedType) case COMPOUNDTYPEtree => readTemplateRef() |