Minor. Rename MemberIndex -> DeclaredMemberIndex

Also replace super-calls with explicit calls to declaredMemberIndex().getMethods
This commit is contained in:
Denis Zharkov
2016-09-07 16:13:42 +03:00
parent a30cb4ead6
commit a29faf3f2d
5 changed files with 27 additions and 27 deletions
@@ -23,23 +23,23 @@ import org.jetbrains.kotlin.load.java.structure.JavaMember
import org.jetbrains.kotlin.load.java.structure.JavaMethod
import org.jetbrains.kotlin.name.Name
interface MemberIndex {
interface DeclaredMemberIndex {
fun findMethodsByName(name: Name): Collection<JavaMethod>
fun getMethodNames(): Set<Name>
fun findFieldByName(name: Name): JavaField?
fun getAllFieldNames(): Set<Name>
fun getFieldNames(): Set<Name>
object Empty : DeclaredMemberIndex {
override fun findMethodsByName(name: Name) = listOf<JavaMethod>()
override fun getMethodNames() = emptySet<Name>()
override fun findFieldByName(name: Name): JavaField? = null
override fun getFieldNames() = emptySet<Name>()
}
}
object EMPTY_MEMBER_INDEX : MemberIndex {
override fun findMethodsByName(name: Name) = listOf<JavaMethod>()
override fun getMethodNames() = emptySet<Name>()
override fun findFieldByName(name: Name): JavaField? = null
override fun getAllFieldNames() = emptySet<Name>()
}
open class ClassMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember) -> Boolean) : MemberIndex {
open class ClassDeclaredMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember) -> Boolean) : DeclaredMemberIndex {
private val methodFilter = {
m: JavaMethod ->
memberFilter(m) && !DescriptorResolverUtils.isObjectMethodInInterface(m)
@@ -52,6 +52,6 @@ open class ClassMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember
override fun getMethodNames(): Set<Name> = jClass.methods.asSequence().filter(methodFilter).mapTo(mutableSetOf(), JavaMethod::name)
override fun findFieldByName(name: Name): JavaField? = fields[name]
override fun getAllFieldNames(): Set<Name> = jClass.fields.asSequence().filter(memberFilter).mapTo(mutableSetOf(), JavaField::name)
override fun getFieldNames(): Set<Name> = jClass.fields.asSequence().filter(memberFilter).mapTo(mutableSetOf(), JavaField::name)
}
@@ -67,13 +67,13 @@ class LazyJavaClassMemberScope(
private val jClass: JavaClass
) : LazyJavaScope(c) {
override fun computeMemberIndex() = ClassMemberIndex(jClass, { !it.isStatic })
override fun computeMemberIndex() = ClassDeclaredMemberIndex(jClass, { !it.isStatic })
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) =
ownerDescriptor.typeConstructor.supertypes.flatMapTo(HashSet()) {
it.memberScope.getFunctionNames()
}.apply {
addAll(super.computeFunctionNames(kindFilter, null))
addAll(declaredMemberIndex().getMethodNames())
addAll(computeClassNames(kindFilter, nameFilter))
}
@@ -138,7 +138,7 @@ class LazyJavaClassMemberScope(
}
private fun searchMethodsByNameWithoutBuiltinMagic(name: Name): Collection<SimpleFunctionDescriptor> =
memberIndex().findMethodsByName(name).map { resolveMethodToFunctionDescriptor(it) }
declaredMemberIndex().findMethodsByName(name).map { resolveMethodToFunctionDescriptor(it) }
private fun searchMethodsInSupertypesWithoutBuiltinMagic(name: Name): Collection<SimpleFunctionDescriptor> =
getFunctionsFromSupertypes(name).filterNot {
@@ -408,7 +408,7 @@ class LazyJavaClassMemberScope(
}
private fun computeAnnotationProperties(name: Name, result: MutableCollection<PropertyDescriptor>) {
val method = memberIndex().findMethodsByName(name).singleOrNull() ?: return
val method = declaredMemberIndex().findMethodsByName(name).singleOrNull() ?: return
result.add(createPropertyDescriptorWithDefaultGetter(method, modality = Modality.FINAL))
}
@@ -667,7 +667,7 @@ class LazyJavaClassMemberScope(
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
if (jClass.isAnnotationType) return getFunctionNames()
val result = LinkedHashSet(memberIndex().getAllFieldNames())
val result = LinkedHashSet(declaredMemberIndex().getFieldNames())
return ownerDescriptor.typeConstructor.supertypes.flatMapTo(result) { supertype ->
supertype.memberScope.getVariableNames()
}
@@ -143,7 +143,7 @@ class LazyJavaPackageScope(
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> = emptyList()
override fun computeMemberIndex(): MemberIndex = EMPTY_MEMBER_INDEX
override fun computeMemberIndex(): DeclaredMemberIndex = DeclaredMemberIndex.Empty
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
// neither objects nor enum members can be in java package
@@ -63,9 +63,9 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
listOf()
)
protected val memberIndex: NotNullLazyValue<MemberIndex> = c.storageManager.createLazyValue { computeMemberIndex() }
protected val declaredMemberIndex: NotNullLazyValue<DeclaredMemberIndex> = c.storageManager.createLazyValue { computeMemberIndex() }
protected abstract fun computeMemberIndex(): MemberIndex
protected abstract fun computeMemberIndex(): DeclaredMemberIndex
// Fake overrides, SAM constructors/adapters, values()/valueOf(), etc.
protected abstract fun computeNonDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name)
@@ -76,7 +76,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
name ->
val result = LinkedHashSet<SimpleFunctionDescriptor>()
for (method in memberIndex().findMethodsByName(name)) {
for (method in declaredMemberIndex().findMethodsByName(name)) {
val descriptor = resolveMethodToFunctionDescriptor(method)
if (!descriptor.isVisibleAsFunction()) continue
@@ -227,18 +227,18 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
}
protected open fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> =
memberIndex().getMethodNames()
declaredMemberIndex().getMethodNames()
protected abstract fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>)
protected open fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> =
memberIndex().getAllFieldNames()
declaredMemberIndex().getFieldNames()
private val properties = c.storageManager.createMemoizedFunction {
name: Name ->
val properties = ArrayList<PropertyDescriptor>()
val field = memberIndex().findFieldByName(name)
val field = declaredMemberIndex().findFieldByName(name)
if (field != null && !field.isEnumEntry) {
properties.add(resolveProperty(field))
}
@@ -40,10 +40,10 @@ class LazyJavaStaticClassScope(
override val ownerDescriptor: LazyJavaClassDescriptor
) : LazyJavaStaticScope(c) {
override fun computeMemberIndex() = ClassMemberIndex(jClass) { it.isStatic }
override fun computeMemberIndex() = ClassDeclaredMemberIndex(jClass) { it.isStatic }
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) =
super.computeFunctionNames(kindFilter, nameFilter).toMutableSet().apply {
declaredMemberIndex().getMethodNames().toMutableSet().apply {
addAll(ownerDescriptor.getParentJavaStaticClassScope()?.getFunctionNames().orEmpty())
if (jClass.isEnum) {
addAll(listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES))
@@ -52,7 +52,7 @@ class LazyJavaStaticClassScope(
}
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) =
super.computePropertyNames(kindFilter, nameFilter).toMutableSet().apply {
declaredMemberIndex().getFieldNames().toMutableSet().apply {
flatMapJavaStaticSupertypesScopes(ownerDescriptor, this) { it.getVariableNames() }
}