K2: expand type before isSomeType checks properly

Related to KT-60229
This commit is contained in:
Mikhail Glukhikh
2023-07-13 14:27:48 +02:00
committed by Space Team
parent 51e8a72f47
commit 00b4ae6ae9
30 changed files with 140 additions and 73 deletions
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.UnexpandedTypeCheck
import org.jetbrains.kotlin.fir.types.isBoolean
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.isInstanceType
@@ -37,7 +38,7 @@ class FirContractDeserializer(private val c: FirDeserializationContext) :
override fun extractVariable(
valueParameterIndex: Int,
owner: FirContractDescriptionOwner
): KtValueParameterReference<ConeKotlinType, ConeDiagnostic>? {
): KtValueParameterReference<ConeKotlinType, ConeDiagnostic>? {
val name: String
val ownerFunction = owner as FirSimpleFunction
val typeRef = if (valueParameterIndex < 0) {
@@ -49,6 +50,7 @@ class FirContractDeserializer(private val c: FirDeserializationContext) :
parameter.returnTypeRef
} ?: return null
@OptIn(UnexpandedTypeCheck::class)
return if (!typeRef.isBoolean)
KtValueParameterReference(valueParameterIndex, name)
else