diff --git a/idea/resources/inspectionDescriptions/AddOperatorModifier.html b/idea/resources/inspectionDescriptions/AddOperatorModifier.html deleted file mode 100644 index 545754bde2d..00000000000 --- a/idea/resources/inspectionDescriptions/AddOperatorModifier.html +++ /dev/null @@ -1,6 +0,0 @@ - - -This inspection reports functions that were overloading operators according to pre-M14 naming conventions -but are not annotated with the 'operator' modifier. The quickfix for the inspection adds the modifier. - - diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index da2a1367e12..239204fd269 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1238,13 +1238,6 @@ level="WARNING" /> - - ( - listOf(IntentionBasedInspection.IntentionData(AddOperatorModifierIntention())), - "Function defines an operator but isn't annotated as such", - JetNamedFunction::class.java) - class AddOperatorModifierIntention : JetSelfTargetingRangeIntention(JetNamedFunction::class.java, "Add 'operator' modifier") { override fun applicabilityRange(element: JetNamedFunction): TextRange? { val nameIdentifier = element.nameIdentifier ?: return null diff --git a/idea/testData/intentions/addOperatorModifier/.intention b/idea/testData/intentions/addOperatorModifier/.intention new file mode 100644 index 00000000000..bae269a0e51 --- /dev/null +++ b/idea/testData/intentions/addOperatorModifier/.intention @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.intentions.AddOperatorModifierIntention \ No newline at end of file diff --git a/idea/testData/quickfix/migration/operatorModifier/containsBool.kt b/idea/testData/intentions/addOperatorModifier/containsBool.kt similarity index 63% rename from idea/testData/quickfix/migration/operatorModifier/containsBool.kt rename to idea/testData/intentions/addOperatorModifier/containsBool.kt index 7fec9e0ca74..33562c45d91 100644 --- a/idea/testData/quickfix/migration/operatorModifier/containsBool.kt +++ b/idea/testData/intentions/addOperatorModifier/containsBool.kt @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { fun contains(other: A): Boolean = true } diff --git a/idea/testData/quickfix/migration/operatorModifier/containsBool.kt.after b/idea/testData/intentions/addOperatorModifier/containsBool.kt.after similarity index 66% rename from idea/testData/quickfix/migration/operatorModifier/containsBool.kt.after rename to idea/testData/intentions/addOperatorModifier/containsBool.kt.after index 323afcd19aa..e7cc2c1cd33 100644 --- a/idea/testData/quickfix/migration/operatorModifier/containsBool.kt.after +++ b/idea/testData/intentions/addOperatorModifier/containsBool.kt.after @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { operator fun contains(other: A): Boolean = true } diff --git a/idea/testData/intentions/addOperatorModifier/containsInt.kt b/idea/testData/intentions/addOperatorModifier/containsInt.kt new file mode 100644 index 00000000000..504a7e5b917 --- /dev/null +++ b/idea/testData/intentions/addOperatorModifier/containsInt.kt @@ -0,0 +1,4 @@ +// IS_APPLICABLE: false +class A { + fun contains(other: A): Int = -1 +} diff --git a/idea/testData/quickfix/migration/operatorModifier/extension.kt b/idea/testData/intentions/addOperatorModifier/extension.kt similarity index 58% rename from idea/testData/quickfix/migration/operatorModifier/extension.kt rename to idea/testData/intentions/addOperatorModifier/extension.kt index a8fd4aee6c9..72659e12f43 100644 --- a/idea/testData/quickfix/migration/operatorModifier/extension.kt +++ b/idea/testData/intentions/addOperatorModifier/extension.kt @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { } diff --git a/idea/testData/quickfix/migration/operatorModifier/extension.kt.after b/idea/testData/intentions/addOperatorModifier/extension.kt.after similarity index 62% rename from idea/testData/quickfix/migration/operatorModifier/extension.kt.after rename to idea/testData/intentions/addOperatorModifier/extension.kt.after index 2873e8065e6..f2cc769d545 100644 --- a/idea/testData/quickfix/migration/operatorModifier/extension.kt.after +++ b/idea/testData/intentions/addOperatorModifier/extension.kt.after @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { } diff --git a/idea/testData/quickfix/migration/operatorModifier/forOverride.kt b/idea/testData/intentions/addOperatorModifier/forOverride.kt similarity index 81% rename from idea/testData/quickfix/migration/operatorModifier/forOverride.kt rename to idea/testData/intentions/addOperatorModifier/forOverride.kt index b0090c6c545..81e5d3d38e2 100644 --- a/idea/testData/quickfix/migration/operatorModifier/forOverride.kt +++ b/idea/testData/intentions/addOperatorModifier/forOverride.kt @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" open class A { open fun plus(other: A): A = A() } diff --git a/idea/testData/quickfix/migration/operatorModifier/forOverride.kt.after b/idea/testData/intentions/addOperatorModifier/forOverride.kt.after similarity index 82% rename from idea/testData/quickfix/migration/operatorModifier/forOverride.kt.after rename to idea/testData/intentions/addOperatorModifier/forOverride.kt.after index 709d3f70619..8b30fad43dc 100644 --- a/idea/testData/quickfix/migration/operatorModifier/forOverride.kt.after +++ b/idea/testData/intentions/addOperatorModifier/forOverride.kt.after @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" open class A { open fun plus(other: A): A = A() } diff --git a/idea/testData/quickfix/migration/operatorModifier/overridden.kt b/idea/testData/intentions/addOperatorModifier/overridden.kt similarity index 50% rename from idea/testData/quickfix/migration/operatorModifier/overridden.kt rename to idea/testData/intentions/addOperatorModifier/overridden.kt index 5f8b905defb..9c44bde4ecb 100644 --- a/idea/testData/quickfix/migration/operatorModifier/overridden.kt +++ b/idea/testData/intentions/addOperatorModifier/overridden.kt @@ -1,6 +1,4 @@ -// "Add 'operator' modifier" "false" -// ACTION: Convert to block body -// ACTION: Specify return type explicitly +// IS_APPLICABLE: false open class A { open operator fun plus(a: A) = A() } diff --git a/idea/testData/quickfix/migration/operatorModifier/simple.kt b/idea/testData/intentions/addOperatorModifier/simple.kt similarity index 61% rename from idea/testData/quickfix/migration/operatorModifier/simple.kt rename to idea/testData/intentions/addOperatorModifier/simple.kt index 8ed4a54c3a8..2effc1945e6 100644 --- a/idea/testData/quickfix/migration/operatorModifier/simple.kt +++ b/idea/testData/intentions/addOperatorModifier/simple.kt @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { public fun plus(other: A): A = A() } \ No newline at end of file diff --git a/idea/testData/quickfix/migration/operatorModifier/simple.kt.after b/idea/testData/intentions/addOperatorModifier/simple.kt.after similarity index 62% rename from idea/testData/quickfix/migration/operatorModifier/simple.kt.after rename to idea/testData/intentions/addOperatorModifier/simple.kt.after index a777d804cfe..24c1af68ce4 100644 --- a/idea/testData/quickfix/migration/operatorModifier/simple.kt.after +++ b/idea/testData/intentions/addOperatorModifier/simple.kt.after @@ -1,4 +1,3 @@ -// "Add 'operator' modifier" "true" class A { public operator fun plus(other: A): A = A() } \ No newline at end of file diff --git a/idea/testData/intentions/addOperatorModifier/toplevel.kt b/idea/testData/intentions/addOperatorModifier/toplevel.kt new file mode 100644 index 00000000000..92aefcc4810 --- /dev/null +++ b/idea/testData/intentions/addOperatorModifier/toplevel.kt @@ -0,0 +1,5 @@ +// IS_APPLICABLE: false +class A { +} + +fun plus(other: A): A = A() diff --git a/idea/testData/quickfix/migration/operatorModifier/.inspection b/idea/testData/quickfix/migration/operatorModifier/.inspection deleted file mode 100644 index eb3ba8dd691..00000000000 --- a/idea/testData/quickfix/migration/operatorModifier/.inspection +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.AddOperatorModifierInspection \ No newline at end of file diff --git a/idea/testData/quickfix/migration/operatorModifier/containsInt.kt b/idea/testData/quickfix/migration/operatorModifier/containsInt.kt deleted file mode 100644 index 8d660c643b3..00000000000 --- a/idea/testData/quickfix/migration/operatorModifier/containsInt.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Add 'operator' modifier" "false" -// ACTION: Convert member to extension -// ACTION: Convert to block body -// ACTION: Remove explicit type specification -class A { - fun contains(other: A): Int = -1 -} diff --git a/idea/testData/quickfix/migration/operatorModifier/toplevel.kt b/idea/testData/quickfix/migration/operatorModifier/toplevel.kt deleted file mode 100644 index 4cccaf2cac8..00000000000 --- a/idea/testData/quickfix/migration/operatorModifier/toplevel.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Add 'operator' modifier" "false" -// ACTION: Convert to block body -// ACTION: Remove explicit type specification -class A { -} - -fun plus(other: A): A = A() diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index d3dddac23a4..728d11416f1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -311,6 +311,57 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } + @TestMetadata("idea/testData/intentions/addOperatorModifier") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class AddOperatorModifier extends AbstractIntentionTest { + public void testAllFilesPresentInAddOperatorModifier() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addOperatorModifier"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true); + } + + @TestMetadata("containsBool.kt") + public void testContainsBool() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/containsBool.kt"); + doTest(fileName); + } + + @TestMetadata("containsInt.kt") + public void testContainsInt() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/containsInt.kt"); + doTest(fileName); + } + + @TestMetadata("extension.kt") + public void testExtension() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/extension.kt"); + doTest(fileName); + } + + @TestMetadata("forOverride.kt") + public void testForOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/forOverride.kt"); + doTest(fileName); + } + + @TestMetadata("overridden.kt") + public void testOverridden() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/overridden.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/simple.kt"); + doTest(fileName); + } + + @TestMetadata("toplevel.kt") + public void testToplevel() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/addOperatorModifier/toplevel.kt"); + doTest(fileName); + } + } + @TestMetadata("idea/testData/intentions/branched") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index e5cb57f621c..62090e34df7 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -4295,57 +4295,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { } } - @TestMetadata("idea/testData/quickfix/migration/operatorModifier") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class OperatorModifier extends AbstractQuickFixTest { - public void testAllFilesPresentInOperatorModifier() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/operatorModifier"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true); - } - - @TestMetadata("containsBool.kt") - public void testContainsBool() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/containsBool.kt"); - doTest(fileName); - } - - @TestMetadata("containsInt.kt") - public void testContainsInt() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/containsInt.kt"); - doTest(fileName); - } - - @TestMetadata("extension.kt") - public void testExtension() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/extension.kt"); - doTest(fileName); - } - - @TestMetadata("forOverride.kt") - public void testForOverride() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/forOverride.kt"); - doTest(fileName); - } - - @TestMetadata("overridden.kt") - public void testOverridden() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/overridden.kt"); - doTest(fileName); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/simple.kt"); - doTest(fileName); - } - - @TestMetadata("toplevel.kt") - public void testToplevel() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/operatorModifier/toplevel.kt"); - doTest(fileName); - } - } - @TestMetadata("idea/testData/quickfix/migration/removeNameFromFunctionExpression") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)