File tree Expand file tree Collapse file tree 3 files changed +17
-2
lines changed Expand file tree Collapse file tree 3 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -292,6 +292,21 @@ object SymDenotations {
292
292
if (isType) fn.toTypeName else fn.toTermName
293
293
}
294
294
295
+
296
+ /** The encoded flat name of this denotation, where joined names are separated by `separator` characters. */
297
+ def flatName (separator : Char = '$' )(implicit ctx : Context ): Name =
298
+ if (symbol == NoSymbol || owner == NoSymbol || owner.isEffectiveRoot || (owner is PackageClass )) name
299
+ else {
300
+ var owner = this
301
+ var sep = " "
302
+ do {
303
+ owner = owner.owner
304
+ sep += separator
305
+ } while (! owner.isClass && ! owner.isPackageObject)
306
+ val fn = owner.flatName(separator) ++ sep ++ name
307
+ if (isType) fn.toTypeName else fn.toTermName
308
+ }
309
+
295
310
/** `fullName` where `.' is the separator character */
296
311
def fullName (implicit ctx : Context ): Name = fullNameSeparated('.' )
297
312
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ class Flatten extends MiniPhaseTransform with SymTransformer { thisTransform =>
19
19
def transformSym (ref : SymDenotation )(implicit ctx : Context ) = {
20
20
if (ref.isClass && ! ref.is(Package ) && ! ref.owner.is(Package )) {
21
21
ref.copySymDenotation(
22
- name = ref.flatName,
22
+ name = ref.flatName() ,
23
23
owner = ref.enclosingPackageClass)
24
24
}
25
25
else ref
Original file line number Diff line number Diff line change @@ -93,7 +93,7 @@ class SymUtils(val self: Symbol) extends AnyVal {
93
93
self.owner.info.decl(self.asTerm.name.fieldName).suchThat(! _.is(Method )).symbol
94
94
95
95
/** `fullName` where `$' is the separator character */
96
- def flatName (implicit ctx : Context ): Name = self.fullNameSeparated ('$' )
96
+ def flatName (implicit ctx : Context ): Name = self.flatName ('$' )
97
97
98
98
def initializer (implicit ctx : Context ): TermSymbol =
99
99
self.owner.info.decl(InitializerName (self.asTerm.name)).symbol.asTerm
You can’t perform that action at this time.
0 commit comments