From 1800e5a7dbe3518c225014b217e3fa945b34adbe Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 11 Feb 2016 14:36:59 +0300 Subject: [PATCH] Remove some usages of Name.guess (and rename this utility to discourage new usages) --- .../kotlin/load/kotlin/FileBasedKotlinClass.java | 8 ++++---- .../psi/KtEnumEntrySuperclassReferenceExpression.kt | 5 +---- .../org/jetbrains/kotlin/load/kotlin/JvmNameResolver.kt | 6 ++---- .../java/structure/reflect/ReflectJavaValueParameter.kt | 3 +-- .../src/org/jetbrains/kotlin/name/FqNameUnsafe.java | 6 +++--- core/descriptors/src/org/jetbrains/kotlin/name/Name.java | 3 +-- .../serialization/deserialization/NameResolverImpl.kt | 2 +- .../reflect/jvm/internal/KDeclarationContainerImpl.kt | 4 ++-- .../intentions/MoveMemberToCompanionObjectIntention.kt | 2 +- .../changeSignature/usages/KotlinFunctionCallUsage.kt | 8 ++++---- .../KotlinOverridingMethodReferenceSearcher.kt | 2 +- .../org/jetbrains/kotlin/js/patterns/NamePredicate.java | 2 +- .../kotlin/js/translate/context/StandardClasses.java | 2 +- 13 files changed, 23 insertions(+), 30 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java index e04828b2cf5..68557c199e0 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java @@ -168,7 +168,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitArray(String name) { - final AnnotationArrayArgumentVisitor arv = v.visitArray(Name.guess(name)); + final AnnotationArrayArgumentVisitor arv = v.visitArray(Name.identifier(name)); return arv == null ? null : new org.jetbrains.org.objectweb.asm.AnnotationVisitor(ASM5) { @Override public void visit(String name, @NotNull Object value) { @@ -189,7 +189,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitAnnotation(String name, @NotNull String desc) { - AnnotationArgumentVisitor arv = v.visitAnnotation(Name.guess(name), resolveNameByDesc(desc, innerClasses)); + AnnotationArgumentVisitor arv = v.visitAnnotation(Name.identifier(name), resolveNameByDesc(desc, innerClasses)); return arv == null ? null : convertAnnotationVisitor(arv, innerClasses); } @@ -210,7 +210,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { new ClassReader(getFileContents()).accept(new ClassVisitor(ASM5) { @Override public FieldVisitor visitField(int access, @NotNull String name, @NotNull String desc, String signature, Object value) { - final AnnotationVisitor v = memberVisitor.visitField(Name.guess(name), desc, value); + final AnnotationVisitor v = memberVisitor.visitField(Name.identifier(name), desc, value); if (v == null) return null; return new FieldVisitor(ASM5) { @@ -228,7 +228,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public MethodVisitor visitMethod(int access, @NotNull String name, @NotNull String desc, String signature, String[] exceptions) { - final MethodAnnotationVisitor v = memberVisitor.visitMethod(Name.guess(name), desc); + final MethodAnnotationVisitor v = memberVisitor.visitMethod(Name.identifier(name), desc); if (v == null) return null; return new MethodVisitor(ASM5) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtEnumEntrySuperclassReferenceExpression.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtEnumEntrySuperclassReferenceExpression.kt index a72474c1b18..b7af04ded3c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtEnumEntrySuperclassReferenceExpression.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtEnumEntrySuperclassReferenceExpression.kt @@ -19,11 +19,8 @@ package org.jetbrains.kotlin.psi import com.intellij.lang.ASTNode import com.intellij.psi.PsiElement import com.intellij.psi.tree.IElementType -import com.intellij.psi.tree.TokenSet -import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames -import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.psi.stubs.KotlinEnumEntrySuperclassReferenceExpressionStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes @@ -57,7 +54,7 @@ class KtEnumEntrySuperclassReferenceExpression : } override fun getReferencedNameAsName(): Name { - return referencedElement.getName()?.let { Name.guess(it) } ?: SpecialNames.NO_NAME_PROVIDED; + return referencedElement.getName()?.let { Name.identifier(it) } ?: SpecialNames.NO_NAME_PROVIDED; } override fun getReferencedNameElement(): PsiElement { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmNameResolver.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmNameResolver.kt index 22ce29dacde..3cf4bf4aba9 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmNameResolver.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmNameResolver.kt @@ -22,9 +22,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.NameResolver import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record -import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.DESC_TO_CLASS_ID -import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.INTERNAL_TO_CLASS_ID -import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.NONE +import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.* import java.util.* class JvmNameResolver( @@ -85,7 +83,7 @@ class JvmNameResolver( return string } - override fun getName(index: Int) = Name.guess(getString(index)) + override fun getName(index: Int) = Name.guessByFirstCharacter(getString(index)) override fun getClassId(index: Int): ClassId { val string = getString(index) diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaValueParameter.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaValueParameter.kt index 88ac46c2117..9fcd236aecd 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaValueParameter.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/structure/reflect/ReflectJavaValueParameter.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.load.java.structure.reflect import org.jetbrains.kotlin.load.java.structure.JavaValueParameter import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.name.Name.guess class ReflectJavaValueParameter( private val returnType: ReflectJavaType, @@ -33,7 +32,7 @@ class ReflectJavaValueParameter( override fun isDeprecatedInJavaDoc() = false - override fun getName() = name?.let(Name::guess) + override fun getName() = name?.let(Name::guessByFirstCharacter) override fun getType() = returnType override fun isVararg() = isVararg diff --git a/core/descriptors/src/org/jetbrains/kotlin/name/FqNameUnsafe.java b/core/descriptors/src/org/jetbrains/kotlin/name/FqNameUnsafe.java index 40e9439c8e0..f49e983c1b9 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/name/FqNameUnsafe.java +++ b/core/descriptors/src/org/jetbrains/kotlin/name/FqNameUnsafe.java @@ -62,11 +62,11 @@ public final class FqNameUnsafe { private void compute() { int lastDot = fqName.lastIndexOf('.'); if (lastDot >= 0) { - shortName = Name.guess(fqName.substring(lastDot + 1)); + shortName = Name.guessByFirstCharacter(fqName.substring(lastDot + 1)); parent = new FqNameUnsafe(fqName.substring(0, lastDot)); } else { - shortName = Name.guess(fqName); + shortName = Name.guessByFirstCharacter(fqName); parent = FqName.ROOT.toUnsafe(); } } @@ -151,7 +151,7 @@ public final class FqNameUnsafe { ArraysKt.map(fqName.split("\\."), new Function1() { @Override public Name invoke(String name) { - return Name.guess(name); + return Name.guessByFirstCharacter(name); } }); } diff --git a/core/descriptors/src/org/jetbrains/kotlin/name/Name.java b/core/descriptors/src/org/jetbrains/kotlin/name/Name.java index 48b5e2c433d..8acee6c02aa 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/name/Name.java +++ b/core/descriptors/src/org/jetbrains/kotlin/name/Name.java @@ -67,9 +67,8 @@ public final class Name implements Comparable { return new Name(name, true); } - // TODO: wrong @NotNull - public static Name guess(@NotNull String name) { + public static Name guessByFirstCharacter(@NotNull String name) { if (name.startsWith("<")) { return special(name); } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt index ad72e2a971d..7db8b69ad52 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt @@ -31,7 +31,7 @@ class NameResolverImpl( override fun getString(index: Int) = strings.getString(index) - override fun getName(index: Int) = Name.guess(strings.getString(index)) + override fun getName(index: Int) = Name.guessByFirstCharacter(strings.getString(index)) override fun getClassId(index: Int): ClassId { val (packageFqNameSegments, relativeClassNameSegments, isLocal) = traverseIds(index) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KDeclarationContainerImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KDeclarationContainerImpl.kt index 2c54a8c73a3..2870e75d4ae 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KDeclarationContainerImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KDeclarationContainerImpl.kt @@ -102,7 +102,7 @@ internal abstract class KDeclarationContainerImpl : ClassBasedDeclarationContain } fun findPropertyDescriptor(name: String, signature: String): PropertyDescriptor { - val properties = getProperties(Name.guess(name)) + val properties = getProperties(Name.identifier(name)) .filter { descriptor -> descriptor is PropertyDescriptor && RuntimeTypeMapper.mapPropertySignature(descriptor).asString() == signature @@ -120,7 +120,7 @@ internal abstract class KDeclarationContainerImpl : ClassBasedDeclarationContain } fun findFunctionDescriptor(name: String, signature: String): FunctionDescriptor { - val functions = (if (name == "") constructorDescriptors.toList() else getFunctions(Name.guess(name))) + val functions = (if (name == "") constructorDescriptors.toList() else getFunctions(Name.identifier(name))) .filter { descriptor -> RuntimeTypeMapper.mapSignature(descriptor).asString() == signature } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt index fd52397ec60..e92ed3e38ed 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt @@ -89,7 +89,7 @@ class MoveMemberToCompanionObjectIntention : SelfTargetingRangeIntention substituteReferences(defaultValueForCall, parameter.defaultValueParameterReferences, psiFactory) else -> null } - val argName = (if (isInsideOfCallerBody) null else name)?.let { Name.guess(it) } + val argName = (if (isInsideOfCallerBody) null else name)?.let { Name.identifier(it) } return psiFactory.createArgument(argValue ?: psiFactory.createExpression("0"), argName).apply { generatedArgumentValue = true if (argValue == null) { @@ -357,7 +357,7 @@ class KotlinFunctionCallUsage( for (argInfo in newArgumentInfos) { if (argInfo.shouldSkip()) continue - val name = argInfo.name?.let { Name.guess(it) } + val name = argInfo.name?.let { Name.identifier(it) } if (argInfo.receiverValue != null) { val receiverExpression = getReceiverExpression(argInfo.receiverValue, psiFactory) ?: continue diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt index 71c3b34304e..4ea33a82574 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinOverridingMethodReferenceSearcher.kt @@ -49,7 +49,7 @@ class KotlinOverridingMethodReferenceSearcher : MethodUsagesSearcher() { .restrictToKotlinSources() if (searchScope === GlobalSearchScope.EMPTY_SCOPE) return@runReadActionInSmartMode - for (name in getPropertyNamesCandidatesByAccessorName(Name.guess(method.name))) { + for (name in getPropertyNamesCandidatesByAccessorName(Name.identifier(method.name))) { p.optimizer.searchWord( name.asString(), searchScope, diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/patterns/NamePredicate.java b/js/js.frontend/src/org/jetbrains/kotlin/js/patterns/NamePredicate.java index 2732e315a15..70acc595d60 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/patterns/NamePredicate.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/patterns/NamePredicate.java @@ -77,7 +77,7 @@ public final class NamePredicate implements Predicate { public NamePredicate(@NotNull List validNames) { for (String validName : validNames) { - this.validNames.add(Name.guess(validName)); + this.validNames.add(Name.guessByFirstCharacter(validName)); } } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java index 4495553fb0f..1f503498ac4 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java @@ -146,7 +146,7 @@ public final class StandardClasses { @NotNull String javascriptName) { JsObjectScope classScope = scopeMap.get(fullQualifiedClassName); assert classScope != null; - FqNameUnsafe fullQualifiedMethodName = fullQualifiedClassName.child(Name.guess(shortMethodName)); + FqNameUnsafe fullQualifiedMethodName = fullQualifiedClassName.child(Name.guessByFirstCharacter(shortMethodName)); standardObjects.put(fullQualifiedMethodName, classScope.declareName(javascriptName)); }