Fix for canBeResolvedViaImport: check isExtension earlier
This commit fixes mistake in d202e96e and fixes broken tests
Related to KT-29713
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.references
|
package org.jetbrains.kotlin.idea.references
|
||||||
|
|
||||||
import com.intellij.ide.scratch.ScratchUtil
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.unwrapped
|
import org.jetbrains.kotlin.asJava.unwrapped
|
||||||
import org.jetbrains.kotlin.builtins.isExtensionFunctionType
|
import org.jetbrains.kotlin.builtins.isExtensionFunctionType
|
||||||
@@ -264,13 +263,13 @@ fun KtExpression.readWriteAccessWithFullExpression(useResolveForReadWrite: Boole
|
|||||||
|
|
||||||
fun KtReference.canBeResolvedViaImport(target: DeclarationDescriptor, bindingContext: BindingContext): Boolean {
|
fun KtReference.canBeResolvedViaImport(target: DeclarationDescriptor, bindingContext: BindingContext): Boolean {
|
||||||
if (this is KDocReference) return element.getQualifiedName().size == 1
|
if (this is KDocReference) return element.getQualifiedName().size == 1
|
||||||
val referenceExpression = this.element as? KtNameReferenceExpression ?: return false
|
return element.canBeResolvedViaImport(target, bindingContext)
|
||||||
return referenceExpression.canBeResolvedViaImport(target, bindingContext)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun KtSimpleNameExpression.canBeResolvedViaImport(target: DeclarationDescriptor, bindingContext: BindingContext): Boolean {
|
fun KtElement.canBeResolvedViaImport(target: DeclarationDescriptor, bindingContext: BindingContext): Boolean {
|
||||||
if (!target.canBeReferencedViaImport()) return false
|
if (!target.canBeReferencedViaImport()) return false
|
||||||
if (target.isExtension) return true // assume that any type of reference can use imports when resolved to extension
|
if (target.isExtension) return true // assume that any type of reference can use imports when resolved to extension
|
||||||
|
if (this !is KtNameReferenceExpression) return false
|
||||||
|
|
||||||
val callTypeAndReceiver = CallTypeAndReceiver.detect(this)
|
val callTypeAndReceiver = CallTypeAndReceiver.detect(this)
|
||||||
if (callTypeAndReceiver.receiver != null) {
|
if (callTypeAndReceiver.receiver != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user