From 981dde26ea2e45bde0048fc6abe52c10d6372334 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 17 Aug 2023 21:39:15 +0900 Subject: [PATCH] [LL API] Migrate type reference check to FirExpression.type 'FirExpression.typeRef' is deprecated. Its new, temporary replacement is not passed to visitors, so the reference-handling code became dead. --- .../CodeFragmentCapturedValueAnalyzer.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt index 639d9a11c08..e8c425b3c7a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/compile/CodeFragmentCapturedValueAnalyzer.kt @@ -15,11 +15,11 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.parentsCodeFragmentA import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.analysis.checkers.toClassLikeSymbol import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClassSymbol import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.isInline import org.jetbrains.kotlin.fir.declarations.utils.isLocal +import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirResolvable import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment import org.jetbrains.kotlin.fir.expressions.toResolvedCallableSymbol @@ -34,12 +34,12 @@ import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef +import org.jetbrains.kotlin.fir.types.toSymbol import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.psi import org.jetbrains.kotlin.psi.* import java.util.* -import kotlin.collections.LinkedHashMap class CodeFragmentCapturedSymbol( val value: CodeFragmentCapturedValue, @@ -110,6 +110,13 @@ private class CodeFragmentCapturedValueVisitor( } private fun processElement(element: FirElement) { + if (element is FirExpression) { + val symbol = element.coneTypeOrNull?.toSymbol(session) + if (symbol != null) { + registerFile(symbol) + } + } + when (element) { is FirSuperReference -> { val symbol = (element.superTypeRef as? FirResolvedTypeRef)?.toRegularClassSymbol(session) @@ -164,12 +171,6 @@ private class CodeFragmentCapturedValueVisitor( processCall(element, symbol) } } - is FirTypeRef -> { - val symbol = element.toClassLikeSymbol(session) - if (symbol != null && symbol !in selfSymbols) { - registerFile(symbol) - } - } } }