Disable check about unimplemented check for real defaults
Now we can generate proper defaults and there is no need in additional checks about unimplemented methods #KT-41130 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
641f08d561
commit
78a0d7b5bb
+8
@@ -18,7 +18,10 @@ import com.intellij.psi.*
|
||||
import org.jetbrains.kotlin.asJava.KtLightClassMarker
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.config.JvmAnalysisFlags
|
||||
import org.jetbrains.kotlin.config.JvmDefaultMode
|
||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||
import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
|
||||
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_DEFAULT_FQ_NAME
|
||||
@@ -30,6 +33,11 @@ class UnimplementedKotlinInterfaceMemberAnnotator : Annotator {
|
||||
|
||||
if (element.isInterface || element.hasModifierProperty(PsiModifier.ABSTRACT)) return
|
||||
|
||||
val jvmDefaultMode = element.languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode)
|
||||
if (jvmDefaultMode == JvmDefaultMode.ALL_COMPATIBILITY || jvmDefaultMode == JvmDefaultMode.ALL_INCOMPATIBLE) {
|
||||
return
|
||||
}
|
||||
|
||||
if (getAnyMethodToImplement(element) != null) return // reported by java default annotator
|
||||
|
||||
findUnimplementedMethod(element)?.let {
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test;
|
||||
|
||||
class ExtendInterfaceWithDefaultMethodAndCompatibilityAll implements KotlinInterface {}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
interface KotlinInterface {
|
||||
fun bar() {}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
// COMPILER_ARGUMENTS: -Xjvm-default=all
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test;
|
||||
|
||||
class ExtendInterfaceWithDefaultMethodAndCompatibilityAll implements KotlinInterface {}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
interface KotlinInterface {
|
||||
fun bar() {}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
// COMPILER_ARGUMENTS: -Xjvm-default=all-compatibility
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test;
|
||||
|
||||
<error descr="Class 'ExtendInterfaceWithDefaultMethodAndCompatibilityAll' must either be declared abstract or implement abstract method 'bar()' in 'KotlinInterface'">class ExtendInterfaceWithDefaultMethodAndCompatibilityAll implements KotlinInterface</error> {}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
interface KotlinInterface {
|
||||
fun bar() {}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
// COMPILER_ARGUMENTS: -Xjvm-default=disable
|
||||
Generated
+15
@@ -79,6 +79,21 @@ public class JavaAgainstKotlinBinariesCheckerTestGenerated extends AbstractJavaA
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAll() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityDisabled() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendingMutableInterfaces.kt")
|
||||
public void testExtendingMutableInterfaces() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendingMutableInterfaces.kt");
|
||||
|
||||
+15
@@ -81,6 +81,21 @@ public class JavaAgainstKotlinSourceCheckerTestGenerated extends AbstractJavaAga
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAll() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityDisabled() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendingMutableInterfaces.kt")
|
||||
public void testExtendingMutableInterfaces() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendingMutableInterfaces.kt");
|
||||
|
||||
+15
@@ -81,6 +81,21 @@ public class JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated extend
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAll() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt")
|
||||
public void testExtendInterfaceWithDefaultMethodAndCompatibilityDisabled() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ExtendingMutableInterfaces.kt")
|
||||
public void testExtendingMutableInterfaces() throws Exception {
|
||||
runTest("idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendingMutableInterfaces.kt");
|
||||
|
||||
Reference in New Issue
Block a user