Introduce ImportingScope::computeImportedNames

This commit is contained in:
Denis Zharkov
2017-08-15 18:30:50 +07:00
parent cd3edfc5b2
commit 69f3b01e98
7 changed files with 20 additions and 7 deletions
@@ -121,12 +121,15 @@ interface ImportingScope : HierarchicalScope {
return getContributedDescriptors(kindFilter, nameFilter, changeNamesForAliased = false)
}
fun computeImportedNames(): Set<Name>?
object Empty : BaseImportingScope(null) {
override fun printStructure(p: Printer) {
p.println("ImportingScope.Empty")
}
override fun definitelyDoesNotContainName(name: Name) = true
override fun computeImportedNames() = emptySet<Name>()
}
}
@@ -48,4 +48,5 @@ class SubpackagesImportingScope(
//TODO: kept old behavior, but it seems very strange (super call seems more applicable)
override fun getContributedDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean, changeNamesForAliased: Boolean): Collection<DeclarationDescriptor>
= emptyList()
override fun computeImportedNames() = emptySet<Name>()
}
@@ -122,6 +122,8 @@ private class MemberScopeToImportingScopeAdapter(override val parent: ImportingS
override fun toString() = "${this::class.java.simpleName} for $memberScope"
override fun computeImportedNames() = memberScope.computeAllNames()
override fun printStructure(p: Printer) {
p.println(this::class.java.simpleName)
p.pushIndent()