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/modifiers", pattern = pattern, filenameStartsLowerCase = true, recursive = false)
|
||||
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/replaceInfixOrOperatorCall", pattern = pattern, filenameStartsLowerCase = true)
|
||||
model("quickfix/replaceWithDotCall", pattern = pattern, filenameStartsLowerCase = true)
|
||||
|
||||
@@ -62,6 +62,10 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() {
|
||||
KtFirDiagnostic.AbstractClassMemberNotImplemented::class,
|
||||
AddModifierFix.addAbstractModifier
|
||||
)
|
||||
registerPsiQuickFixes(
|
||||
KtFirDiagnostic.VirtualMemberHidden::class,
|
||||
AddModifierFix.addOverrideModifier
|
||||
)
|
||||
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnLoopParameter::class, RemoveValVarFromParameterFix)
|
||||
registerPsiQuickFixes(KtFirDiagnostic.ValOrVarOnFunParameter::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 addFinalToProperty = AddModifierFix.createFactory(KtTokens.FINAL_KEYWORD, KtProperty::class.java)
|
||||
val addInnerModifier = createFactory(KtTokens.INNER_KEYWORD)
|
||||
val addOverrideModifier = createFactory(KtTokens.OVERRIDE_KEYWORD)
|
||||
|
||||
private val modalityModifiers: Set<KtModifierKeywordToken> =
|
||||
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() {
|
||||
fun foo() {}
|
||||
fun <error descr="[VIRTUAL_MEMBER_HIDDEN] 'foo' hides member of supertype 'MyTrait' and needs 'override' modifier">foo</error>() {}
|
||||
override fun other() {}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,3 +5,4 @@ open class A {
|
||||
}
|
||||
|
||||
class B : A<caret> {}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -18,3 +18,4 @@ interface Z {
|
||||
class B : A(), X, Y, Z {
|
||||
override<caret> fun foo() {}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -16,3 +16,4 @@ class B(y: XX) : A(y) {
|
||||
override<caret> fun foo() {
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -16,3 +16,4 @@ class B() : Y {
|
||||
override<caret> fun foo() {
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -5,4 +5,5 @@ open class A {
|
||||
|
||||
class B : A() {
|
||||
override<caret> fun foo() {}
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -7,4 +7,5 @@ fun test() {
|
||||
val some = object : A() {
|
||||
<caret>override fun foo() {}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -5,4 +5,5 @@ open class A {
|
||||
|
||||
class B : A() {
|
||||
override<caret> var x = 24;
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
+1
@@ -13,3 +13,4 @@ class B : A(), X {
|
||||
return agr
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
@@ -9,3 +9,4 @@ class B : A() {
|
||||
return agr
|
||||
}
|
||||
}
|
||||
/* IGNORE_FIR */
|
||||
|
||||
Reference in New Issue
Block a user