diff options
author | Martin Odersky <odersky@gmail.com> | 2015-03-04 14:39:13 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 11:14:14 +0100 |
commit | a4b2a67fa5d58f7dbd34b8876e8a87e309524e22 (patch) | |
tree | 66c721ac1d151b0c3b640dffb56f647ebf727f4f /src/dotty/tools/dotc/core/pickling/TreePickler.scala | |
parent | 96fbd7bfe252026f59d1f5e8aa33f2d8fae65769 (diff) | |
download | dotty-a4b2a67fa5d58f7dbd34b8876e8a87e309524e22.tar.gz dotty-a4b2a67fa5d58f7dbd34b8876e8a87e309524e22.tar.bz2 dotty-a4b2a67fa5d58f7dbd34b8876e8a87e309524e22.zip |
Changes to Tasty format
Use fewer length fields in type encodings.
- create new category of tags that take exactly one argument tree.
- avoid using length where a tag fits in one of theopther categories.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/TreePickler.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/TreePickler.scala | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/TreePickler.scala b/src/dotty/tools/dotc/core/pickling/TreePickler.scala index 750c7bda6..b8f031ec5 100644 --- a/src/dotty/tools/dotc/core/pickling/TreePickler.scala +++ b/src/dotty/tools/dotc/core/pickling/TreePickler.scala @@ -103,10 +103,10 @@ class TreePickler(pickler: TastyPickler) { writeByte(NULLconst) case ClazzTag => writeByte(CLASSconst) - withLength { pickleType(c.typeValue) } + pickleType(c.typeValue) case EnumTag => writeByte(ENUMconst) - withLength { pickleType(c.symbolValue.termRef) } + pickleType(c.symbolValue.termRef) } def pickleType(tpe0: Type, richTypes: Boolean = false): Unit = try { @@ -165,7 +165,7 @@ class TreePickler(pickler: TastyPickler) { pickleName(tpe.name); pickleType(tpe.prefix) case tpe: ThisType => writeByte(THIS) - withLength { pickleType(tpe.tref) } + pickleType(tpe.tref) case tpe: SuperType => writeByte(SUPERtype) withLength { pickleType(tpe.thistpe); pickleType(tpe.supertpe)} @@ -302,7 +302,7 @@ class TreePickler(pickler: TastyPickler) { } case New(tpt) => writeByte(NEW) - withLength { pickleTpt(tpt) } + pickleTpt(tpt) case Pair(left, right) => writeByte(PAIR) withLength { pickleTree(left); pickleTree(right) } @@ -357,8 +357,8 @@ class TreePickler(pickler: TastyPickler) { withLength { pickleTree(fun) for (implicitArg <- implicits) { - writeByte(IMPLICITARG) - withLength { pickleTree(implicitArg) } + writeByte(IMPLICITarg) + pickleTree(implicitArg) } pickleType(tree.tpe) patterns.foreach(pickleTree) @@ -390,10 +390,8 @@ class TreePickler(pickler: TastyPickler) { val cinfo @ ClassInfo(_, _, _, _, selfInfo) = tree.symbol.owner.info if ((selfInfo ne NoType) || !tree.self.isEmpty) { writeByte(SELFDEF) - withLength { - pickleName(tree.self.name) - pickleType(cinfo.selfType) - } + pickleName(tree.self.name) + pickleType(cinfo.selfType) } pickleStats(tree.constr :: rest) } @@ -407,7 +405,7 @@ class TreePickler(pickler: TastyPickler) { withLength { pickleName(from); pickleName(to) } case Ident(name) => writeByte(IMPORTED) - withLength { pickleName(name) } + pickleName(name) } } case PackageDef(pid, stats) => @@ -460,7 +458,7 @@ class TreePickler(pickler: TastyPickler) { val privateWithin = sym.privateWithin if (privateWithin.exists) { writeByte(if (flags is Protected) PROTECTEDqualified else PRIVATEqualified) - withLength { pickleType(privateWithin.typeRef) } + pickleType(privateWithin.typeRef) } if (flags is Private) writeByte(PRIVATE) if (flags is Protected) if (!privateWithin.exists) writeByte(PROTECTED) |