Refactor: Introduce DeclarationDescriptor#module utility
This commit is contained in:
@@ -28,7 +28,7 @@ import org.jetbrains.jet.lang.types.ErrorUtils
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
||||
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
|
||||
|
||||
public fun JetExpression.computeTypeInfoInContext(
|
||||
scope: JetScope,
|
||||
@@ -68,4 +68,4 @@ public fun JetType?.safeType(expression: JetExpression): JetType {
|
||||
return ErrorUtils.createErrorType("Type for " + expression.getText())
|
||||
}
|
||||
|
||||
private fun JetScope.getModule(): ModuleDescriptor = DescriptorUtils.getContainingModule(this.getContainingDeclaration())
|
||||
private fun JetScope.getModule(): ModuleDescriptor = this.getContainingDeclaration().module
|
||||
|
||||
@@ -28,7 +28,6 @@ import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import org.jetbrains.jet.lang.descriptors.*
|
||||
import org.junit.Assert
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
||||
import org.jetbrains.jet.config.CompilerConfiguration
|
||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
||||
@@ -41,6 +40,7 @@ import org.jetbrains.jet.analyzer.ModuleInfo
|
||||
import java.util.HashMap
|
||||
import org.jetbrains.jet.analyzer.ModuleContent
|
||||
import org.jetbrains.jet.lang.types.ErrorUtils
|
||||
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
|
||||
|
||||
public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
||||
|
||||
@@ -157,7 +157,7 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
||||
|
||||
val descriptorName = referencedDescriptor.getName().asString()
|
||||
val expectedModuleName = "<${descriptorName.toLowerCase().first().toString()}>"
|
||||
val moduleName = DescriptorUtils.getContainingModule(referencedDescriptor).getName().asString()
|
||||
val moduleName = referencedDescriptor.module.getName().asString()
|
||||
Assert.assertEquals(
|
||||
"Java class $descriptorName in $context should be in module $expectedModuleName, but instead was in $moduleName",
|
||||
expectedModuleName, moduleName
|
||||
|
||||
@@ -31,4 +31,7 @@ public fun DeclarationDescriptor.getImportableDescriptor(): DeclarationDescripto
|
||||
if (this is ConstructorDescriptor || DescriptorUtils.isClassObject(this)) getContainingDeclaration()!! else this
|
||||
|
||||
public val DeclarationDescriptor.isExtension: Boolean
|
||||
get() = this is CallableDescriptor && getExtensionReceiverParameter() != null
|
||||
get() = this is CallableDescriptor && getExtensionReceiverParameter() != null
|
||||
|
||||
public val DeclarationDescriptor.module: ModuleDescriptor
|
||||
get() = DescriptorUtils.getContainingModule(this)
|
||||
+4
-4
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user