Move: Detect extension declaration by PSI instead of descriptor as extension descriptor maybe wrapper for Java method
#KT-10203 Fixed
This commit is contained in:
@@ -316,7 +316,7 @@ public fun KtClassOrObject.effectiveDeclarations(): List<KtDeclaration> {
|
||||
}
|
||||
}
|
||||
|
||||
public fun KtDeclaration.isExtensionDeclaration(): Boolean {
|
||||
public fun PsiElement.isExtensionDeclaration(): Boolean {
|
||||
val callable: KtCallableDeclaration? = when (this) {
|
||||
is KtNamedFunction, is KtProperty -> this as KtCallableDeclaration
|
||||
is KtPropertyAccessor -> getNonStrictParentOfType<KtProperty>()
|
||||
|
||||
@@ -38,6 +38,7 @@ import com.intellij.refactoring.util.MoveRenameUsageInfo
|
||||
import com.intellij.refactoring.util.NonCodeUsageInfo
|
||||
import com.intellij.usageView.UsageInfo
|
||||
import com.intellij.util.IncorrectOperationException
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
@@ -93,7 +94,7 @@ public fun KtElement.getInternalReferencesToUpdateOnPackageNameChange(packageNam
|
||||
val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(getProject(), descriptor) ?: return null
|
||||
|
||||
val isCallable = descriptor is CallableDescriptor
|
||||
val isExtension = isCallable && (descriptor as CallableDescriptor).getExtensionReceiverParameter() != null
|
||||
val isExtension = isCallable && declaration.isExtensionDeclaration()
|
||||
|
||||
if (isCallable && !isExtension) {
|
||||
val containingDescriptor = descriptor.getContainingDeclaration()
|
||||
|
||||
Reference in New Issue
Block a user