Skip to content

Commit 49e7b4c

Browse files
bishaboshaWojciechMazur
authored andcommitted
Partial revert of previous commit.
Instead of avoiding fully qualified names, use a different separator in zincMangledName. [Cherry-picked 0f7de67]
1 parent 69aeb11 commit 49e7b4c

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

compiler/src/dotty/tools/dotc/sbt/package.scala

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@ import dotty.tools.dotc.core.Contexts.Context
44
import dotty.tools.dotc.core.Symbols.Symbol
55
import dotty.tools.dotc.core.NameOps.stripModuleClassSuffix
66
import dotty.tools.dotc.core.Names.Name
7+
import dotty.tools.dotc.core.Names.termName
78

89
inline val TermNameHash = 1987 // 300th prime
910
inline val TypeNameHash = 1993 // 301st prime
1011
inline val InlineParamHash = 1997 // 302nd prime
1112

1213
extension (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

sbt-bridge/test/xsbt/ExtractUsedNamesSpecification.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ class ExtractUsedNamesSpecification {
306306
// All classes extend Object
307307
"Object",
308308
// All classes have a default constructor called <init>
309-
"Object;init;",
309+
"java;lang;Object;init;",
310310
// the return type of the default constructor is Unit
311311
"Unit"
312312
)

0 commit comments

Comments
 (0)