aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-07-28 16:00:53 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-07-28 18:23:29 +0200
commit7cfa2e1e0ac3703161e33227d5729ddd81983f99 (patch)
tree98346df4c18b223f32377e6bff52da2b13e41ef8
parente147fbe1bb2ceeeb464028cd2c92238ad57a3ae1 (diff)
downloaddotty-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.scala2
-rw-r--r--tests/run/i744.check1
-rw-r--r--tests/run/i744.scala8
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)
+}