diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantObjectTypeCheckInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantObjectTypeCheckInspection.kt index 614c31016d2..6db5f57ef8b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantObjectTypeCheckInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantObjectTypeCheckInspection.kt @@ -41,14 +41,6 @@ class RedundantObjectTypeCheckInspection : AbstractKotlinInspection() { registerProblem(expression.operationReference, ReplaceWithEqualityFix(expression.isNegated)) } - override fun visitWhenConditionIsPattern(condition: KtWhenConditionIsPattern) { - super.visitWhenConditionIsPattern(condition) - val typeReference = condition.typeReference ?: return - if (!typeReference.isObject()) return - if (condition.isNegated) return - registerProblem(condition, RemoveIsOperator()) - } - private fun registerProblem(element: KtElement, quickFix: LocalQuickFix) { holder.registerProblem( element, @@ -69,7 +61,7 @@ private fun KtTypeReference.isObject(): Boolean { private class ReplaceWithEqualityFix(isNegated: Boolean) : LocalQuickFix { private val isOperator = if (isNegated) "!is" else "is" - private val equality = if (isNegated) "!=" else "==" + private val equality = if (isNegated) "!==" else "===" override fun getName() = "Replace '$isOperator' with '$equality'" @@ -83,18 +75,3 @@ private class ReplaceWithEqualityFix(isNegated: Boolean) : LocalQuickFix { element.replace(newElement) } } - -private class RemoveIsOperator : LocalQuickFix { - override fun getName() = "Remove 'is' operator" - - override fun getFamilyName() = name - - override fun applyFix(project: Project, descriptor: ProblemDescriptor) { - val element = descriptor.psiElement.getParentOfType(strict = false) ?: return - val typeReference = element.typeReference ?: return - val factory = KtPsiFactory(project) - val newElement = factory.createWhenCondition(typeReference.text) - element.replace(newElement) - } -} - diff --git a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isNotObject.kt.after b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isNotObject.kt.after index f8f7b58faff..8e9efd69d9d 100644 --- a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isNotObject.kt.after +++ b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isNotObject.kt.after @@ -1,6 +1,6 @@ object O fun foo(arg: Any) { - if (arg != O) { + if (arg !== O) { } } \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObject.kt.after b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObject.kt.after index 7b5c390ee16..d55bb422fd0 100644 --- a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObject.kt.after +++ b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObject.kt.after @@ -1,6 +1,6 @@ object O fun foo(arg: Any) { - if (arg == O) { + if (arg === O) { } } \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt index 8f76847811b..8684548b990 100644 --- a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt +++ b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt @@ -1,3 +1,5 @@ +// PROBLEM: none + object O fun foo(arg: Any) { diff --git a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt.after b/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt.after deleted file mode 100644 index 405e54d79c7..00000000000 --- a/idea/testData/inspectionsLocal/redundantObjectTypeCheck/isObjectWhenEntry.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -object O - -fun foo(arg: Any) { - when (arg) { - O -> { - } - } -} \ No newline at end of file