Refactor: Extract deserialize class to context
This commit is contained in:
+4
-6
@@ -31,12 +31,6 @@ import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantLoader
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassId
|
||||
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.lang.resolve.name.SpecialNames
|
||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
|
||||
|
||||
public open class DeserializationGlobalContext(
|
||||
public val storageManager: StorageManager,
|
||||
@@ -110,3 +104,7 @@ class DeserializationContextWithTypes(
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun DeserializationGlobalContext.deserializeClass(classId: ClassId): ClassDescriptor? {
|
||||
return descriptorFinder.findClass(classId)
|
||||
}
|
||||
|
||||
+4
-3
@@ -22,6 +22,7 @@ import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.descriptors.serialization.*;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.ContextPackage;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContextWithTypes;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext;
|
||||
@@ -141,7 +142,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
|
||||
return fragments.iterator().next();
|
||||
}
|
||||
else {
|
||||
ClassDescriptor result = context.getDescriptorFinder().findClass(classId.getOuterClassId());
|
||||
ClassDescriptor result = ContextPackage.deserializeClass(context, classId.getOuterClassId());
|
||||
return result != null ? result : ErrorUtils.getErrorModule();
|
||||
}
|
||||
}
|
||||
@@ -245,7 +246,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
|
||||
return new DeserializedClassDescriptor(context, classObjectProto.getData());
|
||||
}
|
||||
|
||||
return context.getDescriptorFinder().findClass(classId.createNestedClassId(getClassObjectName(getName())));
|
||||
return ContextPackage.deserializeClass(context, classId.createNestedClassId(getClassObjectName(getName())));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -488,7 +489,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
|
||||
.create(storageManager, DeserializedClassDescriptor.this, name, enumMemberNames);
|
||||
}
|
||||
if (nestedClassNames.contains(name)) {
|
||||
return context.getDescriptorFinder().findClass(classId.createNestedClassId(name));
|
||||
return ContextPackage.deserializeClass(context, classId.createNestedClassId(name));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassId;
|
||||
import org.jetbrains.jet.descriptors.serialization.PackageData;
|
||||
import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.ContextPackage;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
@@ -58,7 +59,7 @@ public class DeserializedPackageMemberScope extends DeserializedMemberScope {
|
||||
@Nullable
|
||||
@Override
|
||||
protected ClassDescriptor getClassDescriptor(@NotNull Name name) {
|
||||
return context.getDescriptorFinder().findClass(new ClassId(packageFqName, FqNameUnsafe.topLevel(name)));
|
||||
return ContextPackage.deserializeClass(context, new ClassId(packageFqName, FqNameUnsafe.topLevel(name)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user