Drop Annotations.Companion.find/getUseSiteTargetedAnnotation(s)
This commit is contained in:
@@ -23,8 +23,6 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.config.MavenComparableVersion
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.descriptors.impl.DescriptorDerivedFromTypeAlias
|
||||
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
@@ -321,22 +319,7 @@ class DeprecationResolver(
|
||||
getDeprecationByCoroutinesVersion(target)?.let(result::add)
|
||||
}
|
||||
|
||||
fun addUseSiteTargetedDeprecationIfPresent(annotatedDescriptor: DeclarationDescriptor, useSiteTarget: AnnotationUseSiteTarget?) {
|
||||
if (useSiteTarget != null) {
|
||||
val annotation = Annotations.findUseSiteTargetedAnnotation(
|
||||
annotatedDescriptor.annotations,
|
||||
useSiteTarget,
|
||||
KotlinBuiltIns.FQ_NAMES.deprecated
|
||||
)
|
||||
?: Annotations.findUseSiteTargetedAnnotation(annotatedDescriptor.annotations, useSiteTarget, JAVA_DEPRECATED)
|
||||
if (annotation != null) {
|
||||
result.add(DeprecatedByAnnotation(annotation, this))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addDeprecationIfPresent(this)
|
||||
addUseSiteTargetedDeprecationIfPresent(this, AnnotationUseSiteTarget.getAssociatedUseSiteTarget(this))
|
||||
|
||||
when (this) {
|
||||
is TypeAliasDescriptor -> {
|
||||
@@ -347,11 +330,6 @@ class DeprecationResolver(
|
||||
}
|
||||
is PropertyAccessorDescriptor -> {
|
||||
addDeprecationIfPresent(correspondingProperty)
|
||||
|
||||
addUseSiteTargetedDeprecationIfPresent(
|
||||
correspondingProperty,
|
||||
if (this is PropertyGetterDescriptor) AnnotationUseSiteTarget.PROPERTY_GETTER else AnnotationUseSiteTarget.PROPERTY_SETTER
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-13
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
@@ -78,10 +76,7 @@ private fun KtExpression.getBundleNameByContext(): String? {
|
||||
val callable = resolvedCall.resultingDescriptor
|
||||
|
||||
if ((resolvedCall.extensionReceiver as? ExpressionReceiver)?.expression == expression) {
|
||||
val returnTypeAnnotations = callable.returnType?.annotations ?: return null
|
||||
return Annotations
|
||||
.findUseSiteTargetedAnnotation(returnTypeAnnotations, AnnotationUseSiteTarget.RECEIVER, PROPERTY_KEY)
|
||||
?.getBundleName()
|
||||
return callable.extensionReceiverParameter?.annotations?.findAnnotation(PROPERTY_KEY)?.getBundleName()
|
||||
}
|
||||
|
||||
return resolvedCall.valueArguments.entries
|
||||
|
||||
Reference in New Issue
Block a user