Do not try to make object's containing class abstract #KT-11466 Fixed

This commit is contained in:
Mikhail Glukhikh
2016-05-11 12:36:07 +03:00
parent af2cf715be
commit a098977c54
3 changed files with 18 additions and 1 deletions
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.idea.quickfix.replaceWith.DeprecatedSymbolUsageInWho
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.lexer.KtTokens.*
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm.NO_REFLECTION_IN_CLASS_PATH
@@ -71,7 +72,7 @@ class QuickFixRegistrar : QuickFixContributor {
MUST_BE_INITIALIZED_OR_BE_ABSTRACT.registerFactory(InitializePropertyQuickFixFactory)
MUST_BE_INITIALIZED.registerFactory(InitializePropertyQuickFixFactory)
val addAbstractToClassFactory = AddModifierFix.createFactory(ABSTRACT_KEYWORD, KtClass::class.java)
val addAbstractToClassFactory = AddModifierFix.createFactory(ABSTRACT_KEYWORD, KtClassOrObject::class.java)
ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS.registerFactory(removeAbstractModifierFactory, addAbstractToClassFactory)
ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS.registerFactory(removeAbstractModifierFactory, addAbstractToClassFactory)
@@ -0,0 +1,10 @@
// "Make 'Owner' abstract" "false"
// ERROR: Abstract property 'x' in non-abstract class 'Companion'
// ACTION: Make 'x' not abstract
// ACTION: Make internal
class Owner {
companion object {
<caret>abstract val x: Int
}
}
@@ -75,6 +75,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
doTest(fileName);
}
@TestMetadata("abstractPropertyInCompanionObject.kt")
public void testAbstractPropertyInCompanionObject() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/abstract/abstractPropertyInCompanionObject.kt");
doTest(fileName);
}
@TestMetadata("abstractPropertyInNonAbstractClass1.kt")
public void testAbstractPropertyInNonAbstractClass1() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/abstract/abstractPropertyInNonAbstractClass1.kt");