Convert PackageViewDescriptor to Kotlin
This commit is contained in:
+2
-2
@@ -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())
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-6
@@ -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 {
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
|
|||||||
+9
-19
@@ -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();
|
|
||||||
}
|
}
|
||||||
+4
-12
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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 {
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -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()
|
||||||
|
|||||||
+1
-1
@@ -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) {
|
||||||
|
|||||||
+2
-2
@@ -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
|
||||||
|
|||||||
+1
-1
@@ -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))!!
|
||||||
|
|||||||
+2
-2
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user