Not marking entry points as unused.

This commit is contained in:
Evgeny Gerashchenko
2014-12-03 22:24:44 +03:00
parent b781a09caf
commit 8297411e5f
3 changed files with 17 additions and 0 deletions
@@ -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)
@@ -0,0 +1,5 @@
// WITH_RUNTIME
open class A: java.applet.Applet()
class B: A()
@@ -0,0 +1,5 @@
object EntryPoint {
fun main(args: Array<String>) {
}
}