[FIR] Extract computeJvmDescriptorReplacingKotlinToJava
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user