From 68659f5a32a8ade57e61c4cf8b5f2907e0e22462 Mon Sep 17 00:00:00 2001 From: Andrius Semionovas Date: Fri, 21 Jul 2017 07:46:18 +0300 Subject: [PATCH] Introduce error "ANNOTATION_USED_AS_ANNOTATION_ARGUMENT" along with QF The relevant inspection has been removed So #KT-18855 Fixed --- .../jetbrains/kotlin/diagnostics/Errors.java | 1 + .../rendering/DefaultErrorMessages.java | 2 + .../resolve/AnnotationResolverImpl.java | 8 +++- .../annotatedExpressionInsideAnnotation.kt | 11 +++++ .../annotatedExpressionInsideAnnotation.txt | 20 +++++++++ .../checkers/DiagnosticsTestGenerated.java | 6 +++ .../RemoveAtFromAnnotationArgument.html | 5 --- idea/src/META-INF/plugin.xml | 14 ------ ...RemoveAtFromAnnotationArgumentIntention.kt | 44 ------------------- .../kotlin/idea/quickfix/QuickFixRegistrar.kt | 2 + .../RemoveAtFromAnnotationArgument.kt | 44 +++++++++++++++++++ .../removeAtFromAnnotationArgument/.intention | 1 - .../atmarkArgument.kt | 8 ---- .../atmarkArgument.kt.after | 8 ---- .../multipleAtmarkArguments.kt | 8 ---- .../multipleAtmarkArguments.kt.after | 8 ---- .../stringAtmark.kt | 7 --- .../arrayParam.kt} | 7 ++- .../arrayParam.kt.after} | 7 ++- .../namedParam.kt | 10 +++++ .../namedParam.kt.after | 10 +++++ .../removeAtFromAnnotationArgument/simple.kt | 9 ++++ .../simple.kt.after | 9 ++++ .../intentions/IntentionTestGenerated.java | 33 -------------- .../idea/quickfix/QuickFixTestGenerated.java | 27 ++++++++++++ 25 files changed, 163 insertions(+), 146 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.kt create mode 100644 compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.txt delete mode 100644 idea/resources/inspectionDescriptions/RemoveAtFromAnnotationArgument.html delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/RemoveAtFromAnnotationArgumentIntention.kt create mode 100644 idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveAtFromAnnotationArgument.kt delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/.intention delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt.after delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt.after delete mode 100644 idea/testData/intentions/removeAtFromAnnotationArgument/stringAtmark.kt rename idea/testData/{intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt => quickfix/removeAtFromAnnotationArgument/arrayParam.kt} (53%) rename idea/testData/{intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt.after => quickfix/removeAtFromAnnotationArgument/arrayParam.kt.after} (51%) create mode 100644 idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt create mode 100644 idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt.after create mode 100644 idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt create mode 100644 idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt.after diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index f213a6271fc..bbb47ac6875 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -224,6 +224,7 @@ public interface Errors { DiagnosticFactory0 ANNOTATION_PARAMETER_MUST_BE_ENUM_CONST = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE = DiagnosticFactory0.create(WARNING); + DiagnosticFactory0 ANNOTATION_USED_AS_ANNOTATION_ARGUMENT = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 ILLEGAL_SINCE_KOTLIN_VALUE = DiagnosticFactory0.create(ERROR); DiagnosticFactory1 NEWER_VERSION_IN_SINCE_KOTLIN = DiagnosticFactory1.create(WARNING); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 236feac8b7f..db710a6e774 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -791,6 +791,8 @@ public class DefaultErrorMessages { "Annotations on block-level expressions are being parsed differently depending on presence of a new line after them. " + "Use new line if whole block-level expression must be annotated or wrap annotated expression in parentheses"); + MAP.put(ANNOTATION_USED_AS_ANNOTATION_ARGUMENT, "An annotation can't be used as the annotations argument"); + MAP.put(CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT, "Const 'val' are only allowed on top level or in objects"); MAP.put(CONST_VAL_WITH_DELEGATE, "Const 'val' should not have a delegate"); MAP.put(CONST_VAL_WITH_GETTER, "Const 'val' should not have a getter"); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolverImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolverImpl.java index 4e9436ef077..d3575c7ba01 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolverImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolverImpl.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.resolve; +import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.descriptors.*; @@ -36,13 +37,12 @@ import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.storage.StorageManager; import org.jetbrains.kotlin.types.ErrorUtils; import org.jetbrains.kotlin.types.KotlinType; -import org.jetbrains.kotlin.types.TypeUtils; -import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext; import javax.inject.Inject; import java.util.ArrayList; import java.util.List; +import static org.jetbrains.kotlin.diagnostics.Errors.ANNOTATION_USED_AS_ANNOTATION_ARGUMENT; import static org.jetbrains.kotlin.diagnostics.Errors.NOT_AN_ANNOTATION_CLASS; import static org.jetbrains.kotlin.types.TypeUtils.NO_EXPECTED_TYPE; @@ -148,6 +148,10 @@ public class AnnotationResolverImpl extends AnnotationResolver { @NotNull LexicalScope scope, @NotNull BindingTrace trace ) { + if (PsiTreeUtil.getParentOfType(annotationEntry, KtAnnotationEntry.class) != null) { + trace.report(ANNOTATION_USED_AS_ANNOTATION_ARGUMENT.on(annotationEntry)); + } + return callResolver.resolveFunctionCall( trace, scope, CallMaker.makeCall(null, null, annotationEntry), diff --git a/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.kt b/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.kt new file mode 100644 index 00000000000..83e660b68f6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.kt @@ -0,0 +1,11 @@ +// SKIP_ERRORS_BEFORE + +annotation class X(val value: Y, val y: Y) +annotation class Y() + +@X(@Y(), y = Y()) +fun foo1() { +} +@X(@Y(), y = @Y()) +fun foo2() { +} diff --git a/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.txt b/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.txt new file mode 100644 index 00000000000..389fb85fe20 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.txt @@ -0,0 +1,20 @@ +package + +@X(y = Y) public fun foo1(): kotlin.Unit +@X public fun foo2(): kotlin.Unit + +public final annotation class X : kotlin.Annotation { + public constructor X(/*0*/ value: Y, /*1*/ y: Y) + public final val value: Y + public final val y: Y + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final annotation class Y : kotlin.Annotation { + public constructor Y() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 9a86bbc654b..fa9fa3c1741 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -886,6 +886,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("annotatedExpressionInsideAnnotation.kt") + public void testAnnotatedExpressionInsideAnnotation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/annotatedExpressionInsideAnnotation.kt"); + doTest(fileName); + } + @TestMetadata("AnnotatedLocalObjectFun.kt") public void testAnnotatedLocalObjectFun() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/AnnotatedLocalObjectFun.kt"); diff --git a/idea/resources/inspectionDescriptions/RemoveAtFromAnnotationArgument.html b/idea/resources/inspectionDescriptions/RemoveAtFromAnnotationArgument.html deleted file mode 100644 index 05643eb457c..00000000000 --- a/idea/resources/inspectionDescriptions/RemoveAtFromAnnotationArgument.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This inspection detects unnecessary '@' at annotations which are annotation arguments themselves. - - \ No newline at end of file diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index cc11d26b088..ed583973293 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1412,11 +1412,6 @@ Kotlin - - org.jetbrains.kotlin.idea.intentions.RemoveAtFromAnnotationArgumentIntention - Kotlin - - org.jetbrains.kotlin.idea.intentions.RemoveSingleExpressionStringTemplateIntention Kotlin @@ -2038,15 +2033,6 @@ language="kotlin" /> - - (RemoveAtFromAnnotationArgumentIntention::class) - -class RemoveAtFromAnnotationArgumentIntention : SelfTargetingOffsetIndependentIntention( - KtAnnotatedExpression::class.java, - "Remove @ from annotation argument" -) { - override fun isApplicableTo(element: KtAnnotatedExpression): Boolean { - var parent = element.parent - while (parent != null) { - if (parent is KtAnnotationEntry) return true - parent = parent.parent - } - return false - } - - override fun applyTo(element: KtAnnotatedExpression, editor: Editor?) { - val noAt = KtPsiFactory(element.project).createExpression(element.text.replaceFirst("@", "")) - element.replace(noAt) - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index 242c2f29ec5..4f03b8cd378 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -505,5 +505,7 @@ class QuickFixRegistrar : QuickFixContributor { INAPPLICABLE_RECEIVER_TARGET.registerFactory(MoveReceiverAnnotationFix) NO_CONSTRUCTOR.registerFactory(RemoveNoConstructorFix) + + ANNOTATION_USED_AS_ANNOTATION_ARGUMENT.registerFactory(RemoveAtFromAnnotationArgument) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveAtFromAnnotationArgument.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveAtFromAnnotationArgument.kt new file mode 100644 index 00000000000..b4ed379ada1 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveAtFromAnnotationArgument.kt @@ -0,0 +1,44 @@ +/* + * Copyright 2010-2017 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 + +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.project.Project +import org.jetbrains.kotlin.diagnostics.Diagnostic +import org.jetbrains.kotlin.psi.KtAnnotationEntry +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtPsiFactory + +class RemoveAtFromAnnotationArgument(constructor: KtAnnotationEntry) : KotlinQuickFixAction(constructor) { + + override fun getText() = "Remove @ from annotation argument" + + override fun getFamilyName() = text + + override fun invoke(project: Project, editor: Editor?, file: KtFile) { + val element = element ?: return + + val noAt = KtPsiFactory(element.project).createExpression(element.text.replaceFirst("@", "")) + element.replace(noAt) + } + + companion object : KotlinSingleIntentionActionFactory() { + override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction? = + (diagnostic.psiElement as? KtAnnotationEntry)?.let { RemoveAtFromAnnotationArgument(it) } + } + +} diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/.intention b/idea/testData/intentions/removeAtFromAnnotationArgument/.intention deleted file mode 100644 index 295b958b15b..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.RemoveAtFromAnnotationArgumentIntention \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt b/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt deleted file mode 100644 index 4ad94e185b8..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt +++ /dev/null @@ -1,8 +0,0 @@ -// INTENTION_TEXT: Remove @ from annotation argument - -annotation class X(val value: Y) -annotation class Y() - -@X(@Y()) -fun foo() { -} \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt.after b/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt.after deleted file mode 100644 index d3dd56223f9..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -// INTENTION_TEXT: Remove @ from annotation argument - -annotation class X(val value: Y) -annotation class Y() - -@X(Y()) -fun foo() { -} \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt b/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt deleted file mode 100644 index 30d0547b295..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt +++ /dev/null @@ -1,8 +0,0 @@ -// INTENTION_TEXT: Remove @ from annotation argument - -annotation class X(val value: Y, val y: Y) -annotation class Y() - -@X(@Y(), y = @Y()) -fun foo() { -} \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt.after b/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt.after deleted file mode 100644 index 5667186b6de..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt.after +++ /dev/null @@ -1,8 +0,0 @@ -// INTENTION_TEXT: Remove @ from annotation argument - -annotation class X(val value: Y, val y: Y) -annotation class Y() - -@X(@Y(), y = Y()) -fun foo() { -} \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/stringAtmark.kt b/idea/testData/intentions/removeAtFromAnnotationArgument/stringAtmark.kt deleted file mode 100644 index 5d0e550b3b7..00000000000 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/stringAtmark.kt +++ /dev/null @@ -1,7 +0,0 @@ -// IS_APPLICABLE: false - -annotation class X(val s: String) - -@X("@@@") -fun foo() { -} \ No newline at end of file diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt b/idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt similarity index 53% rename from idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt rename to idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt index 023554a036c..47937d082ef 100644 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt @@ -1,9 +1,8 @@ -// WITH_RUNTIME -// INTENTION_TEXT: Remove @ from annotation argument -// SKIP_ERRORS_BEFORE +// "Remove @ from annotation argument" "true" +// DISABLE-ERRORS -annotation class X(val value: Array) annotation class Y() +annotation class X(val value: Array) @X(arrayOf(Y(), @Y())) fun foo() { diff --git a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt.after b/idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt.after similarity index 51% rename from idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt.after rename to idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt.after index 499f81af104..aeffb0e6f53 100644 --- a/idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt.after +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt.after @@ -1,9 +1,8 @@ -// WITH_RUNTIME -// INTENTION_TEXT: Remove @ from annotation argument -// SKIP_ERRORS_BEFORE +// "Remove @ from annotation argument" "true" +// DISABLE-ERRORS -annotation class X(val value: Array) annotation class Y() +annotation class X(val value: Array) @X(arrayOf(Y(), Y())) fun foo() { diff --git a/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt b/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt new file mode 100644 index 00000000000..5b30b6e6e13 --- /dev/null +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt @@ -0,0 +1,10 @@ +// "Remove @ from annotation argument" "true" +// ERROR: An annotation parameter must be a compile-time constant + +annotation class Y() +annotation class X(val value: Y, val y: Y) + +@X(Y(), y = @Y()) +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt.after b/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt.after new file mode 100644 index 00000000000..444d0644e54 --- /dev/null +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt.after @@ -0,0 +1,10 @@ +// "Remove @ from annotation argument" "true" +// ERROR: An annotation parameter must be a compile-time constant + +annotation class Y() +annotation class X(val value: Y, val y: Y) + +@X(Y(), y = Y()) +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt b/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt new file mode 100644 index 00000000000..c7951fb10c7 --- /dev/null +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt @@ -0,0 +1,9 @@ +// "Remove @ from annotation argument" "true" +// ERROR: An annotation parameter must be a compile-time constant + +annotation class Y() +annotation class X(val value: Y) + +@X(@Y()) +fun foo() { +} \ No newline at end of file diff --git a/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt.after b/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt.after new file mode 100644 index 00000000000..ee5b0b9f366 --- /dev/null +++ b/idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt.after @@ -0,0 +1,9 @@ +// "Remove @ from annotation argument" "true" +// ERROR: An annotation parameter must be a compile-time constant + +annotation class Y() +annotation class X(val value: Y) + +@X(Y()) +fun foo() { +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 7be5762bdd6..7c9d37e975c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -12147,39 +12147,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } - @TestMetadata("idea/testData/intentions/removeAtFromAnnotationArgument") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class RemoveAtFromAnnotationArgument extends AbstractIntentionTest { - public void testAllFilesPresentInRemoveAtFromAnnotationArgument() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/removeAtFromAnnotationArgument"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); - } - - @TestMetadata("atmarkArgument.kt") - public void testAtmarkArgument() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArgument.kt"); - doTest(fileName); - } - - @TestMetadata("atmarkArrayArguments.kt") - public void testAtmarkArrayArguments() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeAtFromAnnotationArgument/atmarkArrayArguments.kt"); - doTest(fileName); - } - - @TestMetadata("multipleAtmarkArguments.kt") - public void testMultipleAtmarkArguments() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeAtFromAnnotationArgument/multipleAtmarkArguments.kt"); - doTest(fileName); - } - - @TestMetadata("stringAtmark.kt") - public void testStringAtmark() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeAtFromAnnotationArgument/stringAtmark.kt"); - doTest(fileName); - } - } - @TestMetadata("idea/testData/intentions/removeBraces") @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 2b21e27ede7..cdfbfda3cd3 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -8319,6 +8319,33 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { } } + @TestMetadata("idea/testData/quickfix/removeAtFromAnnotationArgument") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class RemoveAtFromAnnotationArgument extends AbstractQuickFixTest { + public void testAllFilesPresentInRemoveAtFromAnnotationArgument() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/removeAtFromAnnotationArgument"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("arrayParam.kt") + public void testArrayParam() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeAtFromAnnotationArgument/arrayParam.kt"); + doTest(fileName); + } + + @TestMetadata("namedParam.kt") + public void testNamedParam() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeAtFromAnnotationArgument/namedParam.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeAtFromAnnotationArgument/simple.kt"); + doTest(fileName); + } + } + @TestMetadata("idea/testData/quickfix/removeEqTokenFromFunctionDeclaration") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)