Skip to content

Commit 9e56405

Browse files
committed
Avoid generating trait setters for constants.
Scalac does not generate them either.
1 parent 2ab65fd commit 9e56405

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/dotty/tools/dotc/transform/AugmentScala2Traits.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ class AugmentScala2Traits extends MiniPhaseTransform with IdentityDenotTransform
8383
for (sym <- mixin.info.decls) {
8484
if (needsForwarder(sym) || sym.isConstructor || sym.isGetter && sym.is(Lazy))
8585
implClass.enter(implMethod(sym.asTerm))
86-
if (sym.isGetter && !sym.is(LazyOrDeferred) && !sym.setter.exists)
86+
if (sym.isGetter && !sym.is(LazyOrDeferred) &&
87+
!sym.setter.exists && !sym.info.resultType.isInstanceOf[ConstantType])
8788
traitSetter(sym.asTerm).enteredAfter(thisTransform)
8889
if (sym.is(PrivateAccessor, butNot = ExpandedName) &&
8990
(sym.isGetter || sym.isSetter)) // strangely, Scala 2 fields are also methods that have Accessor set.

0 commit comments

Comments
 (0)