[light classes] move checkIsMangled to light-classes-base module
^KT-53097
This commit is contained in:
@@ -201,6 +201,12 @@ fun mangleInternalName(name: String, moduleName: String): String {
|
|||||||
return name + "$" + NameUtils.sanitizeAsJavaIdentifier(moduleName)
|
return name + "$" + NameUtils.sanitizeAsJavaIdentifier(moduleName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KtLightMethod.checkIsMangled(): Boolean {
|
||||||
|
val demangledName = demangleInternalName(name) ?: return false
|
||||||
|
val originalName = propertyNameByAccessor(demangledName, this) ?: demangledName
|
||||||
|
return originalName == kotlinOrigin?.name
|
||||||
|
}
|
||||||
|
|
||||||
fun propertyNameByAccessor(name: String, accessor: KtLightMethod): String? {
|
fun propertyNameByAccessor(name: String, accessor: KtLightMethod): String? {
|
||||||
val toRename = accessor.kotlinOrigin ?: return null
|
val toRename = accessor.kotlinOrigin ?: return null
|
||||||
if (toRename !is KtProperty && toRename !is KtParameter) return null
|
if (toRename !is KtProperty && toRename !is KtParameter) return null
|
||||||
|
|||||||
+1
-2
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
|
|||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
|
|
||||||
@@ -50,7 +49,7 @@ abstract class KtLightMethodImpl protected constructor(
|
|||||||
|
|
||||||
override fun setName(name: String): PsiElement? {
|
override fun setName(name: String): PsiElement? {
|
||||||
val jvmNameAnnotation = modifierList.findAnnotation(DescriptorUtils.JVM_NAME.asString())
|
val jvmNameAnnotation = modifierList.findAnnotation(DescriptorUtils.JVM_NAME.asString())
|
||||||
val demangledName = (if (isMangled) KotlinTypeMapper.InternalNameMapper.demangleInternalName(name) else null) ?: name
|
val demangledName = (if (isMangled) demangleInternalName(name) else null) ?: name
|
||||||
val newNameForOrigin = propertyNameByAccessor(demangledName, this) ?: demangledName
|
val newNameForOrigin = propertyNameByAccessor(demangledName, this) ?: demangledName
|
||||||
if (newNameForOrigin == kotlinOrigin?.name) {
|
if (newNameForOrigin == kotlinOrigin?.name) {
|
||||||
jvmNameAnnotation?.delete()
|
jvmNameAnnotation?.delete()
|
||||||
|
|||||||
@@ -8,20 +8,12 @@ package org.jetbrains.kotlin.asJava
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.asJava.classes.runReadAction
|
import org.jetbrains.kotlin.asJava.classes.runReadAction
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
|
||||||
import org.jetbrains.kotlin.psi.KtExpression
|
import org.jetbrains.kotlin.psi.KtExpression
|
||||||
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
||||||
import org.jetbrains.kotlin.resolve.constants.ArrayValue
|
import org.jetbrains.kotlin.resolve.constants.ArrayValue
|
||||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
|
|
||||||
fun KtLightMethod.checkIsMangled(): Boolean {
|
|
||||||
val demangledName = KotlinTypeMapper.InternalNameMapper.demangleInternalName(name) ?: return false
|
|
||||||
val originalName = propertyNameByAccessor(demangledName, this) ?: demangledName
|
|
||||||
return originalName == kotlinOrigin?.name
|
|
||||||
}
|
|
||||||
|
|
||||||
fun computeExpression(expression: PsiElement): Any? {
|
fun computeExpression(expression: PsiElement): Any? {
|
||||||
fun evalConstantValue(constantValue: ConstantValue<*>): Any? =
|
fun evalConstantValue(constantValue: ConstantValue<*>): Any? =
|
||||||
if (constantValue is ArrayValue) {
|
if (constantValue is ArrayValue) {
|
||||||
|
|||||||
Reference in New Issue
Block a user