FIR2IR: Drop the-same-value property from ConversionTypeContext

This commit is contained in:
Denis.Zharkov
2023-02-14 08:26:51 +01:00
committed by Space Team
parent e107de6f36
commit 45eefab811
4 changed files with 7 additions and 18 deletions
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
@@ -103,35 +102,26 @@ internal enum class ConversionTypeOrigin {
}
class ConversionTypeContext internal constructor(
internal val definitelyNotNull: Boolean,
internal val invariantProjection: Boolean = false,
internal val origin: ConversionTypeOrigin = ConversionTypeOrigin.DEFAULT,
) {
fun definitelyNotNull() = ConversionTypeContext(
definitelyNotNull = true,
invariantProjection = invariantProjection,
origin = origin
)
fun inSetter() = ConversionTypeContext(
definitelyNotNull = definitelyNotNull,
invariantProjection = invariantProjection,
origin = ConversionTypeOrigin.SETTER
)
fun withInvariantProjections() = ConversionTypeContext(
definitelyNotNull = definitelyNotNull,
invariantProjection = true,
origin = origin
)
companion object {
internal val DEFAULT = ConversionTypeContext(
definitelyNotNull = false, origin = ConversionTypeOrigin.DEFAULT, invariantProjection = false
invariantProjection = false, origin = ConversionTypeOrigin.DEFAULT
)
internal val WITH_INVARIANT = DEFAULT.withInvariantProjections()
internal val IN_SETTER = ConversionTypeContext(
definitelyNotNull = false, origin = ConversionTypeOrigin.SETTER, invariantProjection = false
invariantProjection = false, origin = ConversionTypeOrigin.SETTER
)
}
}
@@ -332,7 +332,6 @@ class Fir2IrDeclarationStorage(
}
val forSetter = function is FirPropertyAccessor && function.isSetter
val typeContext = ConversionTypeContext(
definitelyNotNull = false,
origin = if (forSetter) ConversionTypeOrigin.SETTER else ConversionTypeOrigin.DEFAULT
)
if (function is FirDefaultPropertySetter) {
@@ -728,7 +727,6 @@ class Fir2IrDeclarationStorage(
with(classifierStorage) {
setTypeParameters(
property, ConversionTypeContext(
definitelyNotNull = false,
origin = if (isSetter) ConversionTypeOrigin.SETTER else ConversionTypeOrigin.DEFAULT
)
)
@@ -20,7 +20,10 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.IrTypeArgument
import org.jetbrains.kotlin.ir.types.IrTypeProjection
import org.jetbrains.kotlin.ir.types.impl.*
import org.jetbrains.kotlin.ir.types.impl.IrDynamicTypeImpl
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
import org.jetbrains.kotlin.ir.types.makeNotNull
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.StandardClassIds
@@ -158,7 +161,7 @@ class Fir2IrTypeConverter(
val approximatedType = approximateType(expandedType)
IrSimpleTypeImpl(
irSymbol,
hasQuestionMark = !typeContext.definitelyNotNull && approximatedType.isMarkedNullable,
hasQuestionMark = approximatedType.isMarkedNullable,
arguments = approximatedType.typeArguments.map { it.toIrTypeArgument(typeContext) },
annotations = typeAnnotations
)
@@ -179,7 +179,6 @@ class Fir2IrLazyProperty(
with(classifierStorage) {
setTypeParameters(
this@Fir2IrLazyProperty.fir, ConversionTypeContext(
definitelyNotNull = false,
origin = ConversionTypeOrigin.DEFAULT
)
)
@@ -212,7 +211,6 @@ class Fir2IrLazyProperty(
with(classifierStorage) {
setTypeParameters(
this@Fir2IrLazyProperty.fir, ConversionTypeContext(
definitelyNotNull = false,
origin = ConversionTypeOrigin.SETTER
)
)