Namer added to abstract over naming conventions on different platforms

This commit is contained in:
Andrey Breslav
2013-05-22 16:45:29 +04:00
committed by Alexander Udalov
parent 347e2c27aa
commit b90522b223
3 changed files with 36 additions and 10 deletions
@@ -57,6 +57,22 @@ import java.util.*;
public abstract class AbstractDescriptorSerializationTest extends KotlinTestWithEnvironment {
public static final Name TEST_PACKAGE_NAME = Name.identifier("test");
public static final NameTable.Namer JAVA_NAMER = new NameTable.Namer() {
@NotNull
@Override
public Name getClassName(@NotNull ClassDescriptor classDescriptor) {
if (classDescriptor.getKind() == ClassKind.CLASS_OBJECT) {
return Name.identifier(JvmAbi.CLASS_OBJECT_CLASS_NAME);
}
return classDescriptor.getName();
}
@NotNull
@Override
public Name getPackageName(@NotNull NamespaceDescriptor namespaceDescriptor) {
return namespaceDescriptor.getName();
}
};
@Override
protected JetCoreEnvironment createEnvironment() {
@@ -212,7 +228,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
serializeClasses(classes, serializedClasses);
DescriptorSerializer descriptorSerializer = new DescriptorSerializer();
DescriptorSerializer descriptorSerializer = new DescriptorSerializer(JAVA_NAMER);
List<MessageLite> messages = Lists.newArrayList();
for (CallableMemberDescriptor callable : callables) {
messages.add(descriptorSerializer.callableProto(callable).build());
@@ -227,7 +243,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
private static void serializeClasses(Collection<ClassDescriptor> classes, Map<ClassDescriptor, byte[]> serializedClasses) throws IOException {
for (ClassDescriptor classDescriptor : classes) {
DescriptorSerializer descriptorSerializer = new DescriptorSerializer();
DescriptorSerializer descriptorSerializer = new DescriptorSerializer(JAVA_NAMER);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
ProtoBuf.Class classProto = descriptorSerializer.classProto(classDescriptor).build();