From 980499e33153c7eb1cea6d548252d068d83312de Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 9 Jun 2015 17:44:44 +0300 Subject: [PATCH] Drop `javaClass in annotations` related things from inspections/quickfixes --- .../inspections/KotlinCleanupInspection.kt | 2 - .../idea/quickfix/QuickFixRegistrar.java | 8 - ...ReplaceJavaClassAsAnnotationArgumentFix.kt | 57 ------- ...eplaceJavaClassAsAnnotationParameterFix.kt | 55 ------ .../idea/quickfix/replaceJavaClass/common.kt | 159 ------------------ .../testData/inspections/cleanup/JavaAnn.java | 2 - idea/testData/inspections/cleanup/cleanup.kt | 6 +- .../inspections/cleanup/cleanup.kt.after | 8 +- .../arrayRuntime.kt | 6 - .../arrayRuntime.kt.after | 8 - .../basicRuntime.kt | 6 - .../basicRuntime.kt.after | 8 - .../defaultRuntime.kt | 14 -- .../defaultRuntime.kt.after | 16 -- .../manyFilesMultiple.after.Dependency.java | 2 - .../manyFilesMultiple.after.Dependency.kt | 7 - .../manyFilesMultiple.after.kt | 26 --- .../manyFilesMultiple.before.Dependency.java | 2 - .../manyFilesMultiple.before.Dependency.kt | 5 - .../manyFilesMultiple.before.Main.kt | 24 --- .../usageWithErrorRuntime.kt | 14 -- .../usageWithErrorRuntime.kt.after | 16 -- .../varargRuntime.kt | 6 - .../varargRuntime.kt.after | 8 - ...yWithExplicitTypeArgumentMultiple.after.kt | 12 -- ...ypeArgumentMultiple.before.Dependency.java | 3 - ...xplicitTypeArgumentMultiple.before.Main.kt | 10 -- .../basicMultiple.after.kt | 4 - .../basicMultiple.before.Dependency.java | 3 - .../basicMultiple.before.Main.kt | 4 - .../genericArgumentMultiple.after.kt | 15 -- .../genericArgumentMultiple.before.Main.kt | 15 -- ...icArgumentMultiple.before.data.Sample.java | 3 - .../implicitParameterMultiple.after.kt | 6 - ...itParameterMultiple.before.Dependency.java | 11 -- .../implicitParameterMultiple.before.Main.kt | 4 - .../manyFilesMultiple.after.Dependency.kt | 4 - .../manyFilesMultiple.after.kt | 20 --- .../manyFilesMultiple.before.Dependency.java | 7 - .../manyFilesMultiple.before.Dependency.kt | 4 - .../manyFilesMultiple.before.Main.kt | 20 --- .../nonConstMultiple.after.kt | 6 - .../nonConstMultiple.before.Dependency.java | 3 - .../nonConstMultiple.before.Main.kt | 6 - .../severalArgsMultiple.after.kt | 6 - ...severalArgsMultiple.before.Dependency.java | 7 - .../severalArgsMultiple.before.Main.kt | 4 - .../unresolvedMultiple.after.kt | 5 - .../unresolvedMultiple.before.Dependency.java | 3 - .../unresolvedMultiple.before.Main.kt | 5 - .../valueAsVarargMultiple.after.kt | 13 -- ...lueAsVarargMultiple.before.Dependency.java | 7 - .../valueAsVarargMultiple.before.Main.kt | 11 -- .../QuickFixMultiFileTestGenerated.java | 78 --------- .../idea/quickfix/QuickFixTestGenerated.java | 39 ----- 55 files changed, 2 insertions(+), 801 deletions(-) delete mode 100644 idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationArgumentFix.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationParameterFix.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/common.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt.after delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt.after delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt.after delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt.after delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt.after delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.data.Sample.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.Dependency.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Main.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.after.kt delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Dependency.java delete mode 100644 idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Main.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinCleanupInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinCleanupInspection.kt index 74a6b4061f4..7b3b647804f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinCleanupInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/KotlinCleanupInspection.kt @@ -87,8 +87,6 @@ public class KotlinCleanupInspection(): LocalInspectionTool(), CleanupLocalInspe Errors.DEPRECATED_LAMBDA_SYNTAX, Errors.MISSING_CONSTRUCTOR_KEYWORD, Errors.FUNCTION_EXPRESSION_WITH_NAME, - Errors.JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION, - ErrorsJvm.JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION, Errors.UNNECESSARY_NOT_NULL_ASSERTION, Errors.UNNECESSARY_SAFE_CALL, Errors.USELESS_CAST, diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java index 11a2eeabfbc..8b26c007e77 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.java @@ -25,8 +25,6 @@ import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.CreateClas import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createVariable.CreateLocalVariableActionFactory; import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createVariable.CreateParameterActionFactory; import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createVariable.CreateParameterByNamedArgumentActionFactory; -import org.jetbrains.kotlin.idea.quickfix.replaceJavaClass.ReplaceJavaClassAsAnnotationArgumentFix; -import org.jetbrains.kotlin.idea.quickfix.replaceJavaClass.ReplaceJavaClassAsAnnotationParameterFix; import org.jetbrains.kotlin.psi.JetClass; import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm; @@ -316,15 +314,9 @@ public class QuickFixRegistrar { QuickFixes.factories.put(EXPLICIT_DELEGATION_CALL_REQUIRED, InsertDelegationCallQuickfix.InsertThisDelegationCallFactory.INSTANCE$); QuickFixes.factories.put(EXPLICIT_DELEGATION_CALL_REQUIRED, InsertDelegationCallQuickfix.InsertSuperDelegationCallFactory.INSTANCE$); - QuickFixes.factories.put(ErrorsJvm.JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION, ReplaceJavaClassAsAnnotationArgumentFix.Companion); - QuickFixes.factories.put(ErrorsJvm.JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION, ReplaceJavaClassAsAnnotationArgumentFix.Companion.createWholeProjectFixFactory()); - QuickFixes.factories.put(ErrorsJvm.DEPRECATED_ANNOTATION_METHOD_CALL, MigrateAnnotationMethodCallFix.Companion); QuickFixes.factories.put(ErrorsJvm.DEPRECATED_ANNOTATION_METHOD_CALL, MigrateAnnotationMethodCallInWholeFile.Companion); - QuickFixes.factories.put(JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION, ReplaceJavaClassAsAnnotationParameterFix.Companion); - QuickFixes.factories.put(JAVA_LANG_CLASS_PARAMETER_IN_ANNOTATION, ReplaceJavaClassAsAnnotationParameterFix.Companion.createWholeProjectFixFactory()); - QuickFixes.factories.put(ENUM_ENTRY_USES_DEPRECATED_SUPER_CONSTRUCTOR, DeprecatedEnumEntrySuperConstructorSyntaxFix.Companion); QuickFixes.factories.put(ENUM_ENTRY_USES_DEPRECATED_SUPER_CONSTRUCTOR, DeprecatedEnumEntrySuperConstructorSyntaxFix.Companion.createWholeProjectFixFactory()); diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationArgumentFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationArgumentFix.kt deleted file mode 100644 index bf8c5d0bae1..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationArgumentFix.kt +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.idea.quickfix.replaceJavaClass - -import com.intellij.codeInsight.intention.IntentionAction -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.project.Project -import com.intellij.psi.PsiFile -import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.JetBundle -import org.jetbrains.kotlin.idea.quickfix.* -import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionFactory -import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionForFirstParentOfType -import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers -import org.jetbrains.kotlin.idea.util.ShortenReferences -import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType -import java.util.ArrayList - -public class ReplaceJavaClassAsAnnotationArgumentFix( - annotationEntry: JetAnnotationEntry -) : JetIntentionAction(annotationEntry), CleanupFix { - - override fun getText() = JetBundle.message("replace.java.class.argument") - override fun getFamilyName() = JetBundle.message("replace.java.class.argument.family") - - override fun invoke(project: Project, editor: Editor?, file: JetFile?) { - processTasks(createReplacementTasks(element)) - } - - companion object : JetSingleIntentionActionFactory() { - override fun createAction(diagnostic: Diagnostic) = - diagnostic.createIntentionForFirstParentOfType(::ReplaceJavaClassAsAnnotationArgumentFix) - - public fun createWholeProjectFixFactory(): JetSingleIntentionActionFactory = createIntentionFactory { - JetWholeProjectForEachElementOfTypeFix.createForMultiTaskOnElement( - tasksFactory = { createReplacementTasks(it) }, - tasksProcessor = ::processTasks, - name = "Replace javaClass() with T::class in whole project" - ) - } - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationParameterFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationParameterFix.kt deleted file mode 100644 index 31c12cc9bfb..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/ReplaceJavaClassAsAnnotationParameterFix.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.idea.quickfix.replaceJavaClass - -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.JetBundle -import org.jetbrains.kotlin.idea.quickfix.CleanupFix -import org.jetbrains.kotlin.idea.quickfix.JetIntentionAction -import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory -import org.jetbrains.kotlin.idea.quickfix.JetWholeProjectForEachElementOfTypeFix -import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionFactory -import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionForFirstParentOfType -import org.jetbrains.kotlin.psi.JetClass -import org.jetbrains.kotlin.psi.JetFile - -public class ReplaceJavaClassAsAnnotationParameterFix( - annotationClass: JetClass -) : JetIntentionAction(annotationClass), CleanupFix { - - override fun getText() = JetBundle.message("replace.java.class.parameter") - override fun getFamilyName() = JetBundle.message("replace.java.class.parameter.family") - - override fun invoke(project: Project, editor: Editor?, file: JetFile?) { - processTasks(createReplacementTasksForAnnotationClass(element)) - } - - companion object : JetSingleIntentionActionFactory() { - override fun createAction(diagnostic: Diagnostic) = - diagnostic.createIntentionForFirstParentOfType(::ReplaceJavaClassAsAnnotationParameterFix) - - public fun createWholeProjectFixFactory(): JetSingleIntentionActionFactory = createIntentionFactory { - JetWholeProjectForEachElementOfTypeFix.createForMultiTaskOnElement( - tasksFactory = ::createReplacementTasksForAnnotationClass, - tasksProcessor = ::processTasks, - name = "Replace Class with KClass for each annotation in project" - ) - } - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/common.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/common.kt deleted file mode 100644 index 3f89aa9472d..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceJavaClass/common.kt +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.idea.quickfix.replaceJavaClass - -import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor -import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.search.usagesSearch.ClassUsagesSearchHelper -import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearch -import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchTarget -import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor -import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers -import org.jetbrains.kotlin.idea.util.ShortenReferences -import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType -import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType -import org.jetbrains.kotlin.psi.psiUtil.isAncestor -import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm -import org.jetbrains.kotlin.types.JetType -import org.jetbrains.kotlin.types.typeUtil.isArrayOfJavaLangClass -import org.jetbrains.kotlin.types.typeUtil.isJavaLangClass - -private trait ReplacementTask { - val element: JetElement -} -private class JavaClassCallReplacementTask( - val javaClassCall: JetExpression, - val className: String -) : ReplacementTask { - override val element: JetElement = javaClassCall -} -private class JavaClassParameterReplacementTask( - val typeReference: JetTypeReference, - val projectionText: String -) : ReplacementTask { - override val element: JetElement = typeReference -} - -private fun renderClassNameForKClassLiteral(type: JetType): String? { - val descriptorRenderer = IdeDescriptorRenderers.SOURCE_CODE - if (KotlinBuiltIns.isArray(type)) { - return descriptorRenderer.renderType(type) - } - - val classDescriptor = (type.getConstructor().getDeclarationDescriptor() as? ClassDescriptor) ?: return null - return descriptorRenderer.renderClassifierName(classDescriptor) -} - -fun createReplacementTasks(element: JetElement, anyJavaClass: Boolean = false): List { - val replacementTasks = arrayListOf() - - element.forEachDescendantOfType(fun(expression: JetCallExpression) { - val context = expression.analyze() - val resolvedCall = expression.getResolvedCall(context) ?: return - - if (!anyJavaClass && !context.getDiagnostics().any { it.isJavaLangClassArgumentInAnnotation(expression) }) return - - val returnType = resolvedCall.getResultingDescriptor().getReturnType() ?: return - if (returnType.isJavaLangClass()) { - val inferredType = returnType.getArguments().firstOrNull()?.getType() ?: return - if (inferredType.isError()) return - val renderedType = renderClassNameForKClassLiteral(inferredType) ?: return - replacementTasks.add(JavaClassCallReplacementTask(expression, renderedType)) - } - }) - - return replacementTasks -} - -fun createReplacementTasksForAnnotationClass(element: JetClass): List { - if (!element.isAnnotation()) return emptyList() - - val replacementTasks = arrayListOf() - - fun addJavaClassReplacementTaskByTypeReference(typeReference: JetTypeReference) { - val classTypeArgText = typeReference.getFirstTypeArgument()?.getText() ?: return - replacementTasks.add(JavaClassParameterReplacementTask(typeReference, classTypeArgText)) - } - - element.forEachDescendantOfType(fun(parameter: JetParameter) { - val valueParameterDescriptor = parameter.descriptor as? ValueParameterDescriptor ?: return - val type = valueParameterDescriptor.getType() - - val parameterTypeReference = parameter.getTypeReference() ?: return - if (type.isJavaLangClass() || valueParameterDescriptor.getVarargElementType()?.isJavaLangClass() ?: false) { - addJavaClassReplacementTaskByTypeReference(parameterTypeReference) - } - else if (type.isArrayOfJavaLangClass()) { - val arrayTypeArgumentReference = parameterTypeReference.getFirstTypeArgument()?.getTypeReference() ?: return - addJavaClassReplacementTaskByTypeReference(arrayTypeArgumentReference) - } - - val defaultValue = parameter.getDefaultValue() - if (defaultValue != null) { - replacementTasks.addAll(createReplacementTasks(defaultValue, anyJavaClass = true)) - } - }) - - if (replacementTasks.isEmpty()) return emptyList() - - val request = ClassUsagesSearchHelper( - constructorUsages = true, nonConstructorUsages = false, skipImports = true - ).newRequest(UsagesSearchTarget(element)) - - UsagesSearch.search(request).forEach { - ref -> - val refElement = ref?.getElement()?.getNonStrictParentOfType() - if (refElement != null) { - replacementTasks.addAll(createReplacementTasks(refElement, anyJavaClass = true)) - } - } - - return replacementTasks -} - -private fun JetTypeReference.getFirstTypeArgument(): JetTypeProjection? = - (getTypeElement() as? JetUserType)?.getTypeArguments()?.firstOrNull() - -private fun Diagnostic.isJavaLangClassArgumentInAnnotation(expression: JetCallExpression) = - getFactory() == ErrorsJvm.JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION && - getPsiElement().isAncestor(expression) - -fun processTasks(replacementTasks: Collection) { - val element = replacementTasks.firstOrNull()?.element ?: return - val psiFactory = JetPsiFactory(element) - - val elementsToShorten = arrayListOf() - replacementTasks.forEach { - task -> - val newElement = when (task) { - is JavaClassCallReplacementTask -> - task.javaClassCall.replace(psiFactory.createClassLiteral(task.className)) as JetElement - is JavaClassParameterReplacementTask -> - task.typeReference.replace(psiFactory.createType("kotlin.reflect.KClass<${task.projectionText}>")) as JetElement - else -> error("Unexpected task type: ${task.javaClass.getName()}") - } - - elementsToShorten.add(newElement) - } - - ShortenReferences.DEFAULT.process(elementsToShorten) -} diff --git a/idea/testData/inspections/cleanup/JavaAnn.java b/idea/testData/inspections/cleanup/JavaAnn.java index e23fa2a58b9..5efc90da104 100644 --- a/idea/testData/inspections/cleanup/JavaAnn.java +++ b/idea/testData/inspections/cleanup/JavaAnn.java @@ -1,7 +1,5 @@ public @interface JavaAnn { int value(); String arg1(); - Class[] arg2(); - Class arg3(); int arg4() default 0; } diff --git a/idea/testData/inspections/cleanup/cleanup.kt b/idea/testData/inspections/cleanup/cleanup.kt index 14f276083d5..e4a18143d99 100644 --- a/idea/testData/inspections/cleanup/cleanup.kt +++ b/idea/testData/inspections/cleanup/cleanup.kt @@ -12,10 +12,6 @@ enum class F(val name: String) { val f = { (a: Int, b: Int) -> a + b } -annotation class Ann(val arg1: Class<*>, val arg2: Class) - -Ann(javaClass(), javaClass()) class MyClass - class A private() val x = fun foo(x: String) { } @@ -43,4 +39,4 @@ fun unnecessaryCast(x: String) = x as String fun unnecessaryElvis(x: String) = x ?: "" -JavaAnn(1, "abc", arrayOf(javaClass>()), javaClass()) class MyClass +JavaAnn(1, "abc") class MyClass diff --git a/idea/testData/inspections/cleanup/cleanup.kt.after b/idea/testData/inspections/cleanup/cleanup.kt.after index 04e11c33fc7..38fbd103a9e 100644 --- a/idea/testData/inspections/cleanup/cleanup.kt.after +++ b/idea/testData/inspections/cleanup/cleanup.kt.after @@ -1,5 +1,3 @@ -import kotlin.reflect.KClass - interface Foo { } @@ -14,10 +12,6 @@ enum class F(val name: String) { val f = { a: Int, b: Int -> a + b } -annotation class Ann(val arg1: KClass<*>, val arg2: KClass) - -Ann(String::class, Int::class) class MyClass - class A private constructor() val x = fun(x: String) { } @@ -45,4 +39,4 @@ fun unnecessaryCast(x: String) = x fun unnecessaryElvis(x: String) = x -JavaAnn(1, arg1 = "abc", arg2 = arrayOf(Array::class), arg3 = String::class) class MyClass +JavaAnn(1, arg1 = "abc") class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt deleted file mode 100644 index c5f5a90147d..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(val arg: Array>) - -Ann(arg = array(javaClass(), javaClass())) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt.after b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt.after deleted file mode 100644 index 5d20f5e8151..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(val arg: Array>) - -Ann(arg = array(String::class, Double::class)) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt deleted file mode 100644 index 0581c6adee2..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(val arg1: Class<*>, val arg2: Class) - -Ann(javaClass(), javaClass()) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt.after b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt.after deleted file mode 100644 index 093654a8778..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(val arg1: KClass<*>, val arg2: KClass) - -Ann(String::class, Int::class) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt deleted file mode 100644 index 8d66203fc81..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt +++ /dev/null @@ -1,14 +0,0 @@ -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann( - val arg1: Int, - val arg2: Class<*> = javaClass(), - val arg3: Array> = array(javaClass()), - vararg val arg4: Class = array(javaClass()) -) - -Ann(arg1 = 1) class MyClass1 -Ann(arg1 = 2, arg2 = javaClass()) class MyClass2 -Ann(arg1 = 3, arg3 = array(javaClass())) class MyClass3 -Ann(arg1 = 4, arg4 = javaClass()) class MyClass4 diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt.after b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt.after deleted file mode 100644 index e89072b9d8b..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt.after +++ /dev/null @@ -1,16 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann( - val arg1: Int, - val arg2: KClass<*> = Int::class, - val arg3: Array> = array(String::class), - vararg val arg4: KClass = array(Double::class) -) - -Ann(arg1 = 1) class MyClass1 -Ann(arg1 = 2, arg2 = Boolean::class) class MyClass2 -Ann(arg1 = 3, arg3 = array(Boolean::class)) class MyClass3 -Ann(arg1 = 4, arg4 = String::class) class MyClass4 diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.java deleted file mode 100644 index c2e973154b2..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.java +++ /dev/null @@ -1,2 +0,0 @@ -@Ann1(String.class) -class A {} diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.kt deleted file mode 100644 index bf7c2efed04..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.Dependency.kt +++ /dev/null @@ -1,7 +0,0 @@ -import kotlin.reflect.KClass - -annotation class AnnO(val arg: KClass<*>) - -AnnO(Int::class) -Ann1(String::class) -class MyClassO diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.kt deleted file mode 100644 index e5a97b52961..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.after.kt +++ /dev/null @@ -1,26 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass for each annotation in project" "true" -// WITH_RUNTIME - -annotation class Ann1(val arg: KClass<*>) - -Ann1(String::class) class MyClass1 -Ann1(MyClass1::class) class MyClass2 - -annotation class Ann2(val arg: Array>) - -Ann2(arg = array(Double::class)) class MyClass3 @Ann1(Char::class) constructor() { - annotation class Ann3(val arg: KClass<*> = Any::class) - - Ann3(String::class) class Nested { - Ann1(arg = String::class) fun foo1() { - annotation class LocalAnn(val arg: KClass<*>) - @LocalAnn(Class::class) val x = 1 - } - } - - inner AnnO(Double::class) class Inner -} - -AnnO(Boolean::class) class Another diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.java deleted file mode 100644 index c2e973154b2..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.java +++ /dev/null @@ -1,2 +0,0 @@ -@Ann1(String.class) -class A {} diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.kt deleted file mode 100644 index 7a08ce09fe1..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Dependency.kt +++ /dev/null @@ -1,5 +0,0 @@ -annotation class AnnO(val arg: Class<*>) - -AnnO(javaClass()) -Ann1(javaClass()) -class MyClassO diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Main.kt deleted file mode 100644 index 1356e7a2f9f..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Main.kt +++ /dev/null @@ -1,24 +0,0 @@ -// "Replace Class with KClass for each annotation in project" "true" -// WITH_RUNTIME - -annotation class Ann1(val arg: Class<*>) - -Ann1(javaClass()) class MyClass1 -Ann1(javaClass()) class MyClass2 - -annotation class Ann2(val arg: Array>) - -Ann2(arg = array(javaClass())) class MyClass3 @Ann1(javaClass()) constructor() { - annotation class Ann3(val arg: Class<*> = javaClass()) - - Ann3(javaClass()) class Nested { - Ann1(arg = javaClass()) fun foo1() { - annotation class LocalAnn(val arg: Class<*>) - @LocalAnn(javaClass>()) val x = 1 - } - } - - inner AnnO(javaClass()) class Inner -} - -AnnO(javaClass()) class Another diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt deleted file mode 100644 index ace2bad06a9..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt +++ /dev/null @@ -1,14 +0,0 @@ -// "Replace Class with KClass in whole annotation" "true" -// ERROR: Type inference failed. Expected type mismatch:
required: kotlin.reflect.KClass<*>
found: java.lang.Class<???>
-// ERROR: Type mismatch.
Required:kotlin.reflect.KClass<*>
Found:java.lang.Class<[ERROR : Err]>
-// ERROR: Type mismatch.
Required:kotlin.reflect.KClass<*>
Found:java.lang.Class<kotlin.Double>
-// ERROR: Unresolved reference: Err -// WITH_RUNTIME - -annotation class Ann(vararg val arg: Class<*>) - -Ann(javaClass(), javaClass()) class MyClass1 -Ann(javaClass(), javaClass()) class MyClass2 - -val x = javaClass() -Ann(javaClass(), x) class MyClass3 diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt.after b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt.after deleted file mode 100644 index f785ad7255d..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt.after +++ /dev/null @@ -1,16 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass in whole annotation" "true" -// ERROR: Type inference failed. Expected type mismatch:
required: kotlin.reflect.KClass<*>
found: java.lang.Class<???>
-// ERROR: Type mismatch.
Required:kotlin.reflect.KClass<*>
Found:java.lang.Class<[ERROR : Err]>
-// ERROR: Type mismatch.
Required:kotlin.reflect.KClass<*>
Found:java.lang.Class<kotlin.Double>
-// ERROR: Unresolved reference: Err -// WITH_RUNTIME - -annotation class Ann(vararg val arg: KClass<*>) - -Ann(String::class, javaClass()) class MyClass1 -Ann(String::class, javaClass()) class MyClass2 - -val x = javaClass() -Ann(String::class, x) class MyClass3 diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt deleted file mode 100644 index 71850e8c7ac..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(vararg val arg: Class<*>) - -Ann(javaClass(), javaClass(), *array(javaClass())) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt.after b/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt.after deleted file mode 100644 index a69bc90e6f5..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -import kotlin.reflect.KClass - -// "Replace Class with KClass in whole annotation" "true" -// WITH_RUNTIME - -annotation class Ann(vararg val arg: KClass<*>) - -Ann(String::class, Double::class, *array(Char::class)) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.after.kt deleted file mode 100644 index 8e8a01b6529..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.after.kt +++ /dev/null @@ -1,12 +0,0 @@ -import java.lang.Number - -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(arg = array(Int::class, String::class)) class MyClass1 - -Ann(arg = array>(Number::class, String::class)) class MyClass2 - -Ann(arg = array>>(Int::class, String::class)) class MyClass3 - -Ann(arg = array>(Int::class)) class MyClass4 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Dependency.java deleted file mode 100644 index 4f2b4aa398b..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Dependency.java +++ /dev/null @@ -1,3 +0,0 @@ -public @interface Ann { - Class[] arg(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Main.kt deleted file mode 100644 index c33283a0544..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Main.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(arg = array(javaClass(), javaClass())) class MyClass1 - -Ann(arg = array>(javaClass(), javaClass())) class MyClass2 - -Ann(arg = array>>(javaClass(), javaClass())) class MyClass3 - -Ann(arg = array>(javaClass())) class MyClass4 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.after.kt deleted file mode 100644 index b17f27d3263..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.after.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(String::class) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Dependency.java deleted file mode 100644 index fc6ee8c06e4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Dependency.java +++ /dev/null @@ -1,3 +0,0 @@ -public @interface Ann { - Class value(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Main.kt deleted file mode 100644 index 25b42ce7d7c..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Main.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(javaClass()) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.after.kt deleted file mode 100644 index 0eabb835ac1..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.after.kt +++ /dev/null @@ -1,15 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(List::class) class MyClass1 -Ann(List::class) class MyClass2 -Ann(MutableList::class) class MyClass3 - -Ann(Array::class) class MyClass4 -Ann(Array<*>::class) class MyClass5 -Ann(Array::class) class MyClass6 - -class Outer { - Ann(Array::class) - class Nested -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.Main.kt deleted file mode 100644 index 6191e5b0986..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.Main.kt +++ /dev/null @@ -1,15 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(javaClass>()) class MyClass1 -Ann(javaClass>()) class MyClass2 -Ann(javaClass>()) class MyClass3 - -Ann(javaClass>()) class MyClass4 -Ann(javaClass>()) class MyClass5 -Ann(javaClass>()) class MyClass6 - -class Outer { - Ann(javaClass>()) - class Nested -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.data.Sample.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.data.Sample.java deleted file mode 100644 index fc6ee8c06e4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.data.Sample.java +++ /dev/null @@ -1,3 +0,0 @@ -public @interface Ann { - Class value(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.after.kt deleted file mode 100644 index 64a56c7bb09..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.after.kt +++ /dev/null @@ -1,6 +0,0 @@ -import java.util.Random - -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(A::class, A::class, *array(A::class), arg1 = A.B::class, arg2 = Random::class) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Dependency.java deleted file mode 100644 index 285a01df60a..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Dependency.java +++ /dev/null @@ -1,11 +0,0 @@ -public @interface Ann { - Class[] value(); - Class arg1(); - Class arg2(); -} - -class A { - static class B {} -} - - diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Main.kt deleted file mode 100644 index 83a234397e4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Main.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(javaClass(), javaClass(), *array(javaClass()), arg1 = javaClass(), arg2 = javaClass()) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.Dependency.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.Dependency.kt deleted file mode 100644 index 21f54a4fdf9..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.Dependency.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(String::class) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.kt deleted file mode 100644 index f40dfdddcf4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.after.kt +++ /dev/null @@ -1,20 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(String::class, arg = Int::class, args = array()) class MyClass1 - -Ann(String::class, arg = Int::class, x = 1, args = array(Double::class)) class MyClass2 { - Ann(String::class, arg = Int::class, args = array(Double::class)) class Nested { - Ann(String::class, arg = Int::class, args = array(Double::class)) fun foo1() { - - @Ann(String::class, arg = Int::class, args = array(Double::class)) class Local - } - - @Ann(String::class, arg = Int::class, args = array(Double::class), x = 1) fun foo2() { - - @Ann(String::class, arg = Int::class, args = array(Double::class)) val local = 0 - } - } - - inner Ann(Double::class) class Inner -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.java deleted file mode 100644 index 2313cf2d79d..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.java +++ /dev/null @@ -1,7 +0,0 @@ -public @interface Ann { - Class value(); - int x() default 1; - double y() default 1.0; - Class arg() default String; - Class[] args() default {}; -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.kt deleted file mode 100644 index f5294640bac..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Dependency.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(javaClass()) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Main.kt deleted file mode 100644 index c05541f5586..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Main.kt +++ /dev/null @@ -1,20 +0,0 @@ -// "Replace javaClass() with T::class in whole project" "true" -// WITH_RUNTIME - -Ann(javaClass(), arg = javaClass(), args = array()) class MyClass1 - -Ann(javaClass(), arg = javaClass(), x = 1, args = array(javaClass())) class MyClass2 { - Ann(javaClass(), arg = javaClass(), args = array(javaClass())) class Nested { - Ann(javaClass(), arg = javaClass(), args = array(javaClass())) fun foo1() { - - @Ann(javaClass(), arg = javaClass(), args = array(javaClass())) class Local - } - - @Ann(javaClass(), arg = javaClass(), args = array(javaClass()), x = 1) fun foo2() { - - @Ann(javaClass(), arg = javaClass(), args = array(javaClass())) val local = 0 - } - } - - inner Ann(javaClass()) class Inner -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.after.kt deleted file mode 100644 index 4e0f4c9f285..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.after.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// ERROR: An annotation parameter must be a `javaClass()` call -// WITH_RUNTIME - -val jClass = javaClass() -Ann(jClass, Int::class) class MyClass1 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Dependency.java deleted file mode 100644 index dfeb4ef5573..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Dependency.java +++ /dev/null @@ -1,3 +0,0 @@ -public @interface Ann { - Class[] value(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Main.kt deleted file mode 100644 index 476acad7fdd..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Main.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// ERROR: An annotation parameter must be a `javaClass()` call -// WITH_RUNTIME - -val jClass = javaClass() -Ann(jClass, javaClass()) class MyClass1 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.after.kt deleted file mode 100644 index 69c094c17fd..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.after.kt +++ /dev/null @@ -1,6 +0,0 @@ -import java.lang - -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(String::class, x = 2, arg = (Int::class), args = array((Any::class), lang.String::class)) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Dependency.java deleted file mode 100644 index b9aaf3d1d03..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Dependency.java +++ /dev/null @@ -1,7 +0,0 @@ -public @interface Ann { - Class value(); - int x(); - double y() default 1.0; - Class arg(); - Class[] args(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Main.kt deleted file mode 100644 index 072fc83a3b4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Main.kt +++ /dev/null @@ -1,4 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann(javaClass(), x = 2, arg = (javaClass()), args = array((javaClass()), javaClass())) class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.after.kt deleted file mode 100644 index 2fee3f91baa..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.after.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// ERROR: Unresolved reference: Err -// WITH_RUNTIME - -Ann(javaClass(), Int::class) class MyClass1 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Dependency.java deleted file mode 100644 index dfeb4ef5573..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Dependency.java +++ /dev/null @@ -1,3 +0,0 @@ -public @interface Ann { - Class[] value(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Main.kt deleted file mode 100644 index 0584371952e..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Main.kt +++ /dev/null @@ -1,5 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// ERROR: Unresolved reference: Err -// WITH_RUNTIME - -Ann(javaClass(), javaClass()) class MyClass1 diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.after.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.after.kt deleted file mode 100644 index f1549c518d4..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.after.kt +++ /dev/null @@ -1,13 +0,0 @@ -import java.lang - -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann( - String::class, - Int::class, -*array(Double::class), -x = 2, -arg = Int::class, -args = array(Any::class, lang.String::class)) -class MyClass diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Dependency.java b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Dependency.java deleted file mode 100644 index a523f61a3ff..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Dependency.java +++ /dev/null @@ -1,7 +0,0 @@ -public @interface Ann { - Class[] value(); - int x(); - double y() default 1.0; - Class arg(); - Class[] args(); -} diff --git a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Main.kt b/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Main.kt deleted file mode 100644 index 15aca3380fc..00000000000 --- a/idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Main.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Replace javaClass() with T::class" "true" -// WITH_RUNTIME - -Ann( -javaClass(), -javaClass(), -*array(javaClass()), -x = 2, -arg = javaClass(), -args = array(javaClass(), javaClass())) -class MyClass diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index 2087a51ac33..e69b13eae81 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -1056,84 +1056,6 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes } } - @TestMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceJavaClassAsAnnotationParameter extends AbstractQuickFixMultiFileTest { - public void testAllFilesPresentInReplaceJavaClassAsAnnotationParameter() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true); - } - - @TestMetadata("manyFilesMultiple.before.Main.kt") - public void testManyFilesMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/manyFilesMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - } - - @TestMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceJavaClassWithKClassForJavaAnnotation extends AbstractQuickFixMultiFileTest { - public void testAllFilesPresentInReplaceJavaClassWithKClassForJavaAnnotation() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true); - } - - @TestMetadata("arrayWithExplicitTypeArgumentMultiple.before.Main.kt") - public void testArrayWithExplicitTypeArgumentMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/arrayWithExplicitTypeArgumentMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("basicMultiple.before.Main.kt") - public void testBasicMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/basicMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("genericArgumentMultiple.before.Main.kt") - public void testGenericArgumentMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/genericArgumentMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("implicitParameterMultiple.before.Main.kt") - public void testImplicitParameterMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/implicitParameterMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("manyFilesMultiple.before.Main.kt") - public void testManyFilesMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/manyFilesMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("nonConstMultiple.before.Main.kt") - public void testNonConstMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/nonConstMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("severalArgsMultiple.before.Main.kt") - public void testSeveralArgsMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/severalArgsMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("unresolvedMultiple.before.Main.kt") - public void testUnresolvedMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/unresolvedMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - - @TestMetadata("valueAsVarargMultiple.before.Main.kt") - public void testValueAsVarargMultiple() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassWithKClassForJavaAnnotation/valueAsVarargMultiple.before.Main.kt"); - doTestWithExtraFile(fileName); - } - } - } @TestMetadata("idea/testData/quickfix/modifiers") diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 6e20a3db983..ff89a107b7b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -4124,45 +4124,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { } } - @TestMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceJavaClassAsAnnotationParameter extends AbstractQuickFixTest { - public void testAllFilesPresentInReplaceJavaClassAsAnnotationParameter() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true); - } - - @TestMetadata("arrayRuntime.kt") - public void testArrayRuntime() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/arrayRuntime.kt"); - doTest(fileName); - } - - @TestMetadata("basicRuntime.kt") - public void testBasicRuntime() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/basicRuntime.kt"); - doTest(fileName); - } - - @TestMetadata("defaultRuntime.kt") - public void testDefaultRuntime() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/defaultRuntime.kt"); - doTest(fileName); - } - - @TestMetadata("usageWithErrorRuntime.kt") - public void testUsageWithErrorRuntime() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/usageWithErrorRuntime.kt"); - doTest(fileName); - } - - @TestMetadata("varargRuntime.kt") - public void testVarargRuntime() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/replaceJavaClassAsAnnotationParameter/varargRuntime.kt"); - doTest(fileName); - } - } - @TestMetadata("idea/testData/quickfix/migration/traitToInterface") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)