LazyPackageFragmentScopeForJavaPackage uses name filter in getDescriptors() for methods and properties as well
This commit is contained in:
+2
-2
@@ -45,7 +45,7 @@ public 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 getAllMethodNames(): Collection<Name> = super.getAllMethodNames() + getClassNames({ true })
|
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> = super.getMethodNames(nameFilter) + getClassNames(nameFilter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ public class LazyJavaClassMemberScope(
|
|||||||
if (field != null) {
|
if (field != null) {
|
||||||
EnumEntrySyntheticClassDescriptor.create(c.storageManager, getContainingDeclaration(), name,
|
EnumEntrySyntheticClassDescriptor.create(c.storageManager, getContainingDeclaration(), name,
|
||||||
c.storageManager.createLazyValue {
|
c.storageManager.createLazyValue {
|
||||||
memberIndex().getAllFieldNames() + memberIndex().getAllMethodNames()
|
memberIndex().getAllFieldNames() + memberIndex().getMethodNames({true})
|
||||||
}, c.sourceElementFactory.source(field))
|
}, c.sourceElementFactory.source(field))
|
||||||
}
|
}
|
||||||
else null
|
else null
|
||||||
|
|||||||
+8
-5
@@ -208,7 +208,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getFunctions(name: Name) = functions(name)
|
override fun getFunctions(name: Name) = functions(name)
|
||||||
protected open fun getAllFunctionNames(): Collection<Name> = memberIndex().getAllMethodNames()
|
protected open fun getFunctionNames(nameFilter: (Name) -> Boolean): Collection<Name> = memberIndex().getMethodNames(nameFilter)
|
||||||
|
|
||||||
protected abstract fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>)
|
protected abstract fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>)
|
||||||
|
|
||||||
@@ -290,7 +290,6 @@ public abstract class LazyJavaMemberScope(
|
|||||||
override fun getDescriptors(kindFilter: (JetScope.DescriptorKind) -> Boolean,
|
override fun getDescriptors(kindFilter: (JetScope.DescriptorKind) -> Boolean,
|
||||||
nameFilter: (Name) -> Boolean) = allDescriptors()
|
nameFilter: (Name) -> Boolean) = allDescriptors()
|
||||||
|
|
||||||
//TODO: use nameFilter
|
|
||||||
protected fun computeDescriptors(kindFilter: (JetScope.DescriptorKind) -> Boolean,
|
protected fun computeDescriptors(kindFilter: (JetScope.DescriptorKind) -> Boolean,
|
||||||
nameFilter: (Name) -> Boolean): List<DeclarationDescriptor> {
|
nameFilter: (Name) -> Boolean): List<DeclarationDescriptor> {
|
||||||
val result = LinkedHashSet<DeclarationDescriptor>()
|
val result = LinkedHashSet<DeclarationDescriptor>()
|
||||||
@@ -305,14 +304,18 @@ public abstract class LazyJavaMemberScope(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (kindFilter(JetScope.DescriptorKind.NON_EXTENSION_FUNCTION)) {
|
if (kindFilter(JetScope.DescriptorKind.NON_EXTENSION_FUNCTION)) {
|
||||||
for (name in getAllFunctionNames()) {
|
for (name in getFunctionNames(nameFilter)) {
|
||||||
result.addAll(getFunctions(name))
|
if (nameFilter(name)) {
|
||||||
|
result.addAll(getFunctions(name))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kindFilter(JetScope.DescriptorKind.NON_EXTENSION_PROPERTY)) {
|
if (kindFilter(JetScope.DescriptorKind.NON_EXTENSION_PROPERTY)) {
|
||||||
for (name in getAllPropertyNames()) {
|
for (name in getAllPropertyNames()) {
|
||||||
result.addAll(getProperties(name))
|
if (nameFilter(name)) {
|
||||||
|
result.addAll(getProperties(name))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -108,7 +108,7 @@ public class LazyPackageFragmentScopeForJavaPackage(
|
|||||||
|
|
||||||
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 getAllMethodNames(): Collection<Name> = getClassNames({ true })
|
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> = getClassNames(nameFilter)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassNames(nameFilter: (Name) -> Boolean): Collection<Name> {
|
override fun getClassNames(nameFilter: (Name) -> Boolean): Collection<Name> {
|
||||||
@@ -148,20 +148,20 @@ public 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 getAllMethodNames(): Collection<Name> {
|
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> {
|
||||||
// Should be a super call, but KT-2860
|
// Should be a super call, but KT-2860
|
||||||
return delegate.getAllMethodNames() +
|
return delegate.getMethodNames(nameFilter) +
|
||||||
// For SAM-constructors
|
// For SAM-constructors
|
||||||
jClass.getInnerClasses().map { it.getName() }
|
jClass.getInnerClasses().map { it.getName() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getAllFunctionNames(): Collection<Name> {
|
override fun getFunctionNames(nameFilter: (Name) -> Boolean): Collection<Name> {
|
||||||
if (jClass.isEnum()) {
|
if (jClass.isEnum()) {
|
||||||
return super.getAllFunctionNames() + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
|
return super.getFunctionNames(nameFilter) + listOf(DescriptorUtils.ENUM_VALUE_OF, DescriptorUtils.ENUM_VALUES)
|
||||||
}
|
}
|
||||||
return super.getAllFunctionNames()
|
return super.getFunctionNames(nameFilter)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getClassNames(nameFilter: (Name) -> Boolean): Collection<Name> = listOf()
|
override fun getClassNames(nameFilter: (Name) -> Boolean): Collection<Name> = listOf()
|
||||||
|
|||||||
+3
-3
@@ -24,7 +24,7 @@ import java.util.HashSet
|
|||||||
|
|
||||||
trait MemberIndex {
|
trait MemberIndex {
|
||||||
fun findMethodsByName(name: Name): Collection<JavaMethod>
|
fun findMethodsByName(name: Name): Collection<JavaMethod>
|
||||||
fun getAllMethodNames(): Collection<Name>
|
fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name>
|
||||||
|
|
||||||
fun findFieldByName(name: Name): JavaField?
|
fun findFieldByName(name: Name): JavaField?
|
||||||
fun getAllFieldNames(): Collection<Name>
|
fun getAllFieldNames(): Collection<Name>
|
||||||
@@ -32,7 +32,7 @@ trait MemberIndex {
|
|||||||
|
|
||||||
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 getAllMethodNames() = listOf<Name>()
|
override fun getMethodNames(nameFilter: (Name) -> Boolean) = listOf<Name>()
|
||||||
|
|
||||||
override fun findFieldByName(name: Name): JavaField? = null
|
override fun findFieldByName(name: Name): JavaField? = null
|
||||||
override fun getAllFieldNames() = listOf<Name>()
|
override fun getAllFieldNames() = listOf<Name>()
|
||||||
@@ -48,7 +48,7 @@ open class ClassMemberIndex(val jClass: JavaClass, val memberFilter: (JavaMember
|
|||||||
private val fields = jClass.getFields().stream().filter(memberFilter).valuesToMap { m -> m.getName() }
|
private val fields = jClass.getFields().stream().filter(memberFilter).valuesToMap { m -> m.getName() }
|
||||||
|
|
||||||
override fun findMethodsByName(name: Name): Collection<JavaMethod> = methods[name] ?: listOf()
|
override fun findMethodsByName(name: Name): Collection<JavaMethod> = methods[name] ?: listOf()
|
||||||
override fun getAllMethodNames(): Collection<Name> = jClass.getAllMemberNames(methodFilter) { getMethods() }
|
override fun getMethodNames(nameFilter: (Name) -> Boolean): Collection<Name> = jClass.getAllMemberNames(methodFilter) { getMethods() }
|
||||||
|
|
||||||
override fun findFieldByName(name: Name): JavaField? = fields[name]
|
override fun findFieldByName(name: Name): JavaField? = fields[name]
|
||||||
override fun getAllFieldNames(): Collection<Name> = jClass.getAllMemberNames(memberFilter) { getFields() }
|
override fun getAllFieldNames(): Collection<Name> = jClass.getAllMemberNames(memberFilter) { getFields() }
|
||||||
|
|||||||
Reference in New Issue
Block a user