[FIR2IR] Drop Fir2IrSignatureComposer

This interface had only one implementation, so all its usages were
  replaced with this implementation
This commit is contained in:
Dmitriy Novozhilov
2023-07-12 12:48:12 +03:00
committed by Space Team
parent 2fd77d0925
commit 5f36f80d25
5 changed files with 16 additions and 49 deletions
@@ -426,7 +426,7 @@ class Fir2IrClassifierStorage(
val irTypeParameter = with(typeParameter) {
convertWithOffsets { startOffset, endOffset ->
signatureComposer.composeTypeParameterSignature(
typeParameter, index, ownerSymbol.signature
index, ownerSymbol.signature
)?.let { signature ->
if (ownerSymbol is IrClassifierSymbol) {
symbolTable.declareGlobalTypeParameter(
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator
import org.jetbrains.kotlin.fir.backend.generators.DelegatedMemberGenerator
import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
import org.jetbrains.kotlin.ir.IrLock
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.linkage.IrProvider
@@ -33,7 +34,7 @@ interface Fir2IrComponents {
val declarationStorage: Fir2IrDeclarationStorage
val typeConverter: Fir2IrTypeConverter
val signatureComposer: Fir2IrSignatureComposer
val signatureComposer: FirBasedSignatureComposer
val visibilityConverter: Fir2IrVisibilityConverter
val annotationGenerator: AnnotationGenerator
@@ -1,32 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.backend
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.ir.util.IdSignature
interface Fir2IrSignatureComposer {
val mangler: FirMangler
fun composeSignature(
declaration: FirDeclaration,
containingClass: ConeClassLikeLookupTag? = null,
forceTopLevelPrivate: Boolean = false,
forceExpect: Boolean = false,
): IdSignature?
fun composeAccessorSignature(
property: FirProperty,
isSetter: Boolean,
containingClass: ConeClassLikeLookupTag? = null,
forceTopLevelPrivate: Boolean = false
): IdSignature?
fun composeTypeParameterSignature(typeParameter: FirTypeParameter, index: Int, containerSignature: IdSignature?): IdSignature?
fun withFileSignature(sig: IdSignature.FileSignature, body: () -> Unit)
}
@@ -5,16 +5,17 @@
package org.jetbrains.kotlin.fir.backend
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
import org.jetbrains.kotlin.ir.util.IdSignature
import org.jetbrains.kotlin.ir.util.IdSignatureComposer
class WrappedDescriptorSignatureComposer(
private val delegate: IdSignatureComposer,
private val firComposer: Fir2IrSignatureComposer
private val firComposer: FirBasedSignatureComposer
) : IdSignatureComposer by delegate {
override fun withFileSignature(fileSignature: IdSignature.FileSignature, body: () -> Unit) {
firComposer.withFileSignature(fileSignature) {
delegate.withFileSignature(fileSignature, body)
}
}
}
}
@@ -5,11 +5,9 @@
package org.jetbrains.kotlin.fir.signaturer
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.backend.Fir2IrSignatureComposer
import org.jetbrains.kotlin.fir.backend.FirMangler
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
@@ -24,10 +22,10 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
// @NoMutableState -- we'll restore this annotation once we get rid of withFileSignature().
class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignatureComposer {
class FirBasedSignatureComposer(val mangler: FirMangler) {
private var fileSignature: IdSignature.FileSignature? = null
override fun withFileSignature(sig: IdSignature.FileSignature, body: () -> Unit) {
fun withFileSignature(sig: IdSignature.FileSignature, body: () -> Unit) {
fileSignature = sig
body()
fileSignature = null
@@ -86,11 +84,11 @@ class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignat
}
}
override fun composeSignature(
fun composeSignature(
declaration: FirDeclaration,
containingClass: ConeClassLikeLookupTag?,
forceTopLevelPrivate: Boolean,
forceExpect: Boolean,
containingClass: ConeClassLikeLookupTag? = null,
forceTopLevelPrivate: Boolean = false,
forceExpect: Boolean = false,
): IdSignature? {
if (declaration is FirAnonymousObject || declaration is FirAnonymousFunction) return null
if (declaration is FirRegularClass && declaration.classId.isLocal) return null
@@ -169,8 +167,7 @@ class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignat
}
}
override fun composeTypeParameterSignature(
typeParameter: FirTypeParameter,
fun composeTypeParameterSignature(
index: Int,
containerSignature: IdSignature?
): IdSignature? {
@@ -181,11 +178,11 @@ class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignat
)
}
override fun composeAccessorSignature(
fun composeAccessorSignature(
property: FirProperty,
isSetter: Boolean,
containingClass: ConeClassLikeLookupTag?,
forceTopLevelPrivate: Boolean
containingClass: ConeClassLikeLookupTag? = null,
forceTopLevelPrivate: Boolean = false
): IdSignature? {
val propSig: IdSignature.CommonSignature
val fileSig: IdSignature.FileSignature?