[FIR] Extract computeJvmDescriptorReplacingKotlinToJava

This commit is contained in:
Mikhail Glukhikh
2020-10-14 12:13:14 +03:00
parent f866eff93e
commit d40248cb53
2 changed files with 8 additions and 8 deletions
@@ -18,6 +18,12 @@ import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
fun FirFunction<*>.computeJvmDescriptorReplacingKotlinToJava(): String =
computeJvmDescriptor()
.replace("kotlin/Any", "java/lang/Object")
.replace("kotlin/String", "java/lang/String")
.replace("kotlin/Throwable", "java/lang/Throwable")
fun FirFunction<*>.computeJvmDescriptor(): String = buildString { fun FirFunction<*>.computeJvmDescriptor(): String = buildString {
if (this@computeJvmDescriptor is FirSimpleFunction) { if (this@computeJvmDescriptor is FirSimpleFunction) {
append(name.asString()) append(name.asString())
@@ -22,10 +22,7 @@ class JvmMappedScope(
val visibleMethods = signatures.visibleMethodSignaturesByName[name] val visibleMethods = signatures.visibleMethodSignaturesByName[name]
?: return declaredMemberScope.processFunctionsByName(name, processor) ?: return declaredMemberScope.processFunctionsByName(name, processor)
javaMappedClassUseSiteScope.processFunctionsByName(name) { symbol -> javaMappedClassUseSiteScope.processFunctionsByName(name) { symbol ->
val jvmSignature = symbol.fir.computeJvmDescriptor() val jvmSignature = symbol.fir.computeJvmDescriptorReplacingKotlinToJava()
.replace("kotlin/Any", "java/lang/Object")
.replace("kotlin/String", "java/lang/String")
.replace("kotlin/Throwable", "java/lang/Throwable")
if (jvmSignature in visibleMethods) { if (jvmSignature in visibleMethods) {
processor(symbol) processor(symbol)
} }
@@ -43,10 +40,7 @@ class JvmMappedScope(
val hiddenConstructors = signatures.hiddenConstructors val hiddenConstructors = signatures.hiddenConstructors
if (hiddenConstructors.isNotEmpty()) { if (hiddenConstructors.isNotEmpty()) {
javaMappedClassUseSiteScope.processDeclaredConstructors { symbol -> javaMappedClassUseSiteScope.processDeclaredConstructors { symbol ->
val jvmSignature = symbol.fir.computeJvmDescriptor() val jvmSignature = symbol.fir.computeJvmDescriptorReplacingKotlinToJava()
.replace("kotlin/Any", "java/lang/Object")
.replace("kotlin/String", "java/lang/String")
.replace("kotlin/Throwable", "java/lang/Throwable")
if (jvmSignature !in hiddenConstructors) { if (jvmSignature !in hiddenConstructors) {
processor(symbol) processor(symbol)
} }