diff options
author | Martin Odersky <odersky@gmail.com> | 2015-02-27 18:26:24 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 11:14:12 +0100 |
commit | 62df23e4b75b1f57a4c110d7aac0e50a3a971074 (patch) | |
tree | f66f36ea10441237be847dfe4063528db95f53a5 /src/dotty/tools/dotc/core/pickling/TreePickler.scala | |
parent | 60e520c73d20526f2cf21c90088480f0a971fbc3 (diff) | |
download | dotty-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.scala | 89 |
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 { |