Rename ClassResolver -> DescriptorFinder
Avoid clash with JavaDescriptorResolver naming conventions
This commit is contained in:
committed by
Alexander Udalov
parent
c3a44e37ba
commit
c3b1716e29
+5
-5
@@ -153,9 +153,9 @@ public final class DeserializedDescriptorResolver {
|
||||
@NotNull ClassOrNamespaceDescriptor containingDeclaration
|
||||
) {
|
||||
ClassId classId = ClassId.fromFqNameAndContainingDeclaration(fqName, containingDeclaration);
|
||||
AbstractClassResolver classResolver =
|
||||
new DeserializedClassResolver(storageManager, DUMMY_ANNOTATION_DESERIALIZER, classId, classData);
|
||||
ClassDescriptor classDescriptor = classResolver.findClassInternally(classId);
|
||||
AbstractDescriptorFinder descriptorFinder =
|
||||
new DeserializedDescriptorFinder(storageManager, DUMMY_ANNOTATION_DESERIALIZER, classId, classData);
|
||||
ClassDescriptor classDescriptor = descriptorFinder.findClassInternally(classId);
|
||||
assert classDescriptor != null : "Could not correctly deserialize class " + fqName.asString();
|
||||
return classDescriptor;
|
||||
}
|
||||
@@ -230,13 +230,13 @@ public final class DeserializedDescriptorResolver {
|
||||
return FqName.fromSegments(correctedSegments);
|
||||
}
|
||||
|
||||
public class DeserializedClassResolver extends AbstractClassResolver {
|
||||
public class DeserializedDescriptorFinder extends AbstractDescriptorFinder {
|
||||
@NotNull
|
||||
private final ClassId classID;
|
||||
@NotNull
|
||||
private final ClassData classData;
|
||||
|
||||
public DeserializedClassResolver(
|
||||
public DeserializedDescriptorFinder(
|
||||
@NotNull StorageManager storageManager,
|
||||
@NotNull AnnotationDeserializer annotationDeserializer,
|
||||
@NotNull ClassId id,
|
||||
|
||||
+3
-3
@@ -29,12 +29,12 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import static org.jetbrains.jet.lang.resolve.lazy.storage.StorageManager.ReferenceKind.STRONG;
|
||||
|
||||
public abstract class AbstractClassResolver implements ClassResolver {
|
||||
public abstract class AbstractDescriptorFinder implements DescriptorFinder {
|
||||
|
||||
private final MemoizedFunctionToNullable<ClassId, ClassDescriptor> findClass;
|
||||
private final AnnotationDeserializer annotationDeserializer;
|
||||
|
||||
public AbstractClassResolver(@NotNull final StorageManager storageManager, @NotNull AnnotationDeserializer annotationDeserializer) {
|
||||
public AbstractDescriptorFinder(@NotNull final StorageManager storageManager, @NotNull AnnotationDeserializer annotationDeserializer) {
|
||||
this.annotationDeserializer = annotationDeserializer;
|
||||
|
||||
this.findClass = storageManager.createMemoizedFunctionWithNullableValues(new Function<ClassId, ClassDescriptor>() {
|
||||
@@ -51,7 +51,7 @@ public abstract class AbstractClassResolver implements ClassResolver {
|
||||
classId.isTopLevelClass() ? getPackage(classId.getPackageFqName()) : findClass(classId.getOuterClassId());
|
||||
assert owner != null : "No owner found for " + classId;
|
||||
|
||||
AbstractClassResolver _this = AbstractClassResolver.this;
|
||||
AbstractDescriptorFinder _this = AbstractDescriptorFinder.this;
|
||||
ClassDescriptor classDescriptor = new DeserializedClassDescriptor(
|
||||
classId, storageManager, owner, classData.getNameResolver(),
|
||||
_this.annotationDeserializer, _this, classProto, null);
|
||||
+2
-2
@@ -42,11 +42,11 @@ public class DescriptorDeserializer {
|
||||
@NotNull StorageManager storageManager,
|
||||
@NotNull DeclarationDescriptor containingDeclaration,
|
||||
@NotNull NameResolver nameResolver,
|
||||
@NotNull ClassResolver classResolver,
|
||||
@NotNull DescriptorFinder descriptorFinder,
|
||||
@NotNull AnnotationDeserializer annotationDeserializer
|
||||
) {
|
||||
return new DescriptorDeserializer(storageManager,
|
||||
new TypeDeserializer(storageManager, null, nameResolver, classResolver, "Deserializer for " + containingDeclaration, NONE),
|
||||
new TypeDeserializer(storageManager, null, nameResolver, descriptorFinder, "Deserializer for " + containingDeclaration, NONE),
|
||||
containingDeclaration, nameResolver, annotationDeserializer);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -20,9 +20,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
|
||||
public interface ClassResolver {
|
||||
public interface DescriptorFinder {
|
||||
|
||||
ClassResolver EMPTY = new ClassResolver() {
|
||||
DescriptorFinder EMPTY = new DescriptorFinder() {
|
||||
@Nullable
|
||||
@Override
|
||||
public ClassDescriptor findClass(@NotNull ClassId classId) {
|
||||
+7
-7
@@ -53,7 +53,7 @@ public class TypeDeserializer {
|
||||
}
|
||||
|
||||
private final NameResolver nameResolver;
|
||||
private final ClassResolver classResolver;
|
||||
private final DescriptorFinder descriptorFinder;
|
||||
private final TypeDeserializer parent;
|
||||
|
||||
// never written to after constructor returns
|
||||
@@ -71,21 +71,21 @@ public class TypeDeserializer {
|
||||
@NotNull String debugName,
|
||||
@NotNull TypeParameterResolver typeParameterResolver
|
||||
) {
|
||||
this(storageManager, parent, parent.nameResolver, parent.classResolver, debugName, typeParameterResolver);
|
||||
this(storageManager, parent, parent.nameResolver, parent.descriptorFinder, debugName, typeParameterResolver);
|
||||
}
|
||||
|
||||
public TypeDeserializer(
|
||||
@NotNull StorageManager storageManager,
|
||||
@Nullable TypeDeserializer parent,
|
||||
@NotNull NameResolver nameResolver,
|
||||
@NotNull ClassResolver classResolver,
|
||||
@NotNull DescriptorFinder descriptorFinder,
|
||||
@NotNull String debugName,
|
||||
@NotNull TypeParameterResolver typeParameterResolver
|
||||
) {
|
||||
this.storageManager = storageManager;
|
||||
this.parent = parent;
|
||||
this.nameResolver = nameResolver;
|
||||
this.classResolver = classResolver;
|
||||
this.descriptorFinder = descriptorFinder;
|
||||
this.debugName = debugName + (parent == null ? "" : ". Child of " + parent.debugName);
|
||||
|
||||
for (DeserializedTypeParameterDescriptor typeParameterDescriptor : typeParameterResolver.getTypeParameters(this)) {
|
||||
@@ -101,8 +101,8 @@ public class TypeDeserializer {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassResolver getClassResolver() {
|
||||
return classResolver;
|
||||
public DescriptorFinder getDescriptorFinder() {
|
||||
return descriptorFinder;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -154,7 +154,7 @@ public class TypeDeserializer {
|
||||
@Nullable
|
||||
private ClassDescriptor computeClassDescriptor(int fqNameIndex) {
|
||||
ClassId classId = nameResolver.getClassId(fqNameIndex);
|
||||
return classResolver.findClass(classId);
|
||||
return descriptorFinder.findClass(classId);
|
||||
}
|
||||
|
||||
private List<TypeProjection> typeArguments(List<ProtoBuf.Type.Argument> protos) {
|
||||
|
||||
+8
-8
@@ -70,7 +70,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
|
||||
private final ClassKind kind;
|
||||
private final boolean isInner;
|
||||
private final InnerClassesScopeWrapper innerClassesScope;
|
||||
private final ClassResolver classResolver;
|
||||
private final DescriptorFinder descriptorFinder;
|
||||
|
||||
public DeserializedClassDescriptor(
|
||||
@NotNull ClassId classId,
|
||||
@@ -78,17 +78,17 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
|
||||
@NotNull DeclarationDescriptor containingDeclaration,
|
||||
@NotNull NameResolver nameResolver,
|
||||
@NotNull AnnotationDeserializer annotationResolver,
|
||||
@NotNull final ClassResolver classResolver,
|
||||
@NotNull final DescriptorFinder descriptorFinder,
|
||||
@NotNull ProtoBuf.Class classProto,
|
||||
@Nullable TypeDeserializer outerTypeDeserializer
|
||||
) {
|
||||
this.classId = classId;
|
||||
this.classProto = classProto;
|
||||
this.classResolver = classResolver;
|
||||
this.descriptorFinder = descriptorFinder;
|
||||
this.name = nameResolver.getName(classProto.getName());
|
||||
|
||||
TypeDeserializer notNullTypeDeserializer = new TypeDeserializer(storageManager, outerTypeDeserializer, nameResolver, classResolver,
|
||||
"Deserializer for class " + name, NONE);
|
||||
TypeDeserializer notNullTypeDeserializer = new TypeDeserializer(storageManager, outerTypeDeserializer, nameResolver,
|
||||
descriptorFinder, "Deserializer for class " + name, NONE);
|
||||
DescriptorDeserializer outerDeserializer = DescriptorDeserializer.create(storageManager, notNullTypeDeserializer,
|
||||
this, nameResolver, annotationResolver);
|
||||
List<TypeParameterDescriptor> typeParameters = new ArrayList<TypeParameterDescriptor>(classProto.getTypeParameterCount());
|
||||
@@ -131,13 +131,13 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
|
||||
this.nestedClasses = new NestedClassDescriptors(storageManager, stringSet(classProto.getNestedClassNameList(), nameResolver)) {
|
||||
@Override
|
||||
protected ClassDescriptor resolveNestedClass(@NotNull Name name) {
|
||||
return classResolver.findClass(DeserializedClassDescriptor.this.classId.createNestedClassId(name));
|
||||
return descriptorFinder.findClass(DeserializedClassDescriptor.this.classId.createNestedClassId(name));
|
||||
}
|
||||
};
|
||||
this.nestedObjects = new NestedClassDescriptors(storageManager, stringSet(classProto.getNestedObjectNameList(), nameResolver)) {
|
||||
@Override
|
||||
protected ClassDescriptor resolveNestedClass(@NotNull Name name) {
|
||||
return classResolver.findClass(DeserializedClassDescriptor.this.classId.createNestedClassId(name));
|
||||
return descriptorFinder.findClass(DeserializedClassDescriptor.this.classId.createNestedClassId(name));
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -270,7 +270,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
|
||||
return classObject;
|
||||
}
|
||||
|
||||
return classResolver.findClass(classId.createNestedClassId(getClassObjectName(getName())));
|
||||
return descriptorFinder.findClass(classId.createNestedClassId(getClassObjectName(getName())));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+5
-5
@@ -3,7 +3,7 @@ package org.jetbrains.jet.descriptors.serialization.descriptors;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassId;
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassResolver;
|
||||
import org.jetbrains.jet.descriptors.serialization.DescriptorFinder;
|
||||
import org.jetbrains.jet.descriptors.serialization.DescriptorDeserializer;
|
||||
import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
@@ -22,7 +22,7 @@ import java.util.List;
|
||||
|
||||
public abstract class DeserializedPackageMemberScope extends DeserializedMemberScope {
|
||||
|
||||
private final ClassResolver classResolver;
|
||||
private final DescriptorFinder descriptorFinder;
|
||||
private final FqName packageFqName;
|
||||
|
||||
public DeserializedPackageMemberScope(
|
||||
@@ -30,10 +30,10 @@ public abstract class DeserializedPackageMemberScope extends DeserializedMemberS
|
||||
@NotNull NamespaceDescriptor packageDescriptor,
|
||||
@NotNull DescriptorDeserializer deserializer,
|
||||
@NotNull List<ProtoBuf.Callable> membersList,
|
||||
ClassResolver classResolver
|
||||
@NotNull DescriptorFinder descriptorFinder
|
||||
) {
|
||||
super(storageManager, packageDescriptor, deserializer, membersList);
|
||||
this.classResolver = classResolver;
|
||||
this.descriptorFinder = descriptorFinder;
|
||||
this.packageFqName = DescriptorUtils.getFQName(packageDescriptor).toSafe();
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public abstract class DeserializedPackageMemberScope extends DeserializedMemberS
|
||||
|
||||
@Nullable
|
||||
private ClassDescriptor findClassDescriptor(Name name, boolean object) {
|
||||
ClassDescriptor classDescriptor = classResolver.findClass(new ClassId(packageFqName, FqNameUnsafe.topLevel(name)));
|
||||
ClassDescriptor classDescriptor = descriptorFinder.findClass(new ClassId(packageFqName, FqNameUnsafe.topLevel(name)));
|
||||
if (classDescriptor == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+3
-3
@@ -39,7 +39,7 @@ class BuiltinsNamespaceDescriptorImpl extends AbstractNamespaceDescriptorImpl {
|
||||
nameResolver =
|
||||
NameSerializationUtil.deserializeNameResolver(getStream(BuiltInsSerializationUtil.getNameTableFilePath(this)));
|
||||
|
||||
ClassResolver classResolver = new AbstractClassResolver(storageManager, AnnotationDeserializer.UNSUPPORTED) {
|
||||
DescriptorFinder descriptorFinder = new AbstractDescriptorFinder(storageManager, AnnotationDeserializer.UNSUPPORTED) {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@@ -82,8 +82,8 @@ class BuiltinsNamespaceDescriptorImpl extends AbstractNamespaceDescriptorImpl {
|
||||
members = new DeserializedPackageMemberScope(
|
||||
storageManager,
|
||||
this,
|
||||
DescriptorDeserializer.create(storageManager, this, nameResolver, classResolver, AnnotationDeserializer.UNSUPPORTED),
|
||||
loadCallables(), classResolver
|
||||
DescriptorDeserializer.create(storageManager, this, nameResolver, descriptorFinder, AnnotationDeserializer.UNSUPPORTED),
|
||||
loadCallables(), descriptorFinder
|
||||
) {
|
||||
private final NotNullLazyValue<Collection<Name>> classNames = storageManager.createLazyValue(new Computable<Collection<Name>>() {
|
||||
@Override
|
||||
|
||||
+12
-12
@@ -134,10 +134,10 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
}
|
||||
|
||||
NamespaceDescriptorImpl namespace = createTestNamespace();
|
||||
ClassResolver javaClassResolver = new JavaClassResolver(javaDescriptorResolver);
|
||||
DescriptorFinder javaDescriptorFinder = new JavaDescriptorFinder(javaDescriptorResolver);
|
||||
|
||||
ClassResolverImpl classResolver = new ClassResolverImpl(
|
||||
javaClassResolver, namespace,
|
||||
DescriptorFinderImpl descriptorFinder = new DescriptorFinderImpl(
|
||||
javaDescriptorFinder, namespace,
|
||||
new NullableFunction<String, ClassMetadata>() {
|
||||
@Nullable
|
||||
@Override
|
||||
@@ -150,7 +150,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
for (ClassDescriptor classDescriptor : classes) {
|
||||
ClassId classId = new ClassId(DescriptorUtils.getFQName(classDescriptor.getContainingDeclaration()).toSafe(),
|
||||
FqNameUnsafe.topLevel(classDescriptor.getName()));
|
||||
ClassDescriptor descriptor = classResolver.findClass(classId);
|
||||
ClassDescriptor descriptor = descriptorFinder.findClass(classId);
|
||||
assert descriptor != null : "Class not loaded: " + classId;
|
||||
if (descriptor.getKind().isObject()) {
|
||||
namespace.getMemberScope().addObjectDescriptor(descriptor);
|
||||
@@ -172,7 +172,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
|
||||
DescriptorDeserializer deserializer =
|
||||
DescriptorDeserializer.create(new LockBasedStorageManager(), namespace, new NameResolver(simpleNames, qualifiedNames),
|
||||
classResolver, UNSUPPORTED);
|
||||
descriptorFinder, UNSUPPORTED);
|
||||
for (ProtoBuf.Callable proto : callableProtos) {
|
||||
CallableMemberDescriptor descriptor = deserializer.loadCallable(proto);
|
||||
if (descriptor instanceof FunctionDescriptor) {
|
||||
@@ -282,16 +282,16 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
}
|
||||
}
|
||||
|
||||
private static class ClassResolverImpl implements ClassResolver {
|
||||
private final ClassResolver parentResolver;
|
||||
private static class DescriptorFinderImpl implements DescriptorFinder {
|
||||
private final DescriptorFinder parentResolver;
|
||||
|
||||
private final DeclarationDescriptor parentForClasses;
|
||||
private final NullableFunction<String, ClassMetadata> classMetadata;
|
||||
|
||||
private final MemoizedFunctionToNullable<ClassId, ClassDescriptor> classes;
|
||||
|
||||
public ClassResolverImpl(
|
||||
@NotNull ClassResolver parentResolver,
|
||||
public DescriptorFinderImpl(
|
||||
@NotNull DescriptorFinder parentResolver,
|
||||
@NotNull DeclarationDescriptor parentForClasses,
|
||||
@NotNull NullableFunction<String, ClassMetadata> classMetadata
|
||||
) {
|
||||
@@ -306,7 +306,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
@Override
|
||||
protected ClassDescriptor doCompute(@NotNull ClassId classId) {
|
||||
DeclarationDescriptor containingDeclaration =
|
||||
classId.isTopLevelClass() ? ClassResolverImpl.this.parentForClasses : findClass(classId.getOuterClassId());
|
||||
classId.isTopLevelClass() ? DescriptorFinderImpl.this.parentForClasses : findClass(classId.getOuterClassId());
|
||||
assert containingDeclaration != null : "Containing declaration not found: " + classId.getOuterClassId();
|
||||
return resolveClass(containingDeclaration, classId);
|
||||
}
|
||||
@@ -338,10 +338,10 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
}
|
||||
}
|
||||
|
||||
private static class JavaClassResolver implements ClassResolver {
|
||||
private static class JavaDescriptorFinder implements DescriptorFinder {
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
|
||||
public JavaClassResolver(JavaDescriptorResolver javaDescriptorResolver) {
|
||||
public JavaDescriptorFinder(JavaDescriptorResolver javaDescriptorResolver) {
|
||||
this.javaDescriptorResolver = javaDescriptorResolver;
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -80,7 +80,7 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
|
||||
final NameResolver nameResolver = NameSerializationUtil.createNameResolver(serializer.getNameTable());
|
||||
|
||||
ClassResolver classResolver = new AbstractClassResolver(new LockBasedStorageManager(), AnnotationDeserializer.UNSUPPORTED) {
|
||||
DescriptorFinder descriptorFinder = new AbstractDescriptorFinder(new LockBasedStorageManager(), AnnotationDeserializer.UNSUPPORTED) {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -120,10 +120,10 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
|
||||
// Make the lazy loader create classes
|
||||
for (ClassId classId : classProtos.keySet()) {
|
||||
classResolver.findClass(classId);
|
||||
descriptorFinder.findClass(classId);
|
||||
}
|
||||
|
||||
deserializeCallables(callableProtos, actualNamespace, nameResolver, classResolver);
|
||||
deserializeCallables(callableProtos, actualNamespace, nameResolver, descriptorFinder);
|
||||
|
||||
actualNamespace.getMemberScope().changeLockLevel(WritableScope.LockLevel.READING);
|
||||
return actualNamespace;
|
||||
@@ -163,11 +163,11 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
List<ProtoBuf.Callable> callableProtos,
|
||||
NamespaceDescriptorImpl actualNamespace,
|
||||
NameResolver nameResolver,
|
||||
ClassResolver classResolver
|
||||
DescriptorFinder descriptorFinder
|
||||
) {
|
||||
DescriptorDeserializer descriptorDeserializer;
|
||||
descriptorDeserializer =
|
||||
DescriptorDeserializer.create(new LockBasedStorageManager(), actualNamespace, nameResolver, classResolver, AnnotationDeserializer.UNSUPPORTED);
|
||||
DescriptorDeserializer.create(new LockBasedStorageManager(), actualNamespace, nameResolver, descriptorFinder, AnnotationDeserializer.UNSUPPORTED);
|
||||
for (ProtoBuf.Callable callableProto : callableProtos) {
|
||||
CallableMemberDescriptor callableMemberDescriptor = descriptorDeserializer.loadCallable(callableProto);
|
||||
if (callableMemberDescriptor instanceof PropertyDescriptor) {
|
||||
|
||||
+4
-4
@@ -54,18 +54,18 @@ public class WriteSerializedInfoTest extends CodegenTestCase {
|
||||
assertTrue(aClass.isAnnotationPresent(KotlinInfo.class));
|
||||
KotlinInfo kotlinInfo = (KotlinInfo) aClass.getAnnotation(KotlinInfo.class);
|
||||
|
||||
AbstractClassResolver classResolver = new KotlinInfoBasedClassResolver(kotlinInfo);
|
||||
AbstractDescriptorFinder descriptorFinder = new KotlinInfoBasedDescriptorFinder(kotlinInfo);
|
||||
|
||||
ClassDescriptor descriptor = classResolver.findClass(new ClassId(NAMESPACE_NAME, CLASS_NAME));
|
||||
ClassDescriptor descriptor = descriptorFinder.findClass(new ClassId(NAMESPACE_NAME, CLASS_NAME));
|
||||
assertNotNull(descriptor);
|
||||
assertEquals(CLASS_NAME.asString(), descriptor.getName().asString());
|
||||
}
|
||||
|
||||
private static class KotlinInfoBasedClassResolver extends AbstractClassResolver {
|
||||
private static class KotlinInfoBasedDescriptorFinder extends AbstractDescriptorFinder {
|
||||
private final ClassData classData;
|
||||
private final NamespaceDescriptorImpl namespace;
|
||||
|
||||
public KotlinInfoBasedClassResolver(@NotNull KotlinInfo kotlinInfo) throws IOException {
|
||||
public KotlinInfoBasedDescriptorFinder(@NotNull KotlinInfo kotlinInfo) throws IOException {
|
||||
super(new LockBasedStorageManager(), AnnotationDeserializer.UNSUPPORTED);
|
||||
|
||||
this.classData = ClassSerializationUtil.readClassDataFrom(kotlinInfo.data());
|
||||
|
||||
Reference in New Issue
Block a user