Skip to content

Commit db92338

Browse files
Ditch method in enums
1 parent 6ede814 commit db92338

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

compiler/src/dotty/tools/dotc/ast/DesugarEnums.scala

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,17 @@ object DesugarEnums {
273273
expandEnumModule(name, impl, mods, span)
274274
}
275275
else {
276-
val (tag, scaffolding) = nextEnumTag(CaseKind.Simple)
277-
val creator = Apply(Ident(nme.DOLLAR_NEW), List(Literal(Constant(tag)), Literal(Constant(name.toString))))
278-
val vdef = ValDef(name, enumClassRef, creator).withMods(mods | Final)
276+
// val (tag, scaffolding) = nextEnumTag(CaseKind.Simple)
277+
// val creator = Apply(Ident(nme.DOLLAR_NEW), List(Literal(Constant(tag)), Literal(Constant(name.toString))))
278+
279+
def toStringMeth =
280+
DefDef(nme.toString_, Nil, Nil, TypeTree(defn.StringType), Literal(Constant(name.toString)))
281+
.withFlags(Override)
282+
val (tagMeth, scaffolding) = enumTagMeth(CaseKind.Object)
283+
val impl = Template(emptyConstructor, enumClassRef :: Nil, Nil, EmptyValDef,
284+
body = List(tagMeth, toStringMeth) ++ registerCall)
285+
val vdef = ValDef(name, TypeTree(), New(impl)).withMods(mods | Final)
286+
// val vdef = ValDef(name, enumClassRef, creator).withMods(mods | Final)
279287
flatTree(scaffolding ::: vdef :: Nil).withSpan(span)
280288
}
281289
}

library/src/scala/Enum.scala

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

33
/** A base trait of all enum classes */
4-
trait Enum {
4+
trait Enum {// extends Comparable[Enum] {
5+
// def getDeclaringClass: Class[_]
6+
// def name: String
57

68
/** A number uniquely identifying a case of an enum */
79
def enumTag: Int
10+
// def ordinal: Int
811
}

0 commit comments

Comments
 (0)