From 04497c6e0be278cb503fe31c3e4882e0eca0982a Mon Sep 17 00:00:00 2001 From: Yaroslav Pankratyev Date: Wed, 26 Sep 2018 12:51:46 +0700 Subject: [PATCH] IDEA-194133 Refactor UnstableApiUsageInspectionTest, extract common parts with future tests for @ScheduledForRemoval inspection --- .../UnstableElementsIgnoreImportsTest.java | 122 +++++++++--------- .../UnstableElementsTest.java | 122 +++++++++--------- .../java/UnstableApiUsageInspectionTest.kt | 4 +- .../UnstableElementsIgnoreImportsTest.kt | 122 +++++++++--------- .../unstableApiUsage/UnstableElementsTest.kt | 122 +++++++++--------- .../KtUnstableApiUsageInspectionTest.kt | 4 +- ...AnnotatedElementUsageInspectionTestBase.kt | 99 ++++++++++++++ .../UnstableApiUsageInspectionTestBase.kt | 102 +-------------- 8 files changed, 352 insertions(+), 345 deletions(-) create mode 100644 jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/AnnotatedElementUsageInspectionTestBase.kt diff --git a/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.java b/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.java index c0cfa8b9b9eb..a63c72e811f4 100644 --- a/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.java +++ b/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.java @@ -1,83 +1,83 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -import pkg.ExperimentalClass; -import static pkg.ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; -import static pkg.ExperimentalClass.staticNonExperimentalMethodInExperimentalClass; -import static pkg.ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; -import static pkg.ExperimentalClass.staticExperimentalMethodInExperimentalClass; +import pkg.AnnotatedClass; +import static pkg.AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; +import static pkg.AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass; +import static pkg.AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; +import static pkg.AnnotatedClass.staticAnnotatedMethodInAnnotatedClass; -import pkg.NonExperimentalClass; -import static pkg.NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; -import static pkg.NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass; -import static pkg.NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; -import static pkg.NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass; +import pkg.NonAnnotatedClass; +import static pkg.NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; +import static pkg.NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass; +import static pkg.NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; +import static pkg.NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass; -import pkg.ExperimentalEnum; -import pkg.NonExperimentalEnum; -import static pkg.ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; -import static pkg.ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; -import static pkg.NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; -import static pkg.NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; +import pkg.AnnotatedEnum; +import pkg.NonAnnotatedEnum; +import static pkg.AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; +import static pkg.AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM; +import static pkg.NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; +import static pkg.NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; -import pkg.ExperimentalAnnotation; -import pkg.NonExperimentalAnnotation; +import pkg.AnnotatedAnnotation; +import pkg.NonAnnotatedAnnotation; -import unstablePkg.ClassInUnstablePkg; +import annotatedPkg.ClassInAnnotatedPkg; public class UnstableElementsIgnoreImportsTest { public void test() { - String s = ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - ExperimentalClass.staticNonExperimentalMethodInExperimentalClass(); - ExperimentalClass experimentalClassInstanceViaNonExperimentalConstructor = new ExperimentalClass(); - s = experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInExperimentalClass; - experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInExperimentalClass(); - s = NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - staticNonExperimentalMethodInExperimentalClass(); + String s = AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass(); + AnnotatedClass annotatedClassInstanceViaNonAnnotatedConstructor = new AnnotatedClass(); + s = annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInAnnotatedClass; + annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInAnnotatedClass(); + s = NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + staticNonAnnotatedMethodInAnnotatedClass(); - s = ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - ExperimentalClass.staticExperimentalMethodInExperimentalClass(); - ExperimentalClass experimentalClassInstanceViaExperimentalConstructor = new ExperimentalClass(""); - s = experimentalClassInstanceViaExperimentalConstructor.experimentalFieldInExperimentalClass; - experimentalClassInstanceViaExperimentalConstructor.experimentalMethodInExperimentalClass(); - s = EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - staticExperimentalMethodInExperimentalClass(); + s = AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + AnnotatedClass.staticAnnotatedMethodInAnnotatedClass(); + AnnotatedClass annotatedClassInstanceViaAnnotatedConstructor = new AnnotatedClass(""); + s = annotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInAnnotatedClass; + annotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInAnnotatedClass(); + s = ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + staticAnnotatedMethodInAnnotatedClass(); // --------------------------------- - s = NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass(); - NonExperimentalClass nonExperimentalClassInstanceViaNonExperimentalConstructor = new NonExperimentalClass(); - s = nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInNonExperimentalClass; - nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInNonExperimentalClass(); - s = NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - staticNonExperimentalMethodInNonExperimentalClass(); + s = NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass(); + NonAnnotatedClass nonAnnotatedClassInstanceViaNonAnnotatedConstructor = new NonAnnotatedClass(); + s = nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInNonAnnotatedClass; + nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInNonAnnotatedClass(); + s = NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + staticNonAnnotatedMethodInNonAnnotatedClass(); - s = NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass(); - NonExperimentalClass nonExperimentalClassInstanceViaExperimentalConstructor = new NonExperimentalClass(""); - s = nonExperimentalClassInstanceViaExperimentalConstructor.experimentalFieldInNonExperimentalClass; - nonExperimentalClassInstanceViaExperimentalConstructor.experimentalMethodInNonExperimentalClass(); - s = EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - staticExperimentalMethodInNonExperimentalClass(); + s = NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass(); + NonAnnotatedClass nonAnnotatedClassInstanceViaAnnotatedConstructor = new NonAnnotatedClass(""); + s = nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInNonAnnotatedClass; + nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInNonAnnotatedClass(); + s = ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + staticAnnotatedMethodInNonAnnotatedClass(); // --------------------------------- - ExperimentalEnum nonExperimentalValueInExperimentalEnum = ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - nonExperimentalValueInExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - ExperimentalEnum experimentalValueInExperimentalEnum = ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - experimentalValueInExperimentalEnum = EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; + AnnotatedEnum nonAnnotatedValueInAnnotatedEnum = AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + nonAnnotatedValueInAnnotatedEnum = NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + AnnotatedEnum annotatedValueInAnnotatedEnum = AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + annotatedValueInAnnotatedEnum = ANNOTATED_VALUE_IN_ANNOTATED_ENUM; - NonExperimentalEnum nonExperimentalValueInNonExperimentalEnum = NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - nonExperimentalValueInNonExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - NonExperimentalEnum experimentalValueInNonExperimentalEnum = NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - experimentalValueInNonExperimentalEnum = EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; + NonAnnotatedEnum nonAnnotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + nonAnnotatedValueInNonAnnotatedEnum = NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + NonAnnotatedEnum annotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + annotatedValueInNonAnnotatedEnum = ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; // --------------------------------- - @ExperimentalAnnotation class C1 {} - @ExperimentalAnnotation(nonExperimentalAttributeInExperimentalAnnotation = "123") class C2 {} - @ExperimentalAnnotation(experimentalAttributeInExperimentalAnnotation = "123") class C3 {} - @NonExperimentalAnnotation class C4 {} - @NonExperimentalAnnotation(nonExperimentalAttributeInNonExperimentalAnnotation = "123") class C5 {} - @NonExperimentalAnnotation(experimentalAttributeInNonExperimentalAnnotation = "123") class C6 {} + @AnnotatedAnnotation class C1 {} + @AnnotatedAnnotation(nonAnnotatedAttributeInAnnotatedAnnotation = "123") class C2 {} + @AnnotatedAnnotation(annotatedAttributeInAnnotatedAnnotation = "123") class C3 {} + @NonAnnotatedAnnotation class C4 {} + @NonAnnotatedAnnotation(nonAnnotatedAttributeInNonAnnotatedAnnotation = "123") class C5 {} + @NonAnnotatedAnnotation(annotatedAttributeInNonAnnotatedAnnotation = "123") class C6 {} } } \ No newline at end of file diff --git a/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.java b/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.java index 9d16aad40341..d62266c6d691 100644 --- a/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.java +++ b/jvm/jvm-analysis-java-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.java @@ -1,83 +1,83 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -import pkg.ExperimentalClass; -import static pkg.ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; -import static pkg.ExperimentalClass.staticNonExperimentalMethodInExperimentalClass; -import static pkg.ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; -import static pkg.ExperimentalClass.staticExperimentalMethodInExperimentalClass; +import pkg.AnnotatedClass; +import static pkg.AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; +import static pkg.AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass; +import static pkg.AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; +import static pkg.AnnotatedClass.staticAnnotatedMethodInAnnotatedClass; -import pkg.NonExperimentalClass; -import static pkg.NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; -import static pkg.NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass; -import static pkg.NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; -import static pkg.NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass; +import pkg.NonAnnotatedClass; +import static pkg.NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; +import static pkg.NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass; +import static pkg.NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; +import static pkg.NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass; -import pkg.ExperimentalEnum; -import pkg.NonExperimentalEnum; -import static pkg.ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; -import static pkg.ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; -import static pkg.NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; -import static pkg.NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; +import pkg.AnnotatedEnum; +import pkg.NonAnnotatedEnum; +import static pkg.AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; +import static pkg.AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM; +import static pkg.NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; +import static pkg.NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; -import pkg.ExperimentalAnnotation; -import pkg.NonExperimentalAnnotation; +import pkg.AnnotatedAnnotation; +import pkg.NonAnnotatedAnnotation; -import unstablePkg.ClassInUnstablePkg; +import annotatedPkg.ClassInAnnotatedPkg; public class UnstableElementsTest { public void test() { - String s = ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - ExperimentalClass.staticNonExperimentalMethodInExperimentalClass(); - ExperimentalClass experimentalClassInstanceViaNonExperimentalConstructor = new ExperimentalClass(); - s = experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInExperimentalClass; - experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInExperimentalClass(); - s = NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - staticNonExperimentalMethodInExperimentalClass(); + String s = AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass(); + AnnotatedClass annotatedClassInstanceViaNonAnnotatedConstructor = new AnnotatedClass(); + s = annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInAnnotatedClass; + annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInAnnotatedClass(); + s = NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + staticNonAnnotatedMethodInAnnotatedClass(); - s = ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - ExperimentalClass.staticExperimentalMethodInExperimentalClass(); - ExperimentalClass experimentalClassInstanceViaExperimentalConstructor = new ExperimentalClass(""); - s = experimentalClassInstanceViaExperimentalConstructor.experimentalFieldInExperimentalClass; - experimentalClassInstanceViaExperimentalConstructor.experimentalMethodInExperimentalClass(); - s = EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS; - staticExperimentalMethodInExperimentalClass(); + s = AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + AnnotatedClass.staticAnnotatedMethodInAnnotatedClass(); + AnnotatedClass annotatedClassInstanceViaAnnotatedConstructor = new AnnotatedClass(""); + s = annotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInAnnotatedClass; + annotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInAnnotatedClass(); + s = ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS; + staticAnnotatedMethodInAnnotatedClass(); // --------------------------------- - s = NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass(); - NonExperimentalClass nonExperimentalClassInstanceViaNonExperimentalConstructor = new NonExperimentalClass(); - s = nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInNonExperimentalClass; - nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInNonExperimentalClass(); - s = NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - staticNonExperimentalMethodInNonExperimentalClass(); + s = NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass(); + NonAnnotatedClass nonAnnotatedClassInstanceViaNonAnnotatedConstructor = new NonAnnotatedClass(); + s = nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInNonAnnotatedClass; + nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInNonAnnotatedClass(); + s = NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + staticNonAnnotatedMethodInNonAnnotatedClass(); - s = NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass(); - NonExperimentalClass nonExperimentalClassInstanceViaExperimentalConstructor = new NonExperimentalClass(""); - s = nonExperimentalClassInstanceViaExperimentalConstructor.experimentalFieldInNonExperimentalClass; - nonExperimentalClassInstanceViaExperimentalConstructor.experimentalMethodInNonExperimentalClass(); - s = EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS; - staticExperimentalMethodInNonExperimentalClass(); + s = NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass(); + NonAnnotatedClass nonAnnotatedClassInstanceViaAnnotatedConstructor = new NonAnnotatedClass(""); + s = nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInNonAnnotatedClass; + nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInNonAnnotatedClass(); + s = ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS; + staticAnnotatedMethodInNonAnnotatedClass(); // --------------------------------- - ExperimentalEnum nonExperimentalValueInExperimentalEnum = ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - nonExperimentalValueInExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - ExperimentalEnum experimentalValueInExperimentalEnum = ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; - experimentalValueInExperimentalEnum = EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM; + AnnotatedEnum nonAnnotatedValueInAnnotatedEnum = AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + nonAnnotatedValueInAnnotatedEnum = NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + AnnotatedEnum annotatedValueInAnnotatedEnum = AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM; + annotatedValueInAnnotatedEnum = ANNOTATED_VALUE_IN_ANNOTATED_ENUM; - NonExperimentalEnum nonExperimentalValueInNonExperimentalEnum = NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - nonExperimentalValueInNonExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - NonExperimentalEnum experimentalValueInNonExperimentalEnum = NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; - experimentalValueInNonExperimentalEnum = EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM; + NonAnnotatedEnum nonAnnotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + nonAnnotatedValueInNonAnnotatedEnum = NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + NonAnnotatedEnum annotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; + annotatedValueInNonAnnotatedEnum = ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM; // --------------------------------- - @ExperimentalAnnotation class C1 {} - @ExperimentalAnnotation(nonExperimentalAttributeInExperimentalAnnotation = "123") class C2 {} - @ExperimentalAnnotation(experimentalAttributeInExperimentalAnnotation = "123") class C3 {} - @NonExperimentalAnnotation class C4 {} - @NonExperimentalAnnotation(nonExperimentalAttributeInNonExperimentalAnnotation = "123") class C5 {} - @NonExperimentalAnnotation(experimentalAttributeInNonExperimentalAnnotation = "123") class C6 {} + @AnnotatedAnnotation class C1 {} + @AnnotatedAnnotation(nonAnnotatedAttributeInAnnotatedAnnotation = "123") class C2 {} + @AnnotatedAnnotation(annotatedAttributeInAnnotatedAnnotation = "123") class C3 {} + @NonAnnotatedAnnotation class C4 {} + @NonAnnotatedAnnotation(nonAnnotatedAttributeInNonAnnotatedAnnotation = "123") class C5 {} + @NonAnnotatedAnnotation(annotatedAttributeInNonAnnotatedAnnotation = "123") class C6 {} } } \ No newline at end of file diff --git a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/UnstableApiUsageInspectionTest.kt b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/UnstableApiUsageInspectionTest.kt index f7dce1759c40..f0b60d813c63 100644 --- a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/UnstableApiUsageInspectionTest.kt +++ b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/UnstableApiUsageInspectionTest.kt @@ -10,12 +10,12 @@ class UnstableApiUsageInspectionTest : UnstableApiUsageInspectionTestBase() { override fun getBasePath() = "${TEST_DATA_PROJECT_RELATIVE_BASE_PATH}/codeInspection/unstableApiUsage" fun testInspection() { - inspection.myIgnoreInsideImports = false + getInspection().myIgnoreInsideImports = false myFixture.testHighlighting(true, false, false, "UnstableElementsTest.java") } fun testIgnoreImports() { - inspection.myIgnoreInsideImports = true + getInspection().myIgnoreInsideImports = true myFixture.testHighlighting(true, false, false, "UnstableElementsIgnoreImportsTest.java") } } diff --git a/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.kt b/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.kt index 255bbb26849f..f0c3f13fd097 100644 --- a/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.kt +++ b/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsIgnoreImportsTest.kt @@ -1,83 +1,83 @@ -import pkg.ExperimentalClass -import pkg.ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS -import pkg.ExperimentalClass.staticNonExperimentalMethodInExperimentalClass -import pkg.ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS -import pkg.ExperimentalClass.staticExperimentalMethodInExperimentalClass +import pkg.AnnotatedClass +import pkg.AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS +import pkg.AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass +import pkg.AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS +import pkg.AnnotatedClass.staticAnnotatedMethodInAnnotatedClass -import pkg.NonExperimentalClass -import pkg.NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS -import pkg.NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass -import pkg.NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS -import pkg.NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass +import pkg.NonAnnotatedClass +import pkg.NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS +import pkg.NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass +import pkg.NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS +import pkg.NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass -import pkg.ExperimentalEnum -import pkg.NonExperimentalEnum -import pkg.ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM -import pkg.ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM -import pkg.NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM -import pkg.NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM +import pkg.AnnotatedEnum +import pkg.NonAnnotatedEnum +import pkg.AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM +import pkg.AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM +import pkg.NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM +import pkg.NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM -import pkg.ExperimentalAnnotation -import pkg.NonExperimentalAnnotation +import pkg.AnnotatedAnnotation +import pkg.NonAnnotatedAnnotation -import unstablePkg.ClassInUnstablePkg +import annotatedPkg.ClassInAnnotatedPkg @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "UNUSED_VALUE") class UnstableElementsIgnoreImportsTest { fun test() { - var s = ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - ExperimentalClass.staticNonExperimentalMethodInExperimentalClass() - val experimentalClassInstanceViaNonExperimentalConstructor : ExperimentalClass = ExperimentalClass() - s = experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInExperimentalClass - experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInExperimentalClass() - s = NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - staticNonExperimentalMethodInExperimentalClass() + var s = AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass() + val annotatedClassInstanceViaNonAnnotatedConstructor : AnnotatedClass = AnnotatedClass() + s = annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInAnnotatedClass + annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInAnnotatedClass() + s = NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + staticNonAnnotatedMethodInAnnotatedClass() - s = ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - ExperimentalClass.staticExperimentalMethodInExperimentalClass() - val experimentalClassInstanceViaExperimentalConstructor : ExperimentalClass = ExperimentalClass("") - s = experimentalClassInstanceViaExperimentalConstructor.experimentalFieldInExperimentalClass - experimentalClassInstanceViaExperimentalConstructor.experimentalMethodInExperimentalClass() - s = EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - staticExperimentalMethodInExperimentalClass() + s = AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + AnnotatedClass.staticAnnotatedMethodInAnnotatedClass() + val annotatedClassInstanceViaAnnotatedConstructor : AnnotatedClass = AnnotatedClass("") + s = annotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInAnnotatedClass + annotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInAnnotatedClass() + s = ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + staticAnnotatedMethodInAnnotatedClass() // --------------------------------- - s = NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass() - val nonExperimentalClassInstanceViaNonExperimentalConstructor = NonExperimentalClass() - s = nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInNonExperimentalClass - nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInNonExperimentalClass() - s = NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - staticNonExperimentalMethodInNonExperimentalClass() + s = NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass() + val nonAnnotatedClassInstanceViaNonAnnotatedConstructor = NonAnnotatedClass() + s = nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInNonAnnotatedClass + nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInNonAnnotatedClass() + s = NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + staticNonAnnotatedMethodInNonAnnotatedClass() - s = NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass() - val nonExperimentalClassInstanceViaExperimentalConstructor = NonExperimentalClass("") - s = nonExperimentalClassInstanceViaExperimentalConstructor.experimentalFieldInNonExperimentalClass - nonExperimentalClassInstanceViaExperimentalConstructor.experimentalMethodInNonExperimentalClass() - s = EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - staticExperimentalMethodInNonExperimentalClass() + s = NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass() + val nonAnnotatedClassInstanceViaAnnotatedConstructor = NonAnnotatedClass("") + s = nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInNonAnnotatedClass + nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInNonAnnotatedClass() + s = ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + staticAnnotatedMethodInNonAnnotatedClass() // --------------------------------- - var nonExperimentalValueInExperimentalEnum : ExperimentalEnum = ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - nonExperimentalValueInExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - var experimentalValueInExperimentalEnum : ExperimentalEnum = ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - experimentalValueInExperimentalEnum = EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM + var nonAnnotatedValueInAnnotatedEnum : AnnotatedEnum = AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM + nonAnnotatedValueInAnnotatedEnum = NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM + var annotatedValueInAnnotatedEnum : AnnotatedEnum = AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM + annotatedValueInAnnotatedEnum = ANNOTATED_VALUE_IN_ANNOTATED_ENUM - var nonExperimentalValueInNonExperimentalEnum = NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - nonExperimentalValueInNonExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - var experimentalValueInNonExperimentalEnum = NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - experimentalValueInNonExperimentalEnum = EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM + var nonAnnotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + nonAnnotatedValueInNonAnnotatedEnum = NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + var annotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + annotatedValueInNonAnnotatedEnum = ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM // --------------------------------- - @ExperimentalAnnotation class C1 - @ExperimentalAnnotation(nonExperimentalAttributeInExperimentalAnnotation = "123") class C2 - @ExperimentalAnnotation(experimentalAttributeInExperimentalAnnotation = "123") class C3 - @NonExperimentalAnnotation class C4 - @NonExperimentalAnnotation(nonExperimentalAttributeInNonExperimentalAnnotation = "123") class C5 - @NonExperimentalAnnotation(experimentalAttributeInNonExperimentalAnnotation = "123") class C6 + @AnnotatedAnnotation class C1 + @AnnotatedAnnotation(nonAnnotatedAttributeInAnnotatedAnnotation = "123") class C2 + @AnnotatedAnnotation(annotatedAttributeInAnnotatedAnnotation = "123") class C3 + @NonAnnotatedAnnotation class C4 + @NonAnnotatedAnnotation(nonAnnotatedAttributeInNonAnnotatedAnnotation = "123") class C5 + @NonAnnotatedAnnotation(annotatedAttributeInNonAnnotatedAnnotation = "123") class C6 } } \ No newline at end of file diff --git a/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.kt b/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.kt index 5ab223f2e58b..d9502f29e7ae 100644 --- a/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.kt +++ b/jvm/jvm-analysis-kotlin-tests/testData/codeInspection/unstableApiUsage/UnstableElementsTest.kt @@ -1,83 +1,83 @@ -import pkg.ExperimentalClass -import pkg.ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS -import pkg.ExperimentalClass.staticNonExperimentalMethodInExperimentalClass -import pkg.ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS -import pkg.ExperimentalClass.staticExperimentalMethodInExperimentalClass +import pkg.AnnotatedClass +import pkg.AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS +import pkg.AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass +import pkg.AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS +import pkg.AnnotatedClass.staticAnnotatedMethodInAnnotatedClass -import pkg.NonExperimentalClass -import pkg.NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS -import pkg.NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass -import pkg.NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS -import pkg.NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass +import pkg.NonAnnotatedClass +import pkg.NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS +import pkg.NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass +import pkg.NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS +import pkg.NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass -import pkg.ExperimentalEnum -import pkg.NonExperimentalEnum -import pkg.ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM -import pkg.ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM -import pkg.NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM -import pkg.NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM +import pkg.AnnotatedEnum +import pkg.NonAnnotatedEnum +import pkg.AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM +import pkg.AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM +import pkg.NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM +import pkg.NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM -import pkg.ExperimentalAnnotation -import pkg.NonExperimentalAnnotation +import pkg.AnnotatedAnnotation +import pkg.NonAnnotatedAnnotation -import unstablePkg.ClassInUnstablePkg +import annotatedPkg.ClassInAnnotatedPkg @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "UNUSED_VALUE") class UnstableElementsTest { fun test() { - var s = ExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - ExperimentalClass.staticNonExperimentalMethodInExperimentalClass() - val experimentalClassInstanceViaNonExperimentalConstructor : ExperimentalClass = ExperimentalClass() - s = experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInExperimentalClass - experimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInExperimentalClass() - s = NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - staticNonExperimentalMethodInExperimentalClass() + var s = AnnotatedClass.NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + AnnotatedClass.staticNonAnnotatedMethodInAnnotatedClass() + val annotatedClassInstanceViaNonAnnotatedConstructor : AnnotatedClass = AnnotatedClass() + s = annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInAnnotatedClass + annotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInAnnotatedClass() + s = NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + staticNonAnnotatedMethodInAnnotatedClass() - s = ExperimentalClass.EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - ExperimentalClass.staticExperimentalMethodInExperimentalClass() - val experimentalClassInstanceViaExperimentalConstructor : ExperimentalClass = ExperimentalClass("") - s = experimentalClassInstanceViaExperimentalConstructor.experimentalFieldInExperimentalClass - experimentalClassInstanceViaExperimentalConstructor.experimentalMethodInExperimentalClass() - s = EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS - staticExperimentalMethodInExperimentalClass() + s = AnnotatedClass.ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + AnnotatedClass.staticAnnotatedMethodInAnnotatedClass() + val annotatedClassInstanceViaAnnotatedConstructor : AnnotatedClass = AnnotatedClass("") + s = annotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInAnnotatedClass + annotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInAnnotatedClass() + s = ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS + staticAnnotatedMethodInAnnotatedClass() // --------------------------------- - s = NonExperimentalClass.NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - NonExperimentalClass.staticNonExperimentalMethodInNonExperimentalClass() - val nonExperimentalClassInstanceViaNonExperimentalConstructor = NonExperimentalClass() - s = nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalFieldInNonExperimentalClass - nonExperimentalClassInstanceViaNonExperimentalConstructor.nonExperimentalMethodInNonExperimentalClass() - s = NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - staticNonExperimentalMethodInNonExperimentalClass() + s = NonAnnotatedClass.NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + NonAnnotatedClass.staticNonAnnotatedMethodInNonAnnotatedClass() + val nonAnnotatedClassInstanceViaNonAnnotatedConstructor = NonAnnotatedClass() + s = nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedFieldInNonAnnotatedClass + nonAnnotatedClassInstanceViaNonAnnotatedConstructor.nonAnnotatedMethodInNonAnnotatedClass() + s = NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + staticNonAnnotatedMethodInNonAnnotatedClass() - s = NonExperimentalClass.EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - NonExperimentalClass.staticExperimentalMethodInNonExperimentalClass() - val nonExperimentalClassInstanceViaExperimentalConstructor = NonExperimentalClass("") - s = nonExperimentalClassInstanceViaExperimentalConstructor.experimentalFieldInNonExperimentalClass - nonExperimentalClassInstanceViaExperimentalConstructor.experimentalMethodInNonExperimentalClass() - s = EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS - staticExperimentalMethodInNonExperimentalClass() + s = NonAnnotatedClass.ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + NonAnnotatedClass.staticAnnotatedMethodInNonAnnotatedClass() + val nonAnnotatedClassInstanceViaAnnotatedConstructor = NonAnnotatedClass("") + s = nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedFieldInNonAnnotatedClass + nonAnnotatedClassInstanceViaAnnotatedConstructor.annotatedMethodInNonAnnotatedClass() + s = ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS + staticAnnotatedMethodInNonAnnotatedClass() // --------------------------------- - var nonExperimentalValueInExperimentalEnum : ExperimentalEnum = ExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - nonExperimentalValueInExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - var experimentalValueInExperimentalEnum : ExperimentalEnum = ExperimentalEnum.EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - experimentalValueInExperimentalEnum = EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM + var nonAnnotatedValueInAnnotatedEnum : AnnotatedEnum = AnnotatedEnum.NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM + nonAnnotatedValueInAnnotatedEnum = NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM + var annotatedValueInAnnotatedEnum : AnnotatedEnum = AnnotatedEnum.ANNOTATED_VALUE_IN_ANNOTATED_ENUM + annotatedValueInAnnotatedEnum = ANNOTATED_VALUE_IN_ANNOTATED_ENUM - var nonExperimentalValueInNonExperimentalEnum = NonExperimentalEnum.NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - nonExperimentalValueInNonExperimentalEnum = NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - var experimentalValueInNonExperimentalEnum = NonExperimentalEnum.EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - experimentalValueInNonExperimentalEnum = EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM + var nonAnnotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + nonAnnotatedValueInNonAnnotatedEnum = NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + var annotatedValueInNonAnnotatedEnum = NonAnnotatedEnum.ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + annotatedValueInNonAnnotatedEnum = ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM // --------------------------------- - @ExperimentalAnnotation class C1 - @ExperimentalAnnotation(nonExperimentalAttributeInExperimentalAnnotation = "123") class C2 - @ExperimentalAnnotation(experimentalAttributeInExperimentalAnnotation = "123") class C3 - @NonExperimentalAnnotation class C4 - @NonExperimentalAnnotation(nonExperimentalAttributeInNonExperimentalAnnotation = "123") class C5 - @NonExperimentalAnnotation(experimentalAttributeInNonExperimentalAnnotation = "123") class C6 + @AnnotatedAnnotation class C1 + @AnnotatedAnnotation(nonAnnotatedAttributeInAnnotatedAnnotation = "123") class C2 + @AnnotatedAnnotation(annotatedAttributeInAnnotatedAnnotation = "123") class C3 + @NonAnnotatedAnnotation class C4 + @NonAnnotatedAnnotation(nonAnnotatedAttributeInNonAnnotatedAnnotation = "123") class C5 + @NonAnnotatedAnnotation(annotatedAttributeInNonAnnotatedAnnotation = "123") class C6 } } \ No newline at end of file diff --git a/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KtUnstableApiUsageInspectionTest.kt b/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KtUnstableApiUsageInspectionTest.kt index 428d3b19929e..345af7f8df56 100644 --- a/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KtUnstableApiUsageInspectionTest.kt +++ b/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KtUnstableApiUsageInspectionTest.kt @@ -17,12 +17,12 @@ class KtUnstableApiUsageInspectionTest : UnstableApiUsageInspectionTestBase() { } fun testInspection() { - inspection.myIgnoreInsideImports = false + getInspection().myIgnoreInsideImports = false myFixture.testHighlighting("UnstableElementsTest.kt") } fun testIgnoreImports() { - inspection.myIgnoreInsideImports = true + getInspection().myIgnoreInsideImports = true myFixture.testHighlighting("UnstableElementsIgnoreImportsTest.kt") } } \ No newline at end of file diff --git a/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/AnnotatedElementUsageInspectionTestBase.kt b/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/AnnotatedElementUsageInspectionTestBase.kt new file mode 100644 index 000000000000..3884e2aff984 --- /dev/null +++ b/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/AnnotatedElementUsageInspectionTestBase.kt @@ -0,0 +1,99 @@ +package com.intellij.codeInspection.tests + +import com.intellij.codeInspection.InspectionProfileEntry +import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase + +abstract class AnnotatedElementUsageInspectionTestBase : JavaCodeInsightFixtureTestCase() { + abstract override fun getBasePath(): String + abstract fun getInspection(): InspectionProfileEntry + abstract fun getAnnotationFqn(): String + + open fun performAdditionalSetUp() {} + + override fun setUp() { + super.setUp() + performAdditionalSetUp() + myFixture.enableInspections(getInspection()) + + addAnnotatedElementsToProject("@" + getAnnotationFqn()) + } + + private fun addAnnotatedElementsToProject(annotation: String) { + myFixture.addFileToProject( + "pkg/AnnotatedAnnotation.java", """ + package pkg; + ${annotation} public @interface AnnotatedAnnotation { + String nonAnnotatedAttributeInAnnotatedAnnotation() default ""; + ${annotation} String annotatedAttributeInAnnotatedAnnotation() default ""; + }""" + ) + myFixture.addFileToProject( + "pkg/AnnotatedEnum.java", """ + package pkg; + ${annotation} public enum AnnotatedEnum { + NON_ANNOTATED_VALUE_IN_ANNOTATED_ENUM, + ${annotation} ANNOTATED_VALUE_IN_ANNOTATED_ENUM + }""" + ) + myFixture.addFileToProject( + "pkg/AnnotatedClass.java", """ + package pkg; + ${annotation} public class AnnotatedClass { + public static final String NON_ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS = ""; + public String nonAnnotatedFieldInAnnotatedClass = ""; + public AnnotatedClass() {} + public static void staticNonAnnotatedMethodInAnnotatedClass() {} + public void nonAnnotatedMethodInAnnotatedClass() {} + + ${annotation} public static final String ANNOTATED_CONSTANT_IN_ANNOTATED_CLASS = ""; + ${annotation} public String annotatedFieldInAnnotatedClass = ""; + ${annotation} public AnnotatedClass(String s) {} + ${annotation} public static void staticAnnotatedMethodInAnnotatedClass() {} + ${annotation} public void annotatedMethodInAnnotatedClass() {} + }""" + ) + + + myFixture.addFileToProject( + "pkg/NonAnnotatedAnnotation.java", """ + package pkg; + public @interface NonAnnotatedAnnotation { + String nonAnnotatedAttributeInNonAnnotatedAnnotation() default ""; + ${annotation} String annotatedAttributeInNonAnnotatedAnnotation() default ""; + }""" + ) + myFixture.addFileToProject( + "pkg/NonAnnotatedEnum.java", """ + package pkg; + public enum NonAnnotatedEnum { + NON_ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM, + ${annotation} ANNOTATED_VALUE_IN_NON_ANNOTATED_ENUM + }""" + ) + myFixture.addFileToProject( + "pkg/NonAnnotatedClass.java", """ + package pkg; + public class NonAnnotatedClass { + public static final String NON_ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS = ""; + public String nonAnnotatedFieldInNonAnnotatedClass = ""; + public NonAnnotatedClass() {} + public static void staticNonAnnotatedMethodInNonAnnotatedClass() {} + public void nonAnnotatedMethodInNonAnnotatedClass() {} + + ${annotation} public static final String ANNOTATED_CONSTANT_IN_NON_ANNOTATED_CLASS = ""; + ${annotation} public String annotatedFieldInNonAnnotatedClass = ""; + ${annotation} public NonAnnotatedClass(String s) {} + ${annotation} public static void staticAnnotatedMethodInNonAnnotatedClass() {} + ${annotation} public void annotatedMethodInNonAnnotatedClass() {} + }""" + ) + + + myFixture.addFileToProject("annotatedPkg/package-info.java", + "${annotation}\n" + + "package annotatedPkg;") + myFixture.addFileToProject("annotatedPkg/ClassInAnnotatedPkg.java", + "package annotatedPkg;\n" + + "public class ClassInAnnotatedPkg {}") + } +} \ No newline at end of file diff --git a/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/UnstableApiUsageInspectionTestBase.kt b/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/UnstableApiUsageInspectionTestBase.kt index eae75602f282..43c909957a35 100644 --- a/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/UnstableApiUsageInspectionTestBase.kt +++ b/jvm/jvm-analysis-tests-api/src/com/intellij/codeInspection/tests/UnstableApiUsageInspectionTestBase.kt @@ -3,108 +3,16 @@ package com.intellij.codeInspection.tests import com.intellij.codeInspection.UnstableApiUsageInspection import com.intellij.testFramework.builders.JavaModuleFixtureBuilder -import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase import com.intellij.util.PathUtil import org.jetbrains.annotations.ApiStatus -abstract class UnstableApiUsageInspectionTestBase : JavaCodeInsightFixtureTestCase() { - abstract override fun getBasePath(): String +abstract class UnstableApiUsageInspectionTestBase : AnnotatedElementUsageInspectionTestBase() { + private val inspection = UnstableApiUsageInspection() + override fun getInspection() = inspection - val inspection = UnstableApiUsageInspection() + override fun getAnnotationFqn(): String = "org.jetbrains.annotations.ApiStatus.Experimental" override fun tuneFixture(moduleBuilder: JavaModuleFixtureBuilder<*>) { - moduleBuilder.addLibrary("util", PathUtil.getJarPathForClass(ApiStatus.Experimental::class.java)) - } - - open fun performAdditionalSetUp() {} - - override fun setUp() { - super.setUp() - performAdditionalSetUp() - - myFixture.enableInspections(inspection) - - myFixture.addFileToProject( - "pkg/ExperimentalAnnotation.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - @ApiStatus.Experimental public @interface ExperimentalAnnotation { - String nonExperimentalAttributeInExperimentalAnnotation() default ""; - @ApiStatus.Experimental String experimentalAttributeInExperimentalAnnotation() default ""; - }""" - ) - myFixture.addFileToProject( - "pkg/ExperimentalEnum.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - @ApiStatus.Experimental public enum ExperimentalEnum { - NON_EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM, - @ApiStatus.Experimental EXPERIMENTAL_VALUE_IN_EXPERIMENTAL_ENUM - }""" - ) - myFixture.addFileToProject( - "pkg/ExperimentalClass.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - @ApiStatus.Experimental public class ExperimentalClass { - public static final String NON_EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS = ""; - public String nonExperimentalFieldInExperimentalClass = ""; - public ExperimentalClass() {} - public static void staticNonExperimentalMethodInExperimentalClass() {} - public void nonExperimentalMethodInExperimentalClass() {} - - @ApiStatus.Experimental public static final String EXPERIMENTAL_CONSTANT_IN_EXPERIMENTAL_CLASS = ""; - @ApiStatus.Experimental public String experimentalFieldInExperimentalClass = ""; - @ApiStatus.Experimental public ExperimentalClass(String s) {} - @ApiStatus.Experimental public static void staticExperimentalMethodInExperimentalClass() {} - @ApiStatus.Experimental public void experimentalMethodInExperimentalClass() {} - }""" - ) - - - myFixture.addFileToProject( - "pkg/NonExperimentalAnnotation.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - public @interface NonExperimentalAnnotation { - String nonExperimentalAttributeInNonExperimentalAnnotation() default ""; - @ApiStatus.Experimental String experimentalAttributeInNonExperimentalAnnotation() default ""; - }""" - ) - myFixture.addFileToProject( - "pkg/NonExperimentalEnum.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - public enum NonExperimentalEnum { - NON_EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM, - @ApiStatus.Experimental EXPERIMENTAL_VALUE_IN_NON_EXPERIMENTAL_ENUM - }""" - ) - myFixture.addFileToProject( - "pkg/NonExperimentalClass.java", """ - package pkg; - import org.jetbrains.annotations.ApiStatus; - public class NonExperimentalClass { - public static final String NON_EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS = ""; - public String nonExperimentalFieldInNonExperimentalClass = ""; - public NonExperimentalClass() {} - public static void staticNonExperimentalMethodInNonExperimentalClass() {} - public void nonExperimentalMethodInNonExperimentalClass() {} - - @ApiStatus.Experimental public static final String EXPERIMENTAL_CONSTANT_IN_NON_EXPERIMENTAL_CLASS = ""; - @ApiStatus.Experimental public String experimentalFieldInNonExperimentalClass = ""; - @ApiStatus.Experimental public NonExperimentalClass(String s) {} - @ApiStatus.Experimental public static void staticExperimentalMethodInNonExperimentalClass() {} - @ApiStatus.Experimental public void experimentalMethodInNonExperimentalClass() {} - }""" - ) - - - myFixture.addFileToProject("unstablePkg/package-info.java", - "@org.jetbrains.annotations.ApiStatus.Experimental\n" + - "package unstablePkg;") - myFixture.addFileToProject("unstablePkg/ClassInUnstablePkg.java", - "package unstablePkg;\n" + - "public class ClassInUnstablePkg {}") + moduleBuilder.addLibrary("util", PathUtil.getJarPathForClass(ApiStatus::class.java)) } } \ No newline at end of file