Improve diagnostics on header/impl classes when scopes don't match

Try to report most of the errors on the actual members of the impl
class. In many cases, there's a 1:1 mapping of header to impl class
members, so the error "some members are not implemented" on the class
declaration itself is redundant. Exceptions include functions/properties
from supertypes (there may be no other place to report a signature
mismatch error in this case), functions/properties not marked with
'impl' (the checker is only run for declarations explicitly marked with
'impl') and default constructors (the checker is not run for them)

 #KT-18447 Fixed
This commit is contained in:
Alexander Udalov
2017-07-18 17:28:33 +03:00
parent 74ba0080b1
commit 9ecd04f628
17 changed files with 207 additions and 89 deletions
@@ -1,11 +1,11 @@
impl class <error>My</error> {
<error>impl fun foo()</error> = 42
impl fun foo() = 42
}
impl class <error>Your</error> {
impl class Your {
<error>impl fun foo()</error> = 13
impl fun foo() = 13
<error>impl fun bar(arg: Int)</error> = arg