New J2K: Do not ignore unused vals in CanBeVal inspection in postprocessing

This commit is contained in:
Ilya Kirillov
2018-10-08 12:16:25 +03:00
committed by Ilya Kirillov
parent 4d1b2a8d5b
commit c3ffaa34f8
2 changed files with 4 additions and 3 deletions
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import java.util.* import java.util.*
class CanBeValInspection : AbstractKotlinInspection() { class CanBeValInspection @JvmOverloads constructor(val ignoreNotUsedVals: Boolean = true) : AbstractKotlinInspection() {
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor {
return object: KtVisitorVoid() { return object: KtVisitorVoid() {
private val pseudocodeCache = HashMap<KtDeclaration, Pseudocode>() private val pseudocodeCache = HashMap<KtDeclaration, Pseudocode>()
@@ -72,7 +72,7 @@ class CanBeValInspection : AbstractKotlinInspection() {
hasInitializerOrDelegate: Boolean, hasInitializerOrDelegate: Boolean,
allDeclarations: Collection<KtVariableDeclaration> allDeclarations: Collection<KtVariableDeclaration>
): Boolean { ): Boolean {
if (allDeclarations.all { ReferencesSearch.search(it, it.useScope).none() }) { if (ignoreNotUsedVals && allDeclarations.all { ReferencesSearch.search(it, it.useScope).none() }) {
// do not report for unused var's (otherwise we'll get it highlighted immediately after typing the declaration // do not report for unused var's (otherwise we'll get it highlighted immediately after typing the declaration
return false return false
} }
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.F
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isTrivialStatementBody
import org.jetbrains.kotlin.idea.quickfix.ChangeVariableMutabilityFix
import org.jetbrains.kotlin.idea.quickfix.QuickFixActionBase import org.jetbrains.kotlin.idea.quickfix.QuickFixActionBase
import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix import org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix
import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix import org.jetbrains.kotlin.idea.quickfix.RemoveUselessCastFix
@@ -92,7 +93,7 @@ object J2KPostProcessingRegistrar {
registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection()) registerGeneralInspectionBasedProcessing(RedundantExplicitTypeInspection())
registerGeneralInspectionBasedProcessing(RedundantUnitReturnTypeInspection()) registerGeneralInspectionBasedProcessing(RedundantUnitReturnTypeInspection())
_processings.add(RemoveExplicitPropertyType()) _processings.add(RemoveExplicitPropertyType())
registerGeneralInspectionBasedProcessing(CanBeValInspection()) registerGeneralInspectionBasedProcessing(CanBeValInspection(ignoreNotUsedVals = false))
registerIntentionBasedProcessing(FoldInitializerAndIfToElvisIntention()) registerIntentionBasedProcessing(FoldInitializerAndIfToElvisIntention())