aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-02-12 12:40:12 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-18 11:09:43 +0100
commit1026672008b031991b292893fd562fa1c11c0e3a (patch)
tree3ba8f5eb119e9eec623af1e8aeaa1068e7ac0485 /src/dotty/tools/dotc/core/pickling/PickleFormat.scala
parent4f804782950d6efcd979df2dc60c2bcf9a04f115 (diff)
downloaddotty-1026672008b031991b292893fd562fa1c11c0e3a.tar.gz
dotty-1026672008b031991b292893fd562fa1c11c0e3a.tar.bz2
dotty-1026672008b031991b292893fd562fa1c11c0e3a.zip
Changes to Tasty format:
1) IDENT nodes if types are not termrefs. (otherwise we lose information) 2) PRIVATEqualified and PROTECTDqualified always have a type argument Also, Pickler guards against previously encountered errors: - orphan parameters - trying to pickle packages as internal symbols. Plus some small polishings.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/PickleFormat.scala')
-rw-r--r--src/dotty/tools/dotc/core/pickling/PickleFormat.scala30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/PickleFormat.scala b/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
index 338342459..24b5169e7 100644
--- a/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
+++ b/src/dotty/tools/dotc/core/pickling/PickleFormat.scala
@@ -17,9 +17,6 @@ Micro-syntax:
Nat = LongNat // value fits in an Int without overflow
Digit = 0 | ... | 127
StopDigit = 128 | ... | 255 // value = digit - 128
- FullInt = Byte Byte Byte Byte
- FullLong = Byte Byte Byte Byte Byte Byte Byte Byte
- Byte - 0 | ... | 255
Macro-format:
@@ -62,6 +59,7 @@ Standard-Section: "ASTs" Tree*
RENAMED Length from_NameRef to_NameRef
Term = Path
+ IDENT Type NameRef
SELECT qual_Term possiblySigned_NameRef
SUPER Length this_Term mixinTrait_Type?
APPLY Length fn_Term arg_Term*
@@ -149,8 +147,8 @@ Standard-Section: "ASTs" Tree*
Modifier = PRIVATE
INTERNAL // package private
PROTECTED
- PRIVATEqualified qualifier_ASTRef // will be dropped
- PROTECTEDqualified qualifier_ASTRef // will be dropped
+ PRIVATEqualified Length qualifier_Type // will be dropped
+ PROTECTEDqualified Length qualifier_Type // will be dropped
ABSTRACT
FINAL
SEALED
@@ -262,14 +260,13 @@ object PickleFormat {
final val FLOATconst = 110
final val DOUBLEconst = 111
final val STRINGconst = 112
- final val PRIVATEqualified = 113
- final val PROTECTEDqualified = 114
- final val SELECT = 128
- final val TERMREFsymbol = 129
- final val TERMREF = 130
- final val TYPEREFsymbol = 131
- final val TYPEREF = 132
+ final val IDENT = 128
+ final val SELECT = 129
+ final val TERMREFsymbol = 130
+ final val TERMREF = 131
+ final val TYPEREFsymbol = 132
+ final val TYPEREF = 133
final val PACKAGE = 160
final val VALDEF = 161
@@ -321,10 +318,12 @@ object PickleFormat {
final val POLYtype = 207
final val PARAMtype = 208
final val IMPLICITARG = 209
+ final val PRIVATEqualified = 210
+ final val PROTECTEDqualified = 211
final val firstSimpleTreeTag = EMPTYTREE
final val firstNatTreeTag = SHARED
- final val firstTreeNatTreeTag = SELECT
+ final val firstTreeNatTreeTag = IDENT
final val firstLengthTreeTag = PACKAGE
def nameTagToString(tag: Int): String = tag match {
@@ -390,9 +389,8 @@ object PickleFormat {
case FLOATconst => "FLOATconst"
case DOUBLEconst => "DOUBLEconst"
case STRINGconst => "STRINGconst"
- case PRIVATEqualified => "PRIVATEqualified"
- case PROTECTEDqualified => "PROTECTEDqualified"
+ case IDENT => "IDENT"
case SELECT => "SELECT"
case TERMREFsymbol => "TERMREFsymbol"
case TERMREF => "TERMREF"
@@ -449,5 +447,7 @@ object PickleFormat {
case METHODtype => "METHODtype"
case PARAMtype => "PARAMtype"
case IMPLICITARG => "IMPLICITARG"
+ case PRIVATEqualified => "PRIVATEqualified"
+ case PROTECTEDqualified => "PROTECTEDqualified"
}
}