@@ -49,26 +49,6 @@ object NameOps {
4949 }
5050 }
5151
52- class PrefixNameExtractor (pre : TermName , bldr : NameExtractors .PrefixNameExtractor ) {
53- def apply (name : TermName ): TermName =
54- if (Config .semanticNames) bldr(name) else pre ++ name
55-
56- def unapply (name : TermName ): Option [TermName ] =
57- if (Config .semanticNames)
58- name match {
59- case bldr(original) => Some (original)
60- case _ => None
61- }
62- else tryUnmangle(name)
63-
64- def tryUnmangle (name : TermName ): Option [TermName ] =
65- if (name startsWith pre) Some (name.drop(pre.length).asTermName)
66- else None
67- }
68-
69- object SuperAccessorName extends PrefixNameExtractor (nme.SUPER_PREFIX , NameExtractors .SuperAccessorName )
70- object InitializerName extends PrefixNameExtractor (nme.INITIALIZER_PREFIX , NameExtractors .InitializerName )
71-
7252 implicit class NameDecorator [N <: Name ](val name : N ) extends AnyVal {
7353 import nme ._
7454
@@ -82,14 +62,8 @@ object NameOps {
8262 def isLoopHeaderLabel = (name startsWith WHILE_PREFIX ) || (name startsWith DO_WHILE_PREFIX )
8363 def isProtectedAccessorName = name startsWith PROTECTED_PREFIX
8464 def isReplWrapperName = name.toSimpleName containsSlice INTERPRETER_IMPORT_WRAPPER
85- def isTraitSetterName =
86- if (Config .semanticNames) name.is(TraitSetterName )
87- else name containsSlice TRAIT_SETTER_SEPARATOR
8865 def isSetterName = name endsWith SETTER_SUFFIX
8966 def isSingletonName = name endsWith SINGLETON_SUFFIX
90- def isModuleClassName =
91- if (Config .semanticNames) name.is(ModuleClassName )
92- else name endsWith MODULE_SUFFIX
9367 def isAvoidClashName = name endsWith AVOID_CLASH_SUFFIX
9468 def isImportName = name startsWith IMPORT
9569 def isFieldName = name endsWith LOCAL_SUFFIX
@@ -137,19 +111,13 @@ object NameOps {
137111 }
138112
139113 /** Convert this module name to corresponding module class name */
140- def moduleClassName : TypeName =
141- if (Config .semanticNames) name.derived(ModuleClassName ).toTypeName
142- else (name ++ tpnme.MODULE_SUFFIX ).toTypeName
114+ def moduleClassName : TypeName = name.derived(ModuleClassName ).toTypeName
143115
144116 /** Convert this module class name to corresponding source module name */
145117 def sourceModuleName : TermName = stripModuleClassSuffix.toTermName
146118
147119 /** If name ends in module class suffix, drop it */
148- def stripModuleClassSuffix : Name =
149- if (isModuleClassName)
150- if (Config .semanticNames) name.exclude(ModuleClassName )
151- else name dropRight MODULE_SUFFIX .length
152- else name
120+ def stripModuleClassSuffix : Name = name.exclude(ModuleClassName )
153121
154122 /** Append a suffix so that this name does not clash with another name in the same scope */
155123 def avoidClashName : TermName = (name ++ AVOID_CLASH_SUFFIX ).toTermName
@@ -165,9 +133,7 @@ object NameOps {
165133 }.asInstanceOf [N ]
166134
167135 /** The superaccessor for method with given name */
168- def superName : TermName =
169- if (Config .semanticNames) SuperAccessorName (name.toTermName)
170- else (nme.SUPER_PREFIX ++ name).toTermName
136+ def superName : TermName = SuperAccessorName (name.toTermName)
171137
172138 /** The expanded name of `name` relative to given class `base`.
173139 */
@@ -179,34 +145,24 @@ object NameOps {
179145 /** The expanded name of `name` relative to `basename` with given `separator`
180146 */
181147 def expandedName (prefix : Name , separator : Name = nme.EXPAND_SEPARATOR ): N =
182- likeTyped(
183- if (Config .semanticNames) {
184- def qualify (name : SimpleTermName ) =
185- separatorToQualified(separator.toString)(prefix.toTermName, name)
186- name rewrite {
187- case name : SimpleTermName =>
188- qualify(name)
189- case AnyQualifiedName (_, _) =>
190- // Note: an expanded name may itself be expanded. For example, look at javap of scala.App.initCode
191- qualify(name.toSimpleName)
192- }
148+ likeTyped {
149+ def qualify (name : SimpleTermName ) =
150+ separatorToQualified(separator.toString)(prefix.toTermName, name)
151+ name rewrite {
152+ case name : SimpleTermName =>
153+ qualify(name)
154+ case AnyQualifiedName (_, _) =>
155+ // Note: an expanded name may itself be expanded. For example, look at javap of scala.App.initCode
156+ qualify(name.toSimpleName)
193157 }
194- else prefix ++ separator ++ name)
158+ }
195159
196160 def expandedName (prefix : Name ): N = expandedName(prefix, nme.EXPAND_SEPARATOR )
197161
198- /** Revert the expanded name.
199- * Note: This currently gives incorrect results
200- * if the normal name contains `nme.EXPAND_SEPARATOR`, i.e. two consecutive '$'
201- * signs. This can happen for instance if a super accessor is paired with
202- * an encoded name, e.g. super$$plus$eq. See #765.
203- */
204- def unexpandedName : N =
205- if (Config .semanticNames)
206- likeTyped {
207- name.rewrite { case XpandedName (_, unexp) => unexp }
208- }
209- else unexpandedNameOfMangled
162+ /** Revert the expanded name. */
163+ def unexpandedName : N = likeTyped {
164+ name.rewrite { case XpandedName (_, unexp) => unexp }
165+ }
210166
211167 def unexpandedNameOfMangled : N = likeTyped {
212168 var idx = name.lastIndexOfSlice(nme.EXPAND_SEPARATOR )
@@ -219,25 +175,20 @@ object NameOps {
219175 if (idx < 0 ) name else (name drop (idx + nme.EXPAND_SEPARATOR .length))
220176 }
221177
222- def expandedPrefix : N =
223- if (Config .semanticNames)
224- likeTyped {
225- name.rewrite { case XpandedName (prefix, _) => prefix }
226- }
227- else expandedPrefixOfMangled
228-
178+ def expandedPrefix : N = likeTyped { name.exclude(XpandedName ) }
179+
229180 def expandedPrefixOfMangled : N = {
230181 val idx = name.lastIndexOfSlice(nme.EXPAND_SEPARATOR )
231182 assert(idx >= 0 )
232183 likeTyped(name.take(idx))
233184 }
234185
235186 def unmangleExpandedName : N =
236- if (Config .semanticNames && name.isSimple) {
187+ if (name.isSimple) {
237188 val unmangled = unexpandedNameOfMangled
238189 if (name eq unmangled) name
239190 else likeTyped(
240- XpandedName (expandedPrefixOfMangled.toTermName, unmangled.asSimpleName))
191+ XpandedName (expandedPrefixOfMangled.toTermName, unmangled.asSimpleName))
241192 }
242193 else name
243194
@@ -253,11 +204,11 @@ object NameOps {
253204
254205 def freshened (implicit ctx : Context ): N =
255206 likeTyped(
256- if (name.isModuleClassName ) name.stripModuleClassSuffix.freshened.moduleClassName
207+ if (name.is( ModuleClassName ) ) name.stripModuleClassSuffix.freshened.moduleClassName
257208 else likeTyped(ctx.freshName(name ++ NameTransformer .NAME_JOIN_STRING )))
258209
259210 def unmangleClassName : N =
260- if (Config .semanticNames && name.isSimple && name.isTypeName)
211+ if (name.isSimple && name.isTypeName)
261212 if (name.endsWith(MODULE_SUFFIX ) && ! tpnme.falseModuleClassNames.contains(name.asTypeName))
262213 likeTyped(name.dropRight(MODULE_SUFFIX .length).moduleClassName)
263214 else name
@@ -413,18 +364,11 @@ object NameOps {
413364
414365 def fieldName : TermName =
415366 if (name.isSetterName) {
416- if (name.isTraitSetterName) {
417- if (Config .semanticNames) {
418- val TraitSetterName (_, original) = name
419- original.fieldName
420- }
421- else {
422- // has form <$-separated-trait-name>$_setter_$ `name`_$eq
423- val start = name.indexOfSlice(TRAIT_SETTER_SEPARATOR ) + TRAIT_SETTER_SEPARATOR .length
424- val end = name.indexOfSlice(SETTER_SUFFIX )
425- (name.slice(start, end) ++ LOCAL_SUFFIX ).asTermName
426- }
427- } else getterName.fieldName
367+ if (name.is(TraitSetterName )) {
368+ val TraitSetterName (_, original) = name
369+ original.fieldName
370+ }
371+ else getterName.fieldName
428372 }
429373 else name.mapLast(n => (n ++ LOCAL_SUFFIX ).asSimpleName)
430374
@@ -443,19 +387,13 @@ object NameOps {
443387 * @note Default getter name suffixes start at 1, so `pos` has to be adjusted by +1
444388 */
445389 def defaultGetterName (pos : Int ): TermName =
446- if (Config .semanticNames) DefaultGetterName (name, pos)
447- else {
448- val prefix = if (name.isConstructorName) DEFAULT_GETTER_INIT else name
449- prefix ++ DEFAULT_GETTER ++ (pos + 1 ).toString
450- }
390+ DefaultGetterName (name, pos)
451391
452392 /** Nominally, name from name$default$N, CONSTRUCTOR for <init> */
453393 def defaultGetterToMethod : TermName =
454- if (Config .semanticNames)
455- name rewrite {
456- case DefaultGetterName (methName, _) => methName
457- }
458- else defaultGetterToMethodOfMangled
394+ name rewrite {
395+ case DefaultGetterName (methName, _) => methName
396+ }
459397
460398 def defaultGetterToMethodOfMangled : TermName = {
461399 val p = name.indexOfSlice(DEFAULT_GETTER )
@@ -468,11 +406,9 @@ object NameOps {
468406
469407 /** If this is a default getter, its index (starting from 0), else -1 */
470408 def defaultGetterIndex : Int =
471- if (Config .semanticNames)
472- name collect {
473- case DefaultGetterName (_, num) => num
474- } getOrElse - 1
475- else defaultGetterIndexOfMangled
409+ name collect {
410+ case DefaultGetterName (_, num) => num
411+ } getOrElse - 1
476412
477413 def defaultGetterIndexOfMangled : Int = {
478414 var i = name.length
@@ -564,21 +500,16 @@ object NameOps {
564500 def inlineAccessorName = nme.INLINE_ACCESSOR_PREFIX ++ name ++ " $"
565501
566502 def unmangleMethodName : TermName =
567- if (Config .semanticNames && name.isSimple) {
503+ if (name.isSimple) {
568504 val idx = name.defaultGetterIndexOfMangled
569505 if (idx >= 0 ) name.defaultGetterToMethodOfMangled.defaultGetterName(idx)
570506 else name
571507 }
572508 else name
573509
574510 def unmangleSuperName : TermName =
575- if (Config .semanticNames && name.isSimple)
576- SuperAccessorName .tryUnmangle(name.lastPart) match {
577- case scala.Some (original) =>
578- SuperAccessorName (name.mapLast(_ => original.asSimpleName))
579- case None =>
580- name
581- }
511+ if (name.isSimple && name.startsWith(str.SUPER_PREFIX ))
512+ SuperAccessorName (name.drop(str.SUPER_PREFIX .length).asTermName)
582513 else name
583514 }
584515
0 commit comments