// 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.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.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.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.AnnotatedAnnotation; import pkg.NonAnnotatedAnnotation; import annotatedPkg.ClassInAnnotatedPkg; public class UnstableElementsTest { public void test() { 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 = 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 = 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 = 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(); // --------------------------------- 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; 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; // --------------------------------- @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 {} } }