UnnecessaryVariableInspection: don't report for overriding property
#KT-39263 Fixed
This commit is contained in:
committed by
Ilya Kirillov
parent
c29dbee65e
commit
122bba9102
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
|
|||||||
import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator
|
import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator
|
||||||
import org.jetbrains.kotlin.idea.refactoring.inline.KotlinInlineValHandler
|
import org.jetbrains.kotlin.idea.refactoring.inline.KotlinInlineValHandler
|
||||||
import org.jetbrains.kotlin.idea.util.nameIdentifierTextRangeInThis
|
import org.jetbrains.kotlin.idea.util.nameIdentifierTextRangeInThis
|
||||||
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getNextSiblingIgnoringWhitespaceAndComments
|
import org.jetbrains.kotlin.psi.psiUtil.getNextSiblingIgnoringWhitespaceAndComments
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||||
@@ -66,6 +67,7 @@ class UnnecessaryVariableInspection : AbstractApplicabilityBasedInspection<KtPro
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun statusFor(property: KtProperty): Status? {
|
private fun statusFor(property: KtProperty): Status? {
|
||||||
|
if (property.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return null
|
||||||
val enclosingElement = KtPsiUtil.getEnclosingElementForLocalDeclaration(property) ?: return null
|
val enclosingElement = KtPsiUtil.getEnclosingElementForLocalDeclaration(property) ?: return null
|
||||||
val initializer = property.initializer ?: return null
|
val initializer = property.initializer ?: return null
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
// PROBLEM: none
|
||||||
|
abstract class Foo {
|
||||||
|
abstract val bar: Int
|
||||||
|
abstract fun baz()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun println(i: Int) {}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val i = 1
|
||||||
|
object : Foo() {
|
||||||
|
override val <caret>bar = i
|
||||||
|
override fun baz() {
|
||||||
|
println(bar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -13680,6 +13680,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
|
|||||||
runTest("idea/testData/inspectionsLocal/unnecessaryVariable/it.kt");
|
runTest("idea/testData/inspectionsLocal/unnecessaryVariable/it.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("override.kt")
|
||||||
|
public void testOverride() throws Exception {
|
||||||
|
runTest("idea/testData/inspectionsLocal/unnecessaryVariable/override.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("paramCopy.kt")
|
@TestMetadata("paramCopy.kt")
|
||||||
public void testParamCopy() throws Exception {
|
public void testParamCopy() throws Exception {
|
||||||
runTest("idea/testData/inspectionsLocal/unnecessaryVariable/paramCopy.kt");
|
runTest("idea/testData/inspectionsLocal/unnecessaryVariable/paramCopy.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user