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,10 +26,7 @@ import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.descriptors.serialization.*;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.lazy.LazyResolveTestUtil;
@@ -40,7 +37,6 @@ import org.jetbrains.jet.test.util.DescriptorValidator;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
@@ -68,9 +64,10 @@ public class BuiltInsSerializer {
List<JetFile> files = JetTestUtils.loadToJetFiles(environment, sourceFiles);
ModuleDescriptor module = LazyResolveTestUtil.resolveLazily(files, environment, false);
PackageFragmentDescriptor packageFragment = DescriptorUtils.getExactlyOnePackageFragment(
module, KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
DescriptorValidator.validate(packageFragment);
PackageViewDescriptor packageView = module.getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
assert packageView != null : "Package not found: " + KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
DescriptorValidator.validate(packageView);
if (!FileUtil.delete(destDir)) {
System.err.println("Could not delete: " + destDir);
@@ -89,7 +86,7 @@ public class BuiltInsSerializer {
});
final List<Name> classNames = new ArrayList<Name>();
List<DeclarationDescriptor> allDescriptors = DescriptorSerializer.sort(packageFragment.getMemberScope().getAllDescriptors());
List<DeclarationDescriptor> allDescriptors = DescriptorSerializer.sort(packageView.getMemberScope().getAllDescriptors());
ClassSerializationUtil.serializeClasses(allDescriptors, serializer, new ClassSerializationUtil.Sink() {
@Override
public void writeClass(@NotNull ClassDescriptor classDescriptor, @NotNull ProtoBuf.Class classProto) {
@@ -110,16 +107,18 @@ public class BuiltInsSerializer {
ByteArrayOutputStream classNamesStream = new ByteArrayOutputStream();
writeClassNames(serializer, classNames, classNamesStream);
write(destDir, BuiltInsSerializationUtil.getClassNamesFilePath(packageFragment), classNamesStream, out);
write(destDir, BuiltInsSerializationUtil.getClassNamesFilePath(packageView.getFqName()), classNamesStream, out);
ByteArrayOutputStream packageStream = new ByteArrayOutputStream();
ProtoBuf.Package packageProto = serializer.packageProto(Collections.singleton(packageFragment)).build();
List<PackageFragmentDescriptor> fragments =
module.getPackageFragmentProvider().getPackageFragments(packageView.getFqName());
ProtoBuf.Package packageProto = serializer.packageProto(fragments).build();
packageProto.writeTo(packageStream);
write(destDir, BuiltInsSerializationUtil.getPackageFilePath(packageFragment), packageStream, out);
write(destDir, BuiltInsSerializationUtil.getPackageFilePath(packageView.getFqName()), packageStream, out);
ByteArrayOutputStream nameStream = new ByteArrayOutputStream();
NameSerializationUtil.serializeNameTable(nameStream, serializer.getNameTable());
write(destDir, BuiltInsSerializationUtil.getNameTableFilePath(packageFragment), nameStream, out);
write(destDir, BuiltInsSerializationUtil.getNameTableFilePath(packageView.getFqName()), nameStream, out);
if (out != null) {
out.println("Total bytes written: " + totalSize + " to " + totalFiles + " files");