From e1f7a3cb2bf29b89b980b9276336d938f90cdffd Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 11 Nov 2013 13:16:20 +0400 Subject: [PATCH] Filter special annotations --- .../jet/lang/resolve/java/lazy/annotationUtils.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/annotationUtils.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/annotationUtils.kt index 333ca67b74c..33305fd597f 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/annotationUtils.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/annotationUtils.kt @@ -24,7 +24,15 @@ import org.jetbrains.jet.lang.resolve.name.FqName import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver fun LazyJavaResolverContextWithTypes.resolveAnnotations(javaAnnotations: Collection): List - = javaAnnotations.map {jAnnotation -> LazyJavaAnnotationDescriptor(this, jAnnotation)} + = javaAnnotations.flatMap { + jAnnotation -> + // TODO: we resolve all annotations, which slightly compromises our laziness + val fqName = jAnnotation.getFqName() + if (fqName == null || JavaAnnotationResolver.isSpecialAnnotation(fqName)) { + listOf() + } + else listOf(LazyJavaAnnotationDescriptor(this, jAnnotation)) + } private fun GlobalJavaResolverContext.hasAnnotation(owner: JavaAnnotationOwner, annotationFqName: FqName): Boolean = owner.findAnnotation(annotationFqName) != null || externalAnnotationResolver.findExternalAnnotation(owner, annotationFqName) != null