A flag replaced by a predicate

This commit is contained in:
Andrey Breslav
2013-11-07 16:09:17 +04:00
parent 6d4e025267
commit 6ff2d68206
3 changed files with 4 additions and 4 deletions
@@ -57,7 +57,7 @@ public class LazyJavaClassMemberScope(
private val jClass: JavaClass
) : LazyJavaMemberScope(c, containingDeclaration) {
override fun computeMemberIndex(): MemberIndex = object : ClassMemberIndex(jClass, mustBeStatic = false) {
override fun computeMemberIndex(): MemberIndex = object : ClassMemberIndex(jClass, { m -> !m.isStatic() }) {
// For SAM-constructors
override fun getAllMetodNames(): Collection<Name> = super.getAllMetodNames() + getAllClassNames()
}
@@ -87,7 +87,7 @@ public class LazyPackageFragmentScopeForJavaClass(
packageFragment: LazyJavaPackageFragment
) : LazyJavaPackageFragmentScope(c, packageFragment) {
override fun computeMemberIndex(): MemberIndex = computeMemberIndexForSamConstructors(ClassMemberIndex(jClass, mustBeStatic = true))
override fun computeMemberIndex(): MemberIndex = computeMemberIndexForSamConstructors(ClassMemberIndex(jClass, { m -> m.isStatic() }))
// nested classes are loaded as members of their outer classes, not packages
override fun getAllClassNames(): Collection<Name> = listOf()
@@ -41,10 +41,10 @@ object EMPTY_MEMBER_INDEX : MemberIndex {
override fun getAllFieldNames() = listOf<Name>()
}
open class ClassMemberIndex(val jClass: JavaClass, mustBeStatic: Boolean) : MemberIndex {
open class ClassMemberIndex(val jClass: JavaClass, filter: (JavaMember) -> Boolean) : MemberIndex {
private val memberFilter = {
(m: JavaMember) ->
m.isStatic() == mustBeStatic &&
filter(m) &&
m.getVisibility() != Visibilities.PRIVATE
}