File tree 9 files changed +104
-2
lines changed
compiler/src/dotty/tools/dotc/core
sbt-dotty/sbt-test/scala2-compat/longnames
9 files changed +104
-2
lines changed Original file line number Diff line number Diff line change @@ -480,7 +480,8 @@ object SymDenotations {
480
480
// duplicate scalac's behavior: don't write a double '$$' for module class members.
481
481
prefix = prefix.exclude(ModuleClassName )
482
482
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
484
485
val fn = name replace {
485
486
case name : SimpleName => qualify(name)
486
487
case name @ AnyQualifiedName (_, _) => qualify(name.mangled.toSimpleName)
Original file line number Diff line number Diff line change
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)
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
1
+ addSbtPlugin(" ch.epfl.lamp" % " sbt-dotty" % sys.props(" plugin.version" ))
Original file line number Diff line number Diff line change
1
+ > test/run
Original file line number Diff line number Diff line change
1
+ package p ;
2
+
3
+ public class Long_1 {
4
+ public static class ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ_1 {
5
+ }
6
+ }
Original file line number Diff line number Diff line change
1
+ import p ._
2
+
3
+ object Test extends App {
4
+ println(
5
+ new Long_1 .ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ_1 ()
6
+ .getClass
7
+ .getName
8
+ )
9
+ }
Original file line number Diff line number Diff line change @@ -44,7 +44,6 @@ object Test extends App {
44
44
}
45
45
def checkCallerImplClassName (): Unit = {
46
46
val name = Thread .currentThread.getStackTrace.apply(2 ).getClassName
47
- assert(name.contains(" $class" ))
48
47
Test .checkClassName(name)
49
48
}
50
49
You can’t perform that action at this time.
0 commit comments