Skip to content

Commit 7c5770b

Browse files
committed
Drop @mixin entirely
Replace with @transparentTrait for now; that way we need not distinguish between bootstrapped and non-bootstrapped code.
1 parent 77860b1 commit 7c5770b

File tree

7 files changed

+7
-32
lines changed

7 files changed

+7
-32
lines changed

compiler/src/dotty/tools/dotc/core/Definitions.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ class Definitions {
912912
@tu lazy val InvariantBetweenAnnot: ClassSymbol = requiredClass("scala.annotation.internal.InvariantBetween")
913913
@tu lazy val MainAnnot: ClassSymbol = requiredClass("scala.main")
914914
@tu lazy val MigrationAnnot: ClassSymbol = requiredClass("scala.annotation.migration")
915-
@tu lazy val MixinAnnot: ClassSymbol = requiredClass("scala.annotation.mixin")
915+
@tu lazy val TransparentTraitAnnot: ClassSymbol = requiredClass("scala.annotation.transparentTrait")
916916
@tu lazy val NativeAnnot: ClassSymbol = requiredClass("scala.native")
917917
@tu lazy val RepeatedAnnot: ClassSymbol = requiredClass("scala.annotation.internal.Repeated")
918918
@tu lazy val SourceFileAnnot: ClassSymbol = requiredClass("scala.annotation.internal.SourceFile")
@@ -1507,8 +1507,8 @@ class Definitions {
15071507
def isInfix(sym: Symbol)(using Context): Boolean =
15081508
(sym eq Object_eq) || (sym eq Object_ne)
15091509

1510-
@tu lazy val assumedMixinTraits =
1511-
Set(ComparableClass, ProductClass, SerializableClass,
1510+
@tu lazy val assumedTransparentTraits =
1511+
Set[Symbol](ComparableClass, ProductClass, SerializableClass,
15121512
// add these for now, until we had a chance to retrofit 2.13 stdlib
15131513
// we should do a more through sweep through it then.
15141514
requiredClass("scala.collection.SortedOps"),

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,8 +1111,8 @@ object SymDenotations {
11111111

11121112
final def isTransparentTrait(using Context): Boolean =
11131113
isAllOf(TransparentTrait)
1114-
|| isClass
1115-
&& (hasAnnotation(defn.MixinAnnot) || defn.assumedMixinTraits.contains(symbol.asClass))
1114+
|| defn.assumedTransparentTraits.contains(symbol)
1115+
|| isClass && hasAnnotation(defn.TransparentTraitAnnot)
11161116

11171117
/** The class containing this denotation which has the given effective name. */
11181118
final def enclosingClassNamed(name: Name)(using Context): Symbol = {

library/src-non-bootstrapped/scala/annotation/mixin.scala

Lines changed: 0 additions & 7 deletions
This file was deleted.

library/src-non-bootstrapped/scala/reflect/Enum.scala

Lines changed: 0 additions & 8 deletions
This file was deleted.

library/src-non-bootstrapped/scala/runtime/EnumValue.scala

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package scala.reflect
22

33
/** A base trait of all Scala enum definitions */
4-
transparent trait Enum extends Any, Product, Serializable:
4+
@annotation.transparentTrait trait Enum extends Any, Product, Serializable:
55

66
/** A number uniquely identifying a case of an enum */
77
def ordinal: Int

library/src-bootstrapped/scala/runtime/EnumValue.scala renamed to library/src/scala/runtime/EnumValue.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package scala.runtime
22

3-
transparent trait EnumValue extends Product, Serializable:
3+
@annotation.transparentTrait trait EnumValue extends Product, Serializable:
44
override def canEqual(that: Any) = this eq that.asInstanceOf[AnyRef]
55
override def productArity: Int = 0
66
override def productElement(n: Int): Any =

0 commit comments

Comments
 (0)