Minor. Refine return type Collection -> Set
This commit is contained in:
+3
-3
@@ -70,7 +70,7 @@ class LazyJavaClassMemberScope(
|
||||
override fun computeMemberIndex(): MemberIndex {
|
||||
return object : ClassMemberIndex(jClass, { !it.isStatic }) {
|
||||
// For SAM-constructors
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name>
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Set<Name>
|
||||
= super.getMethodNames(nameFilter) + computeClassNames(DescriptorKindFilter.CLASSIFIERS, nameFilter)
|
||||
}
|
||||
}
|
||||
@@ -660,10 +660,10 @@ class LazyJavaClassMemberScope(
|
||||
return super.getContributedVariables(name, location)
|
||||
}
|
||||
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name>
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name>
|
||||
= nestedClassIndex().keys + enumEntryIndex().keys
|
||||
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> {
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
|
||||
if (jClass.isAnnotationType) return memberIndex().getMethodNames(nameFilter ?: alwaysTrue())
|
||||
|
||||
return memberIndex().getAllFieldNames() +
|
||||
|
||||
+7
-7
@@ -135,21 +135,21 @@ class LazyJavaPackageScope(
|
||||
|
||||
override fun computeMemberIndex(): MemberIndex = object : MemberIndex by EMPTY_MEMBER_INDEX {
|
||||
// For SAM-constructors
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> = computeClassNames(DescriptorKindFilter.CLASSIFIERS, nameFilter)
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Set<Name> = computeClassNames(DescriptorKindFilter.CLASSIFIERS, nameFilter)
|
||||
}
|
||||
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> {
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
|
||||
// neither objects nor enum members can be in java package
|
||||
if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return listOf()
|
||||
if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return emptySet()
|
||||
|
||||
return jPackage.getClasses(nameFilter ?: alwaysTrue()).mapNotNull { klass ->
|
||||
return jPackage.getClasses(nameFilter ?: alwaysTrue()).mapNotNullTo(linkedSetOf()) { klass ->
|
||||
if (klass.lightClassOriginKind == LightClassOriginKind.SOURCE) null else klass.name
|
||||
}
|
||||
}
|
||||
|
||||
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> {
|
||||
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
|
||||
// optimization: only SAM-constructors may exist in java package
|
||||
if (kindFilter.excludes.contains(SamConstructorDescriptorKindExclude)) return listOf()
|
||||
if (kindFilter.excludes.contains(SamConstructorDescriptorKindExclude)) return emptySet()
|
||||
|
||||
return super.computeFunctionNames(kindFilter, nameFilter)
|
||||
}
|
||||
@@ -160,7 +160,7 @@ class LazyJavaPackageScope(
|
||||
}?.let { result.add(it) }
|
||||
}
|
||||
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) = listOf<Name>()
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) = emptySet<Name>()
|
||||
|
||||
// we don't use implementation from super which caches all descriptors and does not use filters
|
||||
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
|
||||
+3
-3
@@ -217,12 +217,12 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
|
||||
|
||||
override fun getContributedFunctions(name: Name, location: LookupLocation): Collection<SimpleFunctionDescriptor> = functions(name)
|
||||
|
||||
protected open fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name>
|
||||
protected open fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name>
|
||||
= memberIndex().getMethodNames(nameFilter ?: alwaysTrue())
|
||||
|
||||
protected abstract fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>)
|
||||
|
||||
protected abstract fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name>
|
||||
protected abstract fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name>
|
||||
|
||||
private val properties = c.storageManager.createMemoizedFunction {
|
||||
name: Name ->
|
||||
@@ -328,7 +328,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
|
||||
return result.toReadOnlyList()
|
||||
}
|
||||
|
||||
protected abstract fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name>
|
||||
protected abstract fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name>
|
||||
|
||||
override fun toString() = "Lazy scope for $ownerDescriptor"
|
||||
|
||||
|
||||
+4
-4
@@ -42,7 +42,7 @@ class LazyJavaStaticClassScope(
|
||||
override fun computeMemberIndex(): MemberIndex {
|
||||
val delegate = ClassMemberIndex(jClass) { it.isStatic }
|
||||
return object : MemberIndex by delegate {
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> {
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Set<Name> {
|
||||
// Should be a super call, but KT-2860
|
||||
return delegate.getMethodNames(nameFilter) +
|
||||
// For SAM-constructors
|
||||
@@ -51,17 +51,17 @@ class LazyJavaStaticClassScope(
|
||||
}
|
||||
}
|
||||
|
||||
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> {
|
||||
override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> {
|
||||
if (jClass.isEnum) {
|
||||
return super.computeFunctionNames(kindFilter, nameFilter) + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
|
||||
}
|
||||
return super.computeFunctionNames(kindFilter, nameFilter)
|
||||
}
|
||||
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> =
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> =
|
||||
memberIndex().getAllFieldNames()
|
||||
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Collection<Name> = listOf()
|
||||
override fun computeClassNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?): Set<Name> = emptySet()
|
||||
|
||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
||||
// We don't need to track lookups here because we find nested/inner classes in LazyJavaClassMemberScope
|
||||
|
||||
+6
-6
@@ -27,18 +27,18 @@ import java.util.*
|
||||
|
||||
interface MemberIndex {
|
||||
fun findMethodsByName(name: Name): Collection<JavaMethod>
|
||||
fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name>
|
||||
fun getMethodNames(nameFilter: (Name) -> Boolean): Set<Name>
|
||||
|
||||
fun findFieldByName(name: Name): JavaField?
|
||||
fun getAllFieldNames(): Collection<Name>
|
||||
fun getAllFieldNames(): Set<Name>
|
||||
}
|
||||
|
||||
object EMPTY_MEMBER_INDEX : MemberIndex {
|
||||
override fun findMethodsByName(name: Name) = listOf<JavaMethod>()
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean) = listOf<Name>()
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean) = emptySet<Name>()
|
||||
|
||||
override fun findFieldByName(name: Name): JavaField? = null
|
||||
override fun getAllFieldNames() = listOf<Name>()
|
||||
override fun getAllFieldNames() = emptySet<Name>()
|
||||
}
|
||||
|
||||
private val ADDITIONAL_MEMBER_NAMES_MAP = mapOf(
|
||||
@@ -61,11 +61,11 @@ open class ClassMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember
|
||||
private val fields = jClass.fields.asSequence().filter(memberFilter).associateBy { m -> m.name }
|
||||
|
||||
override fun findMethodsByName(name: Name): Collection<JavaMethod> = methods[name] ?: listOf()
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> =
|
||||
override fun getMethodNames(nameFilter: (Name) -> Boolean): Set<Name> =
|
||||
jClass.getAllMemberNames(methodFilter) { methods }
|
||||
|
||||
override fun findFieldByName(name: Name): JavaField? = fields[name]
|
||||
override fun getAllFieldNames(): Collection<Name> = jClass.getAllMemberNames(memberFilter) { fields }
|
||||
override fun getAllFieldNames(): Set<Name> = jClass.getAllMemberNames(memberFilter) { fields }
|
||||
}
|
||||
|
||||
private fun JavaClass.getNonDeclaredMethodNames(): List<Name> {
|
||||
|
||||
Reference in New Issue
Block a user