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) {
|
val callable: KtCallableDeclaration? = when (this) {
|
||||||
is KtNamedFunction, is KtProperty -> this as KtCallableDeclaration
|
is KtNamedFunction, is KtProperty -> this as KtCallableDeclaration
|
||||||
is KtPropertyAccessor -> getNonStrictParentOfType<KtProperty>()
|
is KtPropertyAccessor -> getNonStrictParentOfType<KtProperty>()
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import com.intellij.refactoring.util.MoveRenameUsageInfo
|
|||||||
import com.intellij.refactoring.util.NonCodeUsageInfo
|
import com.intellij.refactoring.util.NonCodeUsageInfo
|
||||||
import com.intellij.usageView.UsageInfo
|
import com.intellij.usageView.UsageInfo
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
|
import com.intellij.util.containers.ContainerUtil
|
||||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||||
import org.jetbrains.kotlin.asJava.unwrapped
|
import org.jetbrains.kotlin.asJava.unwrapped
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
@@ -93,7 +94,7 @@ public fun KtElement.getInternalReferencesToUpdateOnPackageNameChange(packageNam
|
|||||||
val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(getProject(), descriptor) ?: return null
|
val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(getProject(), descriptor) ?: return null
|
||||||
|
|
||||||
val isCallable = descriptor is CallableDescriptor
|
val isCallable = descriptor is CallableDescriptor
|
||||||
val isExtension = isCallable && (descriptor as CallableDescriptor).getExtensionReceiverParameter() != null
|
val isExtension = isCallable && declaration.isExtensionDeclaration()
|
||||||
|
|
||||||
if (isCallable && !isExtension) {
|
if (isCallable && !isExtension) {
|
||||||
val containingDescriptor = descriptor.getContainingDeclaration()
|
val containingDescriptor = descriptor.getContainingDeclaration()
|
||||||
|
|||||||
Reference in New Issue
Block a user