aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/AugmentScala2Traits.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-06-01 15:33:25 +0200
committerMartin Odersky <odersky@gmail.com>2015-06-01 15:33:25 +0200
commit9e56405ee979831cdccef6ed26dbe445c6808877 (patch)
tree1cfe21bbe0ea1422549e94d9aa53d248bb292da0 /src/dotty/tools/dotc/transform/AugmentScala2Traits.scala
parent2ab65fdee6c8d3c1c15bf137818c611c0a2e985d (diff)
downloaddotty-9e56405ee979831cdccef6ed26dbe445c6808877.tar.gz
dotty-9e56405ee979831cdccef6ed26dbe445c6808877.tar.bz2
dotty-9e56405ee979831cdccef6ed26dbe445c6808877.zip
Avoid generating trait setters for constants.
Scalac does not generate them either.
Diffstat (limited to 'src/dotty/tools/dotc/transform/AugmentScala2Traits.scala')
-rw-r--r--src/dotty/tools/dotc/transform/AugmentScala2Traits.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/AugmentScala2Traits.scala b/src/dotty/tools/dotc/transform/AugmentScala2Traits.scala
index 939b4105b..c3e205f83 100644
--- a/src/dotty/tools/dotc/transform/AugmentScala2Traits.scala
+++ b/src/dotty/tools/dotc/transform/AugmentScala2Traits.scala
@@ -83,7 +83,8 @@ class AugmentScala2Traits extends MiniPhaseTransform with IdentityDenotTransform
for (sym <- mixin.info.decls) {
if (needsForwarder(sym) || sym.isConstructor || sym.isGetter && sym.is(Lazy))
implClass.enter(implMethod(sym.asTerm))
- if (sym.isGetter && !sym.is(LazyOrDeferred) && !sym.setter.exists)
+ if (sym.isGetter && !sym.is(LazyOrDeferred) &&
+ !sym.setter.exists && !sym.info.resultType.isInstanceOf[ConstantType])
traitSetter(sym.asTerm).enteredAfter(thisTransform)
if (sym.is(PrivateAccessor, butNot = ExpandedName) &&
(sym.isGetter || sym.isSetter)) // strangely, Scala 2 fields are also methods that have Accessor set.