FIR IDE: quickfix to add override keyword
Also enables more tests that covers previous quickfixes
This commit is contained in:
committed by
Ilya Kirillov
parent
1658f4433d
commit
90a0c9bb25
@@ -0,0 +1,9 @@
|
|||||||
|
package foo.bar
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
class A {
|
||||||
|
inner class B
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <!UNRESOLVED_REFERENCE!>A.B<!>.foo() {}
|
||||||
|
}
|
||||||
+1
@@ -1172,6 +1172,7 @@ fun main(args: Array<String>) {
|
|||||||
model("quickfix/lateinit", pattern = pattern, filenameStartsLowerCase = true)
|
model("quickfix/lateinit", pattern = pattern, filenameStartsLowerCase = true)
|
||||||
model("quickfix/modifiers", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
model("quickfix/modifiers", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
||||||
model("quickfix/nullables/unsafeInfixCall", pattern = pattern, filenameStartsLowerCase = true)
|
model("quickfix/nullables/unsafeInfixCall", pattern = pattern, filenameStartsLowerCase = true)
|
||||||
|
model("quickfix/override", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
||||||
model("quickfix/override/typeMismatchOnOverride", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
model("quickfix/override/typeMismatchOnOverride", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
||||||
model("quickfix/replaceInfixOrOperatorCall", pattern = pattern, filenameStartsLowerCase = true)
|
model("quickfix/replaceInfixOrOperatorCall", pattern = pattern, filenameStartsLowerCase = true)
|
||||||
model("quickfix/replaceWithDotCall", pattern = pattern, filenameStartsLowerCase = true)
|
model("quickfix/replaceWithDotCall", pattern = pattern, filenameStartsLowerCase = true)
|
||||||
|
|||||||
@@ -62,6 +62,10 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() {
|
|||||||
KtFirDiagnostic.AbstractClassMemberNotImplemented::class,
|
KtFirDiagnostic.AbstractClassMemberNotImplemented::class,
|
||||||
AddModifierFix.addAbstractModifier
|
AddModifierFix.addAbstractModifier
|
||||||
)
|
)
|
||||||
|
registerPsiQuickFixes(
|
||||||
|
KtFirDiagnostic.VirtualMemberHidden::class,
|
||||||
|
AddModifierFix.addOverrideModifier
|
||||||
|
)
|
||||||
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnLoopParameter::class, RemoveValVarFromParameterFix)
|
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnLoopParameter::class, RemoveValVarFromParameterFix)
|
||||||
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnFunParameter::class, RemoveValVarFromParameterFix)
|
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnFunParameter::class, RemoveValVarFromParameterFix)
|
||||||
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnCatchParameter::class, RemoveValVarFromParameterFix)
|
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnCatchParameter::class, RemoveValVarFromParameterFix)
|
||||||
|
|||||||
+1
@@ -111,6 +111,7 @@ open class AddModifierFix(
|
|||||||
val addOpenToContainingClass = AddModifierFix.createFactory(KtTokens.OPEN_KEYWORD, KtClassOrObject::class.java)
|
val addOpenToContainingClass = AddModifierFix.createFactory(KtTokens.OPEN_KEYWORD, KtClassOrObject::class.java)
|
||||||
val addFinalToProperty = AddModifierFix.createFactory(KtTokens.FINAL_KEYWORD, KtProperty::class.java)
|
val addFinalToProperty = AddModifierFix.createFactory(KtTokens.FINAL_KEYWORD, KtProperty::class.java)
|
||||||
val addInnerModifier = createFactory(KtTokens.INNER_KEYWORD)
|
val addInnerModifier = createFactory(KtTokens.INNER_KEYWORD)
|
||||||
|
val addOverrideModifier = createFactory(KtTokens.OVERRIDE_KEYWORD)
|
||||||
|
|
||||||
private val modalityModifiers: Set<KtModifierKeywordToken> =
|
private val modalityModifiers: Set<KtModifierKeywordToken> =
|
||||||
setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD)
|
setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD)
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ package override
|
|||||||
}
|
}
|
||||||
|
|
||||||
<error descr="[ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED] Class MyIllegalClass4 is not abstract and does not implement abstract base class member bar">class MyIllegalClass4</error> : MyTrait, MyAbstractClass() {
|
<error descr="[ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED] Class MyIllegalClass4 is not abstract and does not implement abstract base class member bar">class MyIllegalClass4</error> : MyTrait, MyAbstractClass() {
|
||||||
fun foo() {}
|
fun <error descr="[VIRTUAL_MEMBER_HIDDEN] 'foo' hides member of supertype 'MyTrait' and needs 'override' modifier">foo</error>() {}
|
||||||
override fun other() {}
|
override fun other() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ open class A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class B : A<caret> {}
|
class B : A<caret> {}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -18,3 +18,4 @@ interface Z {
|
|||||||
class B : A(), X, Y, Z {
|
class B : A(), X, Y, Z {
|
||||||
override<caret> fun foo() {}
|
override<caret> fun foo() {}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -16,3 +16,4 @@ class B(y: XX) : A(y) {
|
|||||||
override<caret> fun foo() {
|
override<caret> fun foo() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -16,3 +16,4 @@ class B() : Y {
|
|||||||
override<caret> fun foo() {
|
override<caret> fun foo() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ open class A {
|
|||||||
class B : A() {
|
class B : A() {
|
||||||
override<caret> fun foo() {}
|
override<caret> fun foo() {}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ fun test() {
|
|||||||
<caret>override fun foo() {}
|
<caret>override fun foo() {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ open class A {
|
|||||||
class B : A() {
|
class B : A() {
|
||||||
override<caret> var x = 24;
|
override<caret> var x = 24;
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
+1
@@ -13,3 +13,4 @@ class B : A(), X {
|
|||||||
return agr
|
return agr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
@@ -9,3 +9,4 @@ class B : A() {
|
|||||||
return agr
|
return agr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* IGNORE_FIR */
|
||||||
|
|||||||
Reference in New Issue
Block a user