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 | |
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')
-rw-r--r-- | compiler/src/dotty/tools/dotc/typer/RefChecks.scala | 4 | ||||
-rw-r--r-- | compiler/test/dotc/scala-collections.blacklist | 8 | ||||
-rw-r--r-- | compiler/test/dotc/scala-collections.whitelist | 1 |
3 files changed, 5 insertions, 8 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( diff --git a/compiler/test/dotc/scala-collections.blacklist b/compiler/test/dotc/scala-collections.blacklist index 97f12244e..1e1c7b5d9 100644 --- a/compiler/test/dotc/scala-collections.blacklist +++ b/compiler/test/dotc/scala-collections.blacklist @@ -4,13 +4,7 @@ # 55 |abstract class AnyVal extends Any { # |^ # |illegal redefinition of standard class AnyVal - - -../scala-scala/src/library/scala/collection/convert/Wrappers.scala -# 34 | def remove() = throw new UnsupportedOperationException -# | ^ -# | overriding method remove in trait Iterator of type ()Unit; -# | method remove of type ()Unit needs `override' modifier +# (This is intended) ../scala-scala/src/library/scala/collection/generic/ParSetFactory.scala diff --git a/compiler/test/dotc/scala-collections.whitelist b/compiler/test/dotc/scala-collections.whitelist index cdec1ab12..498444ff5 100644 --- a/compiler/test/dotc/scala-collections.whitelist +++ b/compiler/test/dotc/scala-collections.whitelist @@ -370,6 +370,7 @@ ../scala-scala/src/library/scala/collection/convert/package.scala ../scala-scala/src/library/scala/collection/convert/WrapAsJava.scala ../scala-scala/src/library/scala/collection/convert/WrapAsScala.scala +../scala-scala/src/library/scala/collection/convert/Wrapper.scala ../scala-scala/src/library/scala/collection/concurrent/Map.scala ../scala-scala/src/library/scala/collection/concurrent/TrieMap.scala |