Object descriptors added
This commit is contained in:
committed by
Alexander Udalov
parent
c397a84040
commit
7f2f3a60a7
+6
-6
@@ -92,12 +92,12 @@ public class DescriptorSerializer {
|
|||||||
for (DeclarationDescriptor descriptor : nestedClasses) {
|
for (DeclarationDescriptor descriptor : nestedClasses) {
|
||||||
ClassDescriptor nestedClass = (ClassDescriptor) descriptor;
|
ClassDescriptor nestedClass = (ClassDescriptor) descriptor;
|
||||||
int nameIndex = nameTable.getSimpleNameIndex(nestedClass.getName());
|
int nameIndex = nameTable.getSimpleNameIndex(nestedClass.getName());
|
||||||
if (nestedClass.getKind().isObject()) {
|
builder.addNestedClassNames(nameIndex);
|
||||||
builder.addNestedObjectNames(nameIndex);
|
}
|
||||||
}
|
|
||||||
else {
|
for (ClassDescriptor descriptor : classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors()) {
|
||||||
builder.addNestedClassNames(nameIndex);
|
int nameIndex = nameTable.getSimpleNameIndex(descriptor.getName());
|
||||||
}
|
builder.addNestedObjectNames(nameIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (classDescriptor.getClassObjectDescriptor() != null) {
|
if (classDescriptor.getClassObjectDescriptor() != null) {
|
||||||
|
|||||||
+11
-2
@@ -74,7 +74,9 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
|||||||
JavaDescriptorResolver javaDescriptorResolver = new InjectorForJavaDescriptorResolver(
|
JavaDescriptorResolver javaDescriptorResolver = new InjectorForJavaDescriptorResolver(
|
||||||
getProject(), new BindingTraceContext(), moduleDescriptor).getJavaDescriptorResolver();
|
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);
|
NamespaceDescriptor deserialized = serializeAndDeserialize(javaDescriptorResolver, initial);
|
||||||
|
|
||||||
@@ -146,7 +148,12 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
|||||||
FqName.topLevel(classDescriptor.getName()));
|
FqName.topLevel(classDescriptor.getName()));
|
||||||
ClassDescriptor descriptor = classResolver.findClass(classId);
|
ClassDescriptor descriptor = classResolver.findClass(classId);
|
||||||
assert descriptor != null : "Class not loaded: " + 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());
|
ByteArrayInputStream in = new ByteArrayInputStream(serializedCallables.toByteArray());
|
||||||
@@ -231,6 +238,8 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
|||||||
|
|
||||||
//noinspection unchecked
|
//noinspection unchecked
|
||||||
serializeClasses((Collection) classDescriptor.getUnsubstitutedInnerClassesScope().getAllDescriptors(), serializedClasses);
|
serializeClasses((Collection) classDescriptor.getUnsubstitutedInnerClassesScope().getAllDescriptors(), serializedClasses);
|
||||||
|
//noinspection unchecked
|
||||||
|
serializeClasses((Collection) classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors(), serializedClasses);
|
||||||
|
|
||||||
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
|
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
|
||||||
if (classObjectDescriptor != null) {
|
if (classObjectDescriptor != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user