[FIR AA] Use resolvedType instead of coneTypeOrNull where applicable
#KT-61367 Fixed
This commit is contained in:
committed by
Space Team
parent
6d8091f0ff
commit
aebb3bf0ee
+3
-2
@@ -34,6 +34,7 @@ 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.resolvedType
|
||||
import org.jetbrains.kotlin.fir.types.toSymbol
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
@@ -111,7 +112,7 @@ private class CodeFragmentCapturedValueVisitor(
|
||||
|
||||
private fun processElement(element: FirElement) {
|
||||
if (element is FirExpression) {
|
||||
val symbol = element.coneTypeOrNull?.toSymbol(session)
|
||||
val symbol = element.resolvedType.toSymbol(session)
|
||||
if (symbol != null) {
|
||||
registerFile(symbol)
|
||||
}
|
||||
@@ -290,4 +291,4 @@ private class CodeFragmentCapturedValueVisitor(
|
||||
|
||||
private val FirBasedSymbol<*>.isMutated: Boolean
|
||||
get() = assignmentLhs.lastOrNull() == this
|
||||
}
|
||||
}
|
||||
|
||||
+2
-5
@@ -15,10 +15,7 @@ import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.references.*
|
||||
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -218,7 +215,7 @@ internal open class FirElementsRecorder : FirVisitor<Unit, MutableMap<KtElement,
|
||||
convertedValue as T,
|
||||
setType = false
|
||||
).also {
|
||||
it.replaceConeTypeOrNull(original.coneTypeOrNull)
|
||||
it.replaceConeTypeOrNull(original.resolvedType)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isUsedInControlFlowGraphBuilderForClass
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isUsedInControlFlowGraphBuilderForFile
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.isResolved
|
||||
import org.jetbrains.kotlin.psi.KtCodeFragment
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment
|
||||
@@ -440,7 +441,7 @@ private val FirFunction.isCertainlyResolved: Boolean
|
||||
}
|
||||
|
||||
val body = this.body ?: return false // Not completely sure
|
||||
return body !is FirLazyBlock && body.coneTypeOrNull != null
|
||||
return body !is FirLazyBlock && body.isResolved
|
||||
}
|
||||
|
||||
private val FirVariable.initializerIfUnresolved: FirExpression?
|
||||
|
||||
+3
@@ -3,6 +3,8 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:OptIn(UnresolvedExpressionTypeAccess::class)
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.util
|
||||
|
||||
import org.jetbrains.kotlin.utils.exceptions.ExceptionAttachmentBuilder
|
||||
@@ -17,6 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.isActual
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirResolvable
|
||||
import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.references.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
|
||||
Reference in New Issue
Block a user