Remove some usages of Name.guess (and rename this utility to discourage new usages)

This commit is contained in:
Pavel V. Talanov
2016-02-11 14:36:59 +03:00
parent 47ceb106c7
commit 1800e5a7db
13 changed files with 23 additions and 30 deletions
@@ -168,7 +168,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass {
@Override @Override
public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitArray(String name) { 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) { return arv == null ? null : new org.jetbrains.org.objectweb.asm.AnnotationVisitor(ASM5) {
@Override @Override
public void visit(String name, @NotNull Object value) { public void visit(String name, @NotNull Object value) {
@@ -189,7 +189,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass {
@Override @Override
public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitAnnotation(String name, @NotNull String desc) { 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); return arv == null ? null : convertAnnotationVisitor(arv, innerClasses);
} }
@@ -210,7 +210,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass {
new ClassReader(getFileContents()).accept(new ClassVisitor(ASM5) { new ClassReader(getFileContents()).accept(new ClassVisitor(ASM5) {
@Override @Override
public FieldVisitor visitField(int access, @NotNull String name, @NotNull String desc, String signature, Object value) { 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; if (v == null) return null;
return new FieldVisitor(ASM5) { return new FieldVisitor(ASM5) {
@@ -228,7 +228,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass {
@Override @Override
public MethodVisitor visitMethod(int access, @NotNull String name, @NotNull String desc, String signature, String[] exceptions) { 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; if (v == null) return null;
return new MethodVisitor(ASM5) { return new MethodVisitor(ASM5) {
@@ -19,11 +19,8 @@ package org.jetbrains.kotlin.psi
import com.intellij.lang.ASTNode import com.intellij.lang.ASTNode
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.tree.IElementType 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.Name
import org.jetbrains.kotlin.name.SpecialNames 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.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.psi.stubs.KotlinEnumEntrySuperclassReferenceExpressionStub import org.jetbrains.kotlin.psi.stubs.KotlinEnumEntrySuperclassReferenceExpressionStub
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
@@ -57,7 +54,7 @@ class KtEnumEntrySuperclassReferenceExpression :
} }
override fun getReferencedNameAsName(): Name { 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 { override fun getReferencedNameElement(): PsiElement {
@@ -22,9 +22,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.NameResolver import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf 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
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.DESC_TO_CLASS_ID import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.*
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 java.util.* import java.util.*
class JvmNameResolver( class JvmNameResolver(
@@ -85,7 +83,7 @@ class JvmNameResolver(
return string 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 { override fun getClassId(index: Int): ClassId {
val string = getString(index) val string = getString(index)
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.load.java.structure.reflect
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter import org.jetbrains.kotlin.load.java.structure.JavaValueParameter
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.Name.guess
class ReflectJavaValueParameter( class ReflectJavaValueParameter(
private val returnType: ReflectJavaType, private val returnType: ReflectJavaType,
@@ -33,7 +32,7 @@ class ReflectJavaValueParameter(
override fun isDeprecatedInJavaDoc() = false override fun isDeprecatedInJavaDoc() = false
override fun getName() = name?.let(Name::guess) override fun getName() = name?.let(Name::guessByFirstCharacter)
override fun getType() = returnType override fun getType() = returnType
override fun isVararg() = isVararg override fun isVararg() = isVararg
@@ -62,11 +62,11 @@ public final class FqNameUnsafe {
private void compute() { private void compute() {
int lastDot = fqName.lastIndexOf('.'); int lastDot = fqName.lastIndexOf('.');
if (lastDot >= 0) { if (lastDot >= 0) {
shortName = Name.guess(fqName.substring(lastDot + 1)); shortName = Name.guessByFirstCharacter(fqName.substring(lastDot + 1));
parent = new FqNameUnsafe(fqName.substring(0, lastDot)); parent = new FqNameUnsafe(fqName.substring(0, lastDot));
} }
else { else {
shortName = Name.guess(fqName); shortName = Name.guessByFirstCharacter(fqName);
parent = FqName.ROOT.toUnsafe(); parent = FqName.ROOT.toUnsafe();
} }
} }
@@ -151,7 +151,7 @@ public final class FqNameUnsafe {
ArraysKt.map(fqName.split("\\."), new Function1<String, Name>() { ArraysKt.map(fqName.split("\\."), new Function1<String, Name>() {
@Override @Override
public Name invoke(String name) { public Name invoke(String name) {
return Name.guess(name); return Name.guessByFirstCharacter(name);
} }
}); });
} }
@@ -67,9 +67,8 @@ public final class Name implements Comparable<Name> {
return new Name(name, true); return new Name(name, true);
} }
// TODO: wrong
@NotNull @NotNull
public static Name guess(@NotNull String name) { public static Name guessByFirstCharacter(@NotNull String name) {
if (name.startsWith("<")) { if (name.startsWith("<")) {
return special(name); return special(name);
} }
@@ -31,7 +31,7 @@ class NameResolverImpl(
override fun getString(index: Int) = strings.getString(index) 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 { override fun getClassId(index: Int): ClassId {
val (packageFqNameSegments, relativeClassNameSegments, isLocal) = traverseIds(index) val (packageFqNameSegments, relativeClassNameSegments, isLocal) = traverseIds(index)
@@ -102,7 +102,7 @@ internal abstract class KDeclarationContainerImpl : ClassBasedDeclarationContain
} }
fun findPropertyDescriptor(name: String, signature: String): PropertyDescriptor { fun findPropertyDescriptor(name: String, signature: String): PropertyDescriptor {
val properties = getProperties(Name.guess(name)) val properties = getProperties(Name.identifier(name))
.filter { descriptor -> .filter { descriptor ->
descriptor is PropertyDescriptor && descriptor is PropertyDescriptor &&
RuntimeTypeMapper.mapPropertySignature(descriptor).asString() == signature RuntimeTypeMapper.mapPropertySignature(descriptor).asString() == signature
@@ -120,7 +120,7 @@ internal abstract class KDeclarationContainerImpl : ClassBasedDeclarationContain
} }
fun findFunctionDescriptor(name: String, signature: String): FunctionDescriptor { fun findFunctionDescriptor(name: String, signature: String): FunctionDescriptor {
val functions = (if (name == "<init>") constructorDescriptors.toList() else getFunctions(Name.guess(name))) val functions = (if (name == "<init>") constructorDescriptors.toList() else getFunctions(Name.identifier(name)))
.filter { descriptor -> .filter { descriptor ->
RuntimeTypeMapper.mapSignature(descriptor).asString() == signature RuntimeTypeMapper.mapSignature(descriptor).asString() == signature
} }
@@ -89,7 +89,7 @@ class MoveMemberToCompanionObjectIntention : SelfTargetingRangeIntention<KtNamed
val companionDescriptor = containingClassDescriptor.companionObjectDescriptor val companionDescriptor = containingClassDescriptor.companionObjectDescriptor
val companionMemberScope = (companionDescriptor ?: containingClassDescriptor).scopeForMemberDeclarationResolution val companionMemberScope = (companionDescriptor ?: containingClassDescriptor).scopeForMemberDeclarationResolution
val validator = CollectingNameValidator(element.getValueParameters().mapNotNull { it.name }) { val validator = CollectingNameValidator(element.getValueParameters().mapNotNull { it.name }) {
companionMemberScope.getContributedVariables(Name.guess(it), NoLookupLocation.FROM_IDE).isEmpty() companionMemberScope.getContributedVariables(Name.identifier(it), NoLookupLocation.FROM_IDE).isEmpty()
} }
return KotlinNameSuggester.suggestNamesByType(containingClassDescriptor.defaultType, validator, "receiver") return KotlinNameSuggester.suggestNamesByType(containingClassDescriptor.defaultType, validator, "receiver")
} }
@@ -27,12 +27,12 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet
import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParentheses import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParentheses
import org.jetbrains.kotlin.idea.core.replaced import org.jetbrains.kotlin.idea.core.replaced
import org.jetbrains.kotlin.idea.refactoring.replaceListPsiAndKeepDelimiters
import org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo import org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo
import org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinParameterInfo import org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinParameterInfo
import org.jetbrains.kotlin.idea.refactoring.changeSignature.isInsideOfCallerBody import org.jetbrains.kotlin.idea.refactoring.changeSignature.isInsideOfCallerBody
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.createNameCounterpartMap import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.createNameCounterpartMap
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceVariable.KotlinIntroduceVariableHandler import org.jetbrains.kotlin.idea.refactoring.introduce.introduceVariable.KotlinIntroduceVariableHandler
import org.jetbrains.kotlin.idea.refactoring.replaceListPsiAndKeepDelimiters
import org.jetbrains.kotlin.idea.util.ShortenReferences import org.jetbrains.kotlin.idea.util.ShortenReferences
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
@@ -47,8 +47,8 @@ import org.jetbrains.kotlin.resolve.calls.model.*
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
import org.jetbrains.kotlin.types.expressions.OperatorConventions import org.jetbrains.kotlin.types.expressions.OperatorConventions
import org.jetbrains.kotlin.utils.sure import org.jetbrains.kotlin.utils.sure
@@ -289,7 +289,7 @@ class KotlinFunctionCallUsage(
defaultValueForCall != null -> substituteReferences(defaultValueForCall, parameter.defaultValueParameterReferences, psiFactory) defaultValueForCall != null -> substituteReferences(defaultValueForCall, parameter.defaultValueParameterReferences, psiFactory)
else -> null 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 { return psiFactory.createArgument(argValue ?: psiFactory.createExpression("0"), argName).apply {
generatedArgumentValue = true generatedArgumentValue = true
if (argValue == null) { if (argValue == null) {
@@ -357,7 +357,7 @@ class KotlinFunctionCallUsage(
for (argInfo in newArgumentInfos) { for (argInfo in newArgumentInfos) {
if (argInfo.shouldSkip()) continue if (argInfo.shouldSkip()) continue
val name = argInfo.name?.let { Name.guess(it) } val name = argInfo.name?.let { Name.identifier(it) }
if (argInfo.receiverValue != null) { if (argInfo.receiverValue != null) {
val receiverExpression = getReceiverExpression(argInfo.receiverValue, psiFactory) ?: continue val receiverExpression = getReceiverExpression(argInfo.receiverValue, psiFactory) ?: continue
@@ -49,7 +49,7 @@ class KotlinOverridingMethodReferenceSearcher : MethodUsagesSearcher() {
.restrictToKotlinSources() .restrictToKotlinSources()
if (searchScope === GlobalSearchScope.EMPTY_SCOPE) return@runReadActionInSmartMode 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( p.optimizer.searchWord(
name.asString(), name.asString(),
searchScope, searchScope,
@@ -77,7 +77,7 @@ public final class NamePredicate implements Predicate<Name> {
public NamePredicate(@NotNull List<String> validNames) { public NamePredicate(@NotNull List<String> validNames) {
for (String validName : validNames) { for (String validName : validNames) {
this.validNames.add(Name.guess(validName)); this.validNames.add(Name.guessByFirstCharacter(validName));
} }
} }
@@ -146,7 +146,7 @@ public final class StandardClasses {
@NotNull String javascriptName) { @NotNull String javascriptName) {
JsObjectScope classScope = scopeMap.get(fullQualifiedClassName); JsObjectScope classScope = scopeMap.get(fullQualifiedClassName);
assert classScope != null; assert classScope != null;
FqNameUnsafe fullQualifiedMethodName = fullQualifiedClassName.child(Name.guess(shortMethodName)); FqNameUnsafe fullQualifiedMethodName = fullQualifiedClassName.child(Name.guessByFirstCharacter(shortMethodName));
standardObjects.put(fullQualifiedMethodName, classScope.declareName(javascriptName)); standardObjects.put(fullQualifiedMethodName, classScope.declareName(javascriptName));
} }