diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/InapplicableJvmFieldFixFactories.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/InapplicableJvmFieldFixFactories.kt new file mode 100644 index 000000000000..20f7df51fe70 --- /dev/null +++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/InapplicableJvmFieldFixFactories.kt @@ -0,0 +1,16 @@ +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.k2.codeinsight.fixes + +import org.jetbrains.kotlin.analysis.api.fir.diagnostics.KaFirDiagnostic +import org.jetbrains.kotlin.idea.base.resources.KotlinBundle +import org.jetbrains.kotlin.idea.codeinsight.api.applicators.fixes.KotlinQuickFixFactory +import org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix + +internal object InapplicableJvmFieldFixFactories { + + val removeAnnotationFixFactory = KotlinQuickFixFactory.IntentionBased { diagnostic: KaFirDiagnostic.InapplicableJvmField -> + listOf( + RemoveAnnotationFix(KotlinBundle.message("remove.jvmfield.annotation"), diagnostic.psi) + ) + } +} diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt index 07905a3a5cbd..2ec32a9c60ae 100644 --- a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt +++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/KotlinK2QuickFixRegistrar.kt @@ -188,6 +188,7 @@ class KotlinK2QuickFixRegistrar : KotlinQuickFixRegistrar() { registerFactory(JavaClassOnCompanionFixFactories.factory) registerFactory(ChangeTypeQuickFixFactories.implicitNothingReturnTypeFixFactory) registerFactory(ChangeTypeQuickFixFactories.implicitNothingPropertyTypeFixFactory) + registerFactory(InapplicableJvmFieldFixFactories.removeAnnotationFixFactory) } private val addAbstract = KtQuickFixesListBuilder.registerPsiQuickFix { diff --git a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt index 0f7f0cef2d0b..9a79dec6071a 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt @@ -1,7 +1,7 @@ // "Remove @JvmField annotation" "true" -// IGNORE_K2 // WITH_STDLIB class Foo { @JvmField private val bar = 0 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt.after index 287713fe7d54..9b1e937abe0a 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmField.kt.after @@ -1,7 +1,7 @@ // "Remove @JvmField annotation" "true" -// IGNORE_K2 // WITH_STDLIB class Foo { private val bar = 0 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt index 62b180a45708..9542e097b398 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt @@ -1,9 +1,9 @@ // "Remove @JvmField annotation" "true" -// IGNORE_K2 // WITH_STDLIB interface I { val x: Int } class C1 : I { @JvmField override val x: Int = 1 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt.after index c59871695a3e..4b739c40308a 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/removeAnnotation/jvmFieldOnOverridingProperty.kt.after @@ -1,9 +1,9 @@ // "Remove @JvmField annotation" "true" -// IGNORE_K2 // WITH_STDLIB interface I { val x: Int } class C1 : I { override val x: Int = 1 } -// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file +// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix +// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.inspections.RemoveAnnotationFix \ No newline at end of file