From 978a4cfa3c2ff3d212c87e2242d98de6906c130f Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 15 Oct 2015 20:49:49 +0300 Subject: [PATCH] Minor. Refine naming for SpecialBuiltinMembers --- .../codegen/CollectionStubMethodGenerator.kt | 6 +++--- .../kotlin/codegen/FunctionCodegen.java | 10 +++++----- .../kotlin/codegen/builtinSpecialBridges.kt | 4 ++-- .../kotlin/codegen/state/JetTypeMapper.java | 10 +++++----- .../descriptors/LazyJavaClassMemberScope.kt | 16 +++++++-------- .../kotlin/load/java/specialBuiltinMembers.kt | 20 +++++++++---------- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt index 4aac03fb980..2baadde96d2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/CollectionStubMethodGenerator.kt @@ -20,9 +20,9 @@ import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION import org.jetbrains.kotlin.descriptors.annotations.Annotations -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature.SpecialSignatureInfo -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature.getSpecialSignatureInfo -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature.isBuiltinWithSpecialDescriptorInJvm +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.SpecialSignatureInfo +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.getSpecialSignatureInfo +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.isBuiltinWithSpecialDescriptorInJvm import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.OverrideResolver import org.jetbrains.kotlin.resolve.OverridingUtil diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 429204950f3..efcb71785ff 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -37,7 +37,7 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotated; import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget; import org.jetbrains.kotlin.jvm.RuntimeAssertionInfo; -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature; +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature; import org.jetbrains.kotlin.load.java.JvmAnnotationNames; import org.jetbrains.kotlin.load.java.SpecialBuiltinMembers; import org.jetbrains.kotlin.load.kotlin.nativeDeclarations.NativeKt; @@ -516,7 +516,7 @@ public class FunctionCodegen { // If the function doesn't have a physical declaration among super-functions, it's a SAM adapter or alike and doesn't need bridges if (CallResolverUtilKt.isOrOverridesSynthesized(descriptor)) return; - boolean isSpecial = SpecialBuiltinMembers.overridesBuiltinSpecialDeclaration(descriptor); + boolean isSpecial = SpecialBuiltinMembers.doesOverrideBuiltinWithDifferentJvmName(descriptor); Set> bridgesToGenerate; if (!isSpecial) { @@ -532,7 +532,7 @@ public class FunctionCodegen { if (!bridgesToGenerate.isEmpty()) { PsiElement origin = descriptor.getKind() == DECLARATION ? getSourceFromDescriptor(descriptor) : null; boolean isSpecialBridge = - BuiltinMethodsWithSpecialJvmSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(descriptor) != null; + BuiltinMethodsWithSpecialGenericSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(descriptor) != null; for (Bridge bridge : bridgesToGenerate) { generateBridge(origin, descriptor, bridge.getFrom(), bridge.getTo(), isSpecialBridge, false); @@ -560,7 +560,7 @@ public class FunctionCodegen { } if (!descriptor.getKind().isReal() && isAbstractMethod(descriptor, OwnerKind.IMPLEMENTATION)) { - CallableDescriptor overridden = SpecialBuiltinMembers.getBuiltinSpecialOverridden(descriptor); + CallableDescriptor overridden = SpecialBuiltinMembers.getOverriddenBuiltinWithDifferentJvmName(descriptor); assert overridden != null; Method method = typeMapper.mapSignature(descriptor).getAsmMethod(); @@ -848,7 +848,7 @@ public class FunctionCodegen { @NotNull Method bridge, @NotNull Method delegateTo ) { - if (BuiltinMethodsWithSpecialJvmSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(descriptor) == null) return; + if (BuiltinMethodsWithSpecialGenericSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(descriptor) == null) return; assert descriptor.getValueParameters().size() == 1 : "Should be descriptor with one value parameter, but found: " + descriptor; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt index 7ea36dfc84f..2e82070fbbb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/builtinSpecialBridges.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.codegen import org.jetbrains.kotlin.backend.common.bridges.* import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.load.java.getBuiltinSpecialOverridden +import org.jetbrains.kotlin.load.java.getOverriddenBuiltinWithDifferentJvmName import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns @@ -41,7 +41,7 @@ object BuiltinSpecialBridgesUtil { val functionHandle = DescriptorBasedFunctionHandle(function) val fake = !functionHandle.isDeclaration - val overriddenBuiltin = function.getBuiltinSpecialOverridden()!! + val overriddenBuiltin = function.getOverriddenBuiltinWithDifferentJvmName()!! val reachableDeclarations = findAllReachableDeclarations(function) val needGenerateSpecialBridge = needGenerateSpecialBridge(function, reachableDeclarations, overriddenBuiltin) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java index ebcd1b56111..a240f9929d7 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java @@ -36,10 +36,10 @@ import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.fileClasses.FileClasses; import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil; import org.jetbrains.kotlin.fileClasses.JvmFileClassesProvider; -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature; +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature; import org.jetbrains.kotlin.load.java.SpecialBuiltinMembers; import org.jetbrains.kotlin.load.java.JvmAbi; -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature.SpecialSignatureInfo; +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.SpecialSignatureInfo; import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor; import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor; import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageScope; @@ -757,7 +757,7 @@ public class JetTypeMapper { } FunctionDescriptor overriddenSpecialBuiltinFunction = - SpecialBuiltinMembers.getBuiltinSpecialOverridden(functionDescriptor.getOriginal()); + SpecialBuiltinMembers.getOverriddenBuiltinWithDifferentJvmName(functionDescriptor.getOriginal()); FunctionDescriptor functionToCall = overriddenSpecialBuiltinFunction != null ? overriddenSpecialBuiltinFunction.getOriginal() : functionDescriptor.getOriginal(); @@ -973,7 +973,7 @@ public class JetTypeMapper { if (kind != OwnerKind.DEFAULT_IMPLS) { - SpecialSignatureInfo specialSignatureInfo = BuiltinMethodsWithSpecialJvmSignature.getSpecialSignatureInfo(f); + SpecialSignatureInfo specialSignatureInfo = BuiltinMethodsWithSpecialGenericSignature.getSpecialSignatureInfo(f); if (specialSignatureInfo != null) { return new JvmMethodSignature( @@ -990,7 +990,7 @@ public class JetTypeMapper { @NotNull BothSignatureWriter sw ) { FunctionDescriptor overridden = - BuiltinMethodsWithSpecialJvmSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(f); + BuiltinMethodsWithSpecialGenericSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(f); if (overridden == null) return false; if (SpecialBuiltinMembers.isFromJavaOrBuiltins(f)) return false; diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt index c0c79ca2e55..7841c0ab0f4 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt @@ -26,9 +26,9 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.load.java.* import org.jetbrains.kotlin.load.java.BuiltinSpecialProperties.getBuiltinSpecialPropertyGetterName -import org.jetbrains.kotlin.load.java.BuiltinSpecialMethods.sameAsRenamedInJvmBuiltin -import org.jetbrains.kotlin.load.java.BuiltinSpecialMethods.isRemoveAtByIndex -import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialJvmSignature.sameAsBuiltinMethodWithErasedValueParameters +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.sameAsRenamedInJvmBuiltin +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithDifferentJvmName.isRemoveAtByIndex +import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.sameAsBuiltinMethodWithErasedValueParameters import org.jetbrains.kotlin.load.java.components.DescriptorResolverUtils import org.jetbrains.kotlin.load.java.components.TypeUsage import org.jetbrains.kotlin.load.java.descriptors.JavaConstructorDescriptor @@ -119,10 +119,10 @@ public class LazyJavaClassMemberScope( } private fun JavaMethod.doesOverrideRenamedBuiltins(): Boolean { - return BuiltinSpecialMethods.getSpecialBuiltinFunctionsByJvmName(name).any { + return BuiltinMethodsWithDifferentJvmName.getBuiltinFunctionNamesByJvmName(name).any { builtinName -> val builtinSpecialFromSuperTypes = - getFunctionsFromSupertypes(builtinName).filter { it.overridesBuiltinSpecialDeclaration() } + getFunctionsFromSupertypes(builtinName).filter { it.doesOverrideBuiltinWithDifferentJvmName() } if (builtinSpecialFromSuperTypes.isEmpty()) return@any false val methodDescriptor = resolveMethodToFunctionDescriptorWithName(this, builtinName) @@ -148,7 +148,7 @@ public class LazyJavaClassMemberScope( val commonProperty = findGetterByName(JvmAbi.getterName(name.asString())) if (commonProperty != null) return commonProperty - val specialGetterName = getter?.getBuiltinSpecialOverridden()?.getBuiltinSpecialPropertyGetterName() ?: return null + val specialGetterName = getter?.getOverriddenBuiltinWithDifferentJvmName()?.getBuiltinSpecialPropertyGetterName() ?: return null return findGetterByName(specialGetterName) } @@ -204,7 +204,7 @@ public class LazyJavaClassMemberScope( name, functionsFromSupertypes, emptyList(), getContainingDeclaration(), ErrorReporter.DO_NOTHING) for (descriptor in mergedFunctionFromSuperTypes) { - val overriddenBuiltin = descriptor.getBuiltinSpecialOverridden() ?: continue + val overriddenBuiltin = descriptor.getOverriddenBuiltinWithDifferentJvmName() ?: continue if (result.any { it.doesOverride(overriddenBuiltin) }) continue @@ -375,7 +375,7 @@ public class LazyJavaClassMemberScope( ): FunctionDescriptor? { val candidatesToOverride = getFunctionsFromSupertypes(javaMethodDescriptor.name).map { - BuiltinMethodsWithSpecialJvmSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(it) + BuiltinMethodsWithSpecialGenericSignature.getOverriddenBuiltinFunctionWithErasedValueParametersInJava(it) }.filterNotNull() if (candidatesToOverride.isEmpty()) return null diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/specialBuiltinMembers.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/specialBuiltinMembers.kt index da516d78351..2b8331b454a 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/specialBuiltinMembers.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/specialBuiltinMembers.kt @@ -73,7 +73,7 @@ object BuiltinSpecialProperties { } } -object BuiltinMethodsWithSpecialJvmSignature { +object BuiltinMethodsWithSpecialGenericSignature { private val ERASED_COLLECTION_PARAMETER_FQ_NAMES = setOf( FqName("kotlin.Collection.containsAll"), FqName("kotlin.MutableCollection.removeAll"), @@ -117,7 +117,7 @@ object BuiltinMethodsWithSpecialJvmSignature { fun CallableMemberDescriptor.isBuiltinWithSpecialDescriptorInJvm(): Boolean { if (!isFromBuiltins()) return false - return getSpecialSignatureInfo() == SpecialSignatureInfo.GENERIC_PARAMETER || overridesBuiltinSpecialDeclaration() + return getSpecialSignatureInfo() == SpecialSignatureInfo.GENERIC_PARAMETER || doesOverrideBuiltinWithDifferentJvmName() } @JvmStatic @@ -133,7 +133,7 @@ object BuiltinMethodsWithSpecialJvmSignature { } } -object BuiltinSpecialMethods { +object BuiltinMethodsWithDifferentJvmName { val REMOVE_AT_FQ_NAME = FqName("kotlin.MutableList.removeAt") val FQ_NAMES_TO_JVM_MAP: Map = mapOf( @@ -154,7 +154,7 @@ object BuiltinSpecialMethods { val Name.sameAsRenamedInJvmBuiltin: Boolean get() = this in ORIGINAL_SHORT_NAMES - fun getSpecialJvmName(callableMemberDescriptor: CallableMemberDescriptor): Name? { + fun getJvmName(callableMemberDescriptor: CallableMemberDescriptor): Name? { return FQ_NAMES_TO_JVM_MAP[callableMemberDescriptor.fqNameOrNull() ?: return null] } @@ -164,7 +164,7 @@ object BuiltinSpecialMethods { return callableMemberDescriptor.firstOverridden { FQ_NAMES_TO_JVM_MAP.containsKey(fqName) } != null } - fun getSpecialBuiltinFunctionsByJvmName(name: Name): List = + fun getBuiltinFunctionNamesByJvmName(name: Name): List = JVM_SHORT_NAME_TO_BUILTIN_SHORT_NAMES_MAP[name] ?: emptyList() @@ -173,29 +173,29 @@ object BuiltinSpecialMethods { } @Suppress("UNCHECKED_CAST") -fun T.getBuiltinSpecialOverridden(): T? { +fun T.getOverriddenBuiltinWithDifferentJvmName(): T? { return when (this) { is PropertyDescriptor, is PropertyAccessorDescriptor -> firstOverridden { BuiltinSpecialProperties.hasBuiltinSpecialPropertyFqName(it.propertyIfAccessor) } as T? - else -> firstOverridden { BuiltinSpecialMethods.isBuiltinFunctionWithDifferentNameInJvm(it) } as T? + else -> firstOverridden { BuiltinMethodsWithDifferentJvmName.isBuiltinFunctionWithDifferentNameInJvm(it) } as T? } } -fun CallableMemberDescriptor.overridesBuiltinSpecialDeclaration(): Boolean = getBuiltinSpecialOverridden() != null +fun CallableMemberDescriptor.doesOverrideBuiltinWithDifferentJvmName(): Boolean = getOverriddenBuiltinWithDifferentJvmName() != null fun getJvmMethodNameIfSpecial(callableMemberDescriptor: CallableMemberDescriptor): String? { val builtinOverridden = getBuiltinOverriddenThatAffectsJvmName(callableMemberDescriptor)?.propertyIfAccessor ?: return null return when (builtinOverridden) { is PropertyDescriptor -> builtinOverridden.getBuiltinSpecialPropertyGetterName() - else -> BuiltinSpecialMethods.getSpecialJvmName(builtinOverridden)?.asString() + else -> BuiltinMethodsWithDifferentJvmName.getJvmName(builtinOverridden)?.asString() } } private fun getBuiltinOverriddenThatAffectsJvmName( callableMemberDescriptor: CallableMemberDescriptor ): CallableMemberDescriptor? { - val overriddenBuiltin = callableMemberDescriptor.getBuiltinSpecialOverridden() ?: return null + val overriddenBuiltin = callableMemberDescriptor.getOverriddenBuiltinWithDifferentJvmName() ?: return null if (callableMemberDescriptor.isFromJavaOrBuiltins()) return overriddenBuiltin