aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/pickling/TreePickler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-02-27 18:26:24 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-18 11:14:12 +0100
commit62df23e4b75b1f57a4c110d7aac0e50a3a971074 (patch)
treef66f36ea10441237be847dfe4063528db95f53a5 /src/dotty/tools/dotc/core/pickling/TreePickler.scala
parent60e520c73d20526f2cf21c90088480f0a971fbc3 (diff)
downloaddotty-62df23e4b75b1f57a4c110d7aac0e50a3a971074.tar.gz
dotty-62df23e4b75b1f57a4c110d7aac0e50a3a971074.tar.bz2
dotty-62df23e4b75b1f57a4c110d7aac0e50a3a971074.zip
Align PickleFormat with doc spec
New version number: 0.04 Also removed dead code in pickler.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/TreePickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/pickling/TreePickler.scala89
1 files changed, 38 insertions, 51 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/TreePickler.scala b/src/dotty/tools/dotc/core/pickling/TreePickler.scala
index 3212894c4..3218c1661 100644
--- a/src/dotty/tools/dotc/core/pickling/TreePickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/TreePickler.scala
@@ -58,57 +58,44 @@ class TreePickler(pickler: TastyPickler) {
def qualifiedName(sym: Symbol): TastyName =
if (sym.isRoot || sym.owner.isRoot) TastyName.Simple(sym.name.toTermName)
else TastyName.Qualified(nameIndex(qualifiedName(sym.owner)), nameIndex(sym.name))
-
- def pickleConstant(c: Constant): Unit = {
- def pickleNum(nonNegTag: Int, negTag: Int) = {
- val x = c.longValue
- if (x < 0) {
- writeByte(negTag)
- writeLongNat(-(x + 1))
- }
- else {
- writeByte(nonNegTag)
- writeLongNat(x)
- }
- }
- c.tag match {
- case UnitTag =>
- writeByte(UNITconst)
- case BooleanTag =>
- writeByte(if (c.booleanValue) TRUEconst else FALSEconst)
- case ByteTag =>
- writeByte(BYTEconst)
- writeInt(c.byteValue)
- case ShortTag =>
- writeByte(SHORTconst)
- writeInt(c.shortValue)
- case CharTag =>
- writeByte(CHARconst)
- writeNat(c.charValue)
- case IntTag =>
- writeByte(INTconst)
- writeInt(c.intValue)
- case LongTag =>
- writeByte(LONGconst)
- writeLongInt(c.longValue)
- case FloatTag =>
- writeByte(FLOATconst)
- writeInt(java.lang.Float.floatToRawIntBits(c.floatValue))
- case DoubleTag =>
- writeByte(DOUBLEconst)
- writeLongInt(java.lang.Double.doubleToRawLongBits(c.doubleValue))
- case StringTag =>
- writeByte(STRINGconst)
- writeNat(nameIndex(c.stringValue).index)
- case NullTag =>
- writeByte(NULLconst)
- case ClazzTag =>
- writeByte(CLASSconst)
- withLength { pickleType(c.typeValue) }
- case EnumTag =>
- writeByte(ENUMconst)
- withLength { pickleType(c.symbolValue.termRef) }
- }
+
+ def pickleConstant(c: Constant): Unit = c.tag match {
+ case UnitTag =>
+ writeByte(UNITconst)
+ case BooleanTag =>
+ writeByte(if (c.booleanValue) TRUEconst else FALSEconst)
+ case ByteTag =>
+ writeByte(BYTEconst)
+ writeInt(c.byteValue)
+ case ShortTag =>
+ writeByte(SHORTconst)
+ writeInt(c.shortValue)
+ case CharTag =>
+ writeByte(CHARconst)
+ writeNat(c.charValue)
+ case IntTag =>
+ writeByte(INTconst)
+ writeInt(c.intValue)
+ case LongTag =>
+ writeByte(LONGconst)
+ writeLongInt(c.longValue)
+ case FloatTag =>
+ writeByte(FLOATconst)
+ writeInt(java.lang.Float.floatToRawIntBits(c.floatValue))
+ case DoubleTag =>
+ writeByte(DOUBLEconst)
+ writeLongInt(java.lang.Double.doubleToRawLongBits(c.doubleValue))
+ case StringTag =>
+ writeByte(STRINGconst)
+ writeNat(nameIndex(c.stringValue).index)
+ case NullTag =>
+ writeByte(NULLconst)
+ case ClazzTag =>
+ writeByte(CLASSconst)
+ withLength { pickleType(c.typeValue) }
+ case EnumTag =>
+ writeByte(ENUMconst)
+ withLength { pickleType(c.symbolValue.termRef) }
}
def pickleType(tpe0: Type, richTypes: Boolean = false): Unit = try {