Minor, change parameter order, reformat

This commit is contained in:
Alexander Udalov
2014-11-25 18:41:10 +03:00
parent eadf9a13b9
commit fc0f83cbdb
4 changed files with 22 additions and 27 deletions
@@ -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
@@ -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)
}