diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index 732000c3520..02d7b543643 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -29,8 +29,12 @@ import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearch import com.intellij.util.Processor import org.jetbrains.kotlin.idea.JetBundle import com.intellij.codeInspection.ProblemHighlightType +import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection +import org.jetbrains.kotlin.asJava.LightClassUtil public class UnusedSymbolInspection : AbstractKotlinInspection() { + private val javaInspection = UnusedDeclarationInspection() + override fun runForWholeFile() = true override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor { @@ -38,6 +42,9 @@ public class UnusedSymbolInspection : AbstractKotlinInspection() { override fun visitClass(klass: JetClass) { if (klass.getName() == null) return + val lightClass = LightClassUtil.getPsiClass(klass) + if (lightClass != null && javaInspection.isEntryPoint(lightClass)) return + val usagesSearchHelper = KotlinClassFindUsagesOptions(holder.getProject()).toClassHelper() val request = usagesSearchHelper.newRequest(UsagesSearchTarget(klass, klass.getUseScope())) val query = UsagesSearch.search(request) diff --git a/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointApplet.kt b/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointApplet.kt new file mode 100644 index 00000000000..a737cf74f4e --- /dev/null +++ b/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointApplet.kt @@ -0,0 +1,5 @@ + +// WITH_RUNTIME +open class A: java.applet.Applet() + +class B: A() \ No newline at end of file diff --git a/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointMain.kt b/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointMain.kt new file mode 100644 index 00000000000..a3734222f7a --- /dev/null +++ b/idea/testData/inspections/unusedSymbol/class/unusedButEntryPointMain.kt @@ -0,0 +1,5 @@ +object EntryPoint { + fun main(args: Array) { + + } +}