aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/typer/RefChecks.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-12-18 18:24:18 +0100
committerFelix Mulder <felix.mulder@gmail.com>2016-12-20 18:33:43 +0100
commitc38669928b577a1d08f7b19b80c979b7b7e957ad (patch)
tree485fceed17309f3e0ebb236aec1d8c3aadcba373 /compiler/src/dotty/tools/dotc/typer/RefChecks.scala
parent098c50ac83eb4d18b23a1ed888cf601053c46ae6 (diff)
downloaddotty-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/dotty/tools/dotc/typer/RefChecks.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/typer/RefChecks.scala4
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(