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
This commit is contained in:
Nikolay Krasko
2019-09-05 19:37:10 +03:00
parent 80b5c76d98
commit d253cd5032
2 changed files with 14 additions and 1 deletions
@@ -414,6 +414,13 @@ public class RecursiveDescriptorComparator {
renderDeclarationsFromOtherModules, checkFunctionContracts, recursiveFilter, validationStrategy, renderer);
}
public Configuration withRendererOptions(@NotNull Consumer<DescriptorRendererOptions> configure) {
return new Configuration(
checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfKotlinAny,
renderDeclarationsFromOtherModules, checkFunctionContracts, recursiveFilter, validationStrategy,
newRenderer(renderer, configure));
}
@NotNull
private static DescriptorRenderer rendererWithPropertyAccessors(
@NotNull DescriptorRenderer renderer, boolean checkPropertyAccessors
@@ -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
)
}