diff options
-rw-r--r-- | compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala | 5 | ||||
-rw-r--r-- | tests/pos-java-interop/innerClass/Outer.scala | 8 | ||||
-rw-r--r-- | tests/pos-java-interop/innerClass/Test.java | 9 |
3 files changed, 21 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala b/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala index c17a32744..51fa15706 100644 --- a/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala +++ b/compiler/src/dotty/tools/backend/jvm/DottyBackendInterface.scala @@ -560,7 +560,10 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma def javaBinaryName: Name = toDenot(sym).fullNameSeparated("/") // addModuleSuffix(fullNameInternal('/')) def javaClassName: String = toDenot(sym).fullName.toString// addModuleSuffix(fullNameInternal('.')).toString def name: Name = sym.name - def rawname: Name = sym.name // todo ???? + def rawname: Name = { + val original = toDenot(sym).initial + sym.name(ctx.withPhase(original.validFor.phaseId)) + } // types def info: Type = toDenot(sym).info diff --git a/tests/pos-java-interop/innerClass/Outer.scala b/tests/pos-java-interop/innerClass/Outer.scala new file mode 100644 index 000000000..b47d91cc1 --- /dev/null +++ b/tests/pos-java-interop/innerClass/Outer.scala @@ -0,0 +1,8 @@ +class Outer { + class InnerInClass + + def inner() = new InnerInClass +} +object Outer { + class InnerInObject +} diff --git a/tests/pos-java-interop/innerClass/Test.java b/tests/pos-java-interop/innerClass/Test.java new file mode 100644 index 000000000..53bb826d7 --- /dev/null +++ b/tests/pos-java-interop/innerClass/Test.java @@ -0,0 +1,9 @@ +public class Test { + public static void test() { + Outer outer = new Outer(); + Outer.InnerInClass innerInClass = outer.inner(); + + // Does not work yet, requires https://github.com/DarkDimius/scala/pull/4 + // Outer.InnerInObject innerInObject = new Outer.InnerInObject(); + } +} |