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 b61962817e7..e467012fff3 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 @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -10,24 +10,23 @@ import com.intellij.psi.impl.PsiImplUtil import com.intellij.psi.impl.PsiSuperMethodImplUtil import com.intellij.psi.util.MethodSignature import com.intellij.psi.util.MethodSignatureBackedByPsiMethod -import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin -import org.jetbrains.kotlin.asJava.classes.KotlinLightReferenceListBuilder -import org.jetbrains.kotlin.asJava.classes.KtLightClass -import org.jetbrains.kotlin.asJava.classes.cannotModify -import org.jetbrains.kotlin.asJava.elements.KtLightMethod -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession 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.builder.LightMemberOrigin +import org.jetbrains.kotlin.asJava.classes.KotlinLightReferenceListBuilder +import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade -import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper +import org.jetbrains.kotlin.asJava.classes.cannotModify +import org.jetbrains.kotlin.asJava.elements.KtLightMethod +import org.jetbrains.kotlin.asJava.mangleInternalName +import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.utils.addToStdlib.ifTrue -import org.jetbrains.kotlin.analysis.api.KtAnalysisSession - context(KtAnalysisSession) internal abstract class FirLightMethod( lightMemberOrigin: LightMemberOrigin?, @@ -102,6 +101,6 @@ internal abstract class FirLightMethod( if (hasPublishedApiAnnotation(annotationUseSiteTarget)) return defaultName val moduleName = (getKtModule(project) as? KtSourceModule)?.moduleName ?: return defaultName - return KotlinTypeMapper.InternalNameMapper.mangleInternalName(defaultName, moduleName) + return mangleInternalName(defaultName, moduleName) } } \ No newline at end of file diff --git a/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt b/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt index 09dd2016a39..3161aa9d7f7 100644 --- a/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt +++ b/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.load.java.propertyNameBySetMethodName import org.jetbrains.kotlin.load.java.propertyNamesBySetMethodName import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.NameUtils import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.* @@ -196,6 +197,10 @@ fun demangleInternalName(name: String): String? { return if (indexOfDollar >= 0) name.substring(0, indexOfDollar) else null } +fun mangleInternalName(name: String, moduleName: String): String { + return name + "$" + NameUtils.sanitizeAsJavaIdentifier(moduleName) +} + fun propertyNameByAccessor(name: String, accessor: KtLightMethod): String? { val toRename = accessor.kotlinOrigin ?: return null if (toRename !is KtProperty && toRename !is KtParameter) return null