aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/src/dotty/tools/dotc/core/NameKinds.scala7
-rw-r--r--compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala6
-rw-r--r--compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala2
3 files changed, 12 insertions, 3 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/NameKinds.scala b/compiler/src/dotty/tools/dotc/core/NameKinds.scala
index c34a100a8..bee39adaa 100644
--- a/compiler/src/dotty/tools/dotc/core/NameKinds.scala
+++ b/compiler/src/dotty/tools/dotc/core/NameKinds.scala
@@ -141,6 +141,13 @@ object NameKinds {
}
}
+ object AnyNumberedName {
+ def unapply(name: DerivedTermName): Option[(TermName, Int)] = name match {
+ case DerivedTermName(qual, info: NumberedInfo) => Some((qual, info.num))
+ case _ => None
+ }
+ }
+
case class UniqueNameKind(val separator: String)
extends NumberedNameKind(UNIQUE, s"Unique $separator") {
override def definesNewName = true
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