Don't report error for properties and functions without body that either external by themselves or are members of external classes

This commit is contained in:
Alexey Andreev
2016-11-25 12:59:29 +03:00
parent 68412ae94f
commit a7ce770cb4
3 changed files with 17 additions and 6 deletions
@@ -575,4 +575,16 @@ public class DescriptorUtils {
public static Collection<DeclarationDescriptor> getAllDescriptors(@NotNull MemberScope scope) {
return scope.getContributedDescriptors(DescriptorKindFilter.ALL, MemberScope.Companion.getALL_NAME_FILTER());
}
public static boolean isEffectivelyExternal(@NotNull MemberDescriptor descriptor) {
if (descriptor.isExternal()) return true;
if (descriptor instanceof PropertyAccessorDescriptor) {
PropertyDescriptor variableDescriptor = ((PropertyAccessorDescriptor) descriptor).getCorrespondingProperty();
if (isEffectivelyExternal(variableDescriptor)) return true;
}
ClassDescriptor containingClass = getContainingClass(descriptor);
return containingClass != null && isEffectivelyExternal(containingClass);
}
}