Object descriptors added

This commit is contained in:
Andrey Breslav
2013-05-21 18:22:47 +04:00
committed by Alexander Udalov
parent c397a84040
commit 7f2f3a60a7
2 changed files with 17 additions and 8 deletions
@@ -92,12 +92,12 @@ public class DescriptorSerializer {
for (DeclarationDescriptor descriptor : nestedClasses) {
ClassDescriptor nestedClass = (ClassDescriptor) descriptor;
int nameIndex = nameTable.getSimpleNameIndex(nestedClass.getName());
if (nestedClass.getKind().isObject()) {
builder.addNestedObjectNames(nameIndex);
}
else {
builder.addNestedClassNames(nameIndex);
}
builder.addNestedClassNames(nameIndex);
}
for (ClassDescriptor descriptor : classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors()) {
int nameIndex = nameTable.getSimpleNameIndex(descriptor.getName());
builder.addNestedObjectNames(nameIndex);
}
if (classDescriptor.getClassObjectDescriptor() != null) {
@@ -74,7 +74,9 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
JavaDescriptorResolver javaDescriptorResolver = new InjectorForJavaDescriptorResolver(
getProject(), new BindingTraceContext(), moduleDescriptor).getJavaDescriptorResolver();
Collection<DeclarationDescriptor> initial = testNamespace.getMemberScope().getAllDescriptors();
Collection<DeclarationDescriptor> initial = new ArrayList<DeclarationDescriptor>();
initial.addAll(testNamespace.getMemberScope().getAllDescriptors());
initial.addAll(testNamespace.getMemberScope().getObjectDescriptors());
NamespaceDescriptor deserialized = serializeAndDeserialize(javaDescriptorResolver, initial);
@@ -146,7 +148,12 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
FqName.topLevel(classDescriptor.getName()));
ClassDescriptor descriptor = classResolver.findClass(classId);
assert descriptor != null : "Class not loaded: " + classId;
namespace.getMemberScope().addClassifierDescriptor(descriptor);
if (descriptor.getKind().isObject()) {
namespace.getMemberScope().addObjectDescriptor(descriptor);
}
else {
namespace.getMemberScope().addClassifierDescriptor(descriptor);
}
}
ByteArrayInputStream in = new ByteArrayInputStream(serializedCallables.toByteArray());
@@ -231,6 +238,8 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
//noinspection unchecked
serializeClasses((Collection) classDescriptor.getUnsubstitutedInnerClassesScope().getAllDescriptors(), serializedClasses);
//noinspection unchecked
serializeClasses((Collection) classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors(), serializedClasses);
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
if (classObjectDescriptor != null) {