From e2b0ec800e001bb96feb5d893f10bbcb79b592cf Mon Sep 17 00:00:00 2001 From: Wojciech Mazur Date: Thu, 5 Dec 2024 16:02:20 +0100 Subject: [PATCH 1/2] Fix compilation --- compiler/src/dotty/tools/dotc/ast/Desugar.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala index a5d112de10c9..f2bb972726d8 100644 --- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala +++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala @@ -19,6 +19,7 @@ import printing.Formatting.hl import config.Printers import scala.annotation.internal.sharable +import dotty.tools.dotc.util.SrcPos object desugar { import untpd.* From 82415ca8bb57076d2131169285d6883ee913af31 Mon Sep 17 00:00:00 2001 From: Hamza Remmal Date: Fri, 27 Sep 2024 11:23:48 +0200 Subject: [PATCH 2/2] Allow export statements in AnyVal [Cherry-picked d2cf0fb967111168cae5ff880a9d1de898650234] --- compiler/src/dotty/tools/dotc/typer/Checking.scala | 2 +- tests/run/export-anyval.check | 1 + tests/run/export-anyval.scala | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/run/export-anyval.check create mode 100644 tests/run/export-anyval.scala diff --git a/compiler/src/dotty/tools/dotc/typer/Checking.scala b/compiler/src/dotty/tools/dotc/typer/Checking.scala index 6bfbea0ace1a..ea350437f20d 100644 --- a/compiler/src/dotty/tools/dotc/typer/Checking.scala +++ b/compiler/src/dotty/tools/dotc/typer/Checking.scala @@ -708,7 +708,7 @@ object Checking { report.error(ValueClassesMayNotDefineNonParameterField(clazz, stat.symbol), stat.srcPos) case _: DefDef if stat.symbol.isConstructor => report.error(ValueClassesMayNotDefineASecondaryConstructor(clazz, stat.symbol), stat.srcPos) - case _: MemberDef | _: Import | EmptyTree => + case _: MemberDef | _: Import | _: Export | EmptyTree => // ok case _ => report.error(ValueClassesMayNotContainInitalization(clazz), stat.srcPos) diff --git a/tests/run/export-anyval.check b/tests/run/export-anyval.check new file mode 100644 index 000000000000..1c2f472bb006 --- /dev/null +++ b/tests/run/export-anyval.check @@ -0,0 +1 @@ +Hello from export \ No newline at end of file diff --git a/tests/run/export-anyval.scala b/tests/run/export-anyval.scala new file mode 100644 index 000000000000..26fb2230781d --- /dev/null +++ b/tests/run/export-anyval.scala @@ -0,0 +1,12 @@ +class Foo(val x: String) + + +class Bar(val y: Foo) extends AnyVal: + export y.* + def foo: String = x +end Bar + +@main def Test = + val a = Bar(Foo("Hello from export")) + println(a.foo) +