Refactor: Introduce DeclarationDescriptor#module utility

This commit is contained in:
Pavel V. Talanov
2014-11-20 15:50:15 +03:00
parent 96100eec1d
commit 0319ef797e
5 changed files with 14 additions and 11 deletions
@@ -21,7 +21,6 @@ import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils
import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
import org.jetbrains.jet.renderer.DescriptorRenderer
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
import com.intellij.openapi.diagnostic.Logger
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
import com.intellij.openapi.roots.libraries.LibraryUtil
@@ -37,6 +36,8 @@ import com.intellij.openapi.module.impl.scopes.JdkScope
import com.intellij.openapi.roots.JdkOrderEntry
import org.jetbrains.jet.lang.psi.JetPsiUtil
import org.jetbrains.jet.lang.resolve.java.JvmClassName
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
import org.jetbrains.jet.plugin.caches.resolve.resolveToDescriptor
private val LOG = Logger.getInstance("org.jetbrains.jet.plugin.debugger")
@@ -58,13 +59,12 @@ fun findPackagePartInternalNameForLibraryFile(elementAt: JetElement): String? {
val packagePartFile = findPackagePartFileNamesForElement(topLevelDeclaration).singleOrNull()
if (packagePartFile != null) return packagePartFile
val resolveSession = topLevelDeclaration.getLazyResolveSession()
val descriptor = resolveSession.resolveToDescriptor(topLevelDeclaration)
val descriptor = topLevelDeclaration.resolveToDescriptor()
if (descriptor !is CallableDescriptor) return null
val packageFqName = topLevelDeclaration.getContainingJetFile().getPackageFqName()
val packageDescriptor = resolveSession.getModuleDescriptorForElement(topLevelDeclaration).getPackage(packageFqName)
val packageDescriptor = descriptor.module.getPackage(packageFqName)
if (packageDescriptor == null) {
reportError(topLevelDeclaration, descriptor)
return null
@@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.resolve.java.PackageClassUtils
import com.intellij.openapi.project.Project
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
import org.jetbrains.jet.lang.resolve.DescriptorUtils
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
import org.jetbrains.jet.lang.resolve.resolveTopLevelClass
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor
@@ -34,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM
import org.jetbrains.jet.lang.resolve.BindingTraceContext
import org.jetbrains.jet.lang.resolve.name.ClassId
import org.jetbrains.jet.lang.resolve.MemberComparator
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
public class DecompiledTextConsistencyTest : JetLightCodeInsightFixtureTestCase() {
@@ -76,7 +76,7 @@ class ProjectBasedResolverForDecompiler(project: Project) : ResolverForDecompile
override fun resolveDeclarationsInPackage(packageFqName: FqName): Collection<DeclarationDescriptor> {
val packageView = module.getPackage(packageFqName) ?: return listOf()
return packageView.getMemberScope().getAllDescriptors() filter {
it is CallableMemberDescriptor && DescriptorUtils.getContainingModule(it) != KotlinBuiltIns.getInstance().getBuiltInsModule()
it is CallableMemberDescriptor && it.module != KotlinBuiltIns.getInstance().getBuiltInsModule()
} sortBy MemberComparator.INSTANCE
}
}