Move some common parts from BuiltinMethodsWithDifferentJvmName to SpecialGenericSignatures
This commit is contained in:
+3
@@ -26,6 +26,9 @@ object BuiltinSpecialProperties {
|
|||||||
PROPERTY_FQ_NAME_TO_JVM_GETTER_NAME_MAP.entries
|
PROPERTY_FQ_NAME_TO_JVM_GETTER_NAME_MAP.entries
|
||||||
.map { Pair(it.key.shortName(), it.value) }
|
.map { Pair(it.key.shortName(), it.value) }
|
||||||
.groupBy({ it.second }, { it.first })
|
.groupBy({ it.second }, { it.first })
|
||||||
|
.mapValues {
|
||||||
|
it.value.distinct()
|
||||||
|
}
|
||||||
|
|
||||||
val SPECIAL_FQ_NAMES: Set<FqName> = PROPERTY_FQ_NAME_TO_JVM_GETTER_NAME_MAP.keys
|
val SPECIAL_FQ_NAMES: Set<FqName> = PROPERTY_FQ_NAME_TO_JVM_GETTER_NAME_MAP.keys
|
||||||
val SPECIAL_SHORT_NAMES: Set<Name> = SPECIAL_FQ_NAMES.map(FqName::shortName).toSet()
|
val SPECIAL_SHORT_NAMES: Set<Name> = SPECIAL_FQ_NAMES.map(FqName::shortName).toSet()
|
||||||
|
|||||||
+10
-1
@@ -132,5 +132,14 @@ open class SpecialGenericSignatures {
|
|||||||
.map { Pair(it.key.name, it.value) }
|
.map { Pair(it.key.name, it.value) }
|
||||||
.groupBy({ it.second }, { it.first })
|
.groupBy({ it.second }, { it.first })
|
||||||
|
|
||||||
|
fun getBuiltinFunctionNamesByJvmName(name: Name): List<Name> =
|
||||||
|
JVM_SHORT_NAME_TO_BUILTIN_SHORT_NAMES_MAP[name] ?: emptyList()
|
||||||
|
|
||||||
|
val Name.sameAsBuiltinMethodWithErasedValueParameters: Boolean
|
||||||
|
get() = this in ERASED_VALUE_PARAMETERS_SHORT_NAMES
|
||||||
|
|
||||||
|
val Name.sameAsRenamedInJvmBuiltin: Boolean
|
||||||
|
get() = this in ORIGINAL_SHORT_NAMES
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -18,8 +18,8 @@ package org.jetbrains.kotlin.load.java
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.sameAsRenamedInJvmBuiltin
|
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters
|
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters
|
||||||
|
import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsRenamedInJvmBuiltin
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
|
||||||
import org.jetbrains.kotlin.load.kotlin.JvmType
|
import org.jetbrains.kotlin.load.kotlin.JvmType
|
||||||
|
|||||||
+2
-2
@@ -29,9 +29,9 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|||||||
import org.jetbrains.kotlin.incremental.record
|
import org.jetbrains.kotlin.incremental.record
|
||||||
import org.jetbrains.kotlin.load.java.*
|
import org.jetbrains.kotlin.load.java.*
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.isRemoveAtByIndex
|
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.isRemoveAtByIndex
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.sameAsRenamedInJvmBuiltin
|
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters
|
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters
|
||||||
import org.jetbrains.kotlin.load.java.ClassicBuiltinSpecialProperties.getBuiltinSpecialPropertyGetterName
|
import org.jetbrains.kotlin.load.java.ClassicBuiltinSpecialProperties.getBuiltinSpecialPropertyGetterName
|
||||||
|
import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsRenamedInJvmBuiltin
|
||||||
import org.jetbrains.kotlin.load.java.components.DescriptorResolverUtils.resolveOverridesForNonStaticMembers
|
import org.jetbrains.kotlin.load.java.components.DescriptorResolverUtils.resolveOverridesForNonStaticMembers
|
||||||
import org.jetbrains.kotlin.load.java.components.TypeUsage
|
import org.jetbrains.kotlin.load.java.components.TypeUsage
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.*
|
import org.jetbrains.kotlin.load.java.descriptors.*
|
||||||
@@ -203,7 +203,7 @@ class LazyJavaClassMemberScope(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun SimpleFunctionDescriptor.doesOverrideRenamedBuiltins(): Boolean {
|
private fun SimpleFunctionDescriptor.doesOverrideRenamedBuiltins(): Boolean {
|
||||||
return BuiltinMethodsWithDifferentJvmName.getBuiltinFunctionNamesByJvmName(name).any {
|
return SpecialGenericSignatures.getBuiltinFunctionNamesByJvmName(name).any {
|
||||||
// e.g. 'removeAt' or 'toInt'
|
// e.g. 'removeAt' or 'toInt'
|
||||||
builtinName ->
|
builtinName ->
|
||||||
val builtinSpecialFromSuperTypes =
|
val builtinSpecialFromSuperTypes =
|
||||||
|
|||||||
@@ -71,9 +71,6 @@ object BuiltinMethodsWithSpecialGenericSignature : SpecialGenericSignatures() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object BuiltinMethodsWithDifferentJvmName : SpecialGenericSignatures() {
|
object BuiltinMethodsWithDifferentJvmName : SpecialGenericSignatures() {
|
||||||
val Name.sameAsRenamedInJvmBuiltin: Boolean
|
|
||||||
get() = this in ORIGINAL_SHORT_NAMES
|
|
||||||
|
|
||||||
fun getJvmName(functionDescriptor: SimpleFunctionDescriptor): Name? {
|
fun getJvmName(functionDescriptor: SimpleFunctionDescriptor): Name? {
|
||||||
return SIGNATURE_TO_JVM_REPRESENTATION_NAME[functionDescriptor.computeJvmSignature() ?: return null]
|
return SIGNATURE_TO_JVM_REPRESENTATION_NAME[functionDescriptor.computeJvmSignature() ?: return null]
|
||||||
}
|
}
|
||||||
@@ -84,10 +81,6 @@ object BuiltinMethodsWithDifferentJvmName : SpecialGenericSignatures() {
|
|||||||
} != null
|
} != null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBuiltinFunctionNamesByJvmName(name: Name): List<Name> =
|
|
||||||
JVM_SHORT_NAME_TO_BUILTIN_SHORT_NAMES_MAP[name] ?: emptyList()
|
|
||||||
|
|
||||||
|
|
||||||
val SimpleFunctionDescriptor.isRemoveAtByIndex: Boolean
|
val SimpleFunctionDescriptor.isRemoveAtByIndex: Boolean
|
||||||
get() = name.asString() == "removeAt" && computeJvmSignature() == REMOVE_AT_NAME_AND_SIGNATURE.signature
|
get() = name.asString() == "removeAt" && computeJvmSignature() == REMOVE_AT_NAME_AND_SIGNATURE.signature
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user