J2K: move isEffectivelyExternal to kt-file, parameter -> receiver

This commit is contained in:
Mikhail Glukhikh
2017-04-28 12:41:27 +03:00
parent d5feb2d6f4
commit b8af0f5922
10 changed files with 38 additions and 33 deletions
@@ -573,18 +573,6 @@ public class DescriptorUtils {
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);
}
@NotNull
public static FunctionDescriptor getFunctionByName(@NotNull MemberScope scope, @NotNull Name name) {
Collection<DeclarationDescriptor> functions = scope.getContributedDescriptors(DescriptorKindFilter.FUNCTIONS,
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.DescriptorUtils.getContainingClass
import org.jetbrains.kotlin.resolve.constants.EnumValue
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.MemberScope
@@ -411,4 +412,16 @@ fun DeclarationDescriptor.isCompanionObject(): Boolean = DescriptorUtils.isCompa
fun ClassDescriptor.isSubclassOf(superclass: ClassDescriptor): Boolean = DescriptorUtils.isSubclass(this, superclass)
val AnnotationDescriptor.annotationClass: ClassDescriptor?
get() = type.constructor.declarationDescriptor as? ClassDescriptor
get() = type.constructor.declarationDescriptor as? ClassDescriptor
fun MemberDescriptor.isEffectivelyExternal(): Boolean {
if (isExternal) return true
if (this is PropertyAccessorDescriptor) {
val variableDescriptor = correspondingProperty
if (variableDescriptor.isEffectivelyExternal()) return true
}
val containingClass = getContainingClass(this)
return containingClass != null && containingClass.isEffectivelyExternal()
}