diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt index ddc21ef58a8..26b6e783c81 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt @@ -18,6 +18,12 @@ import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter import org.jetbrains.kotlin.name.ClassId 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 { if (this@computeJvmDescriptor is FirSimpleFunction) { append(name.asString()) diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt index cc834a8c357..f66a9dc8113 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt @@ -22,10 +22,7 @@ class JvmMappedScope( val visibleMethods = signatures.visibleMethodSignaturesByName[name] ?: return declaredMemberScope.processFunctionsByName(name, processor) javaMappedClassUseSiteScope.processFunctionsByName(name) { symbol -> - val jvmSignature = symbol.fir.computeJvmDescriptor() - .replace("kotlin/Any", "java/lang/Object") - .replace("kotlin/String", "java/lang/String") - .replace("kotlin/Throwable", "java/lang/Throwable") + val jvmSignature = symbol.fir.computeJvmDescriptorReplacingKotlinToJava() if (jvmSignature in visibleMethods) { processor(symbol) } @@ -43,10 +40,7 @@ class JvmMappedScope( val hiddenConstructors = signatures.hiddenConstructors if (hiddenConstructors.isNotEmpty()) { javaMappedClassUseSiteScope.processDeclaredConstructors { symbol -> - val jvmSignature = symbol.fir.computeJvmDescriptor() - .replace("kotlin/Any", "java/lang/Object") - .replace("kotlin/String", "java/lang/String") - .replace("kotlin/Throwable", "java/lang/Throwable") + val jvmSignature = symbol.fir.computeJvmDescriptorReplacingKotlinToJava() if (jvmSignature !in hiddenConstructors) { processor(symbol) }