diff options
author | Martin Odersky <odersky@gmail.com> | 2015-05-27 19:20:32 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-05-27 19:20:43 +0200 |
commit | d81fc0395d525f4dd0ec7d1707b3f0249b014edb (patch) | |
tree | 13cef22327b2219aba5c6053ece1f8c643572020 /src/dotty/tools/dotc/transform/Memoize.scala | |
parent | c6425f0e103194e50576c591ebab87b19c4b83c3 (diff) | |
download | dotty-d81fc0395d525f4dd0ec7d1707b3f0249b014edb.tar.gz dotty-d81fc0395d525f4dd0ec7d1707b3f0249b014edb.tar.bz2 dotty-d81fc0395d525f4dd0ec7d1707b3f0249b014edb.zip |
Mixin: generate a getter in implementing class only if current
A class might implement several fields in inherited traits with the same and type.
In that case only one getter should be produced, but all initializing expressions
have to be executed.
Diffstat (limited to 'src/dotty/tools/dotc/transform/Memoize.scala')
-rw-r--r-- | src/dotty/tools/dotc/transform/Memoize.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/transform/Memoize.scala b/src/dotty/tools/dotc/transform/Memoize.scala index d96a52868..cbde1ef8a 100644 --- a/src/dotty/tools/dotc/transform/Memoize.scala +++ b/src/dotty/tools/dotc/transform/Memoize.scala @@ -50,15 +50,15 @@ import Decorators._ override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree = { val sym = tree.symbol - + def newField = ctx.newSymbol( owner = ctx.owner, name = sym.name.asTermName.fieldName, flags = Private | (if (sym is Stable) EmptyFlags else Mutable), info = sym.info.resultType, coord = tree.pos).enteredAfter(thisTransform) - - lazy val field = sym.field.orElse(newField).asTerm + + lazy val field = sym.field.orElse(newField).asTerm if (sym.is(Accessor, butNot = NoFieldNeeded)) if (sym.isGetter) { tree.rhs.changeOwnerAfter(sym, field, thisTransform) |