diff options
author | Martin Odersky <odersky@gmail.com> | 2017-04-06 15:34:09 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2017-04-11 09:33:12 +0200 |
commit | 800b1ad042044d8902c76fe353f7adf0491b5f20 (patch) | |
tree | 27a99202c4b2922ef4e7f6d3f9ce58f4e6a819be /compiler/src/dotty/tools/dotc/core/tasty | |
parent | b17af4b7abfa1de2a0099329a7e7148cabafbab0 (diff) | |
download | dotty-800b1ad042044d8902c76fe353f7adf0491b5f20.tar.gz dotty-800b1ad042044d8902c76fe353f7adf0491b5f20.tar.bz2 dotty-800b1ad042044d8902c76fe353f7adf0491b5f20.zip |
Fix pickling/unpickling of names
Running the test suite with the pickling printer on showed up two more
problems which are fixed in this commit.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/tasty')
-rw-r--r-- | compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala | 6 | ||||
-rw-r--r-- | compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala b/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala index 7ee6427f3..270d6be56 100644 --- a/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala +++ b/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala @@ -45,7 +45,7 @@ class NameBuffer extends TastyBuffer(10000) { val lengthAddr = currentAddr for (i <- 0 until lengthWidth) writeByte(0) op - val length = currentAddr.index - lengthAddr.index - 1 + val length = currentAddr.index - lengthAddr.index - lengthWidth putNat(lengthAddr, length, lengthWidth) } @@ -70,10 +70,10 @@ class NameBuffer extends TastyBuffer(10000) { writeNat(num) if (!original.isEmpty) writeNameRef(original) } - case DefaultGetterName(method, paramNumber) => - withLength { writeNameRef(method); writeNat(paramNumber) } case VariantName(original, sign) => withLength { writeNameRef(original); writeNat(sign + 1) } + case AnyNumberedName(original, num) => + withLength { writeNameRef(original); writeNat(num) } case SignedName(original, Signature(params, result)) => withLength( { writeNameRef(original); writeNameRef(result); params.foreach(writeNameRef) }, diff --git a/compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala b/compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala index 835222727..37a3c2e76 100644 --- a/compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala +++ b/compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala @@ -61,6 +61,8 @@ class TastyUnpickler(reader: TastyReader) { DefaultGetterName(readName(), readNat()) case VARIANT => VariantName(readName(), readNat() - 1) + case OUTERSELECT => + OuterSelectName(readName(), readNat()) case SIGNED => val original = readName() val result = readName().toTypeName |