@@ -175,20 +175,11 @@ object DesugarEnums {
175
175
/** A creation method for a value of enum type `E`, which is defined as follows:
176
176
*
177
177
* private def $new(_$ordinal: Int, $name: String) = new E with scala.runtime.EnumValue {
178
- * def ordinal = _$ordinal // if `E` does not derive from `java.lang.Enum`
179
- * def enumLabel = $name // if `E` does not derive from `java.lang.Enum`
180
- * def enumLabel = this.name // if `E` derives from `java.lang.Enum`
178
+ * def ordinal = _$ordinal // if `E` does not derive from `java.lang.Enum`
181
179
* }
182
180
*/
183
181
private def enumValueCreator (using Context ) = {
184
- val fieldMethods =
185
- if isJavaEnum then
186
- val enumLabelDef = enumLabelMeth(Select (This (Ident (tpnme.EMPTY )), nme.name))
187
- enumLabelDef :: Nil
188
- else
189
- val ordinalDef = ordinalMeth(Ident (nme.ordinalDollar_))
190
- val enumLabelDef = enumLabelMeth(Ident (nme.nameDollar))
191
- ordinalDef :: enumLabelDef :: Nil
182
+ val fieldMethods = if isJavaEnum then Nil else ordinalMeth(Ident (nme.ordinalDollar_)) :: Nil
192
183
val creator = New (Template (
193
184
constr = emptyConstructor,
194
185
parents = enumClassRef :: scalaRuntimeDot(tpnme.EnumValue ) :: Nil ,
@@ -284,15 +275,9 @@ object DesugarEnums {
284
275
def ordinalMeth (body : Tree )(using Context ): DefDef =
285
276
DefDef (nme.ordinal, Nil , Nil , TypeTree (defn.IntType ), body).withAddedFlags(Synthetic )
286
277
287
- def enumLabelMeth (body : Tree )(using Context ): DefDef =
288
- DefDef (nme.enumLabel, Nil , Nil , TypeTree (defn.StringType ), body).withAddedFlags(Synthetic )
289
-
290
278
def ordinalMethLit (ord : Int )(using Context ): DefDef =
291
279
ordinalMeth(Literal (Constant (ord)))
292
280
293
- def enumLabelLit (name : String )(using Context ): DefDef =
294
- enumLabelMeth(Literal (Constant (name)))
295
-
296
281
/** Expand a module definition representing a parameterless enum case */
297
282
def expandEnumModule (name : TermName , impl : Template , mods : Modifiers , definesLookups : Boolean , span : Span )(using Context ): Tree = {
298
283
assert(impl.body.isEmpty)
@@ -301,11 +286,9 @@ object DesugarEnums {
301
286
expandSimpleEnumCase(name, mods, definesLookups, span)
302
287
else {
303
288
val (tag, scaffolding) = nextOrdinal(name, CaseKind .Object , definesLookups)
304
- val ordinalDef = if isJavaEnum then Nil else ordinalMethLit(tag) :: Nil
305
- val enumLabelDef = enumLabelLit(name.toString)
306
289
val impl1 = cpy.Template (impl)(
307
290
parents = impl.parents :+ scalaRuntimeDot(tpnme.EnumValue ),
308
- body = ordinalDef ::: enumLabelDef :: Nil
291
+ body = if isJavaEnum then Nil else ordinalMethLit(tag) :: Nil
309
292
).withAttachment(ExtendsSingletonMirror , ())
310
293
val vdef = ValDef (name, TypeTree (), New (impl1)).withMods(mods.withAddedFlags(EnumValue , span))
311
294
flatTree(vdef :: scaffolding).withSpan(span)
0 commit comments