[Analysis API] Minor, prettify 'getContainingPsiDeclaration()'
This commit is contained in:
+10
-5
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.platform.has
|
|||||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatform
|
import org.jetbrains.kotlin.platform.jvm.JvmPlatform
|
||||||
import org.jetbrains.kotlin.psi
|
import org.jetbrains.kotlin.psi
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.parents
|
||||||
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
||||||
|
|
||||||
internal class KtFirSymbolContainingDeclarationProvider(
|
internal class KtFirSymbolContainingDeclarationProvider(
|
||||||
@@ -286,9 +287,13 @@ internal class KtFirSymbolContainingDeclarationProvider(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun PsiElement.getContainingKtDeclaration(): KtDeclaration? =
|
private fun PsiElement.getContainingPsiDeclaration(): KtDeclaration? {
|
||||||
when (val container = this.parentOfType<KtDeclaration>()) {
|
for (parent in parents) {
|
||||||
is KtDestructuringDeclaration -> container.parentOfType()
|
if (parent is KtDeclaration && parent !is KtDestructuringDeclaration) {
|
||||||
else -> container
|
return parent.originalDeclaration ?: parent
|
||||||
}?.let { it.originalDeclaration ?: it }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user