1
- package dotty .tools .dotc
1
+ package dotty .tools
2
+ package dotc
2
3
package core
3
4
4
5
import java .security .MessageDigest
@@ -9,7 +10,7 @@ import Names._, StdNames._, Contexts._, Symbols._, Flags._, NameKinds._, Types._
9
10
import util .Chars .{isOperatorPart , digit2int }
10
11
import Definitions ._
11
12
import nme ._
12
- import Decorators .concat
13
+ import Decorators ._
13
14
14
15
object NameOps {
15
16
@@ -69,7 +70,7 @@ object NameOps {
69
70
def isLocalDummyName : Boolean = name startsWith str.LOCALDUMMY_PREFIX
70
71
def isReplWrapperName : Boolean = name.toString contains str.REPL_SESSION_LINE
71
72
def isReplAssignName : Boolean = name.toString contains str.REPL_ASSIGN_SUFFIX
72
- def isSetterName : Boolean = name endsWith str.SETTER_SUFFIX
73
+ def isSetterName : Boolean = name. endsWith( str.SETTER_SUFFIX ) || name.is( SyntheticSetterName )
73
74
def isScala2LocalSuffix : Boolean = testSimple(_.endsWith(" " ))
74
75
def isSelectorName : Boolean = testSimple(n => n.startsWith(" _" ) && n.drop(1 ).forall(_.isDigit))
75
76
def isAnonymousClassName : Boolean = name.startsWith(str.ANON_CLASS )
@@ -347,17 +348,21 @@ object NameOps {
347
348
348
349
def setterName : TermName = name.exclude(FieldName ) ++ str.SETTER_SUFFIX
349
350
351
+ def syntheticSetterName = SyntheticSetterName (name.exclude(FieldName ))
352
+
350
353
def getterName : TermName =
351
- name.exclude(FieldName ).mapLast(n =>
354
+ val name1 = name.exclude(FieldName )
355
+ if name1.is(SyntheticSetterName ) then name1.exclude(SyntheticSetterName )
356
+ else name1.mapLast(n =>
352
357
if (n.endsWith(str.SETTER_SUFFIX )) n.take(n.length - str.SETTER_SUFFIX .length).asSimpleName
353
358
else n)
354
359
355
360
def fieldName : TermName =
356
361
if (name.isSetterName)
357
- if ( name.is(TraitSetterName )) {
358
- val TraitSetterName (_, original) = name
359
- original.fieldName
360
- }
362
+ if name.is(SyntheticSetterName ) then
363
+ name.exclude( SyntheticSetterName )
364
+ .replace { case TraitSetterName (_, original) => original }
365
+ .fieldName
361
366
else getterName.fieldName
362
367
else FieldName (name.toSimpleName)
363
368
0 commit comments