Fir2Ir: adjust FirBasedSignatureComposer for constructors
Consatructor's name in the signature should be '<init>', not the name of the constructed class.
This commit is contained in:
committed by
Alexander Udalov
parent
af123d1daf
commit
829b2822c6
+2
-2
@@ -17,13 +17,13 @@ import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
|||||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.signaturer.irName
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
import org.jetbrains.kotlin.name.SpecialNames
|
|
||||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ open class FirJvmMangleComputer(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val name = (this as? FirSimpleFunction)?.name ?: SpecialNames.ANONYMOUS
|
val name = this.irName
|
||||||
builder.append(name.asString())
|
builder.append(name.asString())
|
||||||
|
|
||||||
platformSpecificSuffix()?.let {
|
platformSpecificSuffix()?.let {
|
||||||
|
|||||||
+1
-1
@@ -93,7 +93,7 @@ class FirBasedSignatureComposer(private val mangler: FirMangler) : Fir2IrSignatu
|
|||||||
|
|
||||||
val classId = containingClassId ?: declaration.containingClass()?.classId
|
val classId = containingClassId ?: declaration.containingClass()?.classId
|
||||||
val packageName = classId?.packageFqName ?: declaration.symbol.callableId.packageName
|
val packageName = classId?.packageFqName ?: declaration.symbol.callableId.packageName
|
||||||
val callableName = declaration.symbol.callableId.callableName
|
val callableName = declaration.irName
|
||||||
|
|
||||||
IdSignature.CommonSignature(
|
IdSignature.CommonSignature(
|
||||||
packageName.asString(),
|
packageName.asString(),
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 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.signaturer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
|
|
||||||
|
val FirCallableDeclaration.irName: Name
|
||||||
|
get() = when (this) {
|
||||||
|
is FirConstructor -> SpecialNames.INIT
|
||||||
|
is FirSimpleFunction -> this.name
|
||||||
|
is FirVariable -> this.name
|
||||||
|
else -> SpecialNames.ANONYMOUS
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user