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