Minor, change parameter order, reformat
This commit is contained in:
+3
-2
@@ -23,13 +23,14 @@ import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobal
|
||||
import kotlin.properties.Delegates
|
||||
import org.jetbrains.jet.lang.resolve.name.ClassId
|
||||
|
||||
public class ClassDeserializer(val storageManager: StorageManager, val classDataFinder: ClassDataFinder) {
|
||||
public class ClassDeserializer(storageManager: StorageManager) {
|
||||
// This should have been a constructor parameter, but this class and the context depend circularly on each other
|
||||
var globalContext: DeserializationGlobalContext by Delegates.notNull()
|
||||
|
||||
private val classes: (ClassKey) -> DeserializedClassDescriptor? = storageManager.createMemoizedFunctionWithNullableValues {
|
||||
(key: ClassKey) ->
|
||||
val classId = key.classId
|
||||
val classData = key.classData ?: classDataFinder.findClassData(classId)
|
||||
val classData = key.classData ?: globalContext.classDataFinder.findClassData(classId)
|
||||
if (classData != null) {
|
||||
val outerClassContext =
|
||||
if (classId.isTopLevelClass()) null
|
||||
|
||||
+11
-10
@@ -40,7 +40,7 @@ public open class DeserializationGlobalContext(
|
||||
public val constantLoader: ConstantLoader,
|
||||
public val packageFragmentProvider: PackageFragmentProvider,
|
||||
public val flexibleTypeCapabilitiesDeserializer: FlexibleTypeCapabilitiesDeserializer,
|
||||
public val classDeserializer: ClassDeserializer = ClassDeserializer(storageManager, classDataFinder)
|
||||
public val classDeserializer: ClassDeserializer = ClassDeserializer(storageManager)
|
||||
) {
|
||||
{
|
||||
classDeserializer.globalContext = this
|
||||
@@ -48,10 +48,15 @@ public open class DeserializationGlobalContext(
|
||||
|
||||
public fun withNameResolver(nameResolver: NameResolver): DeserializationContext {
|
||||
return DeserializationContext(storageManager, moduleDescriptor, classDataFinder, annotationLoader,
|
||||
constantLoader, packageFragmentProvider, flexibleTypeCapabilitiesDeserializer, classDeserializer, nameResolver)
|
||||
constantLoader, packageFragmentProvider, flexibleTypeCapabilitiesDeserializer,
|
||||
classDeserializer, nameResolver)
|
||||
}
|
||||
}
|
||||
|
||||
fun DeserializationGlobalContext.deserializeClass(classId: ClassId): ClassDescriptor? {
|
||||
return classDeserializer.deserializeClass(classId)
|
||||
}
|
||||
|
||||
|
||||
public open class DeserializationContext(
|
||||
storageManager: StorageManager,
|
||||
@@ -72,8 +77,8 @@ public open class DeserializationContext(
|
||||
|
||||
fun withTypes(containingDeclaration: DeclarationDescriptor, typeDeserializer: TypeDeserializer): DeserializationContextWithTypes {
|
||||
return DeserializationContextWithTypes(storageManager, moduleDescriptor, classDataFinder, annotationLoader,
|
||||
constantLoader, packageFragmentProvider, classDeserializer,
|
||||
nameResolver, flexibleTypeCapabilitiesDeserializer, containingDeclaration, typeDeserializer)
|
||||
constantLoader, packageFragmentProvider, flexibleTypeCapabilitiesDeserializer,
|
||||
classDeserializer, nameResolver, containingDeclaration, typeDeserializer)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -86,16 +91,16 @@ class DeserializationContextWithTypes(
|
||||
annotationLoader: AnnotationLoader,
|
||||
constantLoader: ConstantLoader,
|
||||
packageFragmentProvider: PackageFragmentProvider,
|
||||
flexibleTypeCapabilitiesDeserializer: FlexibleTypeCapabilitiesDeserializer,
|
||||
classDeserializer: ClassDeserializer,
|
||||
nameResolver: NameResolver,
|
||||
flexibleTypeCapabilitiesDeserializer: FlexibleTypeCapabilitiesDeserializer,
|
||||
val containingDeclaration: DeclarationDescriptor,
|
||||
val typeDeserializer: TypeDeserializer
|
||||
) : DeserializationContext(storageManager, moduleDescriptor, classDataFinder, annotationLoader,
|
||||
constantLoader, packageFragmentProvider, flexibleTypeCapabilitiesDeserializer, classDeserializer, nameResolver) {
|
||||
val deserializer: MemberDeserializer = MemberDeserializer(this)
|
||||
|
||||
public fun childContext(descriptor: DeclarationDescriptor, typeParameterProtos: List<TypeParameter>): DeserializationContextWithTypes {
|
||||
fun childContext(descriptor: DeclarationDescriptor, typeParameterProtos: List<TypeParameter>): DeserializationContextWithTypes {
|
||||
val childTypeDeserializer = TypeDeserializer(this, typeDeserializer, "Child deserializer for ${descriptor.getName()}")
|
||||
val childContext = withTypes(descriptor, childTypeDeserializer)
|
||||
|
||||
@@ -106,7 +111,3 @@ class DeserializationContextWithTypes(
|
||||
return childContext
|
||||
}
|
||||
}
|
||||
|
||||
fun DeserializationGlobalContext.deserializeClass(classId: ClassId): ClassDescriptor? {
|
||||
return classDeserializer.deserializeClass(classId)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user