From d253cd5032138ff18f4c2c201f2a9fb24288bd99 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 5 Sep 2019 19:37:10 +0300 Subject: [PATCH] Ignore external annotations in AbstractResolveByStubTest (KT-33732) In IDE with have descriptors with additional annotations obtained from external annotations manager. They are probably only java overrides so shouldn't be present in stubs, thus must be ignored in this test. Tests with enums started to fail after upgrading to 192 platform because of additional NotNull annotation on `getDeclaringClass()` method. #KT-33732 Fixed --- .../kotlin/test/util/RecursiveDescriptorComparator.java | 7 +++++++ .../kotlin/idea/stubs/AbstractResolveByStubTest.kt | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/RecursiveDescriptorComparator.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/RecursiveDescriptorComparator.java index e21caf29191..c29d706b432 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/RecursiveDescriptorComparator.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/RecursiveDescriptorComparator.java @@ -414,6 +414,13 @@ public class RecursiveDescriptorComparator { renderDeclarationsFromOtherModules, checkFunctionContracts, recursiveFilter, validationStrategy, renderer); } + public Configuration withRendererOptions(@NotNull Consumer configure) { + return new Configuration( + checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfKotlinAny, + renderDeclarationsFromOtherModules, checkFunctionContracts, recursiveFilter, validationStrategy, + newRenderer(renderer, configure)); + } + @NotNull private static DescriptorRenderer rendererWithPropertyAccessors( @NotNull DescriptorRenderer renderer, boolean checkPropertyAccessors diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractResolveByStubTest.kt b/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractResolveByStubTest.kt index 6f8ae2f81e4..3b84a09f84b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractResolveByStubTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractResolveByStubTest.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor import org.jetbrains.kotlin.idea.test.AstAccessControl import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor +import org.jetbrains.kotlin.load.java.descriptors.PossiblyExternalAnnotationDescriptor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.InTextDirectivesUtils @@ -50,7 +51,12 @@ abstract class AbstractResolveByStubTest : KotlinLightCodeInsightFixtureTestCase .filterRecursion(RecursiveDescriptorComparator.SKIP_BUILT_INS_PACKAGES) .checkPrimaryConstructors(true) .checkPropertyAccessors(true) - .withValidationStrategy(errorTypesForbidden()), + .withValidationStrategy(errorTypesForbidden()) + .withRendererOptions { options -> + options.annotationFilter = { annotationDescriptor -> + annotationDescriptor !is PossiblyExternalAnnotationDescriptor || !annotationDescriptor.isIdeExternalAnnotation + } + }, fileToCompareTo ) }