diff options
author | Dmitry Petrashko <dark@d-d.me> | 2017-03-15 13:04:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-15 13:04:43 +0100 |
commit | 72d5aaadbac78ccdf4aab9f2b2f426a1e34c9974 (patch) | |
tree | a63a056c25100d3aa0a6a7bf7db049a70016b20e /compiler/src/dotty/tools/dotc/core | |
parent | 141fb4b8c63e5b9cbbb1b92f55412e676a38cbf0 (diff) | |
parent | 864432373dc31b62529e5c221e3b8dca238aec18 (diff) | |
download | dotty-72d5aaadbac78ccdf4aab9f2b2f426a1e34c9974.tar.gz dotty-72d5aaadbac78ccdf4aab9f2b2f426a1e34c9974.tar.bz2 dotty-72d5aaadbac78ccdf4aab9f2b2f426a1e34c9974.zip |
Merge pull request #2096 from dotty-staging/fix-i2051
Fix #2051: allow override T with => T or ()T
Diffstat (limited to 'compiler/src/dotty/tools/dotc/core')
-rw-r--r-- | compiler/src/dotty/tools/dotc/core/Types.scala | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/Types.scala b/compiler/src/dotty/tools/dotc/core/Types.scala index 8e852a9a9..abc496ec0 100644 --- a/compiler/src/dotty/tools/dotc/core/Types.scala +++ b/compiler/src/dotty/tools/dotc/core/Types.scala @@ -727,8 +727,8 @@ object Types { /** Is this type a legal type for a member that overrides another * member of type `that`? This is the same as `<:<`, except that - * the types ()T and => T are identified, and T is seen as overriding - * either type. + * the types `()T`, `=> T` and `T` are seen as overriding + * each other. */ final def overrides(that: Type)(implicit ctx: Context) = { def result(tp: Type): Type = tp match { @@ -737,7 +737,8 @@ object Types { } (this frozen_<:< that) || { val rthat = result(that) - (rthat ne that) && (result(this) frozen_<:< rthat) + val rthis = result(this) + (rthat.ne(that) || rthis.ne(this)) && (rthis frozen_<:< rthat) } } |