Got rid of getExactlyOnePackageFragment()

This commit is contained in:
Andrey Breslav
2013-12-27 12:55:57 +04:00
parent 48ac30a933
commit 372ab7954b
6 changed files with 34 additions and 43 deletions
@@ -26,8 +26,8 @@ import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.PackageViewDescriptorImpl;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment;
import org.jetbrains.jet.lang.resolve.lazy.LazyResolveTestUtil;
@@ -62,22 +62,24 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
JetTestUtils.createFile(ktFile.getName(), FileUtil.loadFile(ktFile), getProject())
), getEnvironment());
PackageFragmentDescriptor testPackage = DescriptorUtils.getExactlyOnePackageFragment(
moduleDescriptor, FqName.topLevel(TEST_PACKAGE_NAME));
PackageViewDescriptor testPackage = moduleDescriptor.getPackage(FqName.topLevel(TEST_PACKAGE_NAME));
assert testPackage != null : "Test package not found: " + TEST_PACKAGE_NAME;
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(getProject(), new BindingTraceContext());
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
PackageFragmentDescriptor deserialized = serializeAndDeserialize(javaDescriptorResolver, testPackage);
PackageViewDescriptorImpl deserializedPackageView =
new PackageViewDescriptorImpl(moduleDescriptor, deserialized.getFqName(), Arrays.asList(deserialized));
RecursiveDescriptorComparator
.validateAndCompareDescriptors(testPackage, deserialized, RecursiveDescriptorComparator.RECURSIVE, null);
.validateAndCompareDescriptors(testPackage, deserializedPackageView, RecursiveDescriptorComparator.RECURSIVE, null);
}
@NotNull
private static PackageFragmentDescriptor serializeAndDeserialize(
@NotNull JavaDescriptorResolver javaDescriptorResolver,
@NotNull PackageFragmentDescriptor testPackage
@NotNull PackageViewDescriptor testPackage
) {
List<ClassDescriptor> classesAndObjects = getAllClassesAndObjects(testPackage.getMemberScope());
@@ -137,9 +139,11 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
}
@NotNull
private static byte[] serializePackage(@NotNull PackageFragmentDescriptor descriptor) {
private static byte[] serializePackage(@NotNull PackageViewDescriptor descriptor) {
DescriptorSerializer serializer = new DescriptorSerializer();
ProtoBuf.Package proto = serializer.packageProto(Collections.singleton(descriptor)).build();
List<PackageFragmentDescriptor> fragments =
descriptor.getModule().getPackageFragmentProvider().getPackageFragments(descriptor.getFqName());
ProtoBuf.Package proto = serializer.packageProto(fragments).build();
PackageData data = new PackageData(createNameResolver(serializer.getNameTable()), proto);
return data.toBytes();
}
@@ -29,13 +29,12 @@ import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.di.InjectorForTests;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.ReceiverParameterDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.ImportPath;
import org.jetbrains.jet.lang.resolve.TypeResolver;
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
@@ -578,8 +577,10 @@ public class JetTypeCheckerTest extends JetLiteFixture {
getEnvironment()
);
PackageFragmentDescriptor testData = DescriptorUtils.getExactlyOnePackageFragment(moduleDescriptor, new FqName("testData"));
return addImports(testData.getMemberScope());
FqName fqName = new FqName("testData");
PackageViewDescriptor packageView = moduleDescriptor.getPackage(fqName);
assertNotNull("Package " + fqName + " not found", packageView);
return addImports(packageView.getMemberScope());
}
@SuppressWarnings("ConstantConditions")