diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/kdoc/KDocReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/kdoc/KDocReference.kt index 6b85d621f76..809800cec15 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/kdoc/KDocReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/kdoc/KDocReference.kt @@ -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(element) { override fun getCanonicalText(): String = element.getNameText() - override val resolvesByNames: Collection get() = listOf(element.getNameText()) + override val resolvesByNames: Collection get() = listOf(Name.identifier(element.getNameText())) } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtArrayAccessReference.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtArrayAccessReference.java index e760789c39d..61420f9087a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtArrayAccessReference.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtArrayAccessReference.java @@ -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 NAMES = Lists.newArrayList(OperatorNameConventions.GET.getIdentifier(), OperatorNameConventions.SET.getIdentifier()); + private static final List NAMES = Lists.newArrayList(OperatorNameConventions.GET, OperatorNameConventions.SET); @NotNull @Override - public Collection getResolvesByNames() { + public Collection getResolvesByNames() { return NAMES; } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtConstructorDelegationReference.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtConstructorDelegationReference.java index c78e8bb699f..5ad83e1cdda 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtConstructorDelegationReference.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtConstructorDelegationReference.java @@ -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 getResolvesByNames() { + public Collection getResolvesByNames() { return Collections.emptyList(); } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtDestructuringDeclarationReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtDestructuringDeclarationReference.kt index b416b3b780f..302cc71c238 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtDestructuringDeclarationReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtDestructuringDeclarationReference.kt @@ -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 + override val resolvesByNames: Collection get() { val componentIndex = (element.parent as KtDestructuringDeclaration).entries.indexOf(element) + 1 - return listOf("component$componentIndex") + return listOf(Name.identifier("component$componentIndex")) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtForLoopInReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtForLoopInReference.kt index 62c84672ffd..1556989c966 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtForLoopInReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtForLoopInReference.kt @@ -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 context.get(key, loopRange)?.candidateDescriptor } } - override val resolvesByNames: Collection + override val resolvesByNames: Collection get() = NAMES companion object { @@ -47,9 +48,9 @@ class KtForLoopInReference(element: KtForExpression) : KtMultiReference NAMES = Lists.newArrayList(OperatorNameConventions.INVOKE.getIdentifier()); + private static final List NAMES = Lists.newArrayList(OperatorNameConventions.INVOKE); @NotNull @Override - public Collection getResolvesByNames() { + public Collection getResolvesByNames() { return NAMES; } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtPropertyDelegationMethodsReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtPropertyDelegationMethodsReference.kt index 59ffb3c1e50..65abe59dcda 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtPropertyDelegationMethodsReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtPropertyDelegationMethodsReference.kt @@ -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 get() = NAMES + override val resolvesByNames: Collection 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) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtReference.kt index 11cac926d8d..96f5abaf105 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtReference.kt @@ -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 + val resolvesByNames: Collection } abstract class AbstractKtReference(element: T) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtSimpleNameReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtSimpleNameReference.kt index 36c68ab9971..633e5b3a1e0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtSimpleNameReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/KtSimpleNameReference.kt @@ -205,7 +205,7 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere override fun getCanonicalText(): String = expression.text - override val resolvesByNames: Collection + override val resolvesByNames: Collection 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()) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/SyntheticPropertyAccessorReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/SyntheticPropertyAccessorReference.kt index 0b3210d5a6d..5a336fbc8f6 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/SyntheticPropertyAccessorReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/SyntheticPropertyAccessorReference.kt @@ -74,8 +74,8 @@ sealed class SyntheticPropertyAccessorReference(expression: KtNameReferenceExpre return renameByPropertyName(newName.identifier) } - override val resolvesByNames: Collection - get() = listOf(element.getReferencedName()) + override val resolvesByNames: Collection + get() = listOf(element.getReferencedNameAsName()) class Getter(expression: KtNameReferenceExpression) : SyntheticPropertyAccessorReference(expression, true) class Setter(expression: KtNameReferenceExpression) : SyntheticPropertyAccessorReference(expression, false) diff --git a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt index f88b31c3c4b..b76714e97f3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt @@ -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)