aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-02-24 16:55:37 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-18 11:14:10 +0100
commit5d09a0cea088a193f7e917cbc03187d5b6b7a795 (patch)
tree86a757ebe6951cba44e4de6eb00c16ab62e662b1 /src/dotty/tools
parentaebc626de6fa762dcd30fd78d0cc2cf3e5a983d4 (diff)
downloaddotty-5d09a0cea088a193f7e917cbc03187d5b6b7a795.tar.gz
dotty-5d09a0cea088a193f7e917cbc03187d5b6b7a795.tar.bz2
dotty-5d09a0cea088a193f7e917cbc03187d5b6b7a795.zip
Have pkg intsead of static external references
Static does not tell us whether to start the search it in empty package or in root package.
Diffstat (limited to 'src/dotty/tools')
-rw-r--r--src/dotty/tools/dotc/core/pickling/PickleFormat.scala12
-rw-r--r--src/dotty/tools/dotc/core/pickling/TastyPrinter.scala2
-rw-r--r--src/dotty/tools/dotc/core/pickling/TreePickler.scala4
-rw-r--r--src/dotty/tools/dotc/core/pickling/TreesUnpickler.scala18
4 files changed, 23 insertions, 13 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/PickleFormat.scala b/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
index 9de471204..aebd53f9a 100644
--- a/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
+++ b/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
@@ -97,7 +97,7 @@ Standard-Section: "ASTs" TopLevelStat*
Path = Constant
TERMREFdirect sym_ASTRef
TERMREFsymbol sym_ASTRef qual_Type
- TERMREFstatic fullyQualified_NameRef
+ TERMREFpkg fullyQualified_NameRef
TERMREF possiblySigned_NameRef qual_Type
THIS Length clsRef_Type
SKOLEMtype refinedType_ASTref
@@ -122,7 +122,7 @@ Standard-Section: "ASTs" TopLevelStat*
Type = Path
TYPEREFdirect sym_ASTRef
TYPEREFsymbol sym_ASTRef qual_Type
- TYPEREFstatic fullyQualified_NameRef
+ TYPEREFpkg fullyQualified_NameRef
TYPEREF possiblySigned_NameRef qual_Type
SUPERtype Length this_Type underlying_Type
REFINEDtype Length underlying_Type refinement_NameRef info_Type
@@ -246,8 +246,8 @@ object PickleFormat {
final val SHARED = 64
final val TERMREFdirect = 65
final val TYPEREFdirect = 66
- final val TERMREFstatic = 67
- final val TYPEREFstatic = 68
+ final val TERMREFpkg = 67
+ final val TYPEREFpkg = 68
final val SKOLEMtype = 69
final val BYTEconst = 70
final val SHORTconst = 71
@@ -379,8 +379,8 @@ object PickleFormat {
case SHARED => "SHARED"
case TERMREFdirect => "TERMREFdirect"
case TYPEREFdirect => "TYPEREFdirect"
- case TERMREFstatic => "TERMREFstatic"
- case TYPEREFstatic => "TYPEREFstatic"
+ case TERMREFpkg => "TERMREFpkg"
+ case TYPEREFpkg => "TYPEREFpkg"
case SKOLEMtype => "SKOLEMtype"
case BYTEconst => "BYTEconst"
case SHORTconst => "SHORTconst"
diff --git a/src/dotty/tools/dotc/core/pickling/TastyPrinter.scala b/src/dotty/tools/dotc/core/pickling/TastyPrinter.scala
index cf531ecac..94d57e081 100644
--- a/src/dotty/tools/dotc/core/pickling/TastyPrinter.scala
+++ b/src/dotty/tools/dotc/core/pickling/TastyPrinter.scala
@@ -89,7 +89,7 @@ class TastyPrinter(bytes: Array[Byte])(implicit ctx: Context) {
}
else if (tag >= firstNatTreeTag)
tag match {
- case TERMREFstatic | TYPEREFstatic | STRINGconst => printName()
+ case TERMREFpkg | TYPEREFpkg | STRINGconst => printName()
case _ => printNat()
}
indent -= 2
diff --git a/src/dotty/tools/dotc/core/pickling/TreePickler.scala b/src/dotty/tools/dotc/core/pickling/TreePickler.scala
index 60b7a55b0..0365c0d7f 100644
--- a/src/dotty/tools/dotc/core/pickling/TreePickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/TreePickler.scala
@@ -133,8 +133,8 @@ class TreePickler(pickler: TastyPickler) {
pickleConstant(value)
case tpe: WithFixedSym =>
val sym = tpe.symbol
- if (sym.isStatic && sym.isType || sym.is(Flags.Module)) {
- writeByte(if (tpe.isType) TYPEREFstatic else TERMREFstatic)
+ if (sym.is(Flags.Package)) {
+ writeByte(if (tpe.isType) TYPEREFpkg else TERMREFpkg)
pickleName(qualifiedName(sym))
}
else if (tpe.prefix == NoPrefix) {
diff --git a/src/dotty/tools/dotc/core/pickling/TreesUnpickler.scala b/src/dotty/tools/dotc/core/pickling/TreesUnpickler.scala
index 4bc79964a..c652e1b90 100644
--- a/src/dotty/tools/dotc/core/pickling/TreesUnpickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/TreesUnpickler.scala
@@ -179,10 +179,20 @@ class TreesUnpickler(reader: TastyReader, tastyName: TastyName.Table,
case TYPEREFsymbol | TERMREFsymbol =>
val sym = readSymRef()
NamedType.withFixedSym(readType(), sym)
- case TYPEREFstatic =>
- ctx.requiredClass(readName().toTypeName).typeRef
- case TERMREFstatic =>
- ctx.requiredModule(readName()).termRef
+ case TYPEREFpkg =>
+ val name = readName()
+ val pkg =
+ if (name == nme.ROOT) defn.RootClass
+ else if (name == nme.EMPTY_PACKAGE) defn.EmptyPackageClass
+ else ctx.requiredPackage(name).moduleClass
+ pkg.typeRef
+ case TERMREFpkg =>
+ val name = readName()
+ val pkg =
+ if (name == nme.ROOT) defn.RootPackage
+ else if (name == nme.EMPTY_PACKAGE) defn.EmptyPackageVal
+ else ctx.requiredPackage(name)
+ pkg.termRef
case TYPEREF =>
val name = readName().toTypeName
TypeRef(readType(), name)