@@ -165,6 +165,7 @@ object desugar {
165
165
&& ctx.owner.isClass
166
166
&& (! mods.is(Private ) || ctx.owner.is(Trait ) || ctx.owner.isPackageObject)
167
167
if (setterNeeded) {
168
+ val valName = normalizeName(vdef, tpt).asTermName
168
169
// TODO: copy of vdef as getter needed?
169
170
// val getter = ValDef(mods, name, tpt, rhs) withPos vdef.pos?
170
171
// right now vdef maps via expandedTree to a thicket which concerns itself.
@@ -173,7 +174,7 @@ object desugar {
173
174
// The rhs gets filled in later, when field is generated and getter has parameters (see Memoize miniphase)
174
175
val setterRhs = if (vdef.rhs.isEmpty) EmptyTree else unitLiteral
175
176
val setter = cpy.DefDef (vdef)(
176
- name = name .setterName,
177
+ name = valName .setterName,
177
178
tparams = Nil ,
178
179
vparamss = (setterParam :: Nil ) :: Nil ,
179
180
tpt = TypeTree (defn.UnitType ),
@@ -934,8 +935,13 @@ object desugar {
934
935
report.error(IllegalRedefinitionOfStandardKind (kind, name), errPos)
935
936
name = name.errorName
936
937
}
937
- if name.isExtensionName && (! mdef.mods.is(ExtensionMethod ) || name.dropExtension.isExtensionName) then
938
- report.error(em " illegal method name: $name may not start with `extension_` " , errPos)
938
+ mdef match {
939
+ case vdef : ValDef if name.isExtension && vdef.mods.is(Mutable ) =>
940
+ report.error(em " illegal variable name: `extension` " , errPos)
941
+ case memDef if name.isExtensionName && (! mdef.mods.is(ExtensionMethod ) || name.dropExtension.isExtensionName) =>
942
+ report.error(em " illegal name: $name may not start with `extension_` " , errPos)
943
+ case _ =>
944
+ }
939
945
name
940
946
}
941
947
0 commit comments