KTIJ-26024 [Analysis API] Refactor FirTowerDataContextAllElementsCollector
This commit is contained in:
committed by
Space Team
parent
96697b5a77
commit
d7d2c1f260
+12
-5
@@ -50,11 +50,7 @@ internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextColl
|
|||||||
var current: PsiElement? = ktElement
|
var current: PsiElement? = ktElement
|
||||||
while (current != null) {
|
while (current != null) {
|
||||||
if (current is KtElement) {
|
if (current is KtElement) {
|
||||||
elementsToContext[current]?.let { return it }
|
getContextForElement(current)?.let { return it }
|
||||||
}
|
|
||||||
if (current is KtDeclaration) {
|
|
||||||
val originalDeclaration = current.originalDeclaration
|
|
||||||
originalDeclaration?.let { elementsToContext[it] }?.let { return it }
|
|
||||||
}
|
}
|
||||||
if (current is KtFile) {
|
if (current is KtFile) {
|
||||||
break
|
break
|
||||||
@@ -63,6 +59,17 @@ internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextColl
|
|||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getContextForElement(element: KtElement): FirTowerDataContext? {
|
||||||
|
elementsToContext[element]?.let { return it }
|
||||||
|
|
||||||
|
if (element is KtDeclaration) {
|
||||||
|
val originalDeclaration = element.originalDeclaration
|
||||||
|
originalDeclaration?.let { elementsToContext[it] }?.let { return it }
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private tailrec fun PsiElement.closestBlockLevelOrInitializerExpression(): KtExpression? =
|
private tailrec fun PsiElement.closestBlockLevelOrInitializerExpression(): KtExpression? =
|
||||||
|
|||||||
Reference in New Issue
Block a user