Implement getNamespace() for deserialized scope
DescriptorFinder now can find packages, pull the method up from AbstractDescriptorFinder class
This commit is contained in:
+10
-3
@@ -327,6 +327,12 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
public ClassDescriptor findClass(@NotNull ClassId classId) {
|
||||
return classes.fun(classId);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public NamespaceDescriptor findPackage(@NotNull FqName name) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static class JavaDescriptorFinder implements DescriptorFinder {
|
||||
@@ -345,7 +351,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
if (javaClassDescriptor != null) {
|
||||
return javaClassDescriptor;
|
||||
}
|
||||
NamespaceDescriptor packageDescriptor = getNamespace(classId.getPackageFqName());
|
||||
NamespaceDescriptor packageDescriptor = findPackage(classId.getPackageFqName());
|
||||
if (packageDescriptor == null) {
|
||||
throw new IllegalStateException("Java package not found: " + classId.getPackageFqName() + " for " + classId);
|
||||
}
|
||||
@@ -368,8 +374,9 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private NamespaceDescriptor getNamespace(@NotNull FqName fqName) {
|
||||
return javaDescriptorResolver.resolveNamespace(fqName);
|
||||
@Override
|
||||
public NamespaceDescriptor findPackage(@NotNull FqName name) {
|
||||
return javaDescriptorResolver.resolveNamespace(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-8
@@ -80,12 +80,10 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
|
||||
final NameResolver nameResolver = NameSerializationUtil.createNameResolver(serializer.getNameTable());
|
||||
|
||||
DescriptorFinder descriptorFinder = new AbstractDescriptorFinder(new LockBasedStorageManager(),
|
||||
AnnotationDeserializer.UNSUPPORTED) {
|
||||
|
||||
DescriptorFinder finder = new AbstractDescriptorFinder(new LockBasedStorageManager(), AnnotationDeserializer.UNSUPPORTED) {
|
||||
@NotNull
|
||||
@Override
|
||||
protected NamespaceDescriptor getPackage(@NotNull FqName fqName) {
|
||||
public NamespaceDescriptor findPackage(@NotNull FqName fqName) {
|
||||
assert fqName.equals(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME) : "Unsupported package: " + fqName;
|
||||
return actualNamespace;
|
||||
}
|
||||
@@ -121,10 +119,10 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
|
||||
// Make the lazy loader create classes
|
||||
for (ClassId classId : classProtos.keySet()) {
|
||||
descriptorFinder.findClass(classId);
|
||||
finder.findClass(classId);
|
||||
}
|
||||
|
||||
deserializeCallables(callableProtos, actualNamespace, nameResolver, descriptorFinder);
|
||||
deserializeCallables(callableProtos, actualNamespace, nameResolver, finder);
|
||||
|
||||
actualNamespace.getMemberScope().changeLockLevel(WritableScope.LockLevel.READING);
|
||||
return actualNamespace;
|
||||
@@ -166,8 +164,7 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
NameResolver nameResolver,
|
||||
DescriptorFinder descriptorFinder
|
||||
) {
|
||||
DescriptorDeserializer descriptorDeserializer;
|
||||
descriptorDeserializer =
|
||||
DescriptorDeserializer descriptorDeserializer =
|
||||
DescriptorDeserializer.create(new LockBasedStorageManager(), actualNamespace, nameResolver, descriptorFinder, AnnotationDeserializer.UNSUPPORTED);
|
||||
for (ProtoBuf.Callable callableProto : callableProtos) {
|
||||
CallableMemberDescriptor callableMemberDescriptor = descriptorDeserializer.loadCallable(callableProto);
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ public class KotlinInfoForClassTest extends CodegenTestCase {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected NamespaceDescriptor getPackage(@NotNull FqName fqName) {
|
||||
public NamespaceDescriptor findPackage(@NotNull FqName fqName) {
|
||||
assert fqName.equals(NAMESPACE_NAME) : "Unsupported namespace: " + fqName;
|
||||
return namespace;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user