diff options
author | Paul Phillips <paulp@improving.org> | 2012-11-04 05:36:34 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-11-04 05:38:53 -0800 |
commit | 477eee3acf0ec9e6f339efb97a213a2a0775495f (patch) | |
tree | 6dafcc83501fa0bff5b547070171c083d712a8f1 | |
parent | 30954277448ea270ea5cf59af6c5760451a81005 (diff) | |
download | scala-477eee3acf0ec9e6f339efb97a213a2a0775495f.tar.gz scala-477eee3acf0ec9e6f339efb97a213a2a0775495f.tar.bz2 scala-477eee3acf0ec9e6f339efb97a213a2a0775495f.zip |
Pull request feedback.
Factor out 8x duplicated bit of UnPicklers.
-rw-r--r-- | src/reflect/scala/reflect/internal/pickling/UnPickler.scala | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala index 2cb2c57e32..13e42102cc 100644 --- a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala +++ b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala @@ -188,11 +188,12 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { } protected def readTermName(): TermName = readName().toTermName protected def readTypeName(): TypeName = readName().toTypeName + private def readEnd() = readNat() + readIndex /** Read a symbol */ protected def readSymbol(): Symbol = { val tag = readByte() - val end = readNat() + readIndex + val end = readEnd() def atEnd = readIndex == end def readExtSymbol(): Symbol = { @@ -320,7 +321,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { */ protected def readType(forceProperType: Boolean = false): Type = { val tag = readByte() - val end = readNat() + readIndex + val end = readEnd() (tag: @switch) match { case NOtpe => NoType @@ -426,7 +427,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { protected def readChildren() { val tag = readByte() assert(tag == CHILDREN) - val end = readNat() + readIndex + val end = readEnd() val target = readSymbolRef() while (readIndex != end) target addChild readSymbolRef() } @@ -445,7 +446,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { */ private def readArrayAnnot() = { readByte() // skip the `annotargarray` tag - val end = readNat() + readIndex + val end = readEnd() until(end, () => readClassfileAnnotArg(readNat())).toArray(JavaArgumentTag) } protected def readClassfileAnnotArg(i: Int): ClassfileAnnotArg = bytes(index(i)) match { @@ -481,7 +482,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { val tag = readByte() if (tag != SYMANNOT) errorBadSignature("symbol annotation expected ("+ tag +")") - val end = readNat() + readIndex + val end = readEnd() val target = readSymbolRef() target.addAnnotation(readAnnotationInfo(end)) } @@ -492,7 +493,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { val tag = readByte() if (tag != ANNOTINFO) errorBadSignature("annotation expected (" + tag + ")") - val end = readNat() + readIndex + val end = readEnd() readAnnotationInfo(end) } @@ -501,7 +502,7 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { val outerTag = readByte() if (outerTag != TREE) errorBadSignature("tree expected (" + outerTag + ")") - val end = readNat() + readIndex + val end = readEnd() val tag = readByte() val tpe = if (tag == EMPTYtree) NoType else readTypeRef() @@ -759,7 +760,8 @@ abstract class UnPickler /*extends scala.reflect.generic.UnPickler*/ { val tag = readNat() if (tag != MODIFIERS) errorBadSignature("expected a modifiers tag (" + tag + ")") - val _ = readNat() + readIndex + + readEnd() val pflagsHi = readNat() val pflagsLo = readNat() val pflags = (pflagsHi.toLong << 32) + pflagsLo |