Minor. Small refactoring of AllUnderImportsScope

This commit is contained in:
Stanislav Erokhin
2015-09-18 18:30:40 +03:00
parent 85895bec62
commit 6c1738e11a
2 changed files with 10 additions and 15 deletions
@@ -17,25 +17,22 @@
package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.types.JetType
import org.jetbrains.kotlin.utils.Printer
import java.util.ArrayList
class AllUnderImportsScope : JetScope {
private val scopes = ArrayList<JetScope>()
public fun addAllUnderImport(descriptor: DeclarationDescriptor) {
if (descriptor is PackageViewDescriptor) {
scopes.add(NoSubpackagesInPackageScope(descriptor))
}
else if (descriptor is ClassDescriptor) {
scopes.add(descriptor.getStaticScope())
scopes.add(descriptor.getUnsubstitutedInnerClassesScope())
class AllUnderImportsScope(descriptor: DeclarationDescriptor) : JetScope {
private val scopes = if (descriptor is ClassDescriptor) {
listOf(descriptor.staticScope, descriptor.unsubstitutedInnerClassesScope)
}
else {
assert(descriptor is PackageViewDescriptor) {
"Must be class or package view descriptor: $descriptor"
}
listOf(NoSubpackagesInPackageScope(descriptor as PackageViewDescriptor))
}
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
@@ -129,9 +129,7 @@ public class QualifiedExpressionResolver(val symbolUsageValidator: SymbolUsageVa
if (packageOrClassDescriptor is ClassDescriptor && packageOrClassDescriptor.kind.isSingleton) {
trace.report(Errors.CANNOT_IMPORT_MEMBERS_FROM_SINGLETON.on(lastPart.expression, packageOrClassDescriptor)) // todo report on star
}
val scope = AllUnderImportsScope()
scope.addAllUnderImport(packageOrClassDescriptor)
return scope
return AllUnderImportsScope(packageOrClassDescriptor)
}
else {
val aliasName = JetPsiUtil.getAliasName(importDirective)