From 2fce968de0e3e489aae9067b750b4d0246215397 Mon Sep 17 00:00:00 2001 From: Andrei Klunnyi Date: Tue, 13 Apr 2021 12:27:51 +0200 Subject: [PATCH] KT-46049 Java-Kotlin sealed inheritors inspection: false positive for type parameter ^KT-46049 Fixed --- .../inspections/KotlinSealedInheritorsInJavaInspection.kt | 1 + .../before/JavaTriesToExtendKotlinSealed.java | 2 ++ .../multiFileInspections/kotlinSealedInJavaTest/expected.xml | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinSealedInheritorsInJavaInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinSealedInheritorsInJavaInspection.kt index 572f5b00f55..435a6c71f05 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinSealedInheritorsInJavaInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinSealedInheritorsInJavaInspection.kt @@ -43,6 +43,7 @@ class KotlinSealedInheritorsInJavaInspection : LocalInspectionTool() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { return object : JavaElementVisitor() { override fun visitClass(aClass: PsiClass?) { + if (aClass is PsiTypeParameter) return aClass?.listSealedParentReferences()?.forEach { holder.registerProblem( it, KotlinBundle.message("inheritance.of.kotlin.sealed", 0.takeIf { aClass.isInterface } ?: 1), diff --git a/idea/testData/multiFileInspections/kotlinSealedInJavaTest/before/JavaTriesToExtendKotlinSealed.java b/idea/testData/multiFileInspections/kotlinSealedInJavaTest/before/JavaTriesToExtendKotlinSealed.java index 2ab7d257214..0e35807aa1a 100644 --- a/idea/testData/multiFileInspections/kotlinSealedInJavaTest/before/JavaTriesToExtendKotlinSealed.java +++ b/idea/testData/multiFileInspections/kotlinSealedInJavaTest/before/JavaTriesToExtendKotlinSealed.java @@ -8,6 +8,8 @@ public class JavaTriesToExtendKotlinSealed { interface OkToExtend extends KotlinInterface {} class OkToExtendClass extends KotlinClass{} + public void getSealed() {} + public static void main(String[] args) { KotlinSealedInterface sealedInterface = new KotlinSealedInterface() {}; // anonymouns class implements interface KotlinSealedClass sealedClass = new KotlinSealedClass() {}; diff --git a/idea/testData/multiFileInspections/kotlinSealedInJavaTest/expected.xml b/idea/testData/multiFileInspections/kotlinSealedInJavaTest/expected.xml index 585da3710b0..ea2c35e8958 100644 --- a/idea/testData/multiFileInspections/kotlinSealedInJavaTest/expected.xml +++ b/idea/testData/multiFileInspections/kotlinSealedInJavaTest/expected.xml @@ -46,7 +46,7 @@ JavaTriesToExtendKotlinSealed.java - 12 + 14 testKotlinSealedInJavaTest_KotlinSealedInJavaTest <default> @@ -59,7 +59,7 @@ JavaTriesToExtendKotlinSealed.java - 13 + 15 testKotlinSealedInJavaTest_KotlinSealedInJavaTest <default>