diff options
author | Martin Odersky <odersky@gmail.com> | 2015-11-02 22:52:00 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-11-02 22:52:00 +0100 |
commit | f3b1aef46f561eda43fcfb3db1b957b447b79322 (patch) | |
tree | 5ecd07916445750dd7be8398c6ff68dda4644248 /src/dotty/tools/dotc/typer/RefChecks.scala | |
parent | b1cb0afd6bce37d8e7e77f1a64e6db82a0d7bb86 (diff) | |
download | dotty-f3b1aef46f561eda43fcfb3db1b957b447b79322.tar.gz dotty-f3b1aef46f561eda43fcfb3db1b957b447b79322.tar.bz2 dotty-f3b1aef46f561eda43fcfb3db1b957b447b79322.zip |
Make isDefined override if necessary
isDefined is now always auto-generated for case classes. It need to get an automatic override
if there is a version that's inherited.
Diffstat (limited to 'src/dotty/tools/dotc/typer/RefChecks.scala')
-rw-r--r-- | src/dotty/tools/dotc/typer/RefChecks.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/RefChecks.scala b/src/dotty/tools/dotc/typer/RefChecks.scala index ae854ed9a..3ffbb8079 100644 --- a/src/dotty/tools/dotc/typer/RefChecks.scala +++ b/src/dotty/tools/dotc/typer/RefChecks.scala @@ -287,7 +287,9 @@ object RefChecks { !member.isAnyOverride) { // (*) Exclusion for default getters, fixes SI-5178. We cannot assign the Override flag to // the default getter: one default getter might sometimes override, sometimes not. Example in comment on ticket. - if (member.owner != clazz && other.owner != clazz && !(other.owner derivesFrom member.owner)) + if (member.name == nme.isDefined && member.is(Synthetic)) // isDefined methods are added automatially, can't have an override preset. + member.setFlag(Override) + else if (member.owner != clazz && other.owner != clazz && !(other.owner derivesFrom member.owner)) emitOverrideError( clazz + " inherits conflicting members:\n " + infoStringWithLocation(other) + " and\n " + infoStringWithLocation(member) |