aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-27 17:09:42 +0200
committerMartin Odersky <odersky@gmail.com>2017-04-11 09:33:11 +0200
commitc599f7a693dbc363962d3f17f5eab5222136857f (patch)
treeb50d69670f6c61f505482d8b4662df62f3f096dd /compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala
parent0ccc76eeb5a0706478087364a380f67ae69759cc (diff)
downloaddotty-c599f7a693dbc363962d3f17f5eab5222136857f.tar.gz
dotty-c599f7a693dbc363962d3f17f5eab5222136857f.tar.bz2
dotty-c599f7a693dbc363962d3f17f5eab5222136857f.zip
Drop Config.semanticNames option
We now handle only semantic names. Also, name extractor tags and TASTY name tags are now aligned.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala63
1 files changed, 28 insertions, 35 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala b/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala
index 0101ff25d..74c4265f2 100644
--- a/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala
+++ b/compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala
@@ -49,43 +49,36 @@ class NameBuffer extends TastyBuffer(10000) {
def writeNameRef(ref: NameRef): Unit = writeNat(ref.index)
def writeNameRef(name: Name): Unit = writeNameRef(nameRefs(name.toTermName))
- def pickleNameContents(name: Name): Unit = name.toTermName match {
- case name: SimpleTermName =>
- val bytes =
- if (name.length == 0) new Array[Byte](0)
- else Codec.toUTF8(chrs, name.start, name.length)
- writeByte(UTF8)
- writeNat(bytes.length)
- writeBytes(bytes, bytes.length)
- case QualifiedName(qualified, selector) =>
- writeByte(QUALIFIED)
- withLength { writeNameRef(qualified); writeNameRef(selector) }
- case FlattenedName(qualified, selector) =>
- writeByte(FLATTENED)
- withLength { writeNameRef(qualified); writeNameRef(selector) }
- case XpandedName(prefix, original) =>
- writeByte(EXPANDED)
- withLength { writeNameRef(prefix); writeNameRef(original) }
- case SignedName(original, Signature(params, result)) =>
- writeByte(SIGNED)
- withLength(
+ def pickleNameContents(name: Name): Unit = {
+ writeByte(name.toTermName.info.tag)
+ name.toTermName match {
+ case name: SimpleTermName =>
+ val bytes =
+ if (name.length == 0) new Array[Byte](0)
+ else Codec.toUTF8(chrs, name.start, name.length)
+ writeNat(bytes.length)
+ writeBytes(bytes, bytes.length)
+ case QualifiedName(qualified, selector) =>
+ withLength { writeNameRef(qualified); writeNameRef(selector) }
+ case FlattenedName(qualified, selector) =>
+ withLength { writeNameRef(qualified); writeNameRef(selector) }
+ case XpandedName(prefix, original) =>
+ withLength { writeNameRef(prefix); writeNameRef(original) }
+ case SignedName(original, Signature(params, result)) =>
+ withLength(
{ writeNameRef(original); writeNameRef(result); params.foreach(writeNameRef) },
if ((params.length + 2) * maxIndexWidth <= maxNumInByte) 1 else 2)
- case ModuleClassName(module) =>
- writeByte(OBJECTCLASS)
- withLength { writeNameRef(module) }
- case SuperAccessorName(accessed) =>
- writeByte(SUPERACCESSOR)
- withLength { writeNameRef(accessed) }
- case DefaultGetterName(method, paramNumber) =>
- writeByte(DEFAULTGETTER)
- withLength { writeNameRef(method); writeNat(paramNumber) }
- case ShadowedName(original) =>
- writeByte(SHADOWED)
- withLength { writeNameRef(original) }
- case VariantName(original, sign) =>
- writeByte(VARIANT)
- withLength { writeNameRef(original); writeNat(sign + 1) }
+ case ModuleClassName(module) =>
+ withLength { writeNameRef(module) }
+ case SuperAccessorName(accessed) =>
+ withLength { writeNameRef(accessed) }
+ case DefaultGetterName(method, paramNumber) =>
+ withLength { writeNameRef(method); writeNat(paramNumber) }
+ case ShadowedName(original) =>
+ withLength { writeNameRef(original) }
+ case VariantName(original, sign) =>
+ withLength { writeNameRef(original); writeNat(sign + 1) }
+ }
}
override def assemble(): Unit = {