Minor. Refine return type Collection -> Set
This commit is contained in:
+3
-3
@@ -70,7 +70,7 @@ class LazyJavaClassMemberScope(
|
|||||||
override fun computeMemberIndex(): MemberIndex {
|
override fun computeMemberIndex(): MemberIndex {
|
||||||
return object : ClassMemberIndex(jClass, { !it.isStatic }) {
|
return object : ClassMemberIndex(jClass, { !it.isStatic }) {
|
||||||
// For SAM-constructors
|
// 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)
|
= super.getMethodNames(nameFilter) + computeClassNames(DescriptorKindFilter.CLASSIFIERS, nameFilter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -660,10 +660,10 @@ class LazyJavaClassMemberScope(
|
|||||||
return super.getContributedVariables(name, location)
|
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
|
= 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())
|
if (jClass.isAnnotationType) return memberIndex().getMethodNames(nameFilter ?: alwaysTrue())
|
||||||
|
|
||||||
return memberIndex().getAllFieldNames() +
|
return memberIndex().getAllFieldNames() +
|
||||||
|
|||||||
+7
-7
@@ -135,21 +135,21 @@ class LazyJavaPackageScope(
|
|||||||
|
|
||||||
override fun computeMemberIndex(): MemberIndex = object : MemberIndex by EMPTY_MEMBER_INDEX {
|
override fun computeMemberIndex(): MemberIndex = object : MemberIndex by EMPTY_MEMBER_INDEX {
|
||||||
// For SAM-constructors
|
// 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
|
// 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
|
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
|
// 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)
|
return super.computeFunctionNames(kindFilter, nameFilter)
|
||||||
}
|
}
|
||||||
@@ -160,7 +160,7 @@ class LazyJavaPackageScope(
|
|||||||
}?.let { result.add(it) }
|
}?.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
|
// 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> {
|
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)
|
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())
|
= memberIndex().getMethodNames(nameFilter ?: alwaysTrue())
|
||||||
|
|
||||||
protected abstract fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>)
|
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 {
|
private val properties = c.storageManager.createMemoizedFunction {
|
||||||
name: Name ->
|
name: Name ->
|
||||||
@@ -328,7 +328,7 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
|
|||||||
return result.toReadOnlyList()
|
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"
|
override fun toString() = "Lazy scope for $ownerDescriptor"
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -42,7 +42,7 @@ class LazyJavaStaticClassScope(
|
|||||||
override fun computeMemberIndex(): MemberIndex {
|
override fun computeMemberIndex(): MemberIndex {
|
||||||
val delegate = ClassMemberIndex(jClass) { it.isStatic }
|
val delegate = ClassMemberIndex(jClass) { it.isStatic }
|
||||||
return object : MemberIndex by delegate {
|
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
|
// Should be a super call, but KT-2860
|
||||||
return delegate.getMethodNames(nameFilter) +
|
return delegate.getMethodNames(nameFilter) +
|
||||||
// For SAM-constructors
|
// 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) {
|
if (jClass.isEnum) {
|
||||||
return super.computeFunctionNames(kindFilter, nameFilter) + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
|
return super.computeFunctionNames(kindFilter, nameFilter) + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
|
||||||
}
|
}
|
||||||
return super.computeFunctionNames(kindFilter, nameFilter)
|
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()
|
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? {
|
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
||||||
// We don't need to track lookups here because we find nested/inner classes in LazyJavaClassMemberScope
|
// 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 {
|
interface MemberIndex {
|
||||||
fun findMethodsByName(name: Name): Collection<JavaMethod>
|
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 findFieldByName(name: Name): JavaField?
|
||||||
fun getAllFieldNames(): Collection<Name>
|
fun getAllFieldNames(): Set<Name>
|
||||||
}
|
}
|
||||||
|
|
||||||
object EMPTY_MEMBER_INDEX : MemberIndex {
|
object EMPTY_MEMBER_INDEX : MemberIndex {
|
||||||
override fun findMethodsByName(name: Name) = listOf<JavaMethod>()
|
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 findFieldByName(name: Name): JavaField? = null
|
||||||
override fun getAllFieldNames() = listOf<Name>()
|
override fun getAllFieldNames() = emptySet<Name>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val ADDITIONAL_MEMBER_NAMES_MAP = mapOf(
|
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 }
|
private val fields = jClass.fields.asSequence().filter(memberFilter).associateBy { m -> m.name }
|
||||||
|
|
||||||
override fun findMethodsByName(name: Name): Collection<JavaMethod> = methods[name] ?: listOf()
|
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 }
|
jClass.getAllMemberNames(methodFilter) { methods }
|
||||||
|
|
||||||
override fun findFieldByName(name: Name): JavaField? = fields[name]
|
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> {
|
private fun JavaClass.getNonDeclaredMethodNames(): List<Name> {
|
||||||
|
|||||||
Reference in New Issue
Block a user