From 5128b8a409a516818be9a140b97833d66299bcce Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 19 Jul 2017 15:00:33 +0300 Subject: [PATCH] Add default implementation for Annotations.findAnnotation --- .../annotation/AnnotatedWithOnlyTargetedAnnotations.kt | 3 --- .../kotlin/resolve/lazy/descriptors/LazyAnnotations.kt | 3 --- .../jetbrains/kotlin/descriptors/annotations/Annotations.kt | 4 ++-- .../kotlin/descriptors/annotations/AnnotationsImpl.kt | 4 ---- .../src/org/jetbrains/kotlin/resolve/annotationsForResolve.kt | 4 +--- .../deserialization/descriptors/DeserializedAnnotations.kt | 2 -- 6 files changed, 3 insertions(+), 17 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/annotation/AnnotatedWithOnlyTargetedAnnotations.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/annotation/AnnotatedWithOnlyTargetedAnnotations.kt index 5df9ad9a035..147be948243 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/annotation/AnnotatedWithOnlyTargetedAnnotations.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/annotation/AnnotatedWithOnlyTargetedAnnotations.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotated import org.jetbrains.kotlin.descriptors.annotations.AnnotatedImpl import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.descriptors.annotations.Annotations -import org.jetbrains.kotlin.name.FqName interface WrappedAnnotated : Annotated { val originalAnnotated: Annotated @@ -34,8 +33,6 @@ class AnnotatedWithOnlyTargetedAnnotations(original: Annotated) : Annotated { private class UseSiteTargetedAnnotations(private val additionalAnnotations: Annotations) : Annotations { override fun isEmpty() = true - override fun findAnnotation(fqName: FqName) = null - override fun getUseSiteTargetedAnnotations() = getAdditionalTargetedAnnotations() override fun getAllAnnotations() = getAdditionalTargetedAnnotations() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyAnnotations.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyAnnotations.kt index f8d13f7b9a0..deeea20ec09 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyAnnotations.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyAnnotations.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.descriptors.annotations.AnnotationWithTarget import org.jetbrains.kotlin.descriptors.annotations.Annotations -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtAnnotationEntry import org.jetbrains.kotlin.resolve.AnnotationResolver @@ -64,8 +63,6 @@ class LazyAnnotations( AnnotationWithTarget(descriptor, target) } - override fun findAnnotation(fqName: FqName): AnnotationDescriptor? = firstOrNull { it.fqName == fqName } - override fun getUseSiteTargetedAnnotations(): List { return annotationEntries .mapNotNull { diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt index 896e8288748..bc62e67c3db 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt @@ -26,9 +26,9 @@ interface Annotations : Iterable { fun isEmpty(): Boolean - fun findAnnotation(fqName: FqName): AnnotationDescriptor? + fun findAnnotation(fqName: FqName): AnnotationDescriptor? = firstOrNull { it.fqName == fqName } - fun hasAnnotation(fqName: FqName) = findAnnotation(fqName) != null + fun hasAnnotation(fqName: FqName): Boolean = findAnnotation(fqName) != null fun findExternalAnnotation(fqName: FqName): AnnotationDescriptor? = null diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationsImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationsImpl.kt index 51ea0d07e11..bcb4cb5a0ba 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationsImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationsImpl.kt @@ -16,8 +16,6 @@ package org.jetbrains.kotlin.descriptors.annotations -import org.jetbrains.kotlin.name.FqName - class AnnotationsImpl : Annotations { private val annotations: List private val targetedAnnotations: List @@ -38,8 +36,6 @@ class AnnotationsImpl : Annotations { override fun isEmpty() = targetedAnnotations.isEmpty() - override fun findAnnotation(fqName: FqName) = annotations.firstOrNull { it.fqName == fqName } - override fun getUseSiteTargetedAnnotations(): List { return targetedAnnotations .filter { it.target != null } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/annotationsForResolve.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/annotationsForResolve.kt index 2cb440b09b2..2b4290436fd 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/annotationsForResolve.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/annotationsForResolve.kt @@ -58,14 +58,12 @@ fun TypeParameterDescriptor.hasOnlyInputTypesAnnotation(): Boolean = annotations fun getExactInAnnotations(): Annotations = AnnotationsWithOnly(EXACT_ANNOTATION_FQ_NAME) private class AnnotationsWithOnly(val presentAnnotation: FqName): Annotations { - override fun iterator(): Iterator = listOf().iterator() + override fun iterator(): Iterator = emptyList().iterator() override fun isEmpty(): Boolean = false override fun hasAnnotation(fqName: FqName): Boolean = fqName == this.presentAnnotation - override fun findAnnotation(fqName: FqName): AnnotationDescriptor? = null - override fun getUseSiteTargetedAnnotations(): List = emptyList() override fun getAllAnnotations(): List = emptyList() diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedAnnotations.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedAnnotations.kt index 2a1b68816ad..a68e2b4511e 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedAnnotations.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedAnnotations.kt @@ -31,8 +31,6 @@ open class DeserializedAnnotations( override fun isEmpty(): Boolean = annotations.isEmpty() - override fun findAnnotation(fqName: FqName) = annotations.firstOrNull { it.fqName == fqName } - override fun getUseSiteTargetedAnnotations(): List = emptyList() override fun getAllAnnotations(): List = annotations.map { AnnotationWithTarget(it, null) }