File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -118,10 +118,19 @@ class Memoize extends MiniPhase with IdentityDenotTransformer { thisPhase =>
118
118
EmptyTree
119
119
}
120
120
121
+ def traitSetterGetter : Symbol =
122
+ /* We have to compare SimpleNames here, because the setter name only
123
+ * embed the original getter's simple name, not its semantic name.
124
+ */
125
+ val getterSimpleName = sym.asTerm.name.getterName
126
+ sym.owner.info.decls.find { getter =>
127
+ getter.is(Accessor ) && getter.asTerm.name.toSimpleName == getterSimpleName
128
+ }
129
+
121
130
val constantFinalVal = sym.isAllOf(Accessor | Final , butNot = Mutable ) && tree.rhs.isInstanceOf [Literal ]
122
131
123
132
if (sym.is(Accessor , butNot = NoFieldNeeded ) && ! constantFinalVal
124
- && (! sym.name.is(TraitSetterName ) || sym.getter .is(Accessor , butNot = NoFieldNeeded ))) {
133
+ && (! sym.name.is(TraitSetterName ) || traitSetterGetter .is(Accessor , butNot = NoFieldNeeded ))) {
125
134
val field = sym.field.orElse(newField).asTerm
126
135
127
136
def adaptToField (tree : Tree ): Tree =
You can’t perform that action at this time.
0 commit comments