From e1911304465207a1df031a4223c33c4bb76186a0 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Mon, 1 Dec 2014 14:41:51 +0300 Subject: [PATCH] Move helper method --- .../extractFunction/ExtractionData.kt | 7 +------ .../extractFunction/extractableAnalysisUtil.kt | 10 +--------- .../plugin/refactoring/jetRefactoringUtil.kt | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt index 77ad1b3502e..c1ab9bd9eb6 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt @@ -54,6 +54,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiRange import org.jetbrains.jet.lang.psi.psiUtil.getParentOfType import org.jetbrains.jet.lang.psi.psiUtil.getStrictParentOfType +import org.jetbrains.jet.plugin.refactoring.compareDescriptors data class ExtractionOptions( val inferUnitTypeForUnusedValues: Boolean, @@ -176,12 +177,6 @@ data class ExtractionData( } } -private fun compareDescriptors(d1: DeclarationDescriptor?, d2: DeclarationDescriptor?): Boolean { - return d1 == d2 || - (d1 != null && d2 != null && - DescriptorRenderer.FQ_NAMES_IN_TYPES.render(d1) == DescriptorRenderer.FQ_NAMES_IN_TYPES.render(d2)) -} - // Hack: // we can't get first element offset through getStatement()/getChildren() since they skip comments and whitespaces // So we take offset of the left brace instead and increase it by 2 (which is length of "{\n" separating block start and its first element) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt index bc700b19d76..4d212f2ff44 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractableAnalysisUtil.kt @@ -69,6 +69,7 @@ import org.jetbrains.jet.plugin.caches.resolve.findModuleDescriptor import org.jetbrains.jet.plugin.caches.resolve.analyze import org.jetbrains.jet.lang.psi.psiUtil.getParentOfType import org.jetbrains.jet.lang.psi.psiUtil.getStrictParentOfType +import org.jetbrains.jet.plugin.refactoring.comparePossiblyOverridingDescriptors private val DEFAULT_FUNCTION_NAME = "myFun" private val DEFAULT_RETURN_TYPE = KotlinBuiltIns.getInstance().getUnitType() @@ -833,12 +834,3 @@ fun ExtractableCodeDescriptor.validate(): ExtractableCodeDescriptorWithConflicts return ExtractableCodeDescriptorWithConflicts(this, conflicts) } -private fun comparePossiblyOverridingDescriptors(currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean { - if (compareDescriptors(currentDescriptor, originalDescriptor)) return true - if (originalDescriptor is CallableDescriptor) { - if (!OverridingUtil.traverseOverridenDescriptors(originalDescriptor) { !compareDescriptors(currentDescriptor, it) }) return true - } - - return false -} - diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt index 072313d67ec..4da6e646544 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/jetRefactoringUtil.kt @@ -64,6 +64,9 @@ import com.intellij.openapi.util.text.StringUtil import javax.swing.Icon import org.jetbrains.jet.plugin.util.string.collapseSpaces import org.jetbrains.jet.plugin.caches.resolve.analyze +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor +import org.jetbrains.jet.lang.descriptors.CallableDescriptor +import org.jetbrains.jet.lang.resolve.OverridingUtil import org.jetbrains.jet.lang.psi.psiUtil.getParentOfType import org.jetbrains.jet.lang.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.jet.lang.psi.psiUtil.getStrictParentOfType @@ -359,4 +362,19 @@ public fun chooseContainerElementIfNecessary( containers.size == 1 || ApplicationManager.getApplication()!!.isUnitTestMode() -> onSelect(containers.first()) else -> chooseContainerElement(containers, editor, title, highlightSelection, toPsi, onSelect) } +} + +fun compareDescriptors(d1: DeclarationDescriptor?, d2: DeclarationDescriptor?): Boolean { + return d1 == d2 || + (d1 != null && d2 != null && + DescriptorRenderer.FQ_NAMES_IN_TYPES.render(d1) == DescriptorRenderer.FQ_NAMES_IN_TYPES.render(d2)) +} + +public fun comparePossiblyOverridingDescriptors(currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean { + if (compareDescriptors(currentDescriptor, originalDescriptor)) return true + if (originalDescriptor is CallableDescriptor) { + if (!OverridingUtil.traverseOverridenDescriptors(originalDescriptor) { !compareDescriptors(currentDescriptor, it) }) return true + } + + return false } \ No newline at end of file