Renamed object and its methods.

This commit is contained in:
Evgeny Gerashchenko
2015-03-03 19:14:13 +03:00
parent 6982757700
commit 6ee4d92f36
26 changed files with 63 additions and 65 deletions
@@ -29,13 +29,19 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.*
import java.util.* import java.util.*
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
// TODO rename it it DescriptorToSourceIde public object DescriptorToSourceUtilsIde {
public object DescriptorToDeclarationUtil { public fun getAnyDeclaration(project: Project, descriptor: DeclarationDescriptor): PsiElement? {
public fun getDeclaration(project: Project, descriptor: DeclarationDescriptor): PsiElement? { return getDeclarationsStream(project, descriptor).firstOrNull()
return getPsiElementsStream(project, descriptor).firstOrNull()
} }
private fun getPsiElementsStream(project: Project, targetDescriptor: DeclarationDescriptor): Stream<PsiElement> { public fun getAllDeclarations(project: Project, targetDescriptor: DeclarationDescriptor): Collection<PsiElement> {
val result = getDeclarationsStream(project, targetDescriptor).toHashSet()
// filter out elements which are navigate to some other element of the result
// this is needed to avoid duplicated results for references to declaration in same library source file
return result.filter { element -> result.none { element != it && it.getNavigationElement() == element } }
}
private fun getDeclarationsStream(project: Project, targetDescriptor: DeclarationDescriptor): Stream<PsiElement> {
val effectiveReferencedDescriptors = DescriptorToSourceUtils.getEffectiveReferencedDescriptors(targetDescriptor).stream() val effectiveReferencedDescriptors = DescriptorToSourceUtils.getEffectiveReferencedDescriptors(targetDescriptor).stream()
return effectiveReferencedDescriptors.flatMap { return effectiveReferencedDescriptors.flatMap {
streamOf( streamOf(
@@ -46,13 +52,6 @@ public object DescriptorToDeclarationUtil {
}.filterNotNull() }.filterNotNull()
} }
public fun resolveToPsiElements(project: Project, targetDescriptor: DeclarationDescriptor): Collection<PsiElement> {
val result = getPsiElementsStream(project, targetDescriptor).toHashSet()
// filter out elements which are navigate to some other element of the result
// this is needed to avoid duplicated results for references to declaration in same library source file
return result.filter { element -> result.none { element != it && it.getNavigationElement() == element } }
}
private fun findBuiltinDeclaration(project: Project, descriptor: DeclarationDescriptor): PsiElement? { private fun findBuiltinDeclaration(project: Project, descriptor: DeclarationDescriptor): PsiElement? {
val libraryReferenceResolver = project.getComponent(javaClass<BuiltInsReferenceResolver>()) val libraryReferenceResolver = project.getComponent(javaClass<BuiltInsReferenceResolver>())
return libraryReferenceResolver!!.resolveBuiltInSymbol(descriptor) return libraryReferenceResolver!!.resolveBuiltInSymbol(descriptor)
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import java.util.Collections import java.util.Collections
import org.jetbrains.kotlin.psi.JetReferenceExpression import org.jetbrains.kotlin.psi.JetReferenceExpression
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.psi.JetElement
import org.jetbrains.kotlin.utils.keysToMap import org.jetbrains.kotlin.utils.keysToMap
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
@@ -101,7 +101,7 @@ public abstract class AbstractJetReference<T : JetElement>(element: T)
return psiFacade.findPackage(fqName).singletonOrEmptyList() return psiFacade.findPackage(fqName).singletonOrEmptyList()
} }
else { else {
return DescriptorToDeclarationUtil.resolveToPsiElements(expression.getProject(), targetDescriptor) return DescriptorToSourceUtilsIde.getAllDeclarations(expression.getProject(), targetDescriptor)
} }
} }
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.idea.structureView
import com.intellij.ide.util.InheritedMembersNodeProvider import com.intellij.ide.util.InheritedMembersNodeProvider
import com.intellij.ide.util.treeView.smartTree.TreeElement import com.intellij.ide.util.treeView.smartTree.TreeElement
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import java.util.ArrayList import java.util.ArrayList
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
@@ -51,7 +51,7 @@ public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider<Tr
when (memberDescriptor.getKind()) { when (memberDescriptor.getKind()) {
CallableMemberDescriptor.Kind.FAKE_OVERRIDE, CallableMemberDescriptor.Kind.FAKE_OVERRIDE,
CallableMemberDescriptor.Kind.DELEGATION -> { CallableMemberDescriptor.Kind.DELEGATION -> {
val superTypeMember = DescriptorToDeclarationUtil.getDeclaration(project, memberDescriptor) val superTypeMember = DescriptorToSourceUtilsIde.getAnyDeclaration(project, memberDescriptor)
if (superTypeMember is NavigatablePsiElement) { if (superTypeMember is NavigatablePsiElement) {
children.add(JetStructureViewElement(superTypeMember, memberDescriptor, true)) children.add(JetStructureViewElement(superTypeMember, memberDescriptor, true))
} }
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor; import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.Modality; import org.jetbrains.kotlin.descriptors.Modality;
import org.jetbrains.kotlin.idea.JetBundle; import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers; import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.idea.util.ShortenReferences; import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.psi.JetClass; import org.jetbrains.kotlin.psi.JetClass;
@@ -78,7 +78,7 @@ public class JetAddFunctionToClassifierAction implements QuestionAction {
PsiDocumentManager.getInstance(project).commitAllDocuments(); PsiDocumentManager.getInstance(project).commitAllDocuments();
final JetClass classifierDeclaration = (JetClass) DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(project, typeDescriptor); final JetClass classifierDeclaration = (JetClass) DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(project, typeDescriptor);
CommandProcessor.getInstance().executeCommand(project, new Runnable() { CommandProcessor.getInstance().executeCommand(project, new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -42,7 +42,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.idea.imports.importableFqNameSafe import org.jetbrains.kotlin.idea.imports.importableFqNameSafe
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
import org.jetbrains.kotlin.idea.JetDescriptorIconProvider import org.jetbrains.kotlin.idea.JetDescriptorIconProvider
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
/** /**
* Automatically adds import directive to the file for resolving reference. * Automatically adds import directive to the file for resolving reference.
@@ -64,7 +64,7 @@ public class JetAddImportAction(
} }
private fun detectPriority(descriptor: DeclarationDescriptor): Priority { private fun detectPriority(descriptor: DeclarationDescriptor): Priority {
val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor)
return when { return when {
declaration == null -> Priority.OTHER declaration == null -> Priority.OTHER
ModuleUtilCore.findModuleForPsiElement(declaration) == module -> Priority.MODULE ModuleUtilCore.findModuleForPsiElement(declaration) == module -> Priority.MODULE
@@ -90,7 +90,7 @@ public class JetAddImportAction(
} }
}.first() }.first()
} }
val declarationToImport = DescriptorToDeclarationUtil.getDeclaration(project, descriptorToImport) val declarationToImport = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptorToImport)
} }
private val variants = candidates private val variants = candidates
@@ -69,7 +69,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
) { ) {
List<DescriptorClassMember> members = new ArrayList<DescriptorClassMember>(); List<DescriptorClassMember> members = new ArrayList<DescriptorClassMember>();
for (CallableMemberDescriptor memberDescriptor : missingImplementations) { for (CallableMemberDescriptor memberDescriptor : missingImplementations) {
PsiElement declaration = DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(file.getProject(), memberDescriptor); PsiElement declaration = DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(file.getProject(), memberDescriptor);
if (declaration == null) { if (declaration == null) {
LOG.error("Can not find declaration for descriptor " + memberDescriptor); LOG.error("Can not find declaration for descriptor " + memberDescriptor);
} }
@@ -132,7 +132,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() {
if (getterDescriptor != null && !getterDescriptor.isDefault()) { if (getterDescriptor != null && !getterDescriptor.isDefault()) {
val delegatedResolvedCall = bindingContext[BindingContext.DELEGATED_PROPERTY_RESOLVED_CALL, getterDescriptor] val delegatedResolvedCall = bindingContext[BindingContext.DELEGATED_PROPERTY_RESOLVED_CALL, getterDescriptor]
if (delegatedResolvedCall == null) { if (delegatedResolvedCall == null) {
val getter = DescriptorToDeclarationUtil.getDeclaration(file.getProject(), getterDescriptor) val getter = DescriptorToSourceUtilsIde.getAnyDeclaration(file.getProject(), getterDescriptor)
if (getter is JetPropertyAccessor && (getter.getBodyExpression() != null || getter.getEqualsToken() != null)) { if (getter is JetPropertyAccessor && (getter.getBodyExpression() != null || getter.getEqualsToken() != null)) {
val psiMethod = LightClassUtil.getLightClassAccessorMethod(getter) val psiMethod = LightClassUtil.getLightClassAccessorMethod(getter)
if (psiMethod != null) { if (psiMethod != null) {
@@ -143,7 +143,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() {
else { else {
val delegatedPropertyGetterDescriptor = delegatedResolvedCall.getResultingDescriptor() val delegatedPropertyGetterDescriptor = delegatedResolvedCall.getResultingDescriptor()
if (delegatedPropertyGetterDescriptor is CallableMemberDescriptor) { if (delegatedPropertyGetterDescriptor is CallableMemberDescriptor) {
val function = DescriptorToDeclarationUtil.getDeclaration(file.getProject(), delegatedPropertyGetterDescriptor) val function = DescriptorToSourceUtilsIde.getAnyDeclaration(file.getProject(), delegatedPropertyGetterDescriptor)
if (function is JetNamedFunction) { if (function is JetNamedFunction) {
val psiMethod = LightClassUtil.getLightClassMethod(function) val psiMethod = LightClassUtil.getLightClassMethod(function)
if (psiMethod != null) { if (psiMethod != null) {
@@ -165,7 +165,7 @@ public class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() {
val descriptor = resolvedCall.getResultingDescriptor() val descriptor = resolvedCall.getResultingDescriptor()
if (descriptor is CallableMemberDescriptor) { if (descriptor is CallableMemberDescriptor) {
// TODO doesn't work for libraries // TODO doesn't work for libraries
val function = DescriptorToDeclarationUtil.getDeclaration(file.getProject(), descriptor) val function = DescriptorToSourceUtilsIde.getAnyDeclaration(file.getProject(), descriptor)
if (function is JetNamedFunction) { if (function is JetNamedFunction) {
val psiMethod = LightClassUtil.getLightClassMethod(function) val psiMethod = LightClassUtil.getLightClassMethod(function)
if (psiMethod != null) { if (psiMethod != null) {
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import com.intellij.psi.NavigatablePsiElement import com.intellij.psi.NavigatablePsiElement
import java.awt.event.MouseEvent import java.awt.event.MouseEvent
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator
import org.jetbrains.kotlin.idea.JetBundle import org.jetbrains.kotlin.idea.JetBundle
@@ -82,7 +82,7 @@ public class SuperDeclarationMarkerNavigationHandler : GutterIconNavigationHandl
val superDeclarations = ArrayList<NavigatablePsiElement>() val superDeclarations = ArrayList<NavigatablePsiElement>()
for (overriddenMember in overriddenDescriptors) { for (overriddenMember in overriddenDescriptors) {
val declarations = DescriptorToDeclarationUtil.resolveToPsiElements(element.getProject(), overriddenMember) val declarations = DescriptorToSourceUtilsIde.getAllDeclarations(element.getProject(), overriddenMember)
for (declaration in declarations) { for (declaration in declarations) {
if (declaration is NavigatablePsiElement) { if (declaration is NavigatablePsiElement) {
superDeclarations.add(declaration as NavigatablePsiElement) superDeclarations.add(declaration as NavigatablePsiElement)
@@ -58,7 +58,7 @@ import org.jetbrains.kotlin.psi.JetProperty
import org.jetbrains.kotlin.asJava.namedUnwrappedElement import org.jetbrains.kotlin.asJava.namedUnwrappedElement
import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict
import org.jetbrains.kotlin.idea.refactoring.getContainingScope import org.jetbrains.kotlin.idea.refactoring.getContainingScope
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.util.ShortenReferences import org.jetbrains.kotlin.idea.util.ShortenReferences
public class ConvertFunctionToPropertyIntention : JetSelfTargetingIntention<JetNamedFunction>( public class ConvertFunctionToPropertyIntention : JetSelfTargetingIntention<JetNamedFunction>(
@@ -128,7 +128,7 @@ public class ConvertFunctionToPropertyIntention : JetSelfTargetingIntention<JetN
callableDescriptor.getContainingScope(bindingContext) callableDescriptor.getContainingScope(bindingContext)
?.getProperties(callableDescriptor.getName()) ?.getProperties(callableDescriptor.getName())
?.firstOrNull() ?.firstOrNull()
?.let { DescriptorToDeclarationUtil.getDeclaration(project, it) } ?.let { DescriptorToSourceUtilsIde.getAnyDeclaration(project, it) }
?.let { reportDeclarationConflict(conflicts, it) { "$it already exists" } } ?.let { reportDeclarationConflict(conflicts, it) { "$it already exists" } }
} }
@@ -56,7 +56,7 @@ import org.jetbrains.kotlin.codegen.PropertyCodegen
import org.jetbrains.kotlin.asJava.namedUnwrappedElement import org.jetbrains.kotlin.asJava.namedUnwrappedElement
import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict
import org.jetbrains.kotlin.idea.refactoring.getContainingScope import org.jetbrains.kotlin.idea.refactoring.getContainingScope
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
public class ConvertPropertyToFunctionIntention : JetSelfTargetingIntention<JetProperty>( public class ConvertPropertyToFunctionIntention : JetSelfTargetingIntention<JetProperty>(
"convert.property.to.function.intention", javaClass() "convert.property.to.function.intention", javaClass()
@@ -110,7 +110,7 @@ public class ConvertPropertyToFunctionIntention : JetSelfTargetingIntention<JetP
callableDescriptor.getContainingScope(bindingContext) callableDescriptor.getContainingScope(bindingContext)
?.getFunctions(callableDescriptor.getName()) ?.getFunctions(callableDescriptor.getName())
?.firstOrNull { it.getValueParameters().isEmpty() } ?.firstOrNull { it.getValueParameters().isEmpty() }
?.let { DescriptorToDeclarationUtil.getDeclaration(project, it) } ?.let { DescriptorToSourceUtilsIde.getAnyDeclaration(project, it) }
?.let { reportDeclarationConflict(conflicts, it) { "$it already exists" } } ?.let { reportDeclarationConflict(conflicts, it) { "$it already exists" } }
} }
else if (callable is PsiMethod) { else if (callable is PsiMethod) {
@@ -50,7 +50,7 @@ import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor;
import org.jetbrains.kotlin.diagnostics.DiagnosticSink; import org.jetbrains.kotlin.diagnostics.DiagnosticSink;
import org.jetbrains.kotlin.idea.caches.resolve.KotlinCacheService; import org.jetbrains.kotlin.idea.caches.resolve.KotlinCacheService;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.util.InfinitePeriodicalTask; import org.jetbrains.kotlin.idea.util.InfinitePeriodicalTask;
import org.jetbrains.kotlin.idea.util.LongRunningReadTask; import org.jetbrains.kotlin.idea.util.LongRunningReadTask;
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil; import org.jetbrains.kotlin.idea.util.ProjectRootsUtil;
@@ -206,7 +206,7 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
if (descriptor instanceof SimpleFunctionDescriptor && if (descriptor instanceof SimpleFunctionDescriptor &&
((SimpleFunctionDescriptor) descriptor).getInlineStrategy().isInline()) { ((SimpleFunctionDescriptor) descriptor).getInlineStrategy().isInline()) {
PsiElement declaration = PsiElement declaration =
DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(project, descriptor); DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(project, descriptor);
if (declaration != null && declaration instanceof JetElement) { if (declaration != null && declaration instanceof JetElement) {
collectedElements.add((JetElement) declaration); collectedElements.add((JetElement) declaration);
} }
@@ -34,14 +34,13 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters2;
import org.jetbrains.kotlin.diagnostics.Errors; import org.jetbrains.kotlin.diagnostics.Errors;
import org.jetbrains.kotlin.idea.JetBundle; import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester; import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
import org.jetbrains.kotlin.idea.refactoring.JetNameValidator; import org.jetbrains.kotlin.idea.refactoring.JetNameValidator;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers; import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils;
import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.JetType;
import org.jetbrains.kotlin.types.checker.JetTypeChecker; import org.jetbrains.kotlin.types.checker.JetTypeChecker;
@@ -82,7 +81,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
return false; return false;
} }
Collection<PsiElement> declarations = DescriptorToDeclarationUtil.INSTANCE$.resolveToPsiElements(project, functionDescriptor); Collection<PsiElement> declarations = DescriptorToSourceUtilsIde.INSTANCE$.getAllDeclarations(project, functionDescriptor);
if (declarations.isEmpty()) { if (declarations.isEmpty()) {
return false; return false;
} }
@@ -22,7 +22,7 @@ import com.intellij.openapi.editor.Editor
import org.jetbrains.kotlin.idea.JetBundle import org.jetbrains.kotlin.idea.JetBundle
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.command.CommandProcessor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.psi.JetClassOrObject import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.idea.refactoring.chooseContainerElementIfNecessary import org.jetbrains.kotlin.idea.refactoring.chooseContainerElementIfNecessary
import org.jetbrains.kotlin.psi.JetClassBody import org.jetbrains.kotlin.psi.JetClassBody
@@ -54,7 +54,7 @@ public class CreateCallableFromUsageFix(
private fun getDeclarationIfApplicable(project: Project, candidate: TypeCandidate): PsiElement? { private fun getDeclarationIfApplicable(project: Project, candidate: TypeCandidate): PsiElement? {
val descriptor = candidate.theType.getConstructor().getDeclarationDescriptor() val descriptor = candidate.theType.getConstructor().getDeclarationDescriptor()
val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) ?: return null val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) ?: return null
if (declaration !is JetClassOrObject && declaration !is PsiClass) return null if (declaration !is JetClassOrObject && declaration !is PsiClass) return null
return if (isExtension || declaration.canRefactor()) declaration else null return if (isExtension || declaration.canRefactor()) declaration else null
} }
@@ -34,7 +34,7 @@ import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.quickfix.JetIntentionActionsFactory import org.jetbrains.kotlin.idea.quickfix.JetIntentionActionsFactory
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.idea.refactoring.* import org.jetbrains.kotlin.idea.refactoring.*
@@ -124,7 +124,7 @@ object CreateFunctionOrPropertyFromCallActionFactory : JetIntentionActionsFactor
if (qualifierType != null) return TypeInfo(qualifierType, Variance.IN_VARIANCE) if (qualifierType != null) return TypeInfo(qualifierType, Variance.IN_VARIANCE)
val classifier = receiver.classifier as? JavaClassDescriptor ?: return null val classifier = receiver.classifier as? JavaClassDescriptor ?: return null
val javaClass = DescriptorToDeclarationUtil.getDeclaration(project, classifier) as? PsiClass val javaClass = DescriptorToSourceUtilsIde.getAnyDeclaration(project, classifier) as? PsiClass
if (javaClass == null || !javaClass.canRefactor()) return null if (javaClass == null || !javaClass.canRefactor()) return null
TypeInfo.StaticContextRequired(TypeInfo(classifier.getDefaultType(), Variance.IN_VARIANCE)) TypeInfo.StaticContextRequired(TypeInfo(classifier.getDefaultType(), Variance.IN_VARIANCE))
} }
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import com.intellij.psi.JavaPsiFacade import com.intellij.psi.JavaPsiFacade
import org.jetbrains.kotlin.psi.JetExpression import org.jetbrains.kotlin.psi.JetExpression
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.guessTypes import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.guessTypes
@@ -61,7 +61,7 @@ private fun getTargetParentByQualifier(
!isQualified -> !isQualified ->
file file
qualifierDescriptor is ClassDescriptor -> qualifierDescriptor is ClassDescriptor ->
DescriptorToDeclarationUtil.getDeclaration(project, qualifierDescriptor) DescriptorToSourceUtilsIde.getAnyDeclaration(project, qualifierDescriptor)
qualifierDescriptor is PackageViewDescriptor -> qualifierDescriptor is PackageViewDescriptor ->
if (qualifierDescriptor.getFqName() != file.getPackageFqName()) { if (qualifierDescriptor.getFqName() != file.getPackageFqName()) {
JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.getFqName().asString()) JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.getFqName().asString())
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.psi.JetValueArgument
import org.jetbrains.kotlin.psi.JetCallElement import org.jetbrains.kotlin.psi.JetCallElement
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.refactoring.canRefactor import org.jetbrains.kotlin.idea.refactoring.canRefactor
import org.jetbrains.kotlin.psi.JetFunction import org.jetbrains.kotlin.psi.JetFunction
import org.jetbrains.kotlin.psi.JetClass import org.jetbrains.kotlin.psi.JetClass
@@ -46,7 +46,7 @@ public object CreateParameterByNamedArgumentActionFactory: JetSingleIntentionAct
val callElement = argument.getStrictParentOfType<JetCallElement>() ?: return null val callElement = argument.getStrictParentOfType<JetCallElement>() ?: return null
val functionDescriptor = callElement.getResolvedCall(context)?.getResultingDescriptor() as? FunctionDescriptor ?: return null val functionDescriptor = callElement.getResolvedCall(context)?.getResultingDescriptor() as? FunctionDescriptor ?: return null
val callable = DescriptorToDeclarationUtil.getDeclaration(callElement.getProject(), functionDescriptor) ?: return null val callable = DescriptorToSourceUtilsIde.getAnyDeclaration(callElement.getProject(), functionDescriptor) ?: return null
if (!((callable is JetFunction || callable is JetClass) && callable.canRefactor())) return null if (!((callable is JetFunction || callable is JetClass) && callable.canRefactor())) return null
val anyType = KotlinBuiltIns.getInstance().getAnyType() val anyType = KotlinBuiltIns.getInstance().getAnyType()
@@ -39,7 +39,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import java.util.HashSet import java.util.HashSet
import com.intellij.psi.search.searches.OverridingMethodsSearch import com.intellij.psi.search.searches.OverridingMethodsSearch
import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.asJava.toLightMethods import org.jetbrains.kotlin.asJava.toLightMethods
import org.jetbrains.kotlin.asJava.namedUnwrappedElement import org.jetbrains.kotlin.asJava.namedUnwrappedElement
import org.jetbrains.kotlin.psi.JetCallableDeclaration import org.jetbrains.kotlin.psi.JetCallableDeclaration
@@ -171,7 +171,7 @@ public abstract class CallableRefactoring<T: CallableDescriptor>(
} }
fun getAffectedCallables(project: Project, descriptorsForChange: Collection<CallableDescriptor>): List<PsiElement> { fun getAffectedCallables(project: Project, descriptorsForChange: Collection<CallableDescriptor>): List<PsiElement> {
val baseCallables = descriptorsForChange.map { DescriptorToDeclarationUtil.getDeclaration(project, it) }.filterNotNull() val baseCallables = descriptorsForChange.map { DescriptorToSourceUtilsIde.getAnyDeclaration(project, it) }.filterNotNull()
return baseCallables + baseCallables.flatMap { it.toLightMethods() }.flatMapTo(HashSet<PsiElement>()) { psiMethod -> return baseCallables + baseCallables.flatMap { it.toLightMethods() }.flatMapTo(HashSet<PsiElement>()) { psiMethod ->
val overrides = OverridingMethodsSearch.search(psiMethod).findAll() val overrides = OverridingMethodsSearch.search(psiMethod).findAll()
overrides.map { method -> method.namedUnwrappedElement ?: method} overrides.map { method -> method.namedUnwrappedElement ?: method}
@@ -45,7 +45,7 @@ import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor;
import org.jetbrains.kotlin.idea.JetBundle; import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils; import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers; import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.idea.util.string.StringPackage; import org.jetbrains.kotlin.idea.util.string.StringPackage;
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken; import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
@@ -139,7 +139,7 @@ public class JetRefactoringUtil {
Project project = declaration.getProject(); Project project = declaration.getProject();
Map<PsiElement, CallableDescriptor> overriddenElementsToDescriptor = new HashMap<PsiElement, CallableDescriptor>(); Map<PsiElement, CallableDescriptor> overriddenElementsToDescriptor = new HashMap<PsiElement, CallableDescriptor>();
for (CallableDescriptor overriddenDescriptor : DescriptorUtils.getAllOverriddenDescriptors(declarationDescriptor)) { for (CallableDescriptor overriddenDescriptor : DescriptorUtils.getAllOverriddenDescriptors(declarationDescriptor)) {
PsiElement overriddenDeclaration = DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(project, overriddenDescriptor); PsiElement overriddenDeclaration = DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(project, overriddenDescriptor);
if (PsiTreeUtil.instanceOf(overriddenDeclaration, JetNamedFunction.class, JetProperty.class, PsiMethod.class)) { if (PsiTreeUtil.instanceOf(overriddenDeclaration, JetNamedFunction.class, JetProperty.class, PsiMethod.class)) {
overriddenElementsToDescriptor.put(overriddenDeclaration, overriddenDescriptor); overriddenElementsToDescriptor.put(overriddenDeclaration, overriddenDescriptor);
} }
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer
import java.util.* import java.util.*
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.* import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.*
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
import com.intellij.CommonBundle import com.intellij.CommonBundle
import com.intellij.refactoring.RefactoringBundle import com.intellij.refactoring.RefactoringBundle
@@ -93,7 +93,7 @@ public class JetChangeSignature(project: Project,
fun createChangeSignatureDialog(descriptorsForSignatureChange: Collection<FunctionDescriptor>): JetChangeSignatureDialog? { fun createChangeSignatureDialog(descriptorsForSignatureChange: Collection<FunctionDescriptor>): JetChangeSignatureDialog? {
val baseDescriptor = preferContainedInClass(descriptorsForSignatureChange) val baseDescriptor = preferContainedInClass(descriptorsForSignatureChange)
val functionDeclaration = DescriptorToDeclarationUtil.getDeclaration(project, baseDescriptor) val functionDeclaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, baseDescriptor)
if (functionDeclaration == null) { if (functionDeclaration == null) {
LOG.error("Could not find declaration for $baseDescriptor") LOG.error("Could not find declaration for $baseDescriptor")
return null return null
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.idea.caches.resolve.* import org.jetbrains.kotlin.idea.caches.resolve.*
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetFunctionDefinitionUsage import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetFunctionDefinitionUsage
import java.util.* import java.util.*
@@ -84,7 +84,7 @@ public class JetChangeSignatureData(
override val primaryFunctions: Collection<JetFunctionDefinitionUsage<PsiElement>> by Delegates.lazy { override val primaryFunctions: Collection<JetFunctionDefinitionUsage<PsiElement>> by Delegates.lazy {
descriptorsForSignatureChange.map { descriptorsForSignatureChange.map {
val declaration = DescriptorToDeclarationUtil.getDeclaration(baseDeclaration.getProject(), it) val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(baseDeclaration.getProject(), it)
assert(declaration != null) { "No declaration found for " + baseDescriptor } assert(declaration != null) { "No declaration found for " + baseDescriptor }
JetFunctionDefinitionUsage<PsiElement>(declaration, it, null, null) JetFunctionDefinitionUsage<PsiElement>(declaration, it, null, null)
} }
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor; import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils; import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle; import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor; import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.*;
@@ -109,7 +109,7 @@ public class JetChangeSignatureHandler implements ChangeSignatureHandler {
} }
if (functionDescriptor instanceof JavaCallableMemberDescriptor) { if (functionDescriptor instanceof JavaCallableMemberDescriptor) {
PsiElement declaration = DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(project, functionDescriptor); PsiElement declaration = DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(project, functionDescriptor);
assert declaration instanceof PsiMethod : "PsiMethod expected: " + functionDescriptor; assert declaration instanceof PsiMethod : "PsiMethod expected: " + functionDescriptor;
ChangeSignatureUtil.invokeChangeSignatureOn((PsiMethod) declaration, project); ChangeSignatureUtil.invokeChangeSignatureOn((PsiMethod) declaration, project);
return; return;
@@ -40,7 +40,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver; import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver;
import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage; import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.*; import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.*;
@@ -444,7 +444,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
//noinspection ConstantConditions //noinspection ConstantConditions
CallableDescriptor descriptor = CallableDescriptor descriptor =
CallUtilPackage.getResolvedCall(originalRef, originalContext).getCandidateDescriptor(); CallUtilPackage.getResolvedCall(originalRef, originalContext).getCandidateDescriptor();
PsiElement declaration = DescriptorToDeclarationUtil.INSTANCE$.getDeclaration(callable.getProject(), descriptor); PsiElement declaration = DescriptorToSourceUtilsIde.INSTANCE$.getAnyDeclaration(callable.getProject(), descriptor);
String prefix = declaration != null ? RefactoringUIUtil.getDescription(declaration, true) : originalRef.getText(); String prefix = declaration != null ? RefactoringUIUtil.getDescription(declaration, true) : originalRef.getText();
result.putValue( result.putValue(
originalRef, originalRef,
@@ -28,7 +28,7 @@ import java.util.HashMap
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver
import org.jetbrains.kotlin.psi.JetSimpleNameExpression import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import java.util.Collections import java.util.Collections
import org.jetbrains.kotlin.psi.JetBlockExpression import org.jetbrains.kotlin.psi.JetBlockExpression
import org.jetbrains.kotlin.psi.JetQualifiedExpression import org.jetbrains.kotlin.psi.JetQualifiedExpression
@@ -135,7 +135,7 @@ data class ExtractionData(
val descriptor = context[BindingContext.REFERENCE_TARGET, ref] val descriptor = context[BindingContext.REFERENCE_TARGET, ref]
if (descriptor == null) continue if (descriptor == null) continue
val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) as? PsiNamedElement val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) as? PsiNamedElement
?: if (isExtractableIt(descriptor, context)) itFakeDeclaration else continue ?: if (isExtractableIt(descriptor, context)) itFakeDeclaration else continue
val offset = ref.getTextRange()!!.getStartOffset() - originalStartOffset val offset = ref.getTextRange()!!.getStartOffset() - originalStartOffset
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver
import org.jetbrains.kotlin.cfg.pseudocode.* import org.jetbrains.kotlin.cfg.pseudocode.*
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.idea.refactoring.JetNameValidatorImpl import org.jetbrains.kotlin.idea.refactoring.JetNameValidatorImpl
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport
import com.intellij.psi.PsiNamedElement import com.intellij.psi.PsiNamedElement
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor
@@ -199,7 +199,7 @@ private fun ExtractionData.getLocalDeclarationsWithNonLocalUsages(
pseudocode.traverse(TraversalOrder.FORWARD) { instruction -> pseudocode.traverse(TraversalOrder.FORWARD) { instruction ->
if (instruction !in localInstructions) { if (instruction !in localInstructions) {
instruction.getPrimaryDeclarationDescriptorIfAny(bindingContext)?.let { descriptor -> instruction.getPrimaryDeclarationDescriptorIfAny(bindingContext)?.let { descriptor ->
val declaration = DescriptorToDeclarationUtil.getDeclaration(project, descriptor) val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor)
if (declaration is JetNamedDeclaration && declaration.isInsideOf(originalElements)) { if (declaration is JetNamedDeclaration && declaration.isInsideOf(originalElements)) {
declarations.add(declaration) declarations.add(declaration)
} }
@@ -872,7 +872,7 @@ fun ExtractableCodeDescriptor.validate(): ExtractableCodeDescriptorWithConflicts
val currentDescriptor = bindingContext[BindingContext.REFERENCE_TARGET, currentRefExpr] val currentDescriptor = bindingContext[BindingContext.REFERENCE_TARGET, currentRefExpr]
val currentTarget = val currentTarget =
currentDescriptor?.let { DescriptorToDeclarationUtil.getDeclaration(extractionData.project, it) } as? PsiNamedElement currentDescriptor?.let { DescriptorToSourceUtilsIde.getAnyDeclaration(extractionData.project, it) } as? PsiNamedElement
if (currentTarget is JetParameter && currentTarget.getParent() == valueParameterList) continue if (currentTarget is JetParameter && currentTarget.getParent() == valueParameterList) continue
if (currentDescriptor is LocalVariableDescriptor if (currentDescriptor is LocalVariableDescriptor
&& parameters.any { it.mirrorVarName == currentDescriptor.getName().asString() }) continue && parameters.any { it.mirrorVarName == currentDescriptor.getName().asString() }) continue
@@ -57,7 +57,7 @@ import org.jetbrains.kotlin.idea.refactoring.getUsageContext
import org.jetbrains.kotlin.psi.psiUtil.isInsideOf import org.jetbrains.kotlin.psi.psiUtil.isInsideOf
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.psi.JetModifierListOwner import org.jetbrains.kotlin.psi.JetModifierListOwner
import com.intellij.psi.PsiModifierListOwner import com.intellij.psi.PsiModifierListOwner
import com.intellij.psi.PsiModifier import com.intellij.psi.PsiModifier
@@ -192,7 +192,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
val referenceToContext = JetFileReferencesResolver.resolve(element = declaration, resolveQualifiers = false) val referenceToContext = JetFileReferencesResolver.resolve(element = declaration, resolveQualifiers = false)
for ((refExpr, bindingContext) in referenceToContext) { for ((refExpr, bindingContext) in referenceToContext) {
val refTarget = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor -> val refTarget = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.let { descriptor ->
DescriptorToDeclarationUtil.getDeclaration(declaration.getProject(), descriptor) DescriptorToSourceUtilsIde.getAnyDeclaration(declaration.getProject(), descriptor)
} }
if (refTarget == null || refTarget.isInsideOf(elementsToMove)) continue if (refTarget == null || refTarget.isInsideOf(elementsToMove)) continue
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.idea.JetFileType import org.jetbrains.kotlin.idea.JetFileType
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.psi.psiUtil.isAncestor import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import java.util.Collections import java.util.Collections
import org.jetbrains.kotlin.idea.refactoring.fqName.isImported import org.jetbrains.kotlin.idea.refactoring.fqName.isImported
@@ -80,7 +80,7 @@ public fun JetElement.getInternalReferencesToUpdateOnPackageNameChange(packageNa
fun processReference(refExpr: JetSimpleNameExpression, bindingContext: BindingContext): UsageInfo? { fun processReference(refExpr: JetSimpleNameExpression, bindingContext: BindingContext): UsageInfo? {
val descriptor = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.getImportableDescriptor() ?: return null val descriptor = bindingContext[BindingContext.REFERENCE_TARGET, refExpr]?.getImportableDescriptor() ?: return null
val declaration = DescriptorToDeclarationUtil.getDeclaration(getProject(), descriptor) ?: return null val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(getProject(), descriptor) ?: return null
if (isAncestor(declaration, false)) return null if (isAncestor(declaration, false)) return null
val isCallable = descriptor is CallableDescriptor val isCallable = descriptor is CallableDescriptor