diff options
author | Martin Odersky <odersky@gmail.com> | 2016-12-18 18:24:18 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2016-12-20 18:33:43 +0100 |
commit | c38669928b577a1d08f7b19b80c979b7b7e957ad (patch) | |
tree | 485fceed17309f3e0ebb236aec1d8c3aadcba373 /compiler/src | |
parent | 098c50ac83eb4d18b23a1ed888cf601053c46ae6 (diff) | |
download | dotty-c38669928b577a1d08f7b19b80c979b7b7e957ad.tar.gz dotty-c38669928b577a1d08f7b19b80c979b7b7e957ad.tar.bz2 dotty-c38669928b577a1d08f7b19b80c979b7b7e957ad.zip |
Don't require override for Java interface default methods
Under language:Scala2, don't require an explicit `override' when
overriding default methods of Java traits. `scalac` does currently
the same thing.
Diffstat (limited to 'compiler/src')
-rw-r--r-- | compiler/src/dotty/tools/dotc/typer/RefChecks.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/typer/RefChecks.scala b/compiler/src/dotty/tools/dotc/typer/RefChecks.scala index dcbd444f9..be15aba39 100644 --- a/compiler/src/dotty/tools/dotc/typer/RefChecks.scala +++ b/compiler/src/dotty/tools/dotc/typer/RefChecks.scala @@ -299,7 +299,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 (autoOverride(member)) + // Also excluded under Scala2 mode are overrides of default methods of Java traits. + if (autoOverride(member) || + other.owner.is(JavaTrait) && ctx.scala2Mode) member.setFlag(Override) else if (member.owner != clazz && other.owner != clazz && !(other.owner derivesFrom member.owner)) emitOverrideError( |