From 4cf440b8016391996403dba22d1714275b5c926f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 14 Oct 2015 20:23:07 +0300 Subject: [PATCH] Refactoring --- .../ChangeFunctionLiteralSignatureFix.kt | 2 +- .../idea/quickfix/ChangeFunctionSignatureFix.kt | 2 +- .../KotlinIntentionActionFactoryWithDelegate.kt | 16 ++++++++++++---- .../CreateParameterFromUsageFactory.kt | 4 ++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.kt index f0eba522dcc..8a9bceb32cf 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.kt @@ -61,7 +61,7 @@ class ChangeFunctionLiteralSignatureFix( text) } - companion object : KotlinIntentionActionFactoryWithDelegate() { + companion object : KotlinSingleIntentionActionFactoryWithDelegate() { data class Data(val functionLiteral: JetFunctionLiteral, val descriptor: FunctionDescriptor, val parameterTypes: List) override fun getElementOfInterest(diagnostic: Diagnostic): JetFunctionLiteral? { diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.kt index a1bd44a5fad..bb85c75a8c0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.kt @@ -76,7 +76,7 @@ abstract class ChangeFunctionSignatureFix( } } - companion object : KotlinIntentionActionFactoryWithDelegate() { + companion object : KotlinSingleIntentionActionFactoryWithDelegate() { data class Data(val callElement: JetCallElement, val descriptor: CallableDescriptor) override fun getElementOfInterest(diagnostic: Diagnostic): JetCallElement? { diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/KotlinIntentionActionFactoryWithDelegate.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/KotlinIntentionActionFactoryWithDelegate.kt index 13a6e3461d8..7027a8b3404 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/KotlinIntentionActionFactoryWithDelegate.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/KotlinIntentionActionFactoryWithDelegate.kt @@ -27,16 +27,24 @@ import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.utils.singletonOrEmptyList -public abstract class KotlinIntentionActionFactoryWithDelegate : JetIntentionActionsFactory() { - protected abstract fun getElementOfInterest(diagnostic: Diagnostic): E? - +abstract class KotlinSingleIntentionActionFactoryWithDelegate : KotlinIntentionActionFactoryWithDelegate() { protected open fun createQuickFix(diagnostic: Diagnostic, quickFixDataFactory: () -> D?): QuickFixWithDelegateFactory? = null - protected open fun createQuickFixes( + protected override final fun createQuickFixes( originalElementPointer: SmartPsiElementPointer, diagnostic: Diagnostic, quickFixDataFactory: () -> D? ): List = createQuickFix(diagnostic, quickFixDataFactory).singletonOrEmptyList() +} + +abstract class KotlinIntentionActionFactoryWithDelegate : JetIntentionActionsFactory() { + protected abstract fun getElementOfInterest(diagnostic: Diagnostic): E? + + protected abstract fun createQuickFixes( + originalElementPointer: SmartPsiElementPointer, + diagnostic: Diagnostic, + quickFixDataFactory: () -> D? + ): List protected abstract fun createQuickFixData(element: E, diagnostic: Diagnostic): D? diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterFromUsageFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterFromUsageFactory.kt index 55587426072..e601c318194 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterFromUsageFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterFromUsageFactory.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createVariable import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.quickfix.KotlinIntentionActionFactoryWithDelegate +import org.jetbrains.kotlin.idea.quickfix.KotlinSingleIntentionActionFactoryWithDelegate import org.jetbrains.kotlin.idea.quickfix.QuickFixWithDelegateFactory import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo import org.jetbrains.kotlin.psi.JetElement @@ -30,7 +30,7 @@ data class CreateParameterData( val originalExpression: E ) -abstract class CreateParameterFromUsageFactory: KotlinIntentionActionFactoryWithDelegate>() { +abstract class CreateParameterFromUsageFactory: KotlinSingleIntentionActionFactoryWithDelegate>() { override fun createQuickFix( diagnostic: Diagnostic, quickFixDataFactory: () -> CreateParameterData?