From 1638fcd2ed27d770e92329796b35225692bbaecb Mon Sep 17 00:00:00 2001 From: Liu Fengyun Date: Thu, 20 May 2021 18:34:28 +0200 Subject: [PATCH 1/2] Fix #12544: Add test --- tests/init/pos/i12544.scala | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/init/pos/i12544.scala diff --git a/tests/init/pos/i12544.scala b/tests/init/pos/i12544.scala new file mode 100644 index 000000000000..e5e3c9a2ade2 --- /dev/null +++ b/tests/init/pos/i12544.scala @@ -0,0 +1,12 @@ +enum Enum: + case Case + +object Enum: + object nested: + val a: Enum = Case + + val b: Enum = f(nested.a) + + def f(e: Enum): Enum = e + +@main def main(): Unit = println(Enum.b) From ecf97e85330b05e07c9353727cf6d9d5a92eb331 Mon Sep 17 00:00:00 2001 From: Liu Fengyun Date: Thu, 20 May 2021 18:43:43 +0200 Subject: [PATCH 2/2] Add neg test --- tests/init/neg/i12544.scala | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/init/neg/i12544.scala diff --git a/tests/init/neg/i12544.scala b/tests/init/neg/i12544.scala new file mode 100644 index 000000000000..2692c27134e0 --- /dev/null +++ b/tests/init/neg/i12544.scala @@ -0,0 +1,19 @@ +enum Enum: + case Case + case Case2(x: Int) + +def g(b: Enum.B): Int = b.foo() + +object Enum: + object nested: + val a: Enum = Case + + val b: Enum = f(nested.a) + + def f(e: Enum): Enum = e + + class B() { def foo() = n + 1 } + g(new B()) // error + val n: Int = 10 + +@main def main(): Unit = println(Enum.b)