From 45eefab8111f9cde70140d3c27e2d83e198164d1 Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Tue, 14 Feb 2023 08:26:51 +0100 Subject: [PATCH] FIR2IR: Drop the-same-value property from ConversionTypeContext --- .../kotlin/fir/backend/ConversionUtils.kt | 14 ++------------ .../kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 2 -- .../kotlin/fir/backend/Fir2IrTypeConverter.kt | 7 +++++-- .../kotlin/fir/lazy/Fir2IrLazyProperty.kt | 2 -- 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 15cc3440f82..31e8c1e6e28 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -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 ) } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 83229d3ce02..b76e564d819 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -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 ) ) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index 63a7c2b4f70..102e69d7d27 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -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 ) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index ef2680656dd..d5ca79169a5 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -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 ) )