Skip to content

Commit 1d1f0d7

Browse files
committed
Do not add mirrors under -Yscala2-stdlib
1 parent d4a8dfa commit 1d1f0d7

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

compiler/src/dotty/tools/dotc/transform/SyntheticMembers.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,8 +639,9 @@ class SyntheticMembers(thisPhase: DenotTransformer) {
639639
val clazz = ctx.owner.asClass
640640
val syntheticMembers = serializableObjectMethod(clazz) ::: serializableEnumValueMethod(clazz) ::: caseAndValueMethods(clazz)
641641
checkInlining(syntheticMembers)
642-
addMirrorSupport(
643-
cpy.Template(impl)(body = syntheticMembers ::: impl.body))
642+
val impl1 = cpy.Template(impl)(body = syntheticMembers ::: impl.body)
643+
if ctx.settings.Yscala2Stdlib.value then impl1
644+
else addMirrorSupport(impl1)
644645
}
645646

646647
private def checkInlining(syntheticMembers: List[Tree])(using Context): Unit =

project/MiMaFilters.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,6 @@ object MiMaFilters {
185185
// Companion module class: Missing type java.io.Serializable
186186
ProblemFilters.exclude[MissingTypesProblem]("scala.*$"),
187187

188-
// Mirrors
189-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.ordinal"),
190-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.fromProduct"),
191-
192188
// Case class product accessors
193189
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._1"),
194190
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._2"),

stdlib-bootstrapped/test/Main.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package hello
22

3-
import scala.util.Right
3+
import scala.util.*
4+
import scala.compiletime.testing.typeChecks
45

56
enum Color:
67
case Red, Green, Blue
@@ -13,6 +14,7 @@ object HelloWorld:
1314
println(Color.Blue)
1415

1516
testScala2UnapplySignatures()
17+
testScala2ObjectParents()
1618
}
1719

1820
def testScala2UnapplySignatures() = {
@@ -24,3 +26,8 @@ object HelloWorld:
2426
val _: Option[(Int, Int)] = Tuple2.unapply((1, 2))
2527
val _: Option[(Int, Int, Int)] = Tuple3.unapply((1, 2, 3))
2628
}
29+
30+
def testScala2ObjectParents() = {
31+
assert(!typeChecks("Either: scala.deriving.Mirror.Sum"))
32+
assert(!typeChecks("Either: scala.deriving.Mirror"))
33+
}

0 commit comments

Comments
 (0)