Skip to content

Commit b95fadb

Browse files
committed
Merge likeTyped and likeKinded into likeSpaced
1 parent a94400c commit b95fadb

File tree

2 files changed

+19
-23
lines changed

2 files changed

+19
-23
lines changed

compiler/src/dotty/tools/dotc/core/NameOps.scala

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ object NameOps {
5858
case _ => false
5959
}
6060

61-
def likeTyped(n: PreName): N =
61+
def likeSpaced(n: PreName): N =
6262
(if (name.isTermName) n.toTermName else n.toTypeName).asInstanceOf[N]
6363

6464
def isConstructorName = name == CONSTRUCTOR || name == TRAIT_CONSTRUCTOR
@@ -99,39 +99,33 @@ object NameOps {
9999
* method needs to work on mangled as well as unmangled names because
100100
* it is also called from the backend.
101101
*/
102-
def stripModuleClassSuffix: N = likeTyped {
102+
def stripModuleClassSuffix: N = likeSpaced {
103103
val name1 =
104104
if (name.isSimple && name.endsWith("$")) name.unmangleClassName else name
105105
name.exclude(ModuleClassName)
106106
}
107107

108108
/** If flags is a ModuleClass but not a Package, add module class suffix */
109-
def adjustIfModuleClass(flags: Flags.FlagSet): N = likeTyped {
109+
def adjustIfModuleClass(flags: Flags.FlagSet): N = likeSpaced {
110110
if (flags is (ModuleClass, butNot = Package)) name.asTypeName.moduleClassName
111111
else name.toTermName.exclude(AvoidClashName)
112112
}
113113

114114
def expandedName(base: Symbol, kind: QualifiedNameKind = ExpandedName)(implicit ctx: Context): N = {
115115
val prefix =
116116
if (base.name.is(ExpandedName)) base.name else base.fullNameSeparated(ExpandPrefixName)
117-
likeTyped { kind(prefix.toTermName, name.toTermName) }
117+
likeSpaced { kind(prefix.toTermName, name.toTermName) }
118118
}
119119

120120
/** Revert the expanded name. */
121-
def unexpandedName: N = likeTyped {
121+
def unexpandedName: N = likeSpaced {
122122
name.rewrite { case ExpandedName(_, unexp) => unexp }
123123
}
124124

125-
def implClassName: N = likeTyped(name ++ tpnme.IMPL_CLASS_SUFFIX)
125+
def implClassName: N = likeSpaced(name ++ tpnme.IMPL_CLASS_SUFFIX)
126126

127-
def errorName: N = likeTyped(name ++ nme.ERROR)
127+
def errorName: N = likeSpaced(name ++ nme.ERROR)
128128

129-
def directName: N = likeTyped(name ++ DIRECT_SUFFIX)
130-
131-
def freshened(implicit ctx: Context): N =
132-
likeTyped(
133-
if (name.is(ModuleClassName)) name.stripModuleClassSuffix.freshened.moduleClassName
134-
else likeTyped(ctx.freshName(name ++ NameTransformer.NAME_JOIN_STRING)))
135129
/*
136130
/** Name with variance prefix: `+` for covariant, `-` for contravariant */
137131
def withVariance(v: Int): N =
@@ -159,7 +153,7 @@ object NameOps {
159153
}
160154
161155
*/
162-
def freshened(implicit ctx: Context): N = likeTyped {
156+
def freshened(implicit ctx: Context): N = likeSpaced {
163157
name.toTermName match {
164158
case ModuleClassName(original) => ModuleClassName(original.freshened)
165159
case name => UniqueName.fresh(name)
@@ -241,7 +235,7 @@ object NameOps {
241235
val methodTags: Seq[Name] = (methodTargs zip methodTarsNames).sortBy(_._2).map(x => typeToTag(x._1))
242236
val classTags: Seq[Name] = (classTargs zip classTargsNames).sortBy(_._2).map(x => typeToTag(x._1))
243237

244-
name.likeKinded(name ++ nme.specializedTypeNames.prefix ++
238+
name.likeSpaced(name ++ nme.specializedTypeNames.prefix ++
245239
methodTags.fold(nme.EMPTY)(_ ++ _) ++ nme.specializedTypeNames.separator ++
246240
classTags.fold(nme.EMPTY)(_ ++ _) ++ nme.specializedTypeNames.suffix)
247241
}
@@ -252,11 +246,11 @@ object NameOps {
252246
def unmangleClassName: N = name.toTermName match {
253247
case name: SimpleTermName
254248
if name.endsWith(str.MODULE_SUFFIX) && !nme.falseModuleClassNames.contains(name) =>
255-
likeTyped(name.dropRight(str.MODULE_SUFFIX.length).moduleClassName)
249+
likeSpaced(name.dropRight(str.MODULE_SUFFIX.length).moduleClassName)
256250
case _ => name
257251
}
258252

259-
def unmangle(kind: NameKind): N = likeTyped {
253+
def unmangle(kind: NameKind): N = likeSpaced {
260254
name rewrite {
261255
case unmangled: SimpleTermName =>
262256
kind.unmangle(unmangled)

compiler/src/dotty/tools/dotc/core/Names.scala

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ object Names {
7171
def mapLast(f: SimpleTermName => SimpleTermName): ThisName
7272
def mapParts(f: SimpleTermName => SimpleTermName): ThisName
7373

74-
/** A name of the same kind as this name and with same characters as given `name` */
75-
def likeKinded(name: Name): ThisName
74+
/** A name in the same (term or type) namespace as this name and
75+
* with same characters as given `name`.
76+
*/
77+
def likeSpaced(name: Name): ThisName
7678

7779
def derived(info: NameInfo): ThisName
7880
def derived(kind: ClassifiedNameKind): ThisName = derived(kind.info)
@@ -129,7 +131,7 @@ object Names {
129131
_typeName
130132
}
131133

132-
def likeKinded(name: Name): TermName = name.toTermName
134+
def likeSpaced(name: Name): TermName = name.toTermName
133135

134136
def info: NameInfo = SimpleTermNameKind.info
135137
def underlying: TermName = unsupported("underlying")
@@ -264,7 +266,7 @@ object Names {
264266
def asSimpleName = this
265267
def toSimpleName = this
266268
def rewrite(f: PartialFunction[Name, Name]): ThisName =
267-
if (f.isDefinedAt(this)) likeKinded(f(this)) else this
269+
if (f.isDefinedAt(this)) likeSpaced(f(this)) else this
268270
def collect[T](f: PartialFunction[Name, T]): Option[T] = f.lift(this)
269271
def mapLast(f: SimpleTermName => SimpleTermName) = f(this)
270272
def mapParts(f: SimpleTermName => SimpleTermName) = f(this)
@@ -311,7 +313,7 @@ object Names {
311313
def mapLast(f: SimpleTermName => SimpleTermName) = toTermName.mapLast(f).toTypeName
312314
def mapParts(f: SimpleTermName => SimpleTermName) = toTermName.mapParts(f).toTypeName
313315

314-
def likeKinded(name: Name): TypeName = name.toTypeName
316+
def likeSpaced(name: Name): TypeName = name.toTypeName
315317

316318
def derived(info: NameInfo): TypeName = toTermName.derived(info).toTypeName
317319
def exclude(kind: NameKind): TypeName = toTermName.exclude(kind).toTypeName
@@ -342,7 +344,7 @@ object Names {
342344
def toSimpleName = termName(toString)
343345

344346
def rewrite(f: PartialFunction[Name, Name]): ThisName =
345-
if (f.isDefinedAt(this)) likeKinded(f(this))
347+
if (f.isDefinedAt(this)) likeSpaced(f(this))
346348
else info match {
347349
case qual: QualifiedInfo => this
348350
case _ => underlying.rewrite(f).derived(info)

0 commit comments

Comments
 (0)