Skip to content

Commit 65e8c40

Browse files
authored
Merge pull request #11279 from griggt/fix-#5812
2 parents c00b289 + 2352b0a commit 65e8c40

File tree

9 files changed

+104
-2
lines changed

9 files changed

+104
-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 && !encl.is(JavaDefined) then qn.compactified else qn
484485
val fn = name replace {
485486
case name: SimpleName => qualify(name)
486487
case name @ AnyQualifiedName(_, _) => qualify(name.mangled.toSimpleName)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
val scala3Version = sys.props("plugin.scalaVersion")
2+
val scala2Version = "2.13.4"
3+
4+
lazy val lib = (project in file ("lib"))
5+
.settings(scalaVersion := scala2Version)
6+
7+
lazy val test = (project in file ("main"))
8+
.dependsOn(lib)
9+
.settings(scalaVersion := scala3Version)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class reallongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongname {
2+
object obj0
3+
object obj01
4+
object obj012
5+
object obj0123
6+
object obj01234
7+
object obj012345
8+
object obj0123456
9+
object obj01234567
10+
object obj012345678
11+
object obj0123456789
12+
object obj01234567890
13+
class cls0
14+
class cls01
15+
class cls012
16+
class cls0123
17+
class cls01234
18+
class cls012345
19+
class cls0123456
20+
class cls01234567
21+
class cls012345678
22+
class cls0123456789
23+
class cls01234567890
24+
trait trt0
25+
trait trt01
26+
trait trt012
27+
trait trt0123
28+
trait trt01234
29+
trait trt012345
30+
trait trt0123456
31+
trait trt01234567
32+
trait trt012345678
33+
trait trt0123456789
34+
trait trt01234567890
35+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
object Test extends App {
2+
val c = new reallongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongnamereallylongname
3+
4+
import c._
5+
6+
val o0 = obj0
7+
val o1 = obj01
8+
val o2 = obj012
9+
val o3 = obj0123
10+
val o4 = obj01234
11+
val o5 = obj012345
12+
val o6 = obj0123456
13+
val o7 = obj01234567
14+
val o8 = obj012345678
15+
val o9 = obj0123456789
16+
val o10 = obj01234567890
17+
18+
val c0 = new cls0
19+
val c1 = new cls01
20+
val c2 = new cls012
21+
val c3 = new cls0123
22+
val c4 = new cls01234
23+
val c5 = new cls012345
24+
val c6 = new cls0123456
25+
val c7 = new cls01234567
26+
val c8 = new cls012345678
27+
val c9 = new cls0123456789
28+
val c10 = new cls01234567890
29+
30+
val t0 = new trt0 {}
31+
val t1 = new trt01 {}
32+
val t2 = new trt012 {}
33+
val t3 = new trt0123 {}
34+
val t4 = new trt01234 {}
35+
val t5 = new trt012345 {}
36+
val t6 = new trt0123456 {}
37+
val t7 = new trt01234567 {}
38+
val t8 = new trt012345678 {}
39+
val t9 = new trt0123456789 {}
40+
val t10 = new trt01234567890 {}
41+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % sys.props("plugin.version"))
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
> test/run

tests/run/java-longnames/Long_1.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package p;
2+
3+
public class Long_1 {
4+
public static class ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ_1 {
5+
}
6+
}

tests/run/java-longnames/Test_2.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import p._
2+
3+
object Test extends App {
4+
println(
5+
new Long_1.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ_1()
6+
.getClass
7+
.getName
8+
)
9+
}

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)