mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[kotlin] k2: search for inheritors in one go
KTIJ-28077 GitOrigin-RevId: 4be01dec5d088837382e79b31ec1d1428bea7ecc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
de6d62ddab
commit
c1a96c8baf
@@ -172,15 +172,18 @@ class KotlinFirSafeDeleteProcessor : SafeDeleteProcessorDelegateBase() {
|
||||
if (ktElement is KtConstructor<*>) {
|
||||
val containingClass = ktElement.containingClass() ?: return
|
||||
|
||||
val directInheritors = DirectKotlinClassInheritorsSearch.search(containingClass).findAll()
|
||||
if (directInheritors.any { it !is KtElement }) {
|
||||
val lightMethod = ktElement.toLightMethods().filterIsInstance<KtLightMethod>().firstOrNull() ?: return
|
||||
MethodReferencesSearch.search(lightMethod, lightMethod.useScope, true).forEach(Processor {
|
||||
JavaSafeDeleteDelegate.EP.forLanguage(it.element.language)
|
||||
?.createUsageInfoForParameter(it, result, element, parameterIndexAsJavaCall, element.isVarArg)
|
||||
return@Processor true
|
||||
})
|
||||
return
|
||||
val directInheritors = mutableListOf<KtElement>()
|
||||
DirectKotlinClassInheritorsSearch.search(containingClass).forEach { el ->
|
||||
if (el !is KtElement) {
|
||||
val lightMethod = ktElement.toLightMethods().filterIsInstance<KtLightMethod>().firstOrNull() ?: return
|
||||
MethodReferencesSearch.search(lightMethod, lightMethod.useScope, true).forEach(Processor {
|
||||
JavaSafeDeleteDelegate.EP.forLanguage(it.element.language)
|
||||
?.createUsageInfoForParameter(it, result, element, parameterIndexAsJavaCall, element.isVarArg)
|
||||
return@Processor true
|
||||
})
|
||||
return
|
||||
}
|
||||
directInheritors.add(el)
|
||||
}
|
||||
|
||||
fun processDelegatingReferences(ktClass: KtClass) {
|
||||
|
||||
Reference in New Issue
Block a user