[LL FIR] LLFirContractsLazyResolver: add isResolved check
Currently, FirLegacyRawContractDescription is a valid class for resolved contract in case of error description. This condition should be dropped after KT-60310 ^KT-60310
This commit is contained in:
committed by
Space Team
parent
4b330e88be
commit
3d40eba379
+2
-1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveT
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.blockGuard
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkContractDescriptionIsResolved
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isCallableWithSpecialBody
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
|
||||
@@ -33,7 +34,7 @@ internal object LLFirContractsLazyResolver : LLFirLazyResolver(FirResolvePhase.C
|
||||
|
||||
override fun phaseSpecificCheckIsResolved(target: FirElementWithResolveState) {
|
||||
if (target !is FirContractDescriptionOwner) return
|
||||
// TODO checkContractDescriptionIsResolved(declaration)
|
||||
checkContractDescriptionIsResolved(target)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.utils.errors.ExceptionAttachmentBuilder
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.checkWithAttachmentBuilder
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
|
||||
import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription
|
||||
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -136,7 +137,9 @@ internal fun checkReceiverTypeRefIsResolved(declaration: FirCallableDeclaration,
|
||||
internal fun checkContractDescriptionIsResolved(declaration: FirContractDescriptionOwner) {
|
||||
val contractDescription = declaration.contractDescription
|
||||
checkWithAttachmentBuilder(
|
||||
condition = contractDescription is FirResolvedContractDescription || contractDescription is FirEmptyContractDescription,
|
||||
condition = contractDescription is FirResolvedContractDescription ||
|
||||
contractDescription is FirEmptyContractDescription ||
|
||||
contractDescription is FirLegacyRawContractDescription /* TODO: should be dropped after KT-60310 */,
|
||||
message = { "Expected ${FirResolvedContractDescription::class.simpleName} or ${FirEmptyContractDescription::class.simpleName} but ${contractDescription::class.simpleName} found for ${declaration::class.simpleName}" }
|
||||
) {
|
||||
withFirEntry("declaration", declaration)
|
||||
|
||||
Reference in New Issue
Block a user