diff options
author | Martin Odersky <odersky@gmail.com> | 2017-03-27 17:09:42 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2017-04-11 09:33:11 +0200 |
commit | c599f7a693dbc363962d3f17f5eab5222136857f (patch) | |
tree | b50d69670f6c61f505482d8b4662df62f3f096dd /compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala | |
parent | 0ccc76eeb5a0706478087364a380f67ae69759cc (diff) | |
download | dotty-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.scala | 63 |
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 = { |