diff --git a/idea/resources/inspectionDescriptions/SimplifyBinaryNegationInspection.html b/idea/resources/inspectionDescriptions/SimplifyBinaryNegationInspection.html
new file mode 100644
index 00000000000..e6a79b466e0
--- /dev/null
+++ b/idea/resources/inspectionDescriptions/SimplifyBinaryNegationInspection.html
@@ -0,0 +1,5 @@
+
+
+This inspection reports any negated binary expressions that can be simplified
+
+
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 87d65e4ca0f..4aec75214d2 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -734,6 +734,13 @@
level="WARNING"
/>
+
+
diff --git a/idea/src/org/jetbrains/jet/plugin/inspections/SimplifyBinaryNegationInspection.kt b/idea/src/org/jetbrains/jet/plugin/inspections/SimplifyBinaryNegationInspection.kt
new file mode 100644
index 00000000000..279988f3557
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/plugin/inspections/SimplifyBinaryNegationInspection.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2010-2014 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.jet.plugin.inspections
+
+import org.jetbrains.jet.lang.psi.*
+import org.jetbrains.jet.plugin.intentions.SimplifyNegatedBinaryExpressionIntention
+
+public class SimplifyBinaryNegationInspection : IntentionBasedInspection(SimplifyNegatedBinaryExpressionIntention())
\ No newline at end of file
diff --git a/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/expected.xml b/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/expected.xml
new file mode 100644
index 00000000000..de9eac81433
--- /dev/null
+++ b/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/expected.xml
@@ -0,0 +1,93 @@
+
+
+
+ notIs.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '!is' expression to 'is'
+
+
+
+ notIn.kt
+ 8
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '!in' expression to 'in'
+
+
+
+ notEquals.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '!=' expression to '=='
+
+
+
+ lessThanOrEquals.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '<=' expression to '>'
+
+
+
+ lessThan.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '<' expression to '>='
+
+
+
+ is.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated 'is' expression to '!is'
+
+
+
+ in.kt
+ 8
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated 'in' expression to '!in'
+
+
+
+ greaterThanOrEquals.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '>=' expression to '<'
+
+
+
+ greaterThan.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '>' expression to '<='
+
+
+
+ equals.kt
+ 3
+ light_idea_test_case
+
+ Simplify Negated Binary Expression
+ Simplify negated '==' expression to '!='
+
+
+
\ No newline at end of file
diff --git a/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/inspections.test b/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/inspections.test
new file mode 100644
index 00000000000..a5c1a59273f
--- /dev/null
+++ b/idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/inspections.test
@@ -0,0 +1 @@
+// INSPECTION_CLASS: org.jetbrains.jet.plugin.inspections.SimplifyBinaryNegationInspection
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/JetInspectionTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/JetInspectionTestGenerated.java
index a7fd8694937..a62765f2f87 100644
--- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/JetInspectionTestGenerated.java
+++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/JetInspectionTestGenerated.java
@@ -56,4 +56,9 @@ public class JetInspectionTestGenerated extends AbstractJetInspectionTest {
doTest("idea/testData/intentions/removeExplicitTypeArguments/inspectionData/inspections.test");
}
+ @TestMetadata("simplifyNegatedBinaryExpressionIntention/inspectionData/inspections.test")
+ public void testSimplifyNegatedBinaryExpressionIntention_inspectionData_Inspections_test() throws Exception {
+ doTest("idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/inspectionData/inspections.test");
+ }
+
}
diff --git a/idea/tests/org/jetbrains/jet/plugin/intentions/CodeTransformationTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/intentions/CodeTransformationTestGenerated.java
index dfe007dcb27..f1fdf1a6ed1 100644
--- a/idea/tests/org/jetbrains/jet/plugin/intentions/CodeTransformationTestGenerated.java
+++ b/idea/tests/org/jetbrains/jet/plugin/intentions/CodeTransformationTestGenerated.java
@@ -2897,6 +2897,7 @@ public class CodeTransformationTestGenerated extends AbstractCodeTransformationT
}
@TestMetadata("idea/testData/intentions/simplifyNegatedBinaryExpressionIntention")
+ @InnerTestClasses({})
public static class SimplifyNegatedBinaryExpressionIntention extends AbstractCodeTransformationTest {
public void testAllFilesPresentInSimplifyNegatedBinaryExpressionIntention() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/intentions/simplifyNegatedBinaryExpressionIntention"), Pattern.compile("^(.+)\\.kt$"), true);
@@ -2962,6 +2963,11 @@ public class CodeTransformationTestGenerated extends AbstractCodeTransformationT
doTestSimplifyNegatedBinaryExpressionIntention("idea/testData/intentions/simplifyNegatedBinaryExpressionIntention/simpleInvert.kt");
}
+ public static Test innerSuite() {
+ TestSuite suite = new TestSuite("SimplifyNegatedBinaryExpressionIntention");
+ suite.addTestSuite(SimplifyNegatedBinaryExpressionIntention.class);
+ return suite;
+ }
}
@TestMetadata("idea/testData/intentions/convertNegatedBooleanSequence")
@@ -4279,7 +4285,7 @@ public class CodeTransformationTestGenerated extends AbstractCodeTransformationT
suite.addTestSuite(ReplaceBinaryInfixIntention.class);
suite.addTestSuite(ReplaceUnaryPrefixIntention.class);
suite.addTestSuite(ReplaceInvokeIntention.class);
- suite.addTestSuite(SimplifyNegatedBinaryExpressionIntention.class);
+ suite.addTest(SimplifyNegatedBinaryExpressionIntention.innerSuite());
suite.addTestSuite(ConvertNegatedBooleanSequence.class);
suite.addTestSuite(ConvertNegatedExpressionWithDemorgansLaw.class);
suite.addTestSuite(SwapBinaryExpression.class);