diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/ChangeAccessorTypeFixFactory.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/ChangeAccessorTypeFixFactory.kt index ceb7d5c45b02..b721e3039d9c 100644 --- a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/ChangeAccessorTypeFixFactory.kt +++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/ChangeAccessorTypeFixFactory.kt @@ -2,18 +2,15 @@ package org.jetbrains.kotlin.idea.k2.codeinsight.fixes import org.jetbrains.kotlin.analysis.api.KaExperimentalApi -import org.jetbrains.kotlin.analysis.api.KaIdeApi import org.jetbrains.kotlin.analysis.api.KaSession import org.jetbrains.kotlin.analysis.api.fir.diagnostics.KaFirDiagnostic import org.jetbrains.kotlin.analysis.api.renderer.types.impl.KaTypeRendererForSource import org.jetbrains.kotlin.analysis.api.types.KaType -import org.jetbrains.kotlin.idea.base.analysis.api.utils.shortenReferencesInRange import org.jetbrains.kotlin.idea.codeinsight.api.applicators.fixes.KotlinQuickFixFactory -import org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixBase +import org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtPropertyAccessor -import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.types.Variance @@ -28,8 +25,8 @@ internal object ChangeAccessorTypeFixFactory { } context(KaSession) - @OptIn(KaExperimentalApi::class, KaIdeApi::class) - private fun getFixes(element: KtElement, expectedType: KaType): List { + @OptIn(KaExperimentalApi::class) + private fun getFixes(element: KtElement, expectedType: KaType): List { val propertyAccessor = element.getParentOfType( strict = false, KtProperty::class.java, @@ -42,11 +39,7 @@ internal object ChangeAccessorTypeFixFactory { val typeSourceCode = expectedType.render(position = Variance.IN_VARIANCE) return listOf( - object : ChangeAccessorTypeFixBase(propertyAccessor, typePresentation, typeSourceCode) { - override fun shortenReferences(element: KtTypeReference) { - shortenReferencesInRange(element) - } - } + ChangeAccessorTypeFix(propertyAccessor, typePresentation, typeSourceCode) ) } } diff --git a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixBase.kt b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.kt similarity index 89% rename from plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixBase.kt rename to plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.kt index dd4d7cdfdad3..6c9754d240ff 100644 --- a/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixBase.kt +++ b/plugins/kotlin/frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.kt @@ -6,13 +6,13 @@ import com.intellij.modcommand.ActionContext import com.intellij.modcommand.ModPsiUpdater import com.intellij.modcommand.Presentation import com.intellij.modcommand.PsiUpdateModCommandAction +import org.jetbrains.kotlin.idea.base.codeInsight.ShortenReferencesFacility import org.jetbrains.kotlin.idea.base.psi.replaced import org.jetbrains.kotlin.idea.base.resources.KotlinBundle import org.jetbrains.kotlin.psi.KtPropertyAccessor import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.psi.KtTypeReference -abstract class ChangeAccessorTypeFixBase( +class ChangeAccessorTypeFix( element: KtPropertyAccessor, private val typePresentation: String, private val typeSourceCode: String, @@ -41,8 +41,6 @@ abstract class ChangeAccessorTypeFixBase( val typeReference = if (element.isGetter) element.returnTypeReference else element.parameter!!.typeReference val insertedTypeRef = typeReference!!.replaced(newTypeReference) - shortenReferences(insertedTypeRef) + ShortenReferencesFacility.getInstance().shorten(insertedTypeRef) } - - abstract fun shortenReferences(element: KtTypeReference) } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixFactory.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixFactory.kt index a3fe05cea543..10e030785619 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixFactory.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFixFactory.kt @@ -4,11 +4,9 @@ package org.jetbrains.kotlin.idea.quickfix import com.intellij.codeInsight.intention.IntentionAction import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny -import org.jetbrains.kotlin.idea.core.ShortenReferences import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtPropertyAccessor -import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.isError @@ -24,14 +22,10 @@ internal object ChangeAccessorTypeFixFactory : KotlinSingleIntentionActionFactor val typePresentation = IdeDescriptorRenderers.SOURCE_CODE_SHORT_NAMES_NO_ANNOTATIONS.renderType(type) val typeSourceCode = IdeDescriptorRenderers.SOURCE_CODE.renderType(type) - return object : ChangeAccessorTypeFixBase( + return ChangeAccessorTypeFix( propertyAccessor, typePresentation, typeSourceCode, - ) { - override fun shortenReferences(element: KtTypeReference) { - ShortenReferences.DEFAULT.process(element) - } - }.asIntention() + ).asIntention() } } diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt index bce4ba389ac8..0ad46e5b813b 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt @@ -4,5 +4,5 @@ class A { get(): Int = {42} } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt.after index e7fe4dac6e30..ac10f545489a 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/changeAccessorTypeToFunctionType.kt.after @@ -4,5 +4,5 @@ class A { get(): (String) -> Int = {42} } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt index 6d867351a7b5..a08595e0df89 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt @@ -4,5 +4,5 @@ class A() { get(): Any = 1 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt.after index b04944f0f6f7..65756e8192d9 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterType.kt.after @@ -4,5 +4,5 @@ class A() { get(): Int = 1 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.k2.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.k2.kt.after deleted file mode 100644 index 257635681168..000000000000 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.k2.kt.after +++ /dev/null @@ -1,12 +0,0 @@ -import java.util.HashSet -import java.util.LinkedHashSet - -// "Change getter type to HashSet" "true" - -class A() { - val i: HashSet - get(): HashSet = LinkedHashSet() -} - -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt index 53a2713c6e04..ba53874598ba 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt @@ -5,5 +5,5 @@ class A() { get(): Any = java.util.LinkedHashSet() } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt.after index 311ca18c7875..2cbc44f9570d 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongGetterParameterTypeLongNameRuntime.kt.after @@ -7,5 +7,5 @@ class A() { get(): HashSet = java.util.LinkedHashSet() } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt index df55d1eeeed3..883cc3a1c5e3 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt @@ -4,5 +4,5 @@ class A() { set(v: Any) {} } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt.after index e76cd5373e04..0a4d1d951b6f 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/typeAddition/wrongSetterParameterType.kt.after @@ -4,5 +4,5 @@ class A() { set(v: Int) {} } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFixFactory$createAction$1 -// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeAccessorTypeFixFactory$getFixes$1 \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeAccessorTypeFix \ No newline at end of file