Optimize entry point check in UnusedSymbolInspection
It helps to avoid return types calculation for light-class element
This commit is contained in:
@@ -69,6 +69,7 @@ import org.jetbrains.kotlin.idea.search.usagesSearch.getAccessorNames
|
|||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.getClassNameForCompanionObject
|
import org.jetbrains.kotlin.idea.search.usagesSearch.getClassNameForCompanionObject
|
||||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
@@ -83,8 +84,11 @@ import javax.swing.JPanel
|
|||||||
class UnusedSymbolInspection : AbstractKotlinInspection() {
|
class UnusedSymbolInspection : AbstractKotlinInspection() {
|
||||||
companion object {
|
companion object {
|
||||||
private val javaInspection = UnusedDeclarationInspection()
|
private val javaInspection = UnusedDeclarationInspection()
|
||||||
|
private val MAIN_NAMES = setOf("main", "premain", "agentmain")
|
||||||
|
|
||||||
fun isEntryPoint(declaration: KtNamedDeclaration): Boolean {
|
fun isEntryPoint(declaration: KtNamedDeclaration): Boolean {
|
||||||
|
if (declaration.annotationEntries.isEmpty() && declaration.name !in MAIN_NAMES) return false
|
||||||
|
|
||||||
val lightElement: PsiElement? = when (declaration) {
|
val lightElement: PsiElement? = when (declaration) {
|
||||||
is KtClassOrObject -> declaration.toLightClass()
|
is KtClassOrObject -> declaration.toLightClass()
|
||||||
is KtNamedFunction, is KtSecondaryConstructor -> LightClassUtil.getLightClassMethod(declaration as KtFunction)
|
is KtNamedFunction, is KtSecondaryConstructor -> LightClassUtil.getLightClassMethod(declaration as KtFunction)
|
||||||
|
|||||||
Reference in New Issue
Block a user