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.BindingContext
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext
|
import org.jetbrains.jet.lang.resolve.BindingTraceContext
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace
|
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(
|
public fun JetExpression.computeTypeInfoInContext(
|
||||||
scope: JetScope,
|
scope: JetScope,
|
||||||
@@ -68,4 +68,4 @@ public fun JetType?.safeType(expression: JetExpression): JetType {
|
|||||||
return ErrorUtils.createErrorType("Type for " + expression.getText())
|
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.resolve.name.FqName
|
||||||
import org.jetbrains.jet.lang.descriptors.*
|
import org.jetbrains.jet.lang.descriptors.*
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
|
||||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration
|
import org.jetbrains.jet.config.CompilerConfiguration
|
||||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys
|
||||||
@@ -41,6 +40,7 @@ import org.jetbrains.jet.analyzer.ModuleInfo
|
|||||||
import java.util.HashMap
|
import java.util.HashMap
|
||||||
import org.jetbrains.jet.analyzer.ModuleContent
|
import org.jetbrains.jet.analyzer.ModuleContent
|
||||||
import org.jetbrains.jet.lang.types.ErrorUtils
|
import org.jetbrains.jet.lang.types.ErrorUtils
|
||||||
|
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
|
||||||
|
|
||||||
public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
|
|||||||
|
|
||||||
val descriptorName = referencedDescriptor.getName().asString()
|
val descriptorName = referencedDescriptor.getName().asString()
|
||||||
val expectedModuleName = "<${descriptorName.toLowerCase().first().toString()}>"
|
val expectedModuleName = "<${descriptorName.toLowerCase().first().toString()}>"
|
||||||
val moduleName = DescriptorUtils.getContainingModule(referencedDescriptor).getName().asString()
|
val moduleName = referencedDescriptor.module.getName().asString()
|
||||||
Assert.assertEquals(
|
Assert.assertEquals(
|
||||||
"Java class $descriptorName in $context should be in module $expectedModuleName, but instead was in $moduleName",
|
"Java class $descriptorName in $context should be in module $expectedModuleName, but instead was in $moduleName",
|
||||||
expectedModuleName, moduleName
|
expectedModuleName, moduleName
|
||||||
|
|||||||
@@ -31,4 +31,7 @@ public fun DeclarationDescriptor.getImportableDescriptor(): DeclarationDescripto
|
|||||||
if (this is ConstructorDescriptor || DescriptorUtils.isClassObject(this)) getContainingDeclaration()!! else this
|
if (this is ConstructorDescriptor || DescriptorUtils.isClassObject(this)) getContainingDeclaration()!! else this
|
||||||
|
|
||||||
public val DeclarationDescriptor.isExtension: Boolean
|
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.lang.psi.JetElement
|
||||||
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer
|
import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import com.intellij.openapi.roots.libraries.LibraryUtil
|
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 com.intellij.openapi.roots.JdkOrderEntry
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName
|
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")
|
private val LOG = Logger.getInstance("org.jetbrains.jet.plugin.debugger")
|
||||||
|
|
||||||
@@ -58,13 +59,12 @@ fun findPackagePartInternalNameForLibraryFile(elementAt: JetElement): String? {
|
|||||||
val packagePartFile = findPackagePartFileNamesForElement(topLevelDeclaration).singleOrNull()
|
val packagePartFile = findPackagePartFileNamesForElement(topLevelDeclaration).singleOrNull()
|
||||||
if (packagePartFile != null) return packagePartFile
|
if (packagePartFile != null) return packagePartFile
|
||||||
|
|
||||||
val resolveSession = topLevelDeclaration.getLazyResolveSession()
|
|
||||||
|
|
||||||
val descriptor = resolveSession.resolveToDescriptor(topLevelDeclaration)
|
val descriptor = topLevelDeclaration.resolveToDescriptor()
|
||||||
if (descriptor !is CallableDescriptor) return null
|
if (descriptor !is CallableDescriptor) return null
|
||||||
|
|
||||||
val packageFqName = topLevelDeclaration.getContainingJetFile().getPackageFqName()
|
val packageFqName = topLevelDeclaration.getContainingJetFile().getPackageFqName()
|
||||||
val packageDescriptor = resolveSession.getModuleDescriptorForElement(topLevelDeclaration).getPackage(packageFqName)
|
val packageDescriptor = descriptor.module.getPackage(packageFqName)
|
||||||
if (packageDescriptor == null) {
|
if (packageDescriptor == null) {
|
||||||
reportError(topLevelDeclaration, descriptor)
|
reportError(topLevelDeclaration, descriptor)
|
||||||
return null
|
return null
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.resolve.java.PackageClassUtils
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
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.types.lang.KotlinBuiltIns
|
||||||
import org.jetbrains.jet.lang.resolve.resolveTopLevelClass
|
import org.jetbrains.jet.lang.resolve.resolveTopLevelClass
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor
|
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.BindingTraceContext
|
||||||
import org.jetbrains.jet.lang.resolve.name.ClassId
|
import org.jetbrains.jet.lang.resolve.name.ClassId
|
||||||
import org.jetbrains.jet.lang.resolve.MemberComparator
|
import org.jetbrains.jet.lang.resolve.MemberComparator
|
||||||
|
import org.jetbrains.jet.lang.resolve.descriptorUtil.module
|
||||||
|
|
||||||
public class DecompiledTextConsistencyTest : JetLightCodeInsightFixtureTestCase() {
|
public class DecompiledTextConsistencyTest : JetLightCodeInsightFixtureTestCase() {
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ class ProjectBasedResolverForDecompiler(project: Project) : ResolverForDecompile
|
|||||||
override fun resolveDeclarationsInPackage(packageFqName: FqName): Collection<DeclarationDescriptor> {
|
override fun resolveDeclarationsInPackage(packageFqName: FqName): Collection<DeclarationDescriptor> {
|
||||||
val packageView = module.getPackage(packageFqName) ?: return listOf()
|
val packageView = module.getPackage(packageFqName) ?: return listOf()
|
||||||
return packageView.getMemberScope().getAllDescriptors() filter {
|
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
|
} sortBy MemberComparator.INSTANCE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user