Minor. Rename MemberIndex -> DeclaredMemberIndex
Also replace super-calls with explicit calls to declaredMemberIndex().getMethods
This commit is contained in:
+12
-12
@@ -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)
|
||||
}
|
||||
|
||||
+5
-5
@@ -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()
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+6
-6
@@ -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))
|
||||
}
|
||||
|
||||
+3
-3
@@ -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() }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user