Skip to content

Commit b2b5af2

Browse files
committed
Compactify names when flattening, to limit length of classfile names
This is intended to replicate the behavior of Scala 2.13, where classfile names are limited to 240 characters.
1 parent 9c9d4ec commit b2b5af2

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,8 @@ object SymDenotations {
480480
// duplicate scalac's behavior: don't write a double '$$' for module class members.
481481
prefix = prefix.exclude(ModuleClassName)
482482
def qualify(n: SimpleName) =
483-
kind(prefix.toTermName, if (filler.isEmpty) n else termName(filler + n))
483+
val qn = kind(prefix.toTermName, if (filler.isEmpty) n else termName(filler + n))
484+
if kind == FlatName then qn.compactified else qn
484485
val fn = name replace {
485486
case name: SimpleName => qualify(name)
486487
case name @ AnyQualifiedName(_, _) => qualify(name.mangled.toSimpleName)

tests/pending/run/t8199.scala renamed to tests/run/t8199.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ object Test extends App {
4444
}
4545
def checkCallerImplClassName(): Unit = {
4646
val name = Thread.currentThread.getStackTrace.apply(2).getClassName
47-
assert(name.contains("$class"))
4847
Test.checkClassName(name)
4948
}
5049

0 commit comments

Comments
 (0)