SLC: mangle internal setter name

This commit is contained in:
Jinseong Jeon
2023-03-25 22:22:33 -07:00
committed by teamcity
parent 91925b947d
commit 3c982cfaa3
3 changed files with 12 additions and 94 deletions
@@ -91,13 +91,19 @@ internal class SymbolLightAccessorMethod private constructor(
private val _name: String by lazyPub {
analyzeForLightClasses(ktModule) {
propertyAccessorSymbol().getJvmNameFromAnnotation(accessorSite.toOptionalFilter()) ?: run {
val symbol = propertySymbol()
val defaultName = symbol.name.identifier.let {
val accessorSymbol = propertyAccessorSymbol()
accessorSymbol.getJvmNameFromAnnotation(accessorSite.toOptionalFilter()) ?: run {
val propertySymbol = propertySymbol()
val defaultName = propertySymbol.name.identifier.let {
if (this@SymbolLightAccessorMethod.containingClass.isAnnotationType) it else it.abiName()
}
symbol.computeJvmMethodName(defaultName, this@SymbolLightAccessorMethod.containingClass, accessorSite)
val visibility = if (!isGetter && propertySymbol.canHaveNonPrivateField)
accessorSymbol.visibility
else
propertySymbol.visibility
propertySymbol.computeJvmMethodName(defaultName, this@SymbolLightAccessorMethod.containingClass, accessorSite, visibility)
}
}
}
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.asJava.mangleInternalName
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.light.classes.symbol.SymbolLightMemberBase
import org.jetbrains.kotlin.light.classes.symbol.annotations.getJvmNameFromAnnotation
@@ -108,6 +109,7 @@ internal abstract class SymbolLightMethodBase(
defaultName: String,
containingClass: SymbolLightClassBase,
annotationUseSiteTarget: AnnotationUseSiteTarget? = null,
visibility: Visibility = this.visibility,
): String where T : KtAnnotatedSymbol, T : KtSymbolWithVisibility, T : KtCallableSymbol {
getJvmNameFromAnnotation(annotationUseSiteTarget.toOptionalFilter())?.let { return it }