FIR LC: mangle internal function names
This commit is contained in:
committed by
Ilya Kirillov
parent
c79601e616
commit
1fe574f406
+1
-1
@@ -45,7 +45,7 @@ internal class FirLightAccessorMethodForSymbol(
|
||||
val defaultName = containingPropertySymbol.name.identifier.let {
|
||||
if (containingClass.isAnnotationType) it else it.abiName()
|
||||
}
|
||||
containingPropertySymbol.computeJvmMethodName(defaultName, accessorSite)
|
||||
containingPropertySymbol.computeJvmMethodName(defaultName, containingClass, accessorSite)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-9
@@ -20,6 +20,10 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.getKtModule
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||
|
||||
internal abstract class FirLightMethod(
|
||||
@@ -68,7 +72,7 @@ internal abstract class FirLightMethod(
|
||||
}
|
||||
}
|
||||
|
||||
override val isMangled: Boolean = false
|
||||
override val isMangled: Boolean = false // TODO: checkIsMangled ?
|
||||
|
||||
abstract override fun getTypeParameters(): Array<PsiTypeParameter>
|
||||
abstract override fun hasTypeParameters(): Boolean
|
||||
@@ -81,6 +85,7 @@ internal abstract class FirLightMethod(
|
||||
|
||||
protected fun <T> T.computeJvmMethodName(
|
||||
defaultName: String,
|
||||
containingClass: FirLightClassBase,
|
||||
annotationUseSiteTarget: AnnotationUseSiteTarget? = null
|
||||
): String where T : KtAnnotatedSymbol, T : KtSymbolWithVisibility, T : KtCallableSymbol {
|
||||
getJvmNameFromAnnotation(annotationUseSiteTarget)?.let { return it }
|
||||
@@ -90,14 +95,10 @@ internal abstract class FirLightMethod(
|
||||
} ?: this.visibility
|
||||
|
||||
if (effectiveVisibilityIfNotInternal != Visibilities.Internal) return defaultName
|
||||
if (containingClass is KtLightClassForFacade) return defaultName
|
||||
if (hasPublishedApiAnnotation(annotationUseSiteTarget)) return defaultName
|
||||
|
||||
//TODO
|
||||
// val moduleName = module?.name ?: return defaultName
|
||||
|
||||
return defaultName
|
||||
|
||||
// if (hasPublishedApiAnnotation(annotationUseSiteTarget)) return defaultName
|
||||
//
|
||||
// return KotlinTypeMapper.InternalNameMapper.mangleInternalName(defaultName, moduleName)
|
||||
val moduleName = (getKtModule(project) as? KtSourceModule)?.moduleName ?: return defaultName
|
||||
return KotlinTypeMapper.InternalNameMapper.mangleInternalName(defaultName, moduleName)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -34,7 +34,7 @@ internal class FirLightSimpleMethodForSymbol(
|
||||
) {
|
||||
|
||||
private val _name: String by lazyPub {
|
||||
functionSymbol.computeJvmMethodName(functionSymbol.name.asString())
|
||||
functionSymbol.computeJvmMethodName(functionSymbol.name.asString(), containingClass)
|
||||
}
|
||||
|
||||
override fun getName(): String = _name
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class Base /* Base*/ {
|
||||
|
||||
public final void nv();// nv()
|
||||
|
||||
public int getX();// getX()
|
||||
public int getX$main();// getX$main()
|
||||
|
||||
public int getY();// getY()
|
||||
|
||||
@@ -43,7 +43,7 @@ public final class Derived /* Derived*/ extends Base implements IntfWithProp {
|
||||
|
||||
public int abs();// abs()
|
||||
|
||||
public int getX();// getX()
|
||||
public int getX$main();// getX$main()
|
||||
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public abstract class AnotherDerived /* AnotherDerived*/ extends Base {
|
||||
|
||||
public abstract void noReturn(@org.jetbrains.annotations.NotNull() java.lang.String);// noReturn(java.lang.String)
|
||||
|
||||
public int getX();// getX()
|
||||
public int getX$main();// getX$main()
|
||||
|
||||
public int getY();// getY()
|
||||
|
||||
|
||||
@@ -39,24 +39,24 @@ public class B /* B*/ {
|
||||
public java.lang.String d;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getA();// getA()
|
||||
public final java.lang.String getA$main();// getA$main()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getB();// getB()
|
||||
public final java.lang.String getB$main();// getB$main()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getC();// getC()
|
||||
public final java.lang.String getC$main();// getC$main()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getD();// getD()
|
||||
public final java.lang.String getD$main();// getD$main()
|
||||
|
||||
protected final void setC(@org.jetbrains.annotations.NotNull() java.lang.String);// setC(java.lang.String)
|
||||
protected final void setC$main(@org.jetbrains.annotations.NotNull() java.lang.String);// setC$main(java.lang.String)
|
||||
|
||||
public B();// .ctor()
|
||||
|
||||
public final void setA(@org.jetbrains.annotations.NotNull() java.lang.String);// setA(java.lang.String)
|
||||
public final void setA$main(@org.jetbrains.annotations.NotNull() java.lang.String);// setA$main(java.lang.String)
|
||||
|
||||
public final void setD(@org.jetbrains.annotations.NotNull() java.lang.String);// setD(java.lang.String)
|
||||
public final void setD$main(@org.jetbrains.annotations.NotNull() java.lang.String);// setD$main(java.lang.String)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ public final class Foo /* Foo*/ {
|
||||
public final java.lang.String getDelegatedProp();// getDelegatedProp()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getInternalVarPrivateSet();// getInternalVarPrivateSet()
|
||||
public final java.lang.String getInternalVarPrivateSet$main();// getInternalVarPrivateSet$main()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getLazyProp();// getLazyProp()
|
||||
@@ -111,7 +111,7 @@ public final class Foo /* Foo*/ {
|
||||
public final java.lang.String getName();// getName()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final java.lang.String getStringRepresentation();// getStringRepresentation()
|
||||
public final java.lang.String getStringRepresentation$main();// getStringRepresentation$main()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public final kotlin.jvm.functions.Function1<java.lang.Integer, java.lang.Integer> getSum();// getSum()
|
||||
@@ -163,7 +163,7 @@ public final class Foo /* Foo*/ {
|
||||
|
||||
public final int getIntProp(int);// getIntProp(int)
|
||||
|
||||
public final int getInternalWithPrivateSet();// getInternalWithPrivateSet()
|
||||
public final int getInternalWithPrivateSet$main();// getInternalWithPrivateSet$main()
|
||||
|
||||
public final void setC(boolean);// setC(boolean)
|
||||
|
||||
@@ -187,7 +187,7 @@ public final class Foo /* Foo*/ {
|
||||
|
||||
public final void setName(@org.jetbrains.annotations.NotNull() java.lang.String);// setName(java.lang.String)
|
||||
|
||||
public final void setStringRepresentation(@org.jetbrains.annotations.NotNull() java.lang.String);// setStringRepresentation(java.lang.String)
|
||||
public final void setStringRepresentation$main(@org.jetbrains.annotations.NotNull() java.lang.String);// setStringRepresentation$main(java.lang.String)
|
||||
|
||||
public final void setSubject(error.NonExistentClass);// setSubject(error.NonExistentClass)
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ public final class Foo /* Foo*/ {
|
||||
|
||||
public final int bar4();// bar4()
|
||||
|
||||
public final void bar2(error.NonExistentClass, error.NonExistentClass);// bar2(error.NonExistentClass, error.NonExistentClass)
|
||||
public final void bar2$main(error.NonExistentClass, error.NonExistentClass);// bar2$main(error.NonExistentClass, error.NonExistentClass)
|
||||
|
||||
public void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, @org.jetbrains.annotations.NotNull() Foo);// bar(int, java.lang.Object, Foo)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user