diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index b47784a444a..77f93a55784 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1114,6 +1114,7 @@ fun main(args: Array) { testClass { val pattern = "^([\\w\\-_]+)\\.kt$" + model("quickfix/abstract", pattern = pattern, filenameStartsLowerCase = true) model("quickfix/lateinit", pattern = pattern, filenameStartsLowerCase = true) model("quickfix/modifiers", pattern = pattern, filenameStartsLowerCase = true, recursive = false) model("quickfix/override/typeMismatchOnOverride", pattern = pattern, filenameStartsLowerCase = true, recursive = false) diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt index 0df8f195949..25a8798c425 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.idea.fir.api.fixes.KtQuickFixesList import org.jetbrains.kotlin.idea.fir.api.fixes.KtQuickFixesListBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.diagnostics.KtFirDiagnostic import org.jetbrains.kotlin.idea.quickfix.fixes.ChangeTypeQuickFix -import org.jetbrains.kotlin.lexer.KtTokens class MainKtQuickFixRegistrar : KtQuickFixRegistrar() { private val modifiers = KtQuickFixesListBuilder.registerPsiQuickFix { @@ -19,12 +18,17 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() { registerPsiQuickFixes(KtFirDiagnostic.RepeatedModifier::class, RemoveModifierFix.removeNonRedundantModifier) registerPsiQuickFixes(KtFirDiagnostic.DeprecatedModifierPair::class, RemoveModifierFix.removeRedundantModifier) registerPsiQuickFixes(KtFirDiagnostic.TypeParametersInEnum::class, RemoveModifierFix.removeRedundantModifier) + registerPsiQuickFixes(KtFirDiagnostic.RedundantOpenInInterface::class, RemoveModifierFix.removeRedundantOpenModifier) + registerPsiQuickFixes(KtFirDiagnostic.NonAbstractFunctionWithNoBody::class, AddFunctionBodyFix, AddModifierFix.addAbstractModifier) registerPsiQuickFixes( - KtFirDiagnostic.RedundantOpenInInterface::class, - RemoveModifierFix.createRemoveModifierFromListOwnerFactoryByModifierListOwner( - modifier = KtTokens.OPEN_KEYWORD, - isRedundant = true - ) + KtFirDiagnostic.AbstractPropertyInNonAbstractClass::class, + AddModifierFix.addAbstractToContainingClass, + RemoveModifierFix.removeAbstractModifier + ) + registerPsiQuickFixes( + KtFirDiagnostic.AbstractFunctionInNonAbstractClass::class, + AddModifierFix.addAbstractToContainingClass, + RemoveModifierFix.removeAbstractModifier ) } diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java index 012869b9b17..61e5133f78c 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java @@ -19,6 +19,184 @@ import java.util.regex.Pattern; @SuppressWarnings("all") @RunWith(JUnit3RunnerWithInners.class) public class HighLevelQuickFixTestGenerated extends AbstractHighLevelQuickFixTest { + @TestMetadata("idea/testData/quickfix/abstract") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Abstract extends AbstractHighLevelQuickFixTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + @TestMetadata("abstractFunctionInNonAbstractClass.kt") + public void testAbstractFunctionInNonAbstractClass() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt"); + } + + @TestMetadata("abstractFunctionWithBody.kt") + public void testAbstractFunctionWithBody() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionWithBody.kt"); + } + + @TestMetadata("abstractFunctionWithBody2.kt") + public void testAbstractFunctionWithBody2() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionWithBody2.kt"); + } + + @TestMetadata("abstractFunctionWithBody3.kt") + public void testAbstractFunctionWithBody3() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionWithBody3.kt"); + } + + @TestMetadata("abstractFunctionWithBodyWithComments.kt") + public void testAbstractFunctionWithBodyWithComments() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionWithBodyWithComments.kt"); + } + + @TestMetadata("abstractFunctionWithBodyWithComments2.kt") + public void testAbstractFunctionWithBodyWithComments2() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractFunctionWithBodyWithComments2.kt"); + } + + @TestMetadata("abstractPropertyInCompanionObject.kt") + public void testAbstractPropertyInCompanionObject() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt"); + } + + @TestMetadata("abstractPropertyInNonAbstractClass1.kt") + public void testAbstractPropertyInNonAbstractClass1() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt"); + } + + @TestMetadata("abstractPropertyInNonAbstractClass2.kt") + public void testAbstractPropertyInNonAbstractClass2() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt"); + } + + @TestMetadata("abstractPropertyInNonAbstractClass3.kt") + public void testAbstractPropertyInNonAbstractClass3() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt"); + } + + @TestMetadata("abstractPropertyInPrimaryConstructorParameters.kt") + public void testAbstractPropertyInPrimaryConstructorParameters() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyInPrimaryConstructorParameters.kt"); + } + + @TestMetadata("abstractPropertyNotInClass.kt") + public void testAbstractPropertyNotInClass() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyNotInClass.kt"); + } + + @TestMetadata("abstractPropertyWIthInitializer2.kt") + public void testAbstractPropertyWIthInitializer2() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWIthInitializer2.kt"); + } + + @TestMetadata("abstractPropertyWIthInitializer3.kt") + public void testAbstractPropertyWIthInitializer3() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWIthInitializer3.kt"); + } + + @TestMetadata("abstractPropertyWithGetter1.kt") + public void testAbstractPropertyWithGetter1() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt"); + } + + @TestMetadata("abstractPropertyWithGetter2.kt") + public void testAbstractPropertyWithGetter2() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWithGetter2.kt"); + } + + @TestMetadata("abstractPropertyWithInitializer1.kt") + public void testAbstractPropertyWithInitializer1() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt"); + } + + @TestMetadata("abstractPropertyWithSetter.kt") + public void testAbstractPropertyWithSetter() throws Exception { + runTest("idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt"); + } + + public void testAllFilesPresentInAbstract() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/abstract"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), null, true); + } + + @TestMetadata("makeEnumEntryAbstract.kt") + public void testMakeEnumEntryAbstract() throws Exception { + runTest("idea/testData/quickfix/abstract/makeEnumEntryAbstract.kt"); + } + + @TestMetadata("makeInlineClassAbstract.kt") + public void testMakeInlineClassAbstract() throws Exception { + runTest("idea/testData/quickfix/abstract/makeInlineClassAbstract.kt"); + } + + @TestMetadata("makeObjectMemberAbstract.kt") + public void testMakeObjectMemberAbstract() throws Exception { + runTest("idea/testData/quickfix/abstract/makeObjectMemberAbstract.kt"); + } + + @TestMetadata("makeTopLevelAbstract.kt") + public void testMakeTopLevelAbstract() throws Exception { + runTest("idea/testData/quickfix/abstract/makeTopLevelAbstract.kt"); + } + + @TestMetadata("manyImpl.kt") + public void testManyImpl() throws Exception { + runTest("idea/testData/quickfix/abstract/manyImpl.kt"); + } + + @TestMetadata("mustBeInitializedOrBeAbstract.kt") + public void testMustBeInitializedOrBeAbstract() throws Exception { + runTest("idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt"); + } + + @TestMetadata("mustBeInitializedOrBeAbstractInFinalClass.kt") + public void testMustBeInitializedOrBeAbstractInFinalClass() throws Exception { + runTest("idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt"); + } + + @TestMetadata("mustBeInitializedOrBeAbstractInOpenClass.kt") + public void testMustBeInitializedOrBeAbstractInOpenClass() throws Exception { + runTest("idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt"); + } + + @TestMetadata("mustBeInitializedOrBeAbstractInSealedClass.kt") + public void testMustBeInitializedOrBeAbstractInSealedClass() throws Exception { + runTest("idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt"); + } + + @TestMetadata("nonAbstractFunctionWithNoBody.kt") + public void testNonAbstractFunctionWithNoBody() throws Exception { + runTest("idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt"); + } + + @TestMetadata("nonMemberAbstractFunction.kt") + public void testNonMemberAbstractFunction() throws Exception { + runTest("idea/testData/quickfix/abstract/nonMemberAbstractFunction.kt"); + } + + @TestMetadata("nonMemberFunctionNoBody.kt") + public void testNonMemberFunctionNoBody() throws Exception { + runTest("idea/testData/quickfix/abstract/nonMemberFunctionNoBody.kt"); + } + + @TestMetadata("notImplementedMember.kt") + public void testNotImplementedMember() throws Exception { + runTest("idea/testData/quickfix/abstract/notImplementedMember.kt"); + } + + @TestMetadata("notImplementedMemberFromAbstractClass.kt") + public void testNotImplementedMemberFromAbstractClass() throws Exception { + runTest("idea/testData/quickfix/abstract/notImplementedMemberFromAbstractClass.kt"); + } + + @TestMetadata("replaceOpen.kt") + public void testReplaceOpen() throws Exception { + runTest("idea/testData/quickfix/abstract/replaceOpen.kt"); + } + } + @TestMetadata("idea/testData/quickfix/lateinit") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionBodyFix.kt b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionBodyFix.kt index 683f81c2078..6406de529a4 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionBodyFix.kt +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionBodyFix.kt @@ -5,14 +5,13 @@ package org.jetbrains.kotlin.idea.quickfix +import com.intellij.codeInsight.intention.IntentionAction import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFunction import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType class AddFunctionBodyFix(element: KtFunction) : KotlinPsiOnlyQuickFixAction(element) { override fun getFamilyName() = KotlinBundle.message("fix.add.function.body") @@ -30,9 +29,7 @@ class AddFunctionBodyFix(element: KtFunction) : KotlinPsiOnlyQuickFixAction()?.let(::AddFunctionBodyFix) - } + companion object : QuickFixesPsiBasedFactory(KtFunction::class, PsiElementSuitabilityCheckers.ALWAYS_SUITABLE) { + override fun doCreateQuickFix(psiElement: KtFunction): List = listOfNotNull(AddFunctionBodyFix(psiElement)) } } diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt index 5b38e72357e..02b13b0bd6d 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.kt @@ -106,9 +106,14 @@ open class AddModifierFix( } companion object : Factory { - private val modalityModifiers = setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD) + val addAbstractModifier: QuickFixesPsiBasedFactory = AddModifierFix.createFactory(KtTokens.ABSTRACT_KEYWORD) + val addAbstractToContainingClass: QuickFixesPsiBasedFactory = + AddModifierFix.createFactory(KtTokens.ABSTRACT_KEYWORD, KtClassOrObject::class.java) + private val modalityModifiers: Set = + setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD) + override fun createModifierFix(element: KtModifierListOwner, modifier: KtModifierKeywordToken): AddModifierFix = AddModifierFix(element, modifier) } -} \ No newline at end of file +} diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/RemoveModifierFix.kt b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/RemoveModifierFix.kt index c401253ba2d..0b30f6f8c32 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/RemoveModifierFix.kt +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/quickfix/RemoveModifierFix.kt @@ -51,8 +51,15 @@ class RemoveModifierFix( } companion object { - val removeRedundantModifier = createRemoveModifierFactory(isRedundant = true) - val removeNonRedundantModifier = createRemoveModifierFactory(isRedundant = false) + val removeRedundantModifier: QuickFixesPsiBasedFactory = createRemoveModifierFactory(isRedundant = true) + val removeNonRedundantModifier: QuickFixesPsiBasedFactory = createRemoveModifierFactory(isRedundant = false) + val removeAbstractModifier: QuickFixesPsiBasedFactory = + createRemoveModifierFromListOwnerPsiBasedFactory(KtTokens.ABSTRACT_KEYWORD) + val removeRedundantOpenModifier: QuickFixesPsiBasedFactory = + createRemoveModifierFromListOwnerFactoryByModifierListOwner( + modifier = KtTokens.OPEN_KEYWORD, + isRedundant = true + ) @Deprecated( "For binary compatibility", diff --git a/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt b/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt index 5c81dea5e1d..a09e7e6bd4d 100644 --- a/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt +++ b/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt @@ -1,4 +1,5 @@ // "Make 'foo' not abstract" "true" class A() { abstract fun foo() {} -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt.after b/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt.after index 86809c0a58f..e5e38c11d67 100644 --- a/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt.after +++ b/idea/testData/quickfix/abstract/abstractFunctionInNonAbstractClass.kt.after @@ -1,4 +1,5 @@ // "Make 'foo' not abstract" "true" class A() { fun foo() {} -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt b/idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt index b557e6164bf..c3779a41342 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt @@ -7,4 +7,5 @@ class Owner { companion object { abstract val x: Int } -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt index 0b4e86bfe1e..f36bbe2aba0 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt @@ -2,3 +2,4 @@ class A() { abstract var i : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt.after b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt.after index d847caf85e2..4c0e5551c18 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt.after @@ -2,3 +2,4 @@ abstract class A() { abstract var i : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt index cdb5a47b594..0eee94636cc 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt @@ -2,3 +2,4 @@ class A() { abstract var i : Int = 0 } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt.after b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt.after index 773ad489ec7..5bf704d54aa 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass2.kt.after @@ -2,3 +2,4 @@ class A() { var i : Int = 0 } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt index ca64a4e54b0..cc8b8c0ad6f 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt @@ -2,3 +2,4 @@ public class A() { abstract var i : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt.after b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt.after index 6ae6136242b..c6e9f139b96 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass3.kt.after @@ -2,3 +2,4 @@ public abstract class A() { abstract var i : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt b/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt index 482300fc24b..97b88445cd5 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt @@ -2,4 +2,5 @@ class B { abstract val i: Int = 0 get() = field -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt.after b/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt.after index c8df4e86d4a..13b69dca120 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyWithGetter1.kt.after @@ -2,4 +2,5 @@ class B { val i: Int = 0 get() = field -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt b/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt index c56a70cde06..59fc73a9e4f 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt @@ -2,3 +2,4 @@ class A { abstract var i = 0 } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt.after b/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt.after index 01d5197a882..ae725ce1da9 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyWithInitializer1.kt.after @@ -2,3 +2,4 @@ class A { var i = 0 } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt b/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt index cdfb4051f39..afc115a3608 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt +++ b/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt @@ -3,3 +3,4 @@ class B { abstract var j: Int = 0 set(v: Int) {} } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt.after b/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt.after index cd83c943c58..b67e494c23e 100644 --- a/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt.after +++ b/idea/testData/quickfix/abstract/abstractPropertyWithSetter.kt.after @@ -3,3 +3,4 @@ class B { var j: Int = 0 set(v: Int) {} } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/makeEnumEntryAbstract.kt b/idea/testData/quickfix/abstract/makeEnumEntryAbstract.kt index 6e5b2be9af3..72c38a36528 100644 --- a/idea/testData/quickfix/abstract/makeEnumEntryAbstract.kt +++ b/idea/testData/quickfix/abstract/makeEnumEntryAbstract.kt @@ -6,4 +6,5 @@ enum class E { A; abstract fun foo() -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt b/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt index a41aebfe9d2..6e697e2f6e2 100644 --- a/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt +++ b/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt @@ -9,4 +9,5 @@ interface I { fun foo(): String } -inline class A : I \ No newline at end of file +inline class A : I +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/makeObjectMemberAbstract.kt b/idea/testData/quickfix/abstract/makeObjectMemberAbstract.kt index 2637215996e..476d90bb2ff 100644 --- a/idea/testData/quickfix/abstract/makeObjectMemberAbstract.kt +++ b/idea/testData/quickfix/abstract/makeObjectMemberAbstract.kt @@ -7,4 +7,5 @@ object O { fun foo() -} \ No newline at end of file +} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/makeTopLevelAbstract.kt b/idea/testData/quickfix/abstract/makeTopLevelAbstract.kt index 27f891ce35e..e43eb13e15e 100644 --- a/idea/testData/quickfix/abstract/makeTopLevelAbstract.kt +++ b/idea/testData/quickfix/abstract/makeTopLevelAbstract.kt @@ -5,4 +5,5 @@ // ACTION: Make private // ERROR: Function 'foo' must have a body -fun foo() \ No newline at end of file +fun foo() +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/manyImpl.kt b/idea/testData/quickfix/abstract/manyImpl.kt index ebc1d4c637b..8899a524ece 100644 --- a/idea/testData/quickfix/abstract/manyImpl.kt +++ b/idea/testData/quickfix/abstract/manyImpl.kt @@ -18,4 +18,5 @@ object Impl : D, E { override fun foo() {} } -class X : D by Impl, E by Impl {} \ No newline at end of file +class X : D by Impl, E by Impl {} +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt index acde93f0824..97205fd65f1 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt @@ -2,3 +2,4 @@ sealed class A() { fun i() : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt.after b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt.after index f80634358e0..225d9fb13e5 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt.after +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInSealedClass.kt.after @@ -2,3 +2,4 @@ sealed class A() { abstract fun i() : Int } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt b/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt index 0e070005a49..a9518f7c369 100644 --- a/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt +++ b/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt @@ -2,3 +2,4 @@ class A() { fun foo() } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt.after b/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt.after index 59958ef927e..dd1e04bb937 100644 --- a/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt.after +++ b/idea/testData/quickfix/abstract/nonAbstractFunctionWithNoBody.kt.after @@ -2,3 +2,4 @@ class A() { fun foo() {} } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/replaceOpen.kt b/idea/testData/quickfix/abstract/replaceOpen.kt index 13f21216b92..388ace5b0b8 100644 --- a/idea/testData/quickfix/abstract/replaceOpen.kt +++ b/idea/testData/quickfix/abstract/replaceOpen.kt @@ -2,3 +2,4 @@ abstract class B() { open fun foo() } +/* FIR_COMPARISON */ diff --git a/idea/testData/quickfix/abstract/replaceOpen.kt.after b/idea/testData/quickfix/abstract/replaceOpen.kt.after index 6f9b5323658..2f73a3f1d97 100644 --- a/idea/testData/quickfix/abstract/replaceOpen.kt.after +++ b/idea/testData/quickfix/abstract/replaceOpen.kt.after @@ -2,3 +2,4 @@ abstract class B() { abstract fun foo() } +/* FIR_COMPARISON */ diff --git a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java index b14aae95ffd..af01cdbe798 100644 --- a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java +++ b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java @@ -29,9 +29,9 @@ public class KaptToolIntegrationTestGenerated extends AbstractKaptToolIntegratio KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kapt3/kapt3-cli/testData/integration"), Pattern.compile("^([^\\.]+)$"), null, false); } - @TestMetadata("defaultPackage") + @TestMetadata("argfile") public void testArgfile() throws Exception { - runTest("plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/"); + runTest("plugins/kapt3/kapt3-cli/testData/integration/argfile/"); } @TestMetadata("correctErrorTypesOff") @@ -44,6 +44,11 @@ public class KaptToolIntegrationTestGenerated extends AbstractKaptToolIntegratio runTest("plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOn/"); } + @TestMetadata("defaultPackage") + public void testDefaultPackage() throws Exception { + runTest("plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/"); + } + @TestMetadata("kotlinFileGeneration") public void testKotlinFileGeneration() throws Exception { runTest("plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/");