Changed String to Name

This commit is contained in:
Valentin Kipyatkov
2016-09-30 01:26:03 +03:00
parent 17adee68cd
commit 769943061e
11 changed files with 32 additions and 24 deletions
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.references.KtMultiReference
import org.jetbrains.kotlin.kdoc.psi.impl.KDocLink
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.resolve.BindingContext
@@ -54,5 +55,5 @@ class KDocReference(element: KDocName): KtMultiReference<KDocName>(element) {
override fun getCanonicalText(): String = element.getNameText()
override val resolvesByNames: Collection<String> get() = listOf(element.getNameText())
override val resolvesByNames: Collection<Name> get() = listOf(Name.identifier(element.getNameText()))
}
@@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.lexer.KtTokens;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.KtArrayAccessExpression;
import org.jetbrains.kotlin.psi.KtContainerNode;
import org.jetbrains.kotlin.resolve.BindingContext;
@@ -100,11 +101,11 @@ public class KtArrayAccessReference extends KtSimpleReference<KtArrayAccessExpre
return ReferenceUtilKt.renameImplicitConventionalCall(this, newElementName);
}
private static final List<String> NAMES = Lists.newArrayList(OperatorNameConventions.GET.getIdentifier(), OperatorNameConventions.SET.getIdentifier());
private static final List<Name> NAMES = Lists.newArrayList(OperatorNameConventions.GET, OperatorNameConventions.SET);
@NotNull
@Override
public Collection<String> getResolvesByNames() {
public Collection<Name> getResolvesByNames() {
return NAMES;
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.references;
import com.intellij.openapi.util.TextRange;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.KtConstructorDelegationReferenceExpression;
import java.util.Collection;
@@ -35,7 +36,7 @@ public class KtConstructorDelegationReference extends KtSimpleReference<KtConstr
@NotNull
@Override
public Collection<String> getResolvesByNames() {
public Collection<Name> getResolvesByNames() {
return Collections.emptyList();
}
}
@@ -22,6 +22,7 @@ import com.intellij.util.IncorrectOperationException
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtDestructuringDeclaration
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
import org.jetbrains.kotlin.resolve.BindingContext
@@ -44,9 +45,9 @@ class KtDestructuringDeclarationReference(element: KtDestructuringDeclarationEnt
throw IncorrectOperationException()
}
override val resolvesByNames: Collection<String>
override val resolvesByNames: Collection<Name>
get() {
val componentIndex = (element.parent as KtDestructuringDeclaration).entries.indexOf(element) + 1
return listOf("component$componentIndex")
return listOf(Name.identifier("component$componentIndex"))
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.references
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtForExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.util.OperatorNameConventions
@@ -36,7 +37,7 @@ class KtForLoopInReference(element: KtForExpression) : KtMultiReference<KtForExp
return LOOP_RANGE_KEYS.mapNotNull { key -> context.get(key, loopRange)?.candidateDescriptor }
}
override val resolvesByNames: Collection<String>
override val resolvesByNames: Collection<Name>
get() = NAMES
companion object {
@@ -47,9 +48,9 @@ class KtForLoopInReference(element: KtForExpression) : KtMultiReference<KtForExp
)
private val NAMES = listOf(
OperatorNameConventions.ITERATOR.identifier,
OperatorNameConventions.NEXT.identifier,
OperatorNameConventions.HAS_NEXT.identifier
OperatorNameConventions.ITERATOR,
OperatorNameConventions.NEXT,
OperatorNameConventions.HAS_NEXT
)
}
}
@@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.lexer.KtTokens;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilKt;
@@ -115,11 +116,11 @@ public class KtInvokeFunctionReference extends KtSimpleReference<KtCallExpressio
return ReferenceUtilKt.renameImplicitConventionalCall(this, newElementName);
}
private static final List<String> NAMES = Lists.newArrayList(OperatorNameConventions.INVOKE.getIdentifier());
private static final List<Name> NAMES = Lists.newArrayList(OperatorNameConventions.INVOKE);
@NotNull
@Override
public Collection<String> getResolvesByNames() {
public Collection<Name> getResolvesByNames() {
return NAMES;
}
}
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.references
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.KtPropertyDelegate
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
@@ -42,9 +43,9 @@ class KtPropertyDelegationMethodsReference(element: KtPropertyDelegate) : KtMult
} + listOfNotNull(context.get(BindingContext.DELEGATED_PROPERTY_PD_RESOLVED_CALL, descriptor)?.candidateDescriptor))
}
override val resolvesByNames: Collection<String> get() = NAMES
override val resolvesByNames: Collection<Name> get() = NAMES
companion object {
private val NAMES = listOf(OperatorNameConventions.GET_VALUE.identifier, OperatorNameConventions.SET_VALUE.identifier)
private val NAMES = listOf(OperatorNameConventions.GET_VALUE, OperatorNameConventions.SET_VALUE)
}
}
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtReferenceExpression
import org.jetbrains.kotlin.resolve.BindingContext
@@ -35,7 +36,7 @@ interface KtReference : PsiPolyVariantReference {
override fun getElement(): KtElement
val resolvesByNames: Collection<String>
val resolvesByNames: Collection<Name>
}
abstract class AbstractKtReference<T : KtElement>(element: T)
@@ -205,7 +205,7 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
override fun getCanonicalText(): String = expression.text
override val resolvesByNames: Collection<String>
override val resolvesByNames: Collection<Name>
get() {
val element = element
@@ -213,11 +213,11 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
val tokenType = element.operationSignTokenType
if (tokenType != null) {
val name = OperatorConventions.getNameForOperationSymbol(
tokenType, element.parent is KtUnaryExpression, element.parent is KtBinaryExpression)?.asString()
tokenType, element.parent is KtUnaryExpression, element.parent is KtBinaryExpression)
if (name != null) { // can it be null ever?
val counterpart = OperatorConventions.ASSIGNMENT_OPERATION_COUNTERPARTS[tokenType]
if (counterpart != null) {
val counterpartName = OperatorConventions.getNameForOperationSymbol(counterpart, false, true)!!.asString()
val counterpartName = OperatorConventions.getNameForOperationSymbol(counterpart, false, true)!!
return listOf(name, counterpartName)
}
else {
@@ -227,6 +227,6 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
}
}
return listOf(element.getReferencedName())
return listOf(element.getReferencedNameAsName())
}
}
@@ -74,8 +74,8 @@ sealed class SyntheticPropertyAccessorReference(expression: KtNameReferenceExpre
return renameByPropertyName(newName.identifier)
}
override val resolvesByNames: Collection<String>
get() = listOf(element.getReferencedName())
override val resolvesByNames: Collection<Name>
get() = listOf(element.getReferencedNameAsName())
class Getter(expression: KtNameReferenceExpression) : SyntheticPropertyAccessorReference(expression, true)
class Setter(expression: KtNameReferenceExpression) : SyntheticPropertyAccessorReference(expression, false)
@@ -97,7 +97,7 @@ class KotlinImportOptimizer() : ImportOptimizer {
val targets = reference.targets(bindingContext)
for (target in targets) {
val importableDescriptor = target.getImportableDescriptor()
if (importableDescriptor.name.asString() !in names) continue // resolved via alias
if (importableDescriptor.name !in names) continue // resolved via alias
val importableFqName = target.importableFqName ?: continue
val parentFqName = importableFqName.parent()
@@ -153,10 +153,10 @@ class KotlinImportOptimizer() : ImportOptimizer {
if (reference is KtInvokeFunctionReference) {
val additionalNames = (reference.element.calleeExpression as? KtNameReferenceExpression)?.mainReference?.resolvesByNames
if (additionalNames != null) {
return (resolvesByNames + additionalNames).map { Name.identifier(it) }
return resolvesByNames + additionalNames
}
}
return resolvesByNames.map { Name.identifier(it) }
return resolvesByNames
}
override fun resolve(bindingContext: BindingContext) = reference.resolveToDescriptors(bindingContext)