FIR IDE: fix collecting diagnostics for anonymous object declaration
This commit is contained in:
+7
-3
@@ -14,9 +14,10 @@ import org.jetbrains.kotlin.fir.psi
|
|||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.psi.KtObjectLiteralExpression
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import java.util.concurrent.locks.Lock
|
import java.util.concurrent.locks.Lock
|
||||||
|
|
||||||
@@ -63,8 +64,10 @@ internal val FirDeclaration.ktDeclaration: KtDeclaration
|
|||||||
get() {
|
get() {
|
||||||
val psi = psi
|
val psi = psi
|
||||||
?: error("PSI element was not found for${render()}")
|
?: error("PSI element was not found for${render()}")
|
||||||
return psi as? KtDeclaration
|
return when (psi) {
|
||||||
?: error(
|
is KtDeclaration -> psi
|
||||||
|
is KtObjectLiteralExpression -> psi.objectDeclaration
|
||||||
|
else -> error(
|
||||||
"""
|
"""
|
||||||
FirDeclaration.psi (${this::class.simpleName}) should be KtDeclaration but was ${psi::class.simpleName}
|
FirDeclaration.psi (${this::class.simpleName}) should be KtDeclaration but was ${psi::class.simpleName}
|
||||||
${(psi as? KtElement)?.getElementTextInContext() ?: psi.text}
|
${(psi as? KtElement)?.getElementTextInContext() ?: psi.text}
|
||||||
@@ -72,6 +75,7 @@ internal val FirDeclaration.ktDeclaration: KtDeclaration
|
|||||||
${render()}
|
${render()}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val FirDeclaration.containingKtFileIfAny: KtFile?
|
internal val FirDeclaration.containingKtFileIfAny: KtFile?
|
||||||
|
|||||||
Reference in New Issue
Block a user