Skip to content

Commit 405dbfb

Browse files
Stylistical improvements to the Enums code
1 parent 23e6715 commit 405dbfb

File tree

2 files changed

+5
-14
lines changed

2 files changed

+5
-14
lines changed

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

+3-6
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,8 @@ object DesugarEnums {
7474
else if (isEnumCase(cdef)) cdef.withMods(cdef.mods.withFlags(cdef.mods.flags | Final))
7575
else cdef
7676

77-
private def valuesDotTerm(name: TermName)(implicit src: SourceFile) =
78-
Select(Ident(nme.DOLLAR_VALUES), name)
79-
80-
private def valuesDot(name: String)(implicit src: SourceFile) =
81-
valuesDotTerm(name.toTermName)
77+
private def valuesDot(name: PreName)(implicit src: SourceFile) =
78+
Select(Ident(nme.DOLLAR_VALUES), name.toTermName)
8279

8380
private def registerCall(implicit ctx: Context): List[Tree] =
8481
if (enumClass.typeParams.nonEmpty) Nil
@@ -97,7 +94,7 @@ object DesugarEnums {
9794
*/
9895
private def enumScaffolding(implicit ctx: Context): List[Tree] = {
9996
val valuesDef =
100-
DefDef(nme.values, Nil, Nil, TypeTree(), Select(valuesDotTerm(nme.values), nme.toArray))
97+
DefDef(nme.values, Nil, Nil, TypeTree(), Select(valuesDot(nme.values), nme.toArray))
10198
val privateValuesDef =
10299
ValDef(nme.DOLLAR_VALUES, TypeTree(),
103100
New(TypeTree(defn.EnumValuesType.appliedTo(enumClass.typeRef :: Nil)), ListOfNil))

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

+2-8
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ class SyntheticMembers(thisPhase: DenotTransformer) {
369369

370370
/** For an enum T:
371371
*
372-
* def ordinal(x: MirroredMonoType) = x.$ordinal
372+
* def ordinal(x: MirroredMonoType) = x.ordinal
373373
*
374374
* For sealed trait with children of normalized types C_1, ..., C_n:
375375
*
@@ -384,13 +384,7 @@ class SyntheticMembers(thisPhase: DenotTransformer) {
384384
* O is O.type.
385385
*/
386386
def ordinalBody(cls: Symbol, param: Tree)(implicit ctx: Context): Tree =
387-
if (cls.is(Enum)) {
388-
val ordinalMeth = param.select(nme.ordinal)
389-
val derivesFromJEnum =
390-
cls.is(Enum, butNot = Case) &&
391-
cls.info.parents.exists(p => p.typeSymbol == defn.JEnumClass)
392-
if (derivesFromJEnum) Apply(ordinalMeth, Nil) else ordinalMeth
393-
}
387+
if (cls.is(Enum)) param.select(nme.ordinal).ensureApplied
394388
else {
395389
val cases =
396390
for ((child, idx) <- cls.children.zipWithIndex) yield {

0 commit comments

Comments
 (0)