diff --git a/tasty/src/dotty/tools/tasty/TastyFormat.scala b/tasty/src/dotty/tools/tasty/TastyFormat.scala index 3f516efe638c..1a534cd9d547 100644 --- a/tasty/src/dotty/tools/tasty/TastyFormat.scala +++ b/tasty/src/dotty/tools/tasty/TastyFormat.scala @@ -254,7 +254,7 @@ object TastyFormat { val MajorVersion: Int = 18 val MinorVersion: Int = 0 - /** Tags used to serialize names */ + /** Tags used to serialize names, should update [[nameTagToString]] if a new constant is added */ class NameTags { final val UTF8 = 1 // A simple name in UTF8 encoding. @@ -286,6 +286,29 @@ object TastyFormat { } object NameTags extends NameTags + /**Should be kept in sync with [[NameTags]]. Converts constants to a String representing their identifier, + * or NotANameTag(tag) if unrecognised. + * + * For debugging purposes when unpickling names in a TASTy file. + */ + def nameTagToString(tag: Int) = { + import NameTags._ + tag match { + case UTF8 => "UTF8" + case QUALIFIED => "QUALIFIED" + case EXPANDED => "EXPANDED" + case EXPANDPREFIX => "EXPANDPREFIX" + case UNIQUE => "UNIQUE" + case DEFAULTGETTER => "DEFAULTGETTER" + case VARIANT => "VARIANT" + case SUPERACCESSOR => "SUPERACCESSOR" + case INLINEACCESSOR => "INLINEACCESSOR" + case OBJECTCLASS => "OBJECTCLASS" + case SIGNED => "SIGNED" + case id => s"NotANameTag($id)" + } + } + // Position header final val SOURCE = 4