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 5924295cd4f..187c65248ff 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 @@ -625,7 +625,10 @@ class Fir2IrDeclarationStorage( ): IrConstructor = convertCatching(constructor) { val origin = constructor.computeIrOrigin(predefinedOrigin) val isPrimary = constructor.isPrimary - val signature = if (isLocal) null else signatureComposer.composeSignature(constructor, forceTopLevelPrivate = forceTopLevelPrivate) + val signature = + runUnless(isLocal || !generateSignatures) { + signatureComposer.composeSignature(constructor, forceTopLevelPrivate = forceTopLevelPrivate) + } val created = constructor.convertWithOffsets { startOffset, endOffset -> declareIrConstructor(signature) { symbol -> classifierStorage.preCacheTypeParameters(constructor, symbol) @@ -678,13 +681,16 @@ class Fir2IrDeclarationStorage( origin: IrDeclarationOrigin, startOffset: Int, endOffset: Int, - isLocal: Boolean = false, + dontUseSignature: Boolean = false, containingClass: ConeClassLikeLookupTag? = null, propertyAccessorForAnnotations: FirPropertyAccessor? = propertyAccessor, forceTopLevelPrivate: Boolean = false, ): IrSimpleFunction = convertCatching(propertyAccessor ?: property) { val prefix = if (isSetter) "set" else "get" - val signature = if (isLocal) null else signatureComposer.composeAccessorSignature(property, isSetter, containingClass, forceTopLevelPrivate) + val signature = + runUnless(dontUseSignature) { + signatureComposer.composeAccessorSignature(property, isSetter, containingClass, forceTopLevelPrivate) + } val containerSource = (correspondingProperty as? IrProperty)?.containerSource return declareIrAccessor( signature, @@ -929,7 +935,8 @@ class Fir2IrDeclarationStorage( getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, - startOffset, endOffset, isLocal, containingClass, + startOffset, endOffset, + dontUseSignature = signature == null, containingClass, property.unwrapFakeOverrides().getter, forceTopLevelPrivate = forceTopLevelPrivate, ) @@ -941,7 +948,8 @@ class Fir2IrDeclarationStorage( setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, - startOffset, endOffset, isLocal, containingClass, + startOffset, endOffset, + dontUseSignature = signature == null, containingClass, property.unwrapFakeOverrides().setter, forceTopLevelPrivate = forceTopLevelPrivate, ) @@ -1210,12 +1218,12 @@ class Fir2IrDeclarationStorage( delegate.parent = irParent getter = createIrPropertyAccessor( property.getter, property, this, type, irParent, null, false, - IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR, startOffset, endOffset, isLocal + IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR, startOffset, endOffset, dontUseSignature = true ) if (property.isVar) { setter = createIrPropertyAccessor( property.setter, property, this, type, irParent, null, true, - IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR, startOffset, endOffset, isLocal + IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR, startOffset, endOffset, dontUseSignature = true ) } leaveScope(this)