@@ -86,8 +86,8 @@ object DesugarEnums {
8686 /** The following lists of definitions for an enum type E:
8787 *
8888 * private val $values = new EnumValues[E]
89- * def valueOf(name: String) =
90- * try $values.fromName(name) catch
89+ * def valueOf($ name: String) =
90+ * try $values.fromName($ name) catch
9191 * {
9292 * case ex$:NoSuchElementException =>
9393 * throw new IllegalArgumentException("key not found: ".concat(name))
@@ -104,17 +104,17 @@ object DesugarEnums {
104104
105105 val valuesOfExnMessage = Apply (
106106 Select (Literal (Constant (" key not found: " )), " concat" .toTermName)
107- , Ident (nme.name ) :: Nil )
107+ , Ident (nme.nameDollar ) :: Nil )
108108 val valuesOfBody = Try (
109- expr = Apply (valuesDot(" fromName" ), Ident (nme.name ) :: Nil )
109+ expr = Apply (valuesDot(" fromName" ), Ident (nme.nameDollar ) :: Nil )
110110 , cases = CaseDef (
111111 pat = Typed (Ident (nme.DEFAULT_EXCEPTION_NAME ), TypeTree (defn.NoSuchElementExceptionType ))
112112 , guard = EmptyTree
113113 , body = Throw (New (TypeTree (defn.IllegalArgumentExceptionType ), List (valuesOfExnMessage :: Nil )))
114114 ) :: Nil
115115 , finalizer = EmptyTree
116116 )
117- val valueOfDef = DefDef (nme.valueOf, Nil , List (param(nme.name , defn.StringType ) :: Nil ),
117+ val valueOfDef = DefDef (nme.valueOf, Nil , List (param(nme.nameDollar , defn.StringType ) :: Nil ),
118118 TypeTree (), valuesOfBody)
119119
120120 valuesDef ::
@@ -124,20 +124,19 @@ object DesugarEnums {
124124
125125 /** A creation method for a value of enum type `E`, which is defined as follows:
126126 *
127- * private def $new(tag: Int, name_: String) = new E {
128- * override def ordinal = tag
129- * override def name = name_
130- * override def toString = name
127+ * private def $new($tag: Int, $name: String) = new E {
128+ * override def ordinal = $tag
129+ * override def toString = $name
131130 * $values.register(this)
132131 * }
133132 */
134133 private def enumValueCreator (implicit ctx : Context ) = {
135- val ordinalDef = ordinalMeth(Ident (nme.tag ))
136- val nameDef = nameMeth (Ident (nme.name_ ))
134+ val ordinalDef = ordinalMeth(Ident (nme.tagDollar ))
135+ val toStringDef = toStringMeth (Ident (nme.nameDollar ))
137136 def creator = New (Template (emptyConstructor, enumClassRef :: Nil , Nil , EmptyValDef ,
138- List (ordinalDef, nameDef, toStringMethAsName ) ++ registerCall))
137+ List (ordinalDef, toStringDef ) ++ registerCall))
139138 DefDef (nme.DOLLAR_NEW , Nil ,
140- List (List (param(nme.tag , defn.IntType ), param(nme.name_ , defn.StringType ))),
139+ List (List (param(nme.tagDollar , defn.IntType ), param(nme.nameDollar , defn.StringType ))),
141140 TypeTree (), creator)
142141 }
143142
@@ -263,20 +262,14 @@ object DesugarEnums {
263262 def ordinalMeth (body : Tree )(implicit ctx : Context ): DefDef =
264263 DefDef (nme.ordinal, Nil , Nil , TypeTree (defn.IntType ), body).withFlags(Override )
265264
266- def nameMeth (body : Tree )(implicit ctx : Context ): DefDef =
267- DefDef (nme.name, Nil , Nil , TypeTree (defn.StringType ), body).withFlags(Override )
268-
269265 def toStringMeth (body : Tree )(implicit ctx : Context ): DefDef =
270266 DefDef (nme.toString_, Nil , Nil , TypeTree (defn.StringType ), body).withFlags(Override )
271267
272268 def ordinalMethLit (ord : Int )(implicit ctx : Context ): DefDef =
273269 ordinalMeth(Literal (Constant (ord)))
274270
275- def nameMethLit (name : String )(implicit ctx : Context ): DefDef =
276- nameMeth(Literal (Constant (name)))
277-
278- def toStringMethAsName (implicit ctx : Context ): DefDef =
279- toStringMeth(Ident (nme.name))
271+ def toStringMethLit (name : String )(implicit ctx : Context ): DefDef =
272+ toStringMeth(Literal (Constant (name)))
280273
281274 /** Expand a module definition representing a parameterless enum case */
282275 def expandEnumModule (name : TermName , impl : Template , mods : Modifiers , span : Span )(implicit ctx : Context ): Tree = {
@@ -287,8 +280,8 @@ object DesugarEnums {
287280 else {
288281 val (tag, scaffolding) = nextOrdinal(CaseKind .Object )
289282 val ordinalDef = ordinalMethLit(tag)
290- val nameDef = nameMethLit (name.toString)
291- val impl1 = cpy.Template (impl)(body = List (ordinalDef, nameDef, toStringMethAsName ) ++ registerCall)
283+ val toStringDef = toStringMethLit (name.toString)
284+ val impl1 = cpy.Template (impl)(body = List (ordinalDef, toStringDef ) ++ registerCall)
292285 val vdef = ValDef (name, TypeTree (), New (impl1)).withMods(mods | Final )
293286 flatTree(scaffolding ::: vdef :: Nil ).withSpan(span)
294287 }
0 commit comments