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 9ab39df0206..1e61d92e23d 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 @@ -109,11 +109,7 @@ internal enum class ConversionTypeOrigin { SETTER } -class ConversionTypeContext internal constructor(internal val origin: ConversionTypeOrigin) { - fun inSetter() = ConversionTypeContext( - origin = ConversionTypeOrigin.SETTER - ) - +class ConversionTypeContext private constructor(internal val origin: ConversionTypeOrigin) { companion object { internal val DEFAULT = ConversionTypeContext( origin = ConversionTypeOrigin.DEFAULT diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index 06e4063d75c..de3744de855 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -107,7 +107,7 @@ class Fir2IrClassifierStorage( getCachedIrTypeParameter(original) ?: createIrTypeParameterWithoutBounds(original, index, irOwnerSymbol) if (owner is FirProperty && owner.isVar) { - val context = ConversionTypeContext.DEFAULT.inSetter() + val context = ConversionTypeContext.IN_SETTER getCachedIrTypeParameter(original, context) ?: createIrTypeParameterWithoutBounds(original, index, irOwnerSymbol, context) } 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 b24c5b19f29..c69d6ad7205 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 @@ -20,7 +20,10 @@ import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.descriptors.FirBuiltInsPackageFragment import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor import org.jetbrains.kotlin.fir.descriptors.FirPackageFragmentDescriptor -import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.expressions.FirComponentCall +import org.jetbrains.kotlin.fir.expressions.FirConstExpression +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyClass import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyConstructor @@ -54,7 +57,10 @@ import org.jetbrains.kotlin.ir.types.IrErrorType import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.* -import org.jetbrains.kotlin.name.* +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.NameUtils +import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments import org.jetbrains.kotlin.utils.addToStdlib.runUnless @@ -333,11 +339,9 @@ class Fir2IrDeclarationStorage( setTypeParameters(function) } } - val typeContext = ConversionTypeContext( - origin = if (forSetter) ConversionTypeOrigin.SETTER else ConversionTypeOrigin.DEFAULT - ) + val typeContext = if (forSetter) ConversionTypeContext.IN_SETTER else ConversionTypeContext.DEFAULT if (function is FirDefaultPropertySetter) { - val type = function.valueParameters.first().returnTypeRef.toIrType(ConversionTypeContext.DEFAULT.inSetter()) + val type = function.valueParameters.first().returnTypeRef.toIrType(ConversionTypeContext.IN_SETTER) declareDefaultSetterParameter(type) } else if (function != null) { val contextReceivers = function.contextReceiversForFunctionOrContainingProperty() @@ -731,9 +735,7 @@ class Fir2IrDeclarationStorage( } with(classifierStorage) { setTypeParameters( - property, ConversionTypeContext( - origin = if (isSetter) ConversionTypeOrigin.SETTER else ConversionTypeOrigin.DEFAULT - ) + property, if (isSetter) ConversionTypeContext.IN_SETTER else ConversionTypeContext.DEFAULT ) } // NB: we should enter accessor' scope before declaring its parameters @@ -741,7 +743,7 @@ class Fir2IrDeclarationStorage( enterScope(this) if (propertyAccessor == null && isSetter) { declareDefaultSetterParameter( - property.returnTypeRef.toIrType(ConversionTypeContext.DEFAULT.inSetter()) + property.returnTypeRef.toIrType(ConversionTypeContext.IN_SETTER) ) } bindAndDeclareParameters( 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 e839453bcba..d9b3f7f0548 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 @@ -182,9 +182,7 @@ class Fir2IrLazyProperty( correspondingPropertySymbol = this@Fir2IrLazyProperty.symbol with(classifierStorage) { setTypeParameters( - this@Fir2IrLazyProperty.fir, ConversionTypeContext( - origin = ConversionTypeOrigin.DEFAULT - ) + this@Fir2IrLazyProperty.fir, ConversionTypeContext.DEFAULT ) } } @@ -216,9 +214,7 @@ class Fir2IrLazyProperty( correspondingPropertySymbol = this@Fir2IrLazyProperty.symbol with(classifierStorage) { setTypeParameters( - this@Fir2IrLazyProperty.fir, ConversionTypeContext( - origin = ConversionTypeOrigin.SETTER - ) + this@Fir2IrLazyProperty.fir, ConversionTypeContext.IN_SETTER ) } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt index 7ba0c0d3e3f..6b61caf9448 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt @@ -118,5 +118,5 @@ class Fir2IrLazyPropertyAccessor( override val containerSource: DeserializedContainerSource? get() = firParentProperty.containerSource - private val conversionTypeContext = if (isSetter) ConversionTypeContext.DEFAULT.inSetter() else ConversionTypeContext.DEFAULT + private val conversionTypeContext = if (isSetter) ConversionTypeContext.IN_SETTER else ConversionTypeContext.DEFAULT }