diff --git a/compiler/src/dotty/tools/dotc/core/SymDenotations.scala b/compiler/src/dotty/tools/dotc/core/SymDenotations.scala index 87d448e672f4..5a919d48467f 100644 --- a/compiler/src/dotty/tools/dotc/core/SymDenotations.scala +++ b/compiler/src/dotty/tools/dotc/core/SymDenotations.scala @@ -523,7 +523,13 @@ object SymDenotations { case Some(ann) => ann.arguments match { case Literal(Constant(str: String)) :: Nil => - if (isType) str.toTypeName else str.toTermName + if (isType) + if (is(ModuleClass)) + str.toTypeName.moduleClassName + else + str.toTypeName + else + str.toTermName case _ => name } case _ => name diff --git a/tests/run/alpha-modules-1/7721_1.scala b/tests/run/alpha-modules-1/7721_1.scala new file mode 100644 index 000000000000..8275e86ce748 --- /dev/null +++ b/tests/run/alpha-modules-1/7721_1.scala @@ -0,0 +1,5 @@ +package alpha + +@scala.annotation.alpha("A") object B { + def foo = 23 +} diff --git a/tests/run/alpha-modules-1/Test_2.java b/tests/run/alpha-modules-1/Test_2.java new file mode 100644 index 000000000000..2dbed46aa644 --- /dev/null +++ b/tests/run/alpha-modules-1/Test_2.java @@ -0,0 +1,9 @@ +package alpha; + +public class Test_2 { + + public static void main(String[] args) { + assert A.foo() == 23; + assert A$.MODULE$.foo() == 23; + } +} diff --git a/tests/run/alpha-modules-1/Test_3.scala b/tests/run/alpha-modules-1/Test_3.scala new file mode 100644 index 000000000000..bc7780f8b199 --- /dev/null +++ b/tests/run/alpha-modules-1/Test_3.scala @@ -0,0 +1,4 @@ +object Test { + def main(args: Array[String]): Unit = + alpha.Test_2.main(args) +} diff --git a/tests/run/alpha-modules-2/7723_1.scala b/tests/run/alpha-modules-2/7723_1.scala new file mode 100644 index 000000000000..d9186316d94a --- /dev/null +++ b/tests/run/alpha-modules-2/7723_1.scala @@ -0,0 +1,3 @@ +package alpha + +@scala.annotation.alpha("A") class B(val i: Int = 1) diff --git a/tests/run/alpha-modules-2/Test_2.java b/tests/run/alpha-modules-2/Test_2.java new file mode 100644 index 000000000000..39bdf269a98a --- /dev/null +++ b/tests/run/alpha-modules-2/Test_2.java @@ -0,0 +1,10 @@ +package alpha; + +public class Test_2 { + + public static void main(String[] args) { + assert new A(101).i() == 101; + assert new A(A.$lessinit$greater$default$1()).i() == 101; + assert new A(A$.MODULE$.$lessinit$greater$default$1()).i() == 101; + } +} diff --git a/tests/run/alpha-modules-2/Test_3.scala b/tests/run/alpha-modules-2/Test_3.scala new file mode 100644 index 000000000000..bc7780f8b199 --- /dev/null +++ b/tests/run/alpha-modules-2/Test_3.scala @@ -0,0 +1,4 @@ +object Test { + def main(args: Array[String]): Unit = + alpha.Test_2.main(args) +}