diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/JavaClassOnCompanionFixes.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/JavaClassOnCompanionFixes.kt deleted file mode 100644 index 3e4d0f306d9..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/JavaClassOnCompanionFixes.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.quickfix - -import com.intellij.codeInsight.intention.IntentionAction -import com.intellij.codeInsight.intention.LowPriorityAction -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.KotlinBundle -import org.jetbrains.kotlin.idea.references.mainReference -import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.utils.addToStdlib.safeAs - -object JavaClassOnCompanionFixes : KotlinIntentionActionsFactory() { - override fun doCreateActions(diagnostic: Diagnostic): List { - val expression = diagnostic.psiElement.parent as? KtDotQualifiedExpression ?: return emptyList() - val companionName = expression.receiverExpression.mainReference?.resolve()?.safeAs()?.name ?: "Companion" - return listOf( - ReplaceWithCompanionClassJavaFix(expression, companionName), - ReplaceWithClassJavaFix(expression) - ) - } -} - -class ReplaceWithCompanionClassJavaFix( - expression: KtDotQualifiedExpression, - private val companionName: String -) : KotlinQuickFixAction(expression) { - override fun getText(): String = KotlinBundle.message("replace.with.0", "$companionName::class.java") - - override fun getFamilyName(): String = text - - override fun invoke(project: Project, editor: Editor?, file: KtFile) { - element?.replace("$0.$companionName::class.java") - } -} - -class ReplaceWithClassJavaFix( - expression: KtDotQualifiedExpression -) : KotlinQuickFixAction(expression), LowPriorityAction { - override fun getText(): String = KotlinBundle.message("replace.with.0", "::class.java") - - override fun getFamilyName(): String = text - - override fun invoke(project: Project, editor: Editor?, file: KtFile) { - element?.replace("$0::class.java") - } -} - -private fun KtDotQualifiedExpression.replace(pattern: String) { - replace(KtPsiFactory(this).createExpressionByPattern(pattern, receiverExpression)) -} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index 45d12a77f21..caf2ffe79f1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -668,7 +668,5 @@ class QuickFixRegistrar : QuickFixContributor { INCOMPATIBLE_THROWS_OVERRIDE.registerFactory(RemoveAnnotationFix) INLINE_CLASS_CONSTRUCTOR_NOT_FINAL_READ_ONLY_PARAMETER.registerFactory(InlineClassConstructorNotValParameterFactory) - - JAVA_CLASS_ON_COMPANION.registerFactory(JavaClassOnCompanionFixes) } } diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt deleted file mode 100644 index cccce69c927..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -// DISABLE-ERRORS -fun main() { - val c: Class = Int.javaClass -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt.after deleted file mode 100644 index 855cc1db8c2..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt.after +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -// DISABLE-ERRORS -fun main() { - val c: Class = Int::class.java -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt deleted file mode 100644 index fbccacc944c..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c = Int.javaClass -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt.after deleted file mode 100644 index 86e0742ed4a..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt.after +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c = Int::class.java -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt deleted file mode 100644 index 537d9bb9c48..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -fun main() { - val name = Int.javaClass.name -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt.after deleted file mode 100644 index ab8e6ff7dee..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt.after +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with '::class.java'" "true" -// WITH_RUNTIME -fun main() { - val name = Int::class.java.name -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt deleted file mode 100644 index 7fb2d7cb0fb..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c: Class = Int.javaClass -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt.after deleted file mode 100644 index 6cf642ab1d9..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt.after +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c: Class = Int.Companion::class.java -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt deleted file mode 100644 index 18d74271562..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt +++ /dev/null @@ -1,9 +0,0 @@ -// "Replace with 'Bar::class.java'" "true" -// WITH_RUNTIME -class Foo { - companion object Bar -} - -fun test() { - Foo.javaClass -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt.after deleted file mode 100644 index e56712b2d52..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt.after +++ /dev/null @@ -1,9 +0,0 @@ -// "Replace with 'Bar::class.java'" "true" -// WITH_RUNTIME -class Foo { - companion object Bar -} - -fun test() { - Foo.Bar::class.java -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt deleted file mode 100644 index 3131303bcaf..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c = Int.javaClass -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt.after deleted file mode 100644 index 754e3c3f78a..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt.after +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val c = Int.Companion::class.java -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt deleted file mode 100644 index 00a0ad85677..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val name = Int.javaClass.name -} \ No newline at end of file diff --git a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt.after b/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt.after deleted file mode 100644 index 7d15eb17bf4..00000000000 --- a/idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt.after +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace with 'Companion::class.java'" "true" -// WITH_RUNTIME -fun main() { - val name = Int.Companion::class.java.name -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index 883dba4ae5b..96bb1f1338d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -3087,45 +3087,6 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes } } - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class JavaClassOnCompanion extends AbstractQuickFixMultiFileTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath); - } - - public void testAllFilesPresentInJavaClassOnCompanion() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+)|(test))$"), null, true); - } - - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceWithClassJava extends AbstractQuickFixMultiFileTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath); - } - - public void testAllFilesPresentInReplaceWithClassJava() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+)|(test))$"), null, true); - } - } - - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceWithCompanionClassJava extends AbstractQuickFixMultiFileTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath); - } - - public void testAllFilesPresentInReplaceWithCompanionClassJava() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+)|(test))$"), null, true); - } - } - } - @TestMetadata("idea/testData/quickfix/kdocMissingDocumentation") @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 20ac292bc02..dfa48502dd2 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -8657,80 +8657,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { } } - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class JavaClassOnCompanion extends AbstractQuickFixTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); - } - - public void testAllFilesPresentInJavaClassOnCompanion() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), null, true); - } - - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceWithClassJava extends AbstractQuickFixTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); - } - - public void testAllFilesPresentInReplaceWithClassJava() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), null, true); - } - - @TestMetadata("hasType.kt") - public void testHasType() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/hasType.kt"); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/simple.kt"); - } - - @TestMetadata("withName.kt") - public void testWithName() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithClassJava/withName.kt"); - } - } - - @TestMetadata("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceWithCompanionClassJava extends AbstractQuickFixTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); - } - - public void testAllFilesPresentInReplaceWithCompanionClassJava() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), null, true); - } - - @TestMetadata("hasType.kt") - public void testHasType() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/hasType.kt"); - } - - @TestMetadata("namedCompanion.kt") - public void testNamedCompanion() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/namedCompanion.kt"); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/simple.kt"); - } - - @TestMetadata("withName.kt") - public void testWithName() throws Exception { - runTest("idea/testData/quickfix/javaClassOnCompanion/replaceWithCompanionClassJava/withName.kt"); - } - } - } - @TestMetadata("idea/testData/quickfix/kdocMissingDocumentation") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)