Property with all accessors deprecated considered as deprecated

This commit is contained in:
Valentin Kipyatkov
2015-10-19 19:40:17 +03:00
parent 8e6b0a26bb
commit 73176fae17
4 changed files with 52 additions and 1 deletions
@@ -1019,7 +1019,16 @@ public abstract class KotlinBuiltIns {
}
public static boolean isDeprecated(@NotNull DeclarationDescriptor declarationDescriptor) {
return containsAnnotation(declarationDescriptor, FQ_NAMES.deprecated);
if (containsAnnotation(declarationDescriptor, FQ_NAMES.deprecated)) return true;
if (declarationDescriptor instanceof PropertyDescriptor) {
boolean isVar = ((PropertyDescriptor) declarationDescriptor).isVar();
PropertyGetterDescriptor getter = ((PropertyDescriptor) declarationDescriptor).getGetter();
PropertySetterDescriptor setter = ((PropertyDescriptor) declarationDescriptor).getSetter();
return getter != null && isDeprecated(getter) && (!isVar || setter != null && isDeprecated(setter));
}
return false;
}
public static boolean isSuppressAnnotation(@NotNull AnnotationDescriptor annotationDescriptor) {