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 package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.JetScope import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.JetType
import org.jetbrains.kotlin.utils.Printer import org.jetbrains.kotlin.utils.Printer
import java.util.ArrayList
class AllUnderImportsScope : JetScope { class AllUnderImportsScope(descriptor: DeclarationDescriptor) : JetScope {
private val scopes = ArrayList<JetScope>() private val scopes = if (descriptor is ClassDescriptor) {
listOf(descriptor.staticScope, descriptor.unsubstitutedInnerClassesScope)
public fun addAllUnderImport(descriptor: DeclarationDescriptor) { }
if (descriptor is PackageViewDescriptor) { else {
scopes.add(NoSubpackagesInPackageScope(descriptor)) assert(descriptor is PackageViewDescriptor) {
} "Must be class or package view descriptor: $descriptor"
else if (descriptor is ClassDescriptor) {
scopes.add(descriptor.getStaticScope())
scopes.add(descriptor.getUnsubstitutedInnerClassesScope())
} }
listOf(NoSubpackagesInPackageScope(descriptor as PackageViewDescriptor))
} }
override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> { 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) { if (packageOrClassDescriptor is ClassDescriptor && packageOrClassDescriptor.kind.isSingleton) {
trace.report(Errors.CANNOT_IMPORT_MEMBERS_FROM_SINGLETON.on(lastPart.expression, packageOrClassDescriptor)) // todo report on star trace.report(Errors.CANNOT_IMPORT_MEMBERS_FROM_SINGLETON.on(lastPart.expression, packageOrClassDescriptor)) // todo report on star
} }
val scope = AllUnderImportsScope() return AllUnderImportsScope(packageOrClassDescriptor)
scope.addAllUnderImport(packageOrClassDescriptor)
return scope
} }
else { else {
val aliasName = JetPsiUtil.getAliasName(importDirective) val aliasName = JetPsiUtil.getAliasName(importDirective)