[FIR] Implement FirInterfaceDefaultMethodCallChecker
Add diagnostics: INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET, INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER, DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET
This commit is contained in:
committed by
TeamCityServer
parent
97bc079634
commit
f414a91c66
+13
-13
@@ -25,8 +25,8 @@ import JavaInterface.testStatic
|
||||
|
||||
interface KotlinInterface : JavaInterface {
|
||||
fun fooo() {
|
||||
testStatic()
|
||||
super.test()
|
||||
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
|
||||
test()
|
||||
testOverride()
|
||||
}
|
||||
@@ -38,8 +38,8 @@ interface KotlinInterface : JavaInterface {
|
||||
|
||||
interface KotlinInterfaceIndirectInheritance : KotlinInterface {
|
||||
fun foooo() {
|
||||
testStatic()
|
||||
super.test()
|
||||
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
|
||||
testOverride()
|
||||
super.testOverride()
|
||||
}
|
||||
@@ -47,30 +47,30 @@ interface KotlinInterfaceIndirectInheritance : KotlinInterface {
|
||||
|
||||
open class KotlinClass : JavaInterface {
|
||||
fun foo(){
|
||||
testStatic()
|
||||
super.test()
|
||||
super.testOverride()
|
||||
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>test<!>()
|
||||
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testOverride<!>()
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinClassIndirectInheritance : KotlinClass() {
|
||||
fun foo2(){
|
||||
testStatic()
|
||||
super.test()
|
||||
super.testOverride()
|
||||
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>test<!>()
|
||||
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testOverride<!>()
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinClassIndirectInheritance2 : KotlinInterfaceIndirectInheritance {
|
||||
fun foo(){
|
||||
testStatic()
|
||||
super.test()
|
||||
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>test<!>()
|
||||
super.testOverride()
|
||||
}
|
||||
}
|
||||
|
||||
fun test() {
|
||||
JavaInterface.testStatic()
|
||||
JavaInterface.<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>testStatic<!>()
|
||||
KotlinClass().foo()
|
||||
KotlinClassIndirectInheritance2().foo()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user