diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java index 3b2151a4d91..2e188a53488 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java @@ -77,7 +77,7 @@ public class AddModifierFix extends KotlinQuickFixAction { } @Override - public void invoke(@NotNull Project project, Editor editor, KtFile file) throws IncorrectOperationException { + public void invoke(@NotNull Project project, Editor editor, @NotNull KtFile file) throws IncorrectOperationException { getElement().addModifier(modifier); } @@ -89,13 +89,11 @@ public class AddModifierFix extends KotlinQuickFixAction { public static JetSingleIntentionActionFactory createFactory(final KtModifierKeywordToken modifier, final Class modifierOwnerClass) { return new JetSingleIntentionActionFactory() { @Override - public IntentionAction createAction(Diagnostic diagnostic) { + public IntentionAction createAction(@NotNull Diagnostic diagnostic) { KtModifierListOwner modifierListOwner = QuickFixUtil.getParentElementOfType(diagnostic, modifierOwnerClass); if (modifierListOwner == null) return null; - if (modifier == KtTokens.ABSTRACT_KEYWORD && - modifierListOwner instanceof KtObjectDeclaration && - ((KtObjectDeclaration) modifierListOwner).isObjectLiteral()) return null; + if (modifier == KtTokens.ABSTRACT_KEYWORD && modifierListOwner instanceof KtObjectDeclaration) return null; return new AddModifierFix(modifierListOwner, modifier); } diff --git a/idea/testData/quickfix/anonymousObject.kt b/idea/testData/quickfix/modifiers/noAbstractForAnonymousObject.kt similarity index 100% rename from idea/testData/quickfix/anonymousObject.kt rename to idea/testData/quickfix/modifiers/noAbstractForAnonymousObject.kt diff --git a/idea/testData/quickfix/modifiers/noAbstractForObject.kt b/idea/testData/quickfix/modifiers/noAbstractForObject.kt new file mode 100644 index 00000000000..368103dc207 --- /dev/null +++ b/idea/testData/quickfix/modifiers/noAbstractForObject.kt @@ -0,0 +1,10 @@ +// "Make 'Some' abstract" "false" +// ACTION: Create test +// ACTION: Implement members +// ACTION: Move 'Some' to separate file +// ERROR: Object 'Some' must be declared abstract or implement abstract member public abstract fun foo(): kotlin.Unit defined in T +interface T { + fun foo() +} + +object Some : T \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 6e22f35cd55..018af604f8c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -35,12 +35,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true); } - @TestMetadata("anonymousObject.kt") - public void testAnonymousObject() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/anonymousObject.kt"); - doTest(fileName); - } - @TestMetadata("idea/testData/quickfix/abstract") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -4502,6 +4496,18 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("noAbstractForAnonymousObject.kt") + public void testNoAbstractForAnonymousObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/noAbstractForAnonymousObject.kt"); + doTest(fileName); + } + + @TestMetadata("noAbstractForObject.kt") + public void testNoAbstractForObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/noAbstractForObject.kt"); + doTest(fileName); + } + @TestMetadata("notAnAnnotationClass.kt") public void testNotAnAnnotationClass() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/notAnAnnotationClass.kt");