@@ -4,17 +4,23 @@ import dotty.tools.dotc.core.Contexts.Context
44import dotty .tools .dotc .core .Symbols .Symbol
55import dotty .tools .dotc .core .NameOps .stripModuleClassSuffix
66import dotty .tools .dotc .core .Names .Name
7+ import dotty .tools .dotc .core .Names .termName
78
89inline val TermNameHash = 1987 // 300th prime
910inline val TypeNameHash = 1993 // 301st prime
1011inline val InlineParamHash = 1997 // 302nd prime
1112
1213extension (sym : Symbol )
1314
14- def constructorName (using Context ) =
15- sym.owner.name ++ " ;init;"
16-
17- /** Mangle a JVM symbol name in a format better suited for internal uses by sbt. */
18- def zincMangledName (using Context ): Name =
19- if (sym.isConstructor) constructorName
20- else sym.name.stripModuleClassSuffix
15+ /** Mangle a JVM symbol name in a format better suited for internal uses by sbt.
16+ * WARNING: output must not be written to TASTy, as it is not a valid TASTy name.
17+ */
18+ private [sbt] def zincMangledName (using Context ): Name =
19+ if sym.isConstructor then
20+ // TODO: ideally we should avoid unnecessarily caching these Zinc specific
21+ // names in the global chars array. But we would need to restructure
22+ // ExtractDependencies caches to avoid expensive `toString` on
23+ // each member reference.
24+ termName(sym.owner.fullName.mangledString.replace(" ." , " ;" ).nn ++ " ;init;" )
25+ else
26+ sym.name.stripModuleClassSuffix
0 commit comments