Convert PackageViewDescriptor to Kotlin

This commit is contained in:
Pavel V. Talanov
2015-06-22 14:50:20 +03:00
parent 19cca8f930
commit 1cf38e4799
27 changed files with 55 additions and 71 deletions
@@ -115,7 +115,7 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
val serializer = DescriptorSerializer.createTopLevel(BuiltInsSerializerExtension) val serializer = DescriptorSerializer.createTopLevel(BuiltInsSerializerExtension)
val classifierDescriptors = DescriptorSerializer.sort(packageView.getMemberScope().getDescriptors(DescriptorKindFilter.CLASSIFIERS)) val classifierDescriptors = DescriptorSerializer.sort(packageView.memberScope.getDescriptors(DescriptorKindFilter.CLASSIFIERS))
serializeClasses(classifierDescriptors, serializer) { serializeClasses(classifierDescriptors, serializer) {
classDescriptor, classProto -> classDescriptor, classProto ->
@@ -125,7 +125,7 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
} }
val packageStream = ByteArrayOutputStream() val packageStream = ByteArrayOutputStream()
val fragments = packageView.getFragments() val fragments = packageView.fragments
val packageProto = serializer.packageProto(fragments).build() ?: error("Package fragments not serialized: $fragments") val packageProto = serializer.packageProto(fragments).build() ?: error("Package fragments not serialized: $fragments")
packageProto.writeTo(packageStream) packageProto.writeTo(packageStream)
write(destDir, BuiltInsSerializedResourcePaths.getPackageFilePath(fqName), packageStream, write(destDir, BuiltInsSerializedResourcePaths.getPackageFilePath(fqName), packageStream,
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter
import org.jetbrains.kotlin.resolve.scopes.JetScope import org.jetbrains.kotlin.resolve.scopes.JetScope
class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : AbstractScopeAdapter() { class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : AbstractScopeAdapter() {
override val workerScope: JetScope = packageDescriptor.getMemberScope() override val workerScope: JetScope = packageDescriptor.memberScope
override fun getPackage(name: Name): PackageViewDescriptor? = null override fun getPackage(name: Name): PackageViewDescriptor? = null
@@ -87,7 +87,7 @@ class QualifierReceiver (
fun getNestedClassesAndPackageMembersScope(): JetScope { fun getNestedClassesAndPackageMembersScope(): JetScope {
val scopes = ArrayList<JetScope>(4) val scopes = ArrayList<JetScope>(4)
scopes.addIfNotNull(packageView?.getMemberScope()) scopes.addIfNotNull(packageView?.memberScope)
if (classifier is ClassDescriptor) { if (classifier is ClassDescriptor) {
scopes.add(classifier.getStaticScope()) scopes.add(classifier.getStaticScope())
@@ -113,7 +113,7 @@ public class MultiModuleJavaAnalysisCustomTest : UsefulTestCase() {
private fun checkClassInPackage(moduleDescriptor: ModuleDescriptor, packageName: String, className: String) { private fun checkClassInPackage(moduleDescriptor: ModuleDescriptor, packageName: String, className: String) {
val kotlinPackage = moduleDescriptor.getPackage(FqName(packageName))!! val kotlinPackage = moduleDescriptor.getPackage(FqName(packageName))!!
val kotlinClassName = Name.identifier(className) val kotlinClassName = Name.identifier(className)
val kotlinClass = kotlinPackage.getMemberScope().getClassifier(kotlinClassName) as ClassDescriptor val kotlinClass = kotlinPackage.memberScope.getClassifier(kotlinClassName) as ClassDescriptor
checkClass(kotlinClass) checkClass(kotlinClass)
} }
@@ -145,7 +145,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
if (header?.kind == KotlinClassHeader.Kind.PACKAGE_FACADE) { if (header?.kind == KotlinClassHeader.Kind.PACKAGE_FACADE) {
val packageView = module.getPackage(LoadDescriptorUtil.TEST_PACKAGE_FQNAME).sure { "Couldn't resolve package ${LoadDescriptorUtil.TEST_PACKAGE_FQNAME}" } val packageView = module.getPackage(LoadDescriptorUtil.TEST_PACKAGE_FQNAME).sure { "Couldn't resolve package ${LoadDescriptorUtil.TEST_PACKAGE_FQNAME}" }
packageScopes.add(packageView.getMemberScope()) packageScopes.add(packageView.memberScope)
} }
else if (header == null || else if (header == null ||
(header.kind == KotlinClassHeader.Kind.CLASS && header.classKind == JvmAnnotationNames.KotlinClass.Kind.CLASS)) { (header.kind == KotlinClassHeader.Kind.CLASS && header.classKind == JvmAnnotationNames.KotlinClass.Kind.CLASS)) {
@@ -179,7 +179,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
) )
} }
private class SyntheticPackageViewForTest(private val module: ModuleDescriptor, private class SyntheticPackageViewForTest(override val module: ModuleDescriptor,
packageScopes: List<JetScope>, packageScopes: List<JetScope>,
classes: List<ClassifierDescriptor>) : PackageViewDescriptor { classes: List<ClassifierDescriptor>) : PackageViewDescriptor {
private val scope: JetScope private val scope: JetScope
@@ -191,9 +191,10 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
scope = ChainedScope(this, "synthetic package view for test", writableScope, *packageScopes.toTypedArray()) scope = ChainedScope(this, "synthetic package view for test", writableScope, *packageScopes.toTypedArray())
} }
override fun getFqName() = LoadDescriptorUtil.TEST_PACKAGE_FQNAME override val fqName: FqName
override fun getMemberScope() = scope get() = LoadDescriptorUtil.TEST_PACKAGE_FQNAME
override fun getModule() = module override val memberScope: JetScope
get() = scope
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R = override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R =
visitor.visitPackageViewDescriptor(this, data) visitor.visitPackageViewDescriptor(this, data)
@@ -203,6 +204,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) = throw UnsupportedOperationException() override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) = throw UnsupportedOperationException()
override fun getAnnotations() = throw UnsupportedOperationException() override fun getAnnotations() = throw UnsupportedOperationException()
override fun getName() = throw UnsupportedOperationException() override fun getName() = throw UnsupportedOperationException()
override fun getFragments() = throw UnsupportedOperationException() override val fragments: Nothing
get() = throw UnsupportedOperationException()
} }
} }
@@ -32,7 +32,7 @@ val KOTLIN_REFLECT_FQ_NAME = FqName("kotlin.reflect")
public class ReflectionTypes(private val module: ModuleDescriptor) { public class ReflectionTypes(private val module: ModuleDescriptor) {
private val kotlinReflectScope: JetScope? by Delegates.lazy { private val kotlinReflectScope: JetScope? by Delegates.lazy {
module.getPackage(KOTLIN_REFLECT_FQ_NAME)?.getMemberScope() module.getPackage(KOTLIN_REFLECT_FQ_NAME)?.memberScope
} }
fun find(className: String): ClassDescriptor { fun find(className: String): ClassDescriptor {
@@ -73,7 +73,7 @@ public class BuiltInFictitiousFunctionClassFactory(
val kindWithArity = parseClassName(className, packageFqName) ?: return null val kindWithArity = parseClassName(className, packageFqName) ?: return null
val (kind, arity) = kindWithArity // KT-5100 val (kind, arity) = kindWithArity // KT-5100
val containingPackageFragment = module.getPackage(packageFqName)!!.getFragments().single() val containingPackageFragment = module.getPackage(packageFqName)!!.fragments.single()
return FunctionClassDescriptor(storageManager, containingPackageFragment, kind, arity) return FunctionClassDescriptor(storageManager, containingPackageFragment, kind, arity)
} }
@@ -158,7 +158,7 @@ public class FunctionClassDescriptor(
if (functionKind.hasExtensionReceiver) functionArity++ if (functionKind.hasExtensionReceiver) functionArity++
val module = containingDeclaration.getContainingDeclaration() val module = containingDeclaration.getContainingDeclaration()
val kotlinPackageFragment = module.getPackage(BUILT_INS_PACKAGE_FQ_NAME)!!.getFragments().single() val kotlinPackageFragment = module.getPackage(BUILT_INS_PACKAGE_FQ_NAME)!!.fragments.single()
// If this is a KMemberFunction{n} or KExtensionFunction{n}, it extends Function{n} with the annotation kotlin.extension, // If this is a KMemberFunction{n} or KExtensionFunction{n}, it extends Function{n} with the annotation kotlin.extension,
// so that the value of this type is callable as an extension function, with the receiver before the dot // so that the value of this type is callable as an extension function, with the receiver before the dot
@@ -14,29 +14,19 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.descriptors; package org.jetbrains.kotlin.descriptors
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.name.FqName
import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.resolve.scopes.JetScope;
import java.util.List; public interface PackageViewDescriptor : DeclarationDescriptor {
override fun getContainingDeclaration(): PackageViewDescriptor?
public interface PackageViewDescriptor extends DeclarationDescriptor { public val fqName: FqName
@Override
@Nullable
PackageViewDescriptor getContainingDeclaration();
@NotNull public val memberScope: JetScope
FqName getFqName();
@NotNull public val module: ModuleDescriptor
JetScope getMemberScope();
@NotNull public val fragments: List<PackageFragmentDescriptor>
ModuleDescriptor getModule();
@NotNull
List<PackageFragmentDescriptor> getFragments();
} }
@@ -24,11 +24,11 @@ import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.types.TypeSubstitutor
public class PackageViewDescriptorImpl( public class PackageViewDescriptorImpl(
private val module: ModuleDescriptor, override val module: ModuleDescriptor,
private val fqName: FqName, override val fqName: FqName,
private val fragments: List<PackageFragmentDescriptor> override val fragments: List<PackageFragmentDescriptor>
) : DeclarationDescriptorImpl(Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageViewDescriptor { ) : DeclarationDescriptorImpl(Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageViewDescriptor {
private val memberScope: JetScope = run { override val memberScope: JetScope = run {
assert(fragments.isNotEmpty()) { "$fqName in module" } assert(fragments.isNotEmpty()) { "$fqName in module" }
val scopes = fragments.map { it.getMemberScope() } + SubpackagesScope(this) val scopes = fragments.map { it.getMemberScope() } + SubpackagesScope(this)
@@ -41,14 +41,6 @@ public class PackageViewDescriptorImpl(
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R = visitor.visitPackageViewDescriptor(this, data) override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R = visitor.visitPackageViewDescriptor(this, data)
override fun getFqName(): FqName = fqName
override fun getMemberScope(): JetScope = memberScope
override fun getModule(): ModuleDescriptor = module
override fun getFragments() = fragments
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
if (javaClass != other?.javaClass) return false if (javaClass != other?.javaClass) return false
@@ -764,10 +764,10 @@ internal class DescriptorRendererImpl(
private fun renderPackageView(packageView: PackageViewDescriptor, builder: StringBuilder) { private fun renderPackageView(packageView: PackageViewDescriptor, builder: StringBuilder) {
builder.append(renderKeyword("package")).append(" ") builder.append(renderKeyword("package")).append(" ")
builder.append(renderFqName(packageView.getFqName())) builder.append(renderFqName(packageView.fqName))
if (debugMode) { if (debugMode) {
builder.append(" in context of ") builder.append(" in context of ")
renderName(packageView.getModule(), builder) renderName(packageView.module, builder)
} }
} }
@@ -44,7 +44,7 @@ public val DeclarationDescriptor.module: ModuleDescriptor
public fun ModuleDescriptor.resolveTopLevelClass(topLevelClassFqName: FqName): ClassDescriptor? { public fun ModuleDescriptor.resolveTopLevelClass(topLevelClassFqName: FqName): ClassDescriptor? {
assert(!topLevelClassFqName.isRoot()) assert(!topLevelClassFqName.isRoot())
return getPackage(topLevelClassFqName.parent())?.getMemberScope() return getPackage(topLevelClassFqName.parent())?.memberScope
?.getClassifier(topLevelClassFqName.shortName()) as? ClassDescriptor ?.getClassifier(topLevelClassFqName.shortName()) as? ClassDescriptor
} }
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.name.ClassId
public fun ModuleDescriptor.findClassAcrossModuleDependencies(classId: ClassId): ClassDescriptor? { public fun ModuleDescriptor.findClassAcrossModuleDependencies(classId: ClassId): ClassDescriptor? {
val packageViewDescriptor = getPackage(classId.getPackageFqName()) ?: return null val packageViewDescriptor = getPackage(classId.getPackageFqName()) ?: return null
val segments = classId.getRelativeClassName().pathSegments() val segments = classId.getRelativeClassName().pathSegments()
val topLevelClass = packageViewDescriptor.getMemberScope().getClassifier(segments.first()) as? ClassDescriptor ?: return null val topLevelClass = packageViewDescriptor.memberScope.getClassifier(segments.first()) as? ClassDescriptor ?: return null
var result = topLevelClass var result = topLevelClass
for (name in segments.subList(1, segments.size())) { for (name in segments.subList(1, segments.size())) {
result = result.getUnsubstitutedInnerClassesScope().getClassifier(name) as? ClassDescriptor ?: return null result = result.getUnsubstitutedInnerClassesScope().getClassifier(name) as? ClassDescriptor ?: return null
@@ -29,7 +29,7 @@ class KPackageImpl(override val jClass: Class<*>) : KCallableContainerImpl(), KP
moduleData.module.getPackage(fqName) ?: throw KotlinReflectionInternalError("Package not resolved: $fqName") moduleData.module.getPackage(fqName) ?: throw KotlinReflectionInternalError("Package not resolved: $fqName")
} }
override val scope: JetScope get() = descriptor.getMemberScope() override val scope: JetScope get() = descriptor.memberScope
fun topLevelVariable(name: String): KTopLevelVariable<*> = fun topLevelVariable(name: String): KTopLevelVariable<*> =
KTopLevelVariableImpl<Any?>(this, name) KTopLevelVariableImpl<Any?>(this, name)
@@ -421,17 +421,17 @@ public abstract class ElementResolver protected constructor(
val descriptors = if (element is JetDotQualifiedExpression) { val descriptors = if (element is JetDotQualifiedExpression) {
qualifiedExpressionResolver.lookupDescriptorsForQualifiedExpression( qualifiedExpressionResolver.lookupDescriptorsForQualifiedExpression(
element, rootPackage.getMemberScope(), filePackage, trace, QualifiedExpressionResolver.LookupMode.EVERYTHING, false) element, rootPackage.memberScope, filePackage, trace, QualifiedExpressionResolver.LookupMode.EVERYTHING, false)
} }
else { else {
qualifiedExpressionResolver.lookupDescriptorsForSimpleNameReference( qualifiedExpressionResolver.lookupDescriptorsForSimpleNameReference(
element as JetSimpleNameExpression, rootPackage.getMemberScope(), filePackage, trace, QualifiedExpressionResolver.LookupMode.EVERYTHING, false, false) element as JetSimpleNameExpression, rootPackage.memberScope, filePackage, trace, QualifiedExpressionResolver.LookupMode.EVERYTHING, false, false)
} }
return descriptors.firstIsInstanceOrNull<PackageViewDescriptor>()?.getMemberScope() return descriptors.firstIsInstanceOrNull<PackageViewDescriptor>()?.memberScope
} }
else { else {
return rootPackage.getMemberScope() return rootPackage.memberScope
} }
} }
@@ -439,7 +439,7 @@ public abstract class ElementResolver protected constructor(
val packageDirective = expression.getParentOfType<JetPackageDirective>(false) val packageDirective = expression.getParentOfType<JetPackageDirective>(false)
if (packageDirective != null) { if (packageDirective != null) {
val packageDescriptor = resolveSession.getModuleDescriptor().getPackage(packageDirective.getFqName(expression as JetSimpleNameExpression).parent()) val packageDescriptor = resolveSession.getModuleDescriptor().getPackage(packageDirective.getFqName(expression as JetSimpleNameExpression).parent())
return packageDescriptor?.getMemberScope() return packageDescriptor?.memberScope
} }
} }
@@ -129,7 +129,7 @@ private fun resolveParamLink(fromDescriptor: DeclarationDescriptor, qualifiedNam
private fun getPackageInnerScope(descriptor: PackageFragmentDescriptor): JetScope { private fun getPackageInnerScope(descriptor: PackageFragmentDescriptor): JetScope {
val module = descriptor.getContainingDeclaration() val module = descriptor.getContainingDeclaration()
val packageView = module.getPackage(descriptor.fqName) val packageView = module.getPackage(descriptor.fqName)
val packageScope = packageView!!.getMemberScope() val packageScope = packageView!!.memberScope
return packageScope return packageScope
} }
@@ -155,7 +155,7 @@ public fun getResolutionScope(resolutionFacade: ResolutionFacade, descriptor: De
getPackageInnerScope(descriptor) getPackageInnerScope(descriptor)
is PackageViewDescriptor -> is PackageViewDescriptor ->
descriptor.getMemberScope() descriptor.memberScope
is ClassDescriptor -> is ClassDescriptor ->
getClassInnerScope(getOuterScope(descriptor, resolutionFacade), descriptor) getClassInnerScope(getOuterScope(descriptor, resolutionFacade), descriptor)
@@ -93,7 +93,7 @@ public abstract class AbstractJetReference<T : JetElement>(element: T)
private fun resolveToPsiElements(targetDescriptor: DeclarationDescriptor): Collection<PsiElement> { private fun resolveToPsiElements(targetDescriptor: DeclarationDescriptor): Collection<PsiElement> {
if (targetDescriptor is PackageViewDescriptor) { if (targetDescriptor is PackageViewDescriptor) {
val psiFacade = JavaPsiFacade.getInstance(expression.getProject()) val psiFacade = JavaPsiFacade.getInstance(expression.getProject())
val fqName = targetDescriptor.getFqName().asString() val fqName = targetDescriptor.fqName.asString()
return psiFacade.findPackage(fqName).singletonOrEmptyList() return psiFacade.findPackage(fqName).singletonOrEmptyList()
} }
else { else {
@@ -31,7 +31,7 @@ fun renderDataFlowValue(value: DataFlowValue): String? {
is JetExpression -> id.getText() is JetExpression -> id.getText()
is ThisReceiver -> "this@${id.getDeclarationDescriptor().getName()}" is ThisReceiver -> "this@${id.getDeclarationDescriptor().getName()}"
is VariableDescriptor -> id.getName().asString() is VariableDescriptor -> id.getName().asString()
is PackageViewDescriptor -> id.getFqName().asString() is PackageViewDescriptor -> id.fqName.asString()
is com.intellij.openapi.util.Pair<*, *> -> renderId(id.first) + "." + renderId(id.second) is com.intellij.openapi.util.Pair<*, *> -> renderId(id.first) + "." + renderId(id.second)
else -> null else -> null
} }
@@ -69,8 +69,8 @@ fun findPackagePartInternalNameForLibraryFile(topLevelDeclaration: JetDeclaratio
val descFromSourceText = render(descriptor) val descFromSourceText = render(descriptor)
val descriptors: Collection<CallableDescriptor> = when (descriptor) { val descriptors: Collection<CallableDescriptor> = when (descriptor) {
is FunctionDescriptor -> packageDescriptor.getMemberScope().getFunctions(descriptor.getName()) is FunctionDescriptor -> packageDescriptor.memberScope.getFunctions(descriptor.getName())
is PropertyDescriptor -> packageDescriptor.getMemberScope().getProperties(descriptor.getName()) is PropertyDescriptor -> packageDescriptor.memberScope.getProperties(descriptor.getName())
else -> { else -> {
reportError(topLevelDeclaration, descriptor) reportError(topLevelDeclaration, descriptor)
listOf() listOf()
@@ -197,7 +197,7 @@ public class KotlinImportOptimizer() : ImportOptimizer {
?: reference.resolveToDescriptors(bindingContext) ?: reference.resolveToDescriptors(bindingContext)
for (target in targets) { for (target in targets) {
if (!target.canBeReferencedViaImport()) continue if (!target.canBeReferencedViaImport()) continue
if (target is PackageViewDescriptor && target.getFqName().parent() == FqName.ROOT) continue // no need to import top-level packages if (target is PackageViewDescriptor && target.fqName.parent() == FqName.ROOT) continue // no need to import top-level packages
if (!target.isExtension) { // for non-extension targets, count only non-qualified simple name usages if (!target.isExtension) { // for non-extension targets, count only non-qualified simple name usages
if (element !is JetNameReferenceExpression) continue if (element !is JetNameReferenceExpression) continue
@@ -167,7 +167,7 @@ object ReplaceWithAnnotationAnalyzer {
} }
is PackageViewDescriptor -> is PackageViewDescriptor ->
descriptor.getMemberScope() descriptor.memberScope
is ClassDescriptorWithResolutionScopes -> is ClassDescriptorWithResolutionScopes ->
descriptor.getScopeForMemberDeclarationResolution() descriptor.getScopeForMemberDeclarationResolution()
@@ -329,7 +329,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
private fun getDeclarationScope(): JetScope { private fun getDeclarationScope(): JetScope {
if (config.isExtension || receiverClassDescriptor == null) { if (config.isExtension || receiverClassDescriptor == null) {
return currentFileModule.getPackage(config.currentFile.getPackageFqName())!!.getMemberScope() return currentFileModule.getPackage(config.currentFile.getPackageFqName())!!.memberScope
} }
if (receiverClassDescriptor is ClassDescriptorWithResolutionScopes) { if (receiverClassDescriptor is ClassDescriptorWithResolutionScopes) {
@@ -63,8 +63,8 @@ private fun getTargetParentByQualifier(
qualifierDescriptor is ClassDescriptor -> qualifierDescriptor is ClassDescriptor ->
DescriptorToSourceUtilsIde.getAnyDeclaration(project, qualifierDescriptor) DescriptorToSourceUtilsIde.getAnyDeclaration(project, qualifierDescriptor)
qualifierDescriptor is PackageViewDescriptor -> qualifierDescriptor is PackageViewDescriptor ->
if (qualifierDescriptor.getFqName() != file.getPackageFqName()) { if (qualifierDescriptor.fqName != file.getPackageFqName()) {
JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.getFqName().asString()) JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.fqName.asString())
} }
else file : PsiElement else file : PsiElement
else -> else ->
@@ -264,7 +264,7 @@ public class ImportInsertHelperImpl(private val project: Project) : ImportInsert
private fun getMemberScope(fqName: FqName, moduleDescriptor: ModuleDescriptor): JetScope? { private fun getMemberScope(fqName: FqName, moduleDescriptor: ModuleDescriptor): JetScope? {
val packageView = moduleDescriptor.getPackage(fqName) val packageView = moduleDescriptor.getPackage(fqName)
if (packageView != null) { if (packageView != null) {
return packageView.getMemberScope() return packageView.memberScope
} }
val parentScope = getMemberScope(fqName.parent(), moduleDescriptor) ?: return null val parentScope = getMemberScope(fqName.parent(), moduleDescriptor) ?: return null
@@ -68,7 +68,7 @@ private class ResolverForDecompilerImpl(val module: ModuleDescriptor) : Resolver
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.memberScope.getAllDescriptors() filter {
it is CallableMemberDescriptor && it.module != KotlinBuiltIns.getInstance().getBuiltInsModule() it is CallableMemberDescriptor && it.module != KotlinBuiltIns.getInstance().getBuiltInsModule()
} sortBy MemberComparator.INSTANCE } sortBy MemberComparator.INSTANCE
} }
@@ -249,7 +249,7 @@ public abstract class AbstractRenameTest : KotlinMultiFileTestCase() {
val scopeToSearch = if (classIdStr != null) { val scopeToSearch = if (classIdStr != null) {
module.findClassAcrossModuleDependencies(classIdStr.toClassId())!!.getDefaultType().getMemberScope() module.findClassAcrossModuleDependencies(classIdStr.toClassId())!!.getDefaultType().getMemberScope()
} else { } else {
module.getPackage(FqName(packageFqnStr!!))!!.getMemberScope() module.getPackage(FqName(packageFqnStr!!))!!.memberScope
} }
val psiElement = DescriptorToSourceUtils.descriptorToDeclaration(findDescriptorToRename(scopeToSearch))!! val psiElement = DescriptorToSourceUtils.descriptorToDeclaration(findDescriptorToRename(scopeToSearch))!!
@@ -107,7 +107,7 @@ public object KotlinJavascriptSerializationUtil {
val serializer = DescriptorSerializer.createTopLevel(KotlinJavascriptSerializerExtension) val serializer = DescriptorSerializer.createTopLevel(KotlinJavascriptSerializerExtension)
val classifierDescriptors = DescriptorSerializer.sort(packageView.getMemberScope().getDescriptors(DescriptorKindFilter.CLASSIFIERS)) val classifierDescriptors = DescriptorSerializer.sort(packageView.memberScope.getDescriptors(DescriptorKindFilter.CLASSIFIERS))
ClassSerializationUtil.serializeClasses(classifierDescriptors, serializer, object : ClassSerializationUtil.Sink { ClassSerializationUtil.serializeClasses(classifierDescriptors, serializer, object : ClassSerializationUtil.Sink {
override fun writeClass(classDescriptor: ClassDescriptor, classProto: ProtoBuf.Class) { override fun writeClass(classDescriptor: ClassDescriptor, classProto: ProtoBuf.Class) {
@@ -118,7 +118,7 @@ public object KotlinJavascriptSerializationUtil {
}, skip) }, skip)
val packageStream = ByteArrayOutputStream() val packageStream = ByteArrayOutputStream()
val fragments = packageView.getFragments() val fragments = packageView.fragments
val packageProto = serializer.packageProto(fragments, skip).build() ?: error("Package fragments not serialized: $fragments") val packageProto = serializer.packageProto(fragments, skip).build() ?: error("Package fragments not serialized: $fragments")
if (packageProto.getMemberCount() > 0) { if (packageProto.getMemberCount() > 0) {
packageProto.writeTo(packageStream) packageProto.writeTo(packageStream)