[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 {
|
dependencies {
|
||||||
api(project(":compiler:psi"))
|
api(project(":compiler:psi"))
|
||||||
api(project(":analysis:decompiled:decompiler-to-psi"))
|
api(project(":analysis:decompiled:decompiler-to-psi"))
|
||||||
api(project(":compiler:light-classes"))
|
api(project(":compiler:light-classes-base"))
|
||||||
implementation(intellijCore())
|
implementation(intellijCore())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -12,11 +12,11 @@ import com.intellij.psi.util.MethodSignature
|
|||||||
import com.intellij.psi.util.MethodSignatureBackedByPsiMethod
|
import com.intellij.psi.util.MethodSignatureBackedByPsiMethod
|
||||||
import org.jetbrains.kotlin.analysis.decompiled.light.classes.origin.LightMemberOriginForCompiledMethod
|
import org.jetbrains.kotlin.analysis.decompiled.light.classes.origin.LightMemberOriginForCompiledMethod
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
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.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.asJava.propertyNameByAccessor
|
import org.jetbrains.kotlin.asJava.propertyNameByAccessor
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
|
|
||||||
class KtLightMethodForDecompiledDeclaration(
|
class KtLightMethodForDecompiledDeclaration(
|
||||||
@@ -104,7 +104,7 @@ class KtLightMethodForDecompiledDeclaration(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun KtLightMethod.checkIsMangled(): Boolean {
|
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
|
val originalName = propertyNameByAccessor(demangledName, this) ?: demangledName
|
||||||
return originalName == kotlinOrigin?.name
|
return originalName == kotlinOrigin?.name
|
||||||
}
|
}
|
||||||
@@ -191,6 +191,11 @@ private fun PsiAnnotation.withNestedAnnotations(): Sequence<PsiAnnotation> {
|
|||||||
return sequenceOf(this) + parameterList.attributes.asSequence().flatMap { handleValue(it.value) }
|
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? {
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user