[light classes] replace light class dependency from analysis.decompiled.light-classes-for-decompiled to light-classes-base
^KT-53097
This commit is contained in:
@@ -6,7 +6,7 @@ plugins {
|
||||
dependencies {
|
||||
api(project(":compiler:psi"))
|
||||
api(project(":analysis:decompiled:decompiler-to-psi"))
|
||||
api(project(":compiler:light-classes"))
|
||||
api(project(":compiler:light-classes-base"))
|
||||
implementation(intellijCore())
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -12,11 +12,11 @@ import com.intellij.psi.util.MethodSignature
|
||||
import com.intellij.psi.util.MethodSignatureBackedByPsiMethod
|
||||
import org.jetbrains.kotlin.analysis.decompiled.light.classes.origin.LightMemberOriginForCompiledMethod
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.demangleInternalName
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.propertyNameByAccessor
|
||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
|
||||
class KtLightMethodForDecompiledDeclaration(
|
||||
@@ -104,7 +104,7 @@ class KtLightMethodForDecompiledDeclaration(
|
||||
}
|
||||
|
||||
private fun KtLightMethod.checkIsMangled(): Boolean {
|
||||
val demangledName = KotlinTypeMapper.InternalNameMapper.demangleInternalName(name) ?: return false
|
||||
val demangledName = demangleInternalName(name) ?: return false
|
||||
val originalName = propertyNameByAccessor(demangledName, this) ?: demangledName
|
||||
return originalName == kotlinOrigin?.name
|
||||
}
|
||||
@@ -191,6 +191,11 @@ private fun PsiAnnotation.withNestedAnnotations(): Sequence<PsiAnnotation> {
|
||||
return sequenceOf(this) + parameterList.attributes.asSequence().flatMap { handleValue(it.value) }
|
||||
}
|
||||
|
||||
fun demangleInternalName(name: String): String? {
|
||||
val indexOfDollar = name.indexOf('$')
|
||||
return if (indexOfDollar >= 0) name.substring(0, indexOfDollar) else null
|
||||
}
|
||||
|
||||
fun propertyNameByAccessor(name: String, accessor: KtLightMethod): String? {
|
||||
val toRename = accessor.kotlinOrigin ?: return null
|
||||
if (toRename !is KtProperty && toRename !is KtParameter) return null
|
||||
|
||||
Reference in New Issue
Block a user