From 41f2048f9671551f2bbbf1834603adc64e07d6eb Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 6 Dec 2016 18:53:21 +0300 Subject: [PATCH] Minor, introduce DeserializedContainerSource --- .../kotlin/load/kotlin/JvmPackagePartSource.kt | 4 ++-- .../kotlin/serialization/deserialization/context.kt | 5 +++-- .../descriptors/DeserializedMemberDescriptor.kt | 13 ++++++++----- .../descriptors/DeserializedPackageMemberScope.kt | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt index ebde0f5fb22..3544225630f 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt @@ -16,13 +16,13 @@ package org.jetbrains.kotlin.load.kotlin -import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.descriptors.SourceFile import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.jvm.JvmClassName +import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource -class JvmPackagePartSource(val className: JvmClassName, val facadeClassName: JvmClassName?) : SourceElement { +class JvmPackagePartSource(val className: JvmClassName, val facadeClassName: JvmClassName?) : DeserializedContainerSource { constructor(kotlinClass: KotlinJvmBinaryClass) : this( JvmClassName.byClassId(kotlinClass.classId), kotlinClass.classHeader.multifileClassName?.let { diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/context.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/context.kt index cb3baf8e999..bef39433345 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/context.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/context.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.serialization.ProtoBuf +import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.storage.StorageManager class DeserializationComponents( @@ -49,7 +50,7 @@ class DeserializationComponents( descriptor: PackageFragmentDescriptor, nameResolver: NameResolver, typeTable: TypeTable, - containerSource: SourceElement? + containerSource: DeserializedContainerSource? ): DeserializationContext = DeserializationContext(this, nameResolver, descriptor, typeTable, containerSource, parentTypeDeserializer = null, typeParameters = listOf()) @@ -61,7 +62,7 @@ class DeserializationContext( val nameResolver: NameResolver, val containingDeclaration: DeclarationDescriptor, val typeTable: TypeTable, - val containerSource: SourceElement?, + val containerSource: DeserializedContainerSource?, parentTypeDeserializer: TypeDeserializer?, typeParameters: List ) { diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberDescriptor.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberDescriptor.kt index e03b798e50a..292281bcbf6 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberDescriptor.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberDescriptor.kt @@ -37,7 +37,10 @@ interface DeserializedMemberDescriptor : MemberDescriptor { val typeTable: TypeTable // Information about the origin of this callable's container (class or package part on JVM) or null if there's no such information. - val containerSource: SourceElement? + val containerSource: DeserializedContainerSource? +} + +interface DeserializedContainerSource : SourceElement { } interface DeserializedCallableMemberDescriptor : DeserializedMemberDescriptor, CallableMemberDescriptor @@ -51,7 +54,7 @@ class DeserializedSimpleFunctionDescriptor( override val proto: ProtoBuf.Function, override val nameResolver: NameResolver, override val typeTable: TypeTable, - override val containerSource: SourceElement?, + override val containerSource: DeserializedContainerSource?, source: SourceElement? = null ) : DeserializedCallableMemberDescriptor, SimpleFunctionDescriptorImpl( @@ -87,7 +90,7 @@ class DeserializedPropertyDescriptor( override val proto: ProtoBuf.Property, override val nameResolver: NameResolver, override val typeTable: TypeTable, - override val containerSource: SourceElement? + override val containerSource: DeserializedContainerSource? ) : DeserializedCallableMemberDescriptor, PropertyDescriptorImpl(containingDeclaration, original, annotations, modality, visibility, isVar, name, kind, SourceElement.NO_SOURCE, isLateInit, isConst, false, false) { @@ -115,7 +118,7 @@ class DeserializedClassConstructorDescriptor( override val proto: ProtoBuf.Constructor, override val nameResolver: NameResolver, override val typeTable: TypeTable, - override val containerSource: SourceElement?, + override val containerSource: DeserializedContainerSource?, source: SourceElement? = null ) : DeserializedCallableMemberDescriptor, ClassConstructorDescriptorImpl(containingDeclaration, original, annotations, isPrimary, kind, source ?: SourceElement.NO_SOURCE) { @@ -151,7 +154,7 @@ class DeserializedTypeAliasDescriptor( override val proto: ProtoBuf.TypeAlias, override val nameResolver: NameResolver, override val typeTable: TypeTable, - override val containerSource: SourceElement? + override val containerSource: DeserializedContainerSource? ) : AbstractTypeAliasDescriptor(containingDeclaration, annotations, name, SourceElement.NO_SOURCE, visibility), DeserializedMemberDescriptor { diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedPackageMemberScope.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedPackageMemberScope.kt index 435b74631d7..1c0ccf0f601 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedPackageMemberScope.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedPackageMemberScope.kt @@ -32,7 +32,7 @@ open class DeserializedPackageMemberScope( packageDescriptor: PackageFragmentDescriptor, proto: ProtoBuf.Package, nameResolver: NameResolver, - containerSource: SourceElement?, + containerSource: DeserializedContainerSource?, components: DeserializationComponents, classNames: () -> Collection ) : DeserializedMemberScope(