Skip to content

Commit a11fdef

Browse files
authored
Merge pull request #13573 from dotty-staging/static-trait
Generate static forwarders for object members in companion interface
2 parents f633884 + edd3b69 commit a11fdef

File tree

7 files changed

+17
-45
lines changed

7 files changed

+17
-45
lines changed

compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ trait BCodeSkelBuilder extends BCodeHelpers {
292292
emitAnnotations(cnode, claszSymbol.annotations ++ ssa)
293293

294294
if (!isCZStaticModule && !isCZParcelable) {
295-
val skipStaticForwarders = (claszSymbol.isInterface || claszSymbol.is(Module) || ctx.settings.XnoForwarders.value)
295+
val skipStaticForwarders = (claszSymbol.is(Module) || ctx.settings.XnoForwarders.value)
296296
if (!skipStaticForwarders) {
297297
val lmoc = claszSymbol.companionModule
298298
// add static forwarders if there are no name conflicts; see bugs #363 and #1735

compiler/test/dotc/run-test-pickling.blacklist

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## Many of these tests fail because CompilationTests.pickling does not handle
2+
## tests containing java files correctly
3+
14
derive-generic.scala
25
eff-dependent.scala
36
enum-java
@@ -38,3 +41,4 @@ i12753
3841
t6138
3942
t6138-2
4043
i12656.scala
44+
trait-static-forwarder

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ object Build {
8181
* set to 3.1.3. If it is going to be 3.1.0, it must be set to the latest
8282
* 3.0.x release.
8383
*/
84-
val previousDottyVersion = "3.0.2"
84+
val previousDottyVersion = "3.1.0-RC3"
8585

8686
object CompatMode {
8787
final val BinaryCompatible = 0

project/MiMaFilters.scala

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,5 @@ import com.typesafe.tools.mima.core.ProblemFilters._
44

55
object MiMaFilters {
66
val Library: Seq[ProblemFilter] = Seq(
7-
// Experimental API for saferExceptions
8-
exclude[MissingClassProblem]("scala.CanThrow"),
9-
exclude[MissingClassProblem]("scala.CanThrow$package"),
10-
exclude[MissingClassProblem]("scala.CanThrow$package$"),
11-
exclude[MissingClassProblem]("scala.unsafeExceptions"),
12-
exclude[MissingClassProblem]("scala.unsafeExceptions$"),
13-
exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.saferExceptions"),
14-
exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$saferExceptions$"),
15-
16-
// New APIs that will be introduced in 3.1.0
17-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule.Wildcard"),
18-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule.WildcardTypeTest"),
19-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.getJPath"),
20-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.name"),
21-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.path"),
22-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.getJPath"),
23-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.name"),
24-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SourceFileMethods.path"),
25-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule#UnapplyModule.apply"),
26-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#UnapplyModule.apply"),
27-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTestTypeTest"),
28-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTest"),
29-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTestMethods"),
30-
exclude[ReversedMissingMethodProblem]("scala.quoted.Quotes#reflectModule#TypeReprMethods.isTupleN"),
31-
32-
// TODO: Remove those filters after releasing 3.1.0:
33-
exclude[DirectMissingMethodProblem]("scala.CanEqual.canEqualSeqs"),
34-
exclude[DirectMissingMethodProblem]("scala.CanEqual.canEqualOptions"),
35-
exclude[DirectMissingMethodProblem]("scala.CanEqual.canEqualOption"),
36-
exclude[DirectMissingMethodProblem]("scala.CanEqual.canEqualEither"),
37-
exclude[DirectMissingMethodProblem]("scala.Tuple.canEqualEmptyTuple"),
38-
exclude[DirectMissingMethodProblem]("scala.Tuple.canEqualTuple"),
39-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule.WildcardTypeTest"),
40-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule.Wildcard"),
41-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTestTypeTest"),
42-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTest"),
43-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule.TypedOrTestMethods"),
44-
exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#TypeReprMethods.isTupleN"),
45-
exclude[MissingClassProblem]("scala.quoted.Quotes$reflectModule$TypedOrTestMethods"),
46-
exclude[MissingClassProblem]("scala.quoted.Quotes$reflectModule$TypedOrTestModule"),
47-
exclude[MissingClassProblem]("scala.quoted.Quotes$reflectModule$WildcardModule"),
48-
exclude[MissingClassProblem]("scala.runtime.$throws$package"),
49-
exclude[MissingClassProblem]("scala.runtime.$throws$package$"),
507
)
518
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
42
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public final class Test {
2+
public static void main(String... args) {
3+
System.out.println(T.foo());
4+
}
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
trait T
2+
3+
object T {
4+
def foo = 42
5+
}

0 commit comments

Comments
 (0)