diff options
author | Paul Phillips <paulp@improving.org> | 2012-03-20 10:35:10 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-03-28 14:02:54 -0700 |
commit | 399bd6240f775583ee9709311bd0b02e8359c15c (patch) | |
tree | 9018bea9794eedd95aaf9f1c6ca5900a7b2f06fd /src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | |
parent | 97f03245d9646b9ade43418dee7dc0d2a6203ce7 (diff) | |
download | scala-399bd6240f775583ee9709311bd0b02e8359c15c.tar.gz scala-399bd6240f775583ee9709311bd0b02e8359c15c.tar.bz2 scala-399bd6240f775583ee9709311bd0b02e8359c15c.zip |
Never write final fields outside of constructors.
Closes SI-3569, SI-3770.
Also threw in experimental -Yoverride-vars. It's not robust.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala index 4248b6f024..94733369a8 100644 --- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala +++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala @@ -259,7 +259,8 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT case sel @ Select(Super(_, mix), name) => if (sym.isValue && !sym.isMethod || sym.hasAccessorFlag) { - unit.error(tree.pos, "super may be not be used on "+ sym.accessedOrSelf) + if (!settings.overrideVars.value) + unit.error(tree.pos, "super may be not be used on "+ sym.accessedOrSelf) } else if (isDisallowed(sym)) { unit.error(tree.pos, "super not allowed here: use this." + name.decode + " instead") |