Code completion: do not list instance members from context with no instance
#KT-6388 Fixed #KT-4422 Fixed #KT-5516 Fixed
This commit is contained in:
+1
-1
@@ -27,7 +27,7 @@ public class InnerClassesScopeWrapper(override val workerScope: JetScope) : Abst
|
||||
|
||||
override fun getDescriptors(kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean): List<ClassDescriptor> {
|
||||
val restrictedFilter = kindFilter.restrictedToKinds(DescriptorKindFilter.CLASSIFIERS_MASK) ?: return listOf()
|
||||
val restrictedFilter = kindFilter.restrictedToKindsOrNull(DescriptorKindFilter.CLASSIFIERS_MASK) ?: return listOf()
|
||||
return workerScope.getDescriptors(restrictedFilter, nameFilter).filterIsInstance<ClassDescriptor>()
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ public fun JetScope.getDescriptorsFiltered(
|
||||
kindFilter: DescriptorKindFilter,
|
||||
nameFilter: (Name) -> Boolean
|
||||
): Collection<DeclarationDescriptor> {
|
||||
if (kindFilter.kindMask == 0) return listOf()
|
||||
return getDescriptors(kindFilter, nameFilter).filter { kindFilter.accepts(it) && nameFilter(it.getName()) }
|
||||
}
|
||||
|
||||
@@ -113,7 +114,10 @@ public class DescriptorKindFilter(
|
||||
public fun withKinds(kinds: Int): DescriptorKindFilter
|
||||
= DescriptorKindFilter(kindMask or kinds, excludes)
|
||||
|
||||
public fun restrictedToKinds(kinds: Int): DescriptorKindFilter? {
|
||||
public fun restrictedToKinds(kinds: Int): DescriptorKindFilter
|
||||
= DescriptorKindFilter(kindMask and kinds, excludes)
|
||||
|
||||
public fun restrictedToKindsOrNull(kinds: Int): DescriptorKindFilter? {
|
||||
val mask = kindMask and kinds
|
||||
if (mask == 0) return null
|
||||
return DescriptorKindFilter(mask, excludes)
|
||||
|
||||
Reference in New Issue
Block a user