diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt index 1716a09683f..b9dddec655f 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt @@ -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) } } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightMethod.kt index 66da425e9c7..a48b7739463 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightMethod.kt @@ -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 abstract override fun hasTypeParameters(): Boolean @@ -81,6 +85,7 @@ internal abstract class FirLightMethod( protected fun 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) } } \ No newline at end of file diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt index 5fac26950e7..1607645179e 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt @@ -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 diff --git a/compiler/testData/asJava/ultraLightClasses/inheritance.fir.java b/compiler/testData/asJava/ultraLightClasses/inheritance.fir.java index 5d25acbff53..b354dda5e29 100644 --- a/compiler/testData/asJava/ultraLightClasses/inheritance.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/inheritance.fir.java @@ -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() diff --git a/compiler/testData/asJava/ultraLightClasses/lateinitProperty.fir.java b/compiler/testData/asJava/ultraLightClasses/lateinitProperty.fir.java index 40028313b5c..42de779327f 100644 --- a/compiler/testData/asJava/ultraLightClasses/lateinitProperty.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/lateinitProperty.fir.java @@ -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) } diff --git a/compiler/testData/asJava/ultraLightClasses/properties.fir.java b/compiler/testData/asJava/ultraLightClasses/properties.fir.java index 700030ab6df..371aacec6fb 100644 --- a/compiler/testData/asJava/ultraLightClasses/properties.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/properties.fir.java @@ -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 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) diff --git a/compiler/testData/asJava/ultraLightClasses/simpleFunctions.fir.java b/compiler/testData/asJava/ultraLightClasses/simpleFunctions.fir.java index 18c466df26d..a62cc0f394e 100644 --- a/compiler/testData/asJava/ultraLightClasses/simpleFunctions.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/simpleFunctions.fir.java @@ -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)