diff --git a/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala b/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala index 008c5aab184c..0259db5090ad 100644 --- a/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala +++ b/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala @@ -33,7 +33,7 @@ import tpd._ import scala.tools.asm import StdNames.{nme, str} import NameOps._ -import NameKinds.DefaultGetterName +import NameKinds.{DefaultGetterName, ExpandedName} import dotty.tools.dotc.core import dotty.tools.dotc.core.Names.TypeName @@ -677,6 +677,7 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma def isType: Boolean = sym.isType def isAnonymousClass: Boolean = toDenot(sym).isAnonymousClass def isConstructor: Boolean = toDenot(sym).isConstructor + def isExpanded: Boolean = sym.name.is(ExpandedName) def isAnonymousFunction: Boolean = toDenot(sym).isAnonymousFunction def isMethod: Boolean = sym is Flags.Method def isPublic: Boolean = sym.flags.is(Flags.EmptyFlags, Flags.Private | Flags.Protected) diff --git a/scala-backend b/scala-backend index 73ea6de97328..52a9b6af1440 160000 --- a/scala-backend +++ b/scala-backend @@ -1 +1 @@ -Subproject commit 73ea6de9732881591c73832092d440be0080e791 +Subproject commit 52a9b6af1440cdfd92f54f56cbe3b4a911a3243d diff --git a/tests/run/forwarder.check b/tests/run/forwarder.check new file mode 100644 index 000000000000..739152e654d8 --- /dev/null +++ b/tests/run/forwarder.check @@ -0,0 +1 @@ +public static int Foo.hi() diff --git a/tests/run/forwarder.scala b/tests/run/forwarder.scala new file mode 100644 index 000000000000..540acb76a58b --- /dev/null +++ b/tests/run/forwarder.scala @@ -0,0 +1,20 @@ +class Foo +object Foo extends Bar + +trait Bar { + def hi: Int = 1 + private def foo: Int = 1 + + class Inner { + val a = foo // Force foo to be expanded by ExpandPrivate + } +} + +object Test { + def main(args: Array[String]): Unit = { + println( + classOf[Foo].getMethods + .filter(m => (m.getModifiers & java.lang.reflect.Modifier.STATIC) != 0) + .mkString("\n")) + } +}