[FIR2IR] Split composeSignature method into three for different types of declarations
This is needed to avoid passing `containingClass` for non-callable declarations
This commit is contained in:
committed by
Space Team
parent
a75d5353ee
commit
45d9f9edf9
@@ -87,7 +87,7 @@ class Fir2IrPluginContext(
|
||||
|
||||
private inline fun <R> referenceClassLikeSymbol(
|
||||
id: ClassId,
|
||||
firSymbolExtractor: (ClassId) -> FirBasedSymbol<*>?,
|
||||
firSymbolExtractor: (ClassId) -> FirClassLikeSymbol<*>?,
|
||||
irSymbolExtractor: (IdSignature) -> R
|
||||
): R? {
|
||||
val firSymbol = firSymbolExtractor(id) ?: return null
|
||||
|
||||
+18
-2
@@ -84,10 +84,26 @@ class FirBasedSignatureComposer(val mangler: FirMangler) {
|
||||
}
|
||||
}
|
||||
|
||||
fun composeSignature(declaration: FirClassLikeDeclaration): IdSignature? {
|
||||
return composeSignatureImpl(declaration, containingClass = null, forceExpect = false)
|
||||
}
|
||||
|
||||
fun composeSignature(
|
||||
declaration: FirDeclaration,
|
||||
declaration: FirCallableDeclaration,
|
||||
containingClass: ConeClassLikeLookupTag? = null,
|
||||
forceExpect: Boolean = false,
|
||||
forceExpect: Boolean = false
|
||||
): IdSignature? {
|
||||
return composeSignatureImpl(declaration, containingClass, forceExpect)
|
||||
}
|
||||
|
||||
fun composeSignature(declaration: FirScript): IdSignature? {
|
||||
return composeSignatureImpl(declaration, containingClass = null, forceExpect = false)
|
||||
}
|
||||
|
||||
private fun composeSignatureImpl(
|
||||
declaration: FirDeclaration,
|
||||
containingClass: ConeClassLikeLookupTag?,
|
||||
forceExpect: Boolean
|
||||
): IdSignature? {
|
||||
if (declaration is FirAnonymousObject || declaration is FirAnonymousFunction) return null
|
||||
if (declaration is FirRegularClass && declaration.classId.isLocal) return null
|
||||
|
||||
Reference in New Issue
Block a user