Drop Annotations.Companion.find/getUseSiteTargetedAnnotation(s)

This commit is contained in:
Alexander Udalov
2018-08-14 18:06:22 +02:00
parent 7271995ff0
commit 83fbabd628
5 changed files with 3 additions and 69 deletions
@@ -13,7 +13,6 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory;
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider;
import org.jetbrains.kotlin.descriptors.deserialization.ClassDescriptorFactory;
@@ -1154,7 +1153,7 @@ public abstract class KotlinBuiltIns {
}
public static boolean isDeprecated(@NotNull DeclarationDescriptor declarationDescriptor) {
if (containsAnnotation(declarationDescriptor, FQ_NAMES.deprecated)) return true;
if (declarationDescriptor.getOriginal().getAnnotations().hasAnnotation(FQ_NAMES.deprecated)) return true;
if (declarationDescriptor instanceof PropertyDescriptor) {
boolean isVar = ((PropertyDescriptor) declarationDescriptor).isVar();
@@ -1173,20 +1172,4 @@ public abstract class KotlinBuiltIns {
public static FqName getPrimitiveFqName(@NotNull PrimitiveType primitiveType) {
return BUILT_INS_PACKAGE_FQ_NAME.child(primitiveType.getTypeName());
}
private static boolean containsAnnotation(DeclarationDescriptor descriptor, FqName annotationClassFqName) {
DeclarationDescriptor original = descriptor.getOriginal();
Annotations annotations = original.getAnnotations();
if (annotations.findAnnotation(annotationClassFqName) != null) return true;
AnnotationUseSiteTarget associatedUseSiteTarget = AnnotationUseSiteTarget.Companion.getAssociatedUseSiteTarget(descriptor);
if (associatedUseSiteTarget != null) {
if (Annotations.Companion.findUseSiteTargetedAnnotation(annotations, associatedUseSiteTarget, annotationClassFqName) != null) {
return true;
}
}
return false;
}
}
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.descriptors.annotations
import org.jetbrains.kotlin.descriptors.*
enum class AnnotationUseSiteTarget(renderName: String? = null) {
FIELD(),
FILE(),
@@ -30,14 +28,4 @@ enum class AnnotationUseSiteTarget(renderName: String? = null) {
PROPERTY_DELEGATE_FIELD("delegate");
val renderName: String = renderName ?: name.toLowerCase()
companion object {
fun getAssociatedUseSiteTarget(descriptor: DeclarationDescriptor): AnnotationUseSiteTarget? = when (descriptor) {
is PropertyDescriptor -> PROPERTY
is ValueParameterDescriptor -> CONSTRUCTOR_PARAMETER
is PropertyGetterDescriptor -> PROPERTY_GETTER
is PropertySetterDescriptor -> PROPERTY_SETTER
else -> null
}
}
}
}
@@ -57,16 +57,6 @@ interface Annotations : Iterable<AnnotationDescriptor> {
override fun toString() = "EMPTY"
}
fun findUseSiteTargetedAnnotation(annotations: Annotations, target: AnnotationUseSiteTarget, fqName: FqName): AnnotationDescriptor? {
return getUseSiteTargetedAnnotations(annotations, target).firstOrNull { it.fqName == fqName }
}
private fun getUseSiteTargetedAnnotations(annotations: Annotations, target: AnnotationUseSiteTarget): List<AnnotationDescriptor> {
return annotations.getUseSiteTargetedAnnotations().mapNotNull { (annotation, annotationTarget) ->
annotation.takeIf { target == annotationTarget }
}
}
}
}