@@ -87,8 +87,8 @@ object DesugarEnums {
8787 /** The following lists of definitions for an enum type E:
8888 *
8989 * private val $values = new EnumValues[E]
90- * def valueOf(name: String) =
91- * try $values.fromName(name) catch
90+ * def valueOf($ name: String) =
91+ * try $values.fromName($ name) catch
9292 * {
9393 * case ex$:NoSuchElementException =>
9494 * throw new IllegalArgumentException("key not found: ".concat(name))
@@ -105,17 +105,17 @@ object DesugarEnums {
105105
106106 val valuesOfExnMessage = Apply (
107107 Select (Literal (Constant (" key not found: " )), " concat" .toTermName)
108- , Ident (nme.name ) :: Nil )
108+ , Ident (nme.nameDollar ) :: Nil )
109109 val valuesOfBody = Try (
110- expr = Apply (valuesDot(" fromName" ), Ident (nme.name ) :: Nil )
110+ expr = Apply (valuesDot(" fromName" ), Ident (nme.nameDollar ) :: Nil )
111111 , cases = CaseDef (
112112 pat = Typed (Ident (nme.DEFAULT_EXCEPTION_NAME ), TypeTree (defn.NoSuchElementExceptionType ))
113113 , guard = EmptyTree
114114 , body = Throw (New (TypeTree (defn.IllegalArgumentExceptionType ), List (valuesOfExnMessage :: Nil )))
115115 ) :: Nil
116116 , finalizer = EmptyTree
117117 )
118- val valueOfDef = DefDef (nme.valueOf, Nil , List (param(nme.name , defn.StringType ) :: Nil ),
118+ val valueOfDef = DefDef (nme.valueOf, Nil , List (param(nme.nameDollar , defn.StringType ) :: Nil ),
119119 TypeTree (), valuesOfBody)
120120
121121 valuesDef ::
@@ -125,25 +125,24 @@ object DesugarEnums {
125125
126126 /** A creation method for a value of enum type `E`, which is defined as follows:
127127 *
128- * private def $new(tag: Int, name_: String) = new E {
129- * override def ordinal = tag
130- * override def name = name_
131- * override def toString = name
128+ * private def $new($tag: Int, $name: String) = new E {
129+ * override def ordinal = $tag
130+ * override def toString = $name
132131 * $values.register(this)
133132 * }
134133 */
135134 private def enumValueCreator (implicit ctx : Context ) = {
136- val ordinalDef = ordinalMeth(Ident (nme.tag ))
137- val nameDef = nameMeth (Ident (nme.name_ ))
135+ val ordinalDef = ordinalMeth(Ident (nme.tagDollar ))
136+ val toStringDef = toStringMeth (Ident (nme.nameDollar ))
138137 val creator = New (Template (
139138 constr = emptyConstructor,
140139 parents = enumClassRef :: Nil ,
141140 derived = Nil ,
142141 self = EmptyValDef ,
143- body = List (ordinalDef, nameDef, toStringMethAsName ) ++ registerCall
142+ body = List (ordinalDef, toStringDef ) ++ registerCall
144143 ).withAttachment(ExtendsSingletonMirror , ()))
145144 DefDef (nme.DOLLAR_NEW , Nil ,
146- List (List (param(nme.tag , defn.IntType ), param(nme.name_ , defn.StringType ))),
145+ List (List (param(nme.tagDollar , defn.IntType ), param(nme.nameDollar , defn.StringType ))),
147146 TypeTree (), creator).withFlags(Private | Synthetic )
148147 }
149148
@@ -269,20 +268,14 @@ object DesugarEnums {
269268 def ordinalMeth (body : Tree )(implicit ctx : Context ): DefDef =
270269 DefDef (nme.ordinal, Nil , Nil , TypeTree (defn.IntType ), body).withFlags(Override )
271270
272- def nameMeth (body : Tree )(implicit ctx : Context ): DefDef =
273- DefDef (nme.name, Nil , Nil , TypeTree (defn.StringType ), body).withFlags(Override )
274-
275271 def toStringMeth (body : Tree )(implicit ctx : Context ): DefDef =
276272 DefDef (nme.toString_, Nil , Nil , TypeTree (defn.StringType ), body).withFlags(Override )
277273
278274 def ordinalMethLit (ord : Int )(implicit ctx : Context ): DefDef =
279275 ordinalMeth(Literal (Constant (ord)))
280276
281- def nameMethLit (name : String )(implicit ctx : Context ): DefDef =
282- nameMeth(Literal (Constant (name)))
283-
284- def toStringMethAsName (implicit ctx : Context ): DefDef =
285- toStringMeth(Ident (nme.name))
277+ def toStringMethLit (name : String )(implicit ctx : Context ): DefDef =
278+ toStringMeth(Literal (Constant (name)))
286279
287280 /** Expand a module definition representing a parameterless enum case */
288281 def expandEnumModule (name : TermName , impl : Template , mods : Modifiers , span : Span )(implicit ctx : Context ): Tree = {
@@ -293,8 +286,8 @@ object DesugarEnums {
293286 else {
294287 val (tag, scaffolding) = nextOrdinal(CaseKind .Object )
295288 val ordinalDef = ordinalMethLit(tag)
296- val nameDef = nameMethLit (name.toString)
297- val impl1 = cpy.Template (impl)(body = List (ordinalDef, nameDef, toStringMethAsName ) ++ registerCall)
289+ val toStringDef = toStringMethLit (name.toString)
290+ val impl1 = cpy.Template (impl)(body = List (ordinalDef, toStringDef ) ++ registerCall)
298291 .withAttachment(ExtendsSingletonMirror , ())
299292 val vdef = ValDef (name, TypeTree (), New (impl1)).withMods(mods | Final )
300293 flatTree(scaffolding ::: vdef :: Nil ).withSpan(span)
0 commit comments