Simplify class object naming madness
- get rid of DescriptorNamer, always use descriptor.getName() instead - delete AbstractClassResolver.getClassObjectName(), always use "<class-object-for-...>", except for the case of built-ins serialization (class object names should be replaced by "object" when writing files with serialized data for built-ins) - delete NestedClassResolver.resolveClassObject(), always use the other method of this class instead
This commit is contained in:
+3
-34
@@ -37,7 +37,6 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.LazyResolveTestUtil;
|
||||
@@ -61,22 +60,6 @@ import static org.jetbrains.jet.descriptors.serialization.descriptors.Annotation
|
||||
public abstract class AbstractDescriptorSerializationTest extends KotlinTestWithEnvironment {
|
||||
|
||||
public static final Name TEST_PACKAGE_NAME = Name.identifier("test");
|
||||
public static final DescriptorNamer JAVA_NAMER = new DescriptorNamer() {
|
||||
@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() {
|
||||
@@ -221,19 +204,11 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
builder.append(".");
|
||||
}
|
||||
|
||||
builder.append(getNaiveName(descriptor));
|
||||
builder.append(descriptor.getName().asString());
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
private static String getNaiveName(DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
|
||||
if (classDescriptor.getKind() == ClassKind.CLASS_OBJECT) return JvmAbi.CLASS_OBJECT_CLASS_NAME;
|
||||
}
|
||||
return descriptor.getName().asString();
|
||||
}
|
||||
|
||||
private static NamespaceDescriptorImpl createTestNamespace() {
|
||||
ModuleDescriptorImpl module = new ModuleDescriptorImpl(Name.special("<name>"), JavaBridgeConfiguration.ALL_JAVA_IMPORTS,
|
||||
JavaToKotlinClassMap.getInstance());
|
||||
@@ -253,7 +228,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
|
||||
serializeClasses(classes, serializedClasses);
|
||||
|
||||
DescriptorSerializer descriptorSerializer = new DescriptorSerializer(JAVA_NAMER);
|
||||
DescriptorSerializer descriptorSerializer = new DescriptorSerializer();
|
||||
List<MessageLite> messages = Lists.newArrayList();
|
||||
for (CallableMemberDescriptor callable : callables) {
|
||||
messages.add(descriptorSerializer.callableProto(callable).build());
|
||||
@@ -268,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(JAVA_NAMER);
|
||||
DescriptorSerializer descriptorSerializer = new DescriptorSerializer();
|
||||
|
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
ProtoBuf.Class classProto = descriptorSerializer.classProto(classDescriptor).build();
|
||||
@@ -355,12 +330,6 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
public ClassDescriptor resolveNestedClass(@NotNull ClassDescriptor outerClass, @NotNull Name name) {
|
||||
return findClass(classId.createNestedClassId(name));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ClassDescriptor resolveClassObject(@NotNull ClassDescriptor outerClass) {
|
||||
return findClass(classId.createNestedClassId(Name.identifier(JvmAbi.CLASS_OBJECT_CLASS_NAME)));
|
||||
}
|
||||
};
|
||||
|
||||
NameResolver nameResolver = new NameResolver(classMetadata.simpleNames, classMetadata.qualifiedNames);
|
||||
|
||||
+2
-10
@@ -32,9 +32,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
import org.jetbrains.jet.lang.types.lang.BuiltInsSerializationUtil;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
|
||||
@@ -71,7 +69,7 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
}
|
||||
|
||||
private static NamespaceDescriptorImpl getDeserializedDescriptorsAsNamespace(Collection<DeclarationDescriptor> allDescriptors) {
|
||||
DescriptorSerializer serializer = new DescriptorSerializer(BuiltInsSerializationUtil.BUILTINS_NAMER);
|
||||
DescriptorSerializer serializer = new DescriptorSerializer();
|
||||
|
||||
final Map<ClassId, ProtoBuf.Class> classProtos = serializeClasses(serializer, allDescriptors);
|
||||
|
||||
@@ -97,12 +95,6 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
return BuiltinsDeserializationTest.getClassId(classDescriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected Name getClassObjectName(@NotNull ClassDescriptor outerClass) {
|
||||
return BuiltInsSerializationUtil.CLASS_OBJECT_NAME;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
protected ClassData getClassData(@NotNull ClassId classId) {
|
||||
@@ -196,6 +188,6 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
}
|
||||
|
||||
private static ClassId getClassId(ClassDescriptor classDescriptor) {
|
||||
return ClassSerializationUtil.getClassId(classDescriptor, BuiltInsSerializationUtil.BUILTINS_NAMER);
|
||||
return ClassSerializationUtil.getClassId(classDescriptor);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-8
@@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -91,13 +90,7 @@ public class WriteSerializedInfoTest extends CodegenTestCase {
|
||||
@NotNull
|
||||
@Override
|
||||
protected ClassId getClassId(@NotNull ClassDescriptor classDescriptor) {
|
||||
return ClassSerializationUtil.getClassId(classDescriptor, DescriptorNamer.DEFAULT);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected Name getClassObjectName(@NotNull ClassDescriptor outerClass) {
|
||||
return Name.special("<class object>");
|
||||
return ClassSerializationUtil.getClassId(classDescriptor);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user