diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-07-28 16:00:53 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-07-28 18:23:29 +0200 |
commit | 7cfa2e1e0ac3703161e33227d5729ddd81983f99 (patch) | |
tree | 98346df4c18b223f32377e6bff52da2b13e41ef8 | |
parent | e147fbe1bb2ceeeb464028cd2c92238ad57a3ae1 (diff) | |
download | dotty-7cfa2e1e0ac3703161e33227d5729ddd81983f99.tar.gz dotty-7cfa2e1e0ac3703161e33227d5729ddd81983f99.tar.bz2 dotty-7cfa2e1e0ac3703161e33227d5729ddd81983f99.zip |
Fix #744
Mixi was not calling transformFollowing on generated setters.
-rw-r--r-- | src/dotty/tools/dotc/transform/Mixin.scala | 2 | ||||
-rw-r--r-- | tests/run/i744.check | 1 | ||||
-rw-r--r-- | tests/run/i744.scala | 8 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/Mixin.scala b/src/dotty/tools/dotc/transform/Mixin.scala index e405b08a0..982a6346b 100644 --- a/src/dotty/tools/dotc/transform/Mixin.scala +++ b/src/dotty/tools/dotc/transform/Mixin.scala @@ -230,7 +230,7 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform => def setters(mixin: ClassSymbol): List[Tree] = for (setter <- mixin.info.decls.filter(setr => setr.isSetter && !wasDeferred(setr)).toList) - yield DefDef(implementation(setter.asTerm), unitLiteral.withPos(cls.pos)) + yield transformFollowing(DefDef(implementation(setter.asTerm), unitLiteral.withPos(cls.pos))) cpy.Template(impl)( constr = diff --git a/tests/run/i744.check b/tests/run/i744.check new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/tests/run/i744.check @@ -0,0 +1 @@ +1 diff --git a/tests/run/i744.scala b/tests/run/i744.scala new file mode 100644 index 000000000..4ff6c9288 --- /dev/null +++ b/tests/run/i744.scala @@ -0,0 +1,8 @@ +trait A{ + private var s = 1 + def getS = s +} + +object Test extends A { + def main(args: Array[String]): Unit = println(getS) +} |