[LL] use provided sources to skip search for declaration phase

This commit is contained in:
Anna Kozlova
2023-04-26 13:16:23 +02:00
committed by teamcity
parent a41f7dc25d
commit 2a47e89706
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.realPsi
import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
@@ -37,6 +38,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull
// TODO replace with structural type comparison? // TODO replace with structural type comparison?
object KtDeclarationAndFirDeclarationEqualityChecker { object KtDeclarationAndFirDeclarationEqualityChecker {
fun representsTheSameDeclaration(psi: KtCallableDeclaration, fir: FirCallableDeclaration): Boolean { fun representsTheSameDeclaration(psi: KtCallableDeclaration, fir: FirCallableDeclaration): Boolean {
if (fir.realPsi == psi) return true
if (!modifiersMatch(psi, fir)) return false if (!modifiersMatch(psi, fir)) return false
if (!receiverTypeMatch(psi, fir)) return false if (!receiverTypeMatch(psi, fir)) return false
if (!returnTypesMatch(psi, fir)) return false if (!returnTypesMatch(psi, fir)) return false