Remove direct usages of ModuleDescriptor#getPackageFragmentProvider()
This commit is contained in:
@@ -135,7 +135,7 @@ public class PackageCodegen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO rewrite it to something more robust when module system is implemented
|
// TODO rewrite it to something more robust when module system is implemented
|
||||||
for (PackageFragmentDescriptor fragment : state.getModule().getPackageFragmentProvider().getPackageFragments(fqName)) {
|
for (PackageFragmentDescriptor fragment : state.getModule().getPackage(fqName).getFragments()) {
|
||||||
if (fragment instanceof IncrementalPackageFragmentProvider.IncrementalPackageFragment &&
|
if (fragment instanceof IncrementalPackageFragmentProvider.IncrementalPackageFragment &&
|
||||||
((IncrementalPackageFragmentProvider.IncrementalPackageFragment) fragment).getModuleId().equals(state.getModuleId())) {
|
((IncrementalPackageFragmentProvider.IncrementalPackageFragment) fragment).getModuleId().equals(state.getModuleId())) {
|
||||||
return fragment;
|
return fragment;
|
||||||
|
|||||||
+1
-1
@@ -125,7 +125,7 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val packageStream = ByteArrayOutputStream()
|
val packageStream = ByteArrayOutputStream()
|
||||||
val fragments = module.getPackageFragmentProvider().getPackageFragments(fqName)
|
val fragments = packageView.getFragments()
|
||||||
val packageProto = serializer.packageProto(fragments).build() ?: error("Package fragments not serialized: $fragments")
|
val packageProto = serializer.packageProto(fragments).build() ?: error("Package fragments not serialized: $fragments")
|
||||||
packageProto.writeTo(packageStream)
|
packageProto.writeTo(packageStream)
|
||||||
write(destDir, BuiltInsSerializedResourcePaths.getPackageFilePath(fqName), packageStream,
|
write(destDir, BuiltInsSerializedResourcePaths.getPackageFilePath(fqName), packageStream,
|
||||||
|
|||||||
+1
@@ -199,5 +199,6 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) = throw UnsupportedOperationException()
|
override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) = throw UnsupportedOperationException()
|
||||||
override fun getAnnotations() = throw UnsupportedOperationException()
|
override fun getAnnotations() = throw UnsupportedOperationException()
|
||||||
override fun getName() = throw UnsupportedOperationException()
|
override fun getName() = throw UnsupportedOperationException()
|
||||||
|
override fun getFragments() = throw UnsupportedOperationException()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,8 +63,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
|
|||||||
PackageFragmentDescriptor deserialized = KotlinBuiltIns.getInstance().getBuiltInsPackageFragment();
|
PackageFragmentDescriptor deserialized = KotlinBuiltIns.getInstance().getBuiltInsPackageFragment();
|
||||||
|
|
||||||
ModuleDescriptor module = LazyResolveTestUtil.resolveLazily(files, getEnvironment(), false);
|
ModuleDescriptor module = LazyResolveTestUtil.resolveLazily(files, getEnvironment(), false);
|
||||||
List<PackageFragmentDescriptor> fragments =
|
List<PackageFragmentDescriptor> fragments = module.getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME).getFragments();
|
||||||
module.getPackageFragmentProvider().getPackageFragments(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
|
|
||||||
for (PackageFragmentDescriptor fromLazyResolve : fragments) {
|
for (PackageFragmentDescriptor fromLazyResolve : fragments) {
|
||||||
if (fromLazyResolve instanceof LazyPackageDescriptor) {
|
if (fromLazyResolve instanceof LazyPackageDescriptor) {
|
||||||
RecursiveDescriptorComparator.validateAndCompareDescriptors(
|
RecursiveDescriptorComparator.validateAndCompareDescriptors(
|
||||||
|
|||||||
@@ -17,22 +17,18 @@
|
|||||||
package org.jetbrains.kotlin.descriptors
|
package org.jetbrains.kotlin.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.impl.PackageViewDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||||
|
|
||||||
public trait ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
public trait ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
||||||
|
public fun getPackage(fqName: FqName): PackageViewDescriptor?
|
||||||
|
public fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||||
|
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor? = null
|
override fun getContainingDeclaration(): DeclarationDescriptor? = null
|
||||||
|
|
||||||
public fun getPackageFragmentProvider(): PackageFragmentProvider
|
|
||||||
|
|
||||||
public fun getPackage(fqName: FqName): PackageViewDescriptor? {
|
|
||||||
val fragments = getPackageFragmentProvider().getPackageFragments(fqName)
|
|
||||||
return if (!fragments.isEmpty()) PackageViewDescriptorImpl(this, fqName, fragments) else null
|
|
||||||
}
|
|
||||||
|
|
||||||
public val builtIns: KotlinBuiltIns
|
public val builtIns: KotlinBuiltIns
|
||||||
|
|
||||||
public fun isFriend(other: ModuleDescriptor): Boolean
|
public fun isFriend(other: ModuleDescriptor): Boolean
|
||||||
|
|||||||
@@ -22,9 +22,6 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
public trait PackageFragmentProvider {
|
public trait PackageFragmentProvider {
|
||||||
public fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor>
|
public fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor>
|
||||||
|
|
||||||
/**
|
|
||||||
* @return declared subpackages of a package with the FQ name given by [fqName]
|
|
||||||
*/
|
|
||||||
public fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
public fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface PackageViewDescriptor extends DeclarationDescriptor {
|
public interface PackageViewDescriptor extends DeclarationDescriptor {
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -34,4 +36,7 @@ public interface PackageViewDescriptor extends DeclarationDescriptor {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
ModuleDescriptor getModule();
|
ModuleDescriptor getModule();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
List<PackageFragmentDescriptor> getFragments();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||||
|
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
@@ -89,7 +91,14 @@ public class ModuleDescriptorImpl(
|
|||||||
packageFragmentProviderForModuleContent = providerForModuleContent
|
packageFragmentProviderForModuleContent = providerForModuleContent
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getPackageFragmentProvider() = packageFragmentProviderForWholeModuleWithDependencies
|
override fun getPackage(fqName: FqName): PackageViewDescriptor? {
|
||||||
|
val fragments = packageFragmentProviderForWholeModuleWithDependencies.getPackageFragments(fqName)
|
||||||
|
return if (!fragments.isEmpty()) PackageViewDescriptorImpl(this, fqName, fragments) else null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName> {
|
||||||
|
return packageFragmentProviderForWholeModuleWithDependencies.getSubPackagesOf(fqName, nameFilter)
|
||||||
|
}
|
||||||
|
|
||||||
private val friendModules = LinkedHashSet<ModuleDescriptor>()
|
private val friendModules = LinkedHashSet<ModuleDescriptor>()
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor
|
|||||||
public class PackageViewDescriptorImpl(
|
public class PackageViewDescriptorImpl(
|
||||||
private val module: ModuleDescriptor,
|
private val module: ModuleDescriptor,
|
||||||
private val fqName: FqName,
|
private val fqName: FqName,
|
||||||
fragments: List<PackageFragmentDescriptor>
|
private val fragments: List<PackageFragmentDescriptor>
|
||||||
) : DeclarationDescriptorImpl(Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageViewDescriptor {
|
) : DeclarationDescriptorImpl(Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageViewDescriptor {
|
||||||
private val memberScope: JetScope = run {
|
private val memberScope: JetScope = run {
|
||||||
assert(fragments.isNotEmpty()) { "$fqName in module" }
|
assert(fragments.isNotEmpty()) { "$fqName in module" }
|
||||||
@@ -47,6 +47,8 @@ public class PackageViewDescriptorImpl(
|
|||||||
|
|
||||||
override fun getModule(): ModuleDescriptor = module
|
override fun getModule(): ModuleDescriptor = module
|
||||||
|
|
||||||
|
override fun getFragments() = fragments
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (javaClass != other?.javaClass) return false
|
if (javaClass != other?.javaClass) return false
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class SubpackagesScope(private val containingDeclaration: PackageViewDesc
|
|||||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||||
if (!kindFilter.acceptsKinds(DescriptorKindFilter.PACKAGES_MASK)) return listOf()
|
if (!kindFilter.acceptsKinds(DescriptorKindFilter.PACKAGES_MASK)) return listOf()
|
||||||
|
|
||||||
val subFqNames = containingDeclaration.getModule().getPackageFragmentProvider().getSubPackagesOf(containingDeclaration.getFqName(), nameFilter)
|
val subFqNames = containingDeclaration.getModule().getSubPackagesOf(containingDeclaration.getFqName(), nameFilter)
|
||||||
val result = ArrayList<DeclarationDescriptor>(subFqNames.size())
|
val result = ArrayList<DeclarationDescriptor>(subFqNames.size())
|
||||||
for (subFqName in subFqNames) {
|
for (subFqName in subFqNames) {
|
||||||
val shortName = subFqName.shortName()
|
val shortName = subFqName.shortName()
|
||||||
|
|||||||
+8
-13
@@ -18,26 +18,23 @@ package org.jetbrains.kotlin.idea.decompiler.textBuilder
|
|||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.idea.decompiler.navigation.JsMetaFileVirtualFileHolder
|
import org.jetbrains.kotlin.idea.decompiler.navigation.JsMetaFileVirtualFileHolder
|
||||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache
|
import org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache
|
||||||
|
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
|
||||||
|
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||||
import java.util.*
|
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
||||||
import org.jetbrains.kotlin.types.error.MissingDependencyErrorClass
|
|
||||||
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
||||||
import org.jetbrains.kotlin.types.isFlexible
|
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
|
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
|
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
|
||||||
|
import org.jetbrains.kotlin.types.error.MissingDependencyErrorClass
|
||||||
import org.jetbrains.kotlin.types.flexibility
|
import org.jetbrains.kotlin.types.flexibility
|
||||||
|
import org.jetbrains.kotlin.types.isFlexible
|
||||||
|
import java.util.ArrayList
|
||||||
|
import java.util.HashMap
|
||||||
|
|
||||||
private val FILE_ABI_VERSION_MARKER: String = "FILE_ABI"
|
private val FILE_ABI_VERSION_MARKER: String = "FILE_ABI"
|
||||||
private val CURRENT_ABI_VERSION_MARKER: String = "CURRENT_ABI"
|
private val CURRENT_ABI_VERSION_MARKER: String = "CURRENT_ABI"
|
||||||
@@ -85,9 +82,7 @@ public fun buildDecompiledTextFromJsMetadata(
|
|||||||
val packageFqName = classFile.getUserData(JsMetaFileVirtualFileHolder.PACKAGE_FQNAME_KEY)
|
val packageFqName = classFile.getUserData(JsMetaFileVirtualFileHolder.PACKAGE_FQNAME_KEY)
|
||||||
assert (packageFqName != null)
|
assert (packageFqName != null)
|
||||||
|
|
||||||
val fragments = module.getPackageFragmentProvider().getPackageFragments(packageFqName)
|
val descriptors = module.getPackage(packageFqName)?.getMemberScope()?.getAllDescriptors()?.toList().orEmpty()
|
||||||
val descriptors = fragments.flatMap { it.getMemberScope().getAllDescriptors() }
|
|
||||||
|
|
||||||
return buildDecompiledText(packageFqName, descriptors)
|
return buildDecompiledText(packageFqName, descriptors)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -39,9 +39,7 @@ import org.jetbrains.kotlin.asJava.LightClassUtil;
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||||
import org.jetbrains.kotlin.context.ContextPackage;
|
import org.jetbrains.kotlin.context.ContextPackage;
|
||||||
import org.jetbrains.kotlin.context.MutableModuleContext;
|
import org.jetbrains.kotlin.context.MutableModuleContext;
|
||||||
import org.jetbrains.kotlin.context.ProjectContext;
|
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolve;
|
import org.jetbrains.kotlin.di.InjectorForLazyResolve;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.psi.JetFile;
|
import org.jetbrains.kotlin.psi.JetFile;
|
||||||
@@ -123,8 +121,9 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
|
|||||||
injectorForLazyResolve.getResolveSession().forceResolveAll();
|
injectorForLazyResolve.getResolveSession().forceResolveAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<PackageFragmentDescriptor> fragments =
|
PackageViewDescriptor packageView = newModuleContext.getModule().getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
|
||||||
newModuleContext.getModule().getPackageFragmentProvider().getPackageFragments(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
|
assert packageView != null : "Should contain " + KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME + " package";
|
||||||
|
List<PackageFragmentDescriptor> fragments = packageView.getFragments();
|
||||||
|
|
||||||
BuiltInsReferenceResolver.this.moduleDescriptor = newModuleContext.getModule();
|
BuiltInsReferenceResolver.this.moduleDescriptor = newModuleContext.getModule();
|
||||||
builtinsPackageFragment = KotlinPackage.single(fragments);
|
builtinsPackageFragment = KotlinPackage.single(fragments);
|
||||||
|
|||||||
+2
-4
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
|
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
|
import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
|
||||||
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
||||||
@@ -71,9 +70,8 @@ class AllClassesCompletion(val parameters: CompletionParameters,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val allClassDescriptors = CachedValuesManager.getManager(scope.getProject()).createCachedValue( {
|
private val allClassDescriptors = CachedValuesManager.getManager(scope.getProject()).createCachedValue( {
|
||||||
val provider = (moduleDescriptor as ModuleDescriptorImpl).getPackageFragmentProvider()
|
val packages = DescriptorUtils.getPackagesFqNames(moduleDescriptor).map { moduleDescriptor.getPackage(it) }.filterNotNull()
|
||||||
val fragments = DescriptorUtils.getPackagesFqNames(moduleDescriptor).flatMap { provider.getPackageFragments(it) }
|
val classDescriptors = packages.flatMap { it.getMemberScope().getAllDescriptors().filterIsInstance<ClassDescriptor>() }
|
||||||
val classDescriptors = fragments.flatMap { it.getMemberScope().getAllDescriptors().filter { it is ClassDescriptor} }.map { it as ClassDescriptor }
|
|
||||||
CachedValueProvider.Result(classDescriptors, ProjectRootModificationTracker.getInstance(scope.getProject()))
|
CachedValueProvider.Result(classDescriptors, ProjectRootModificationTracker.getInstance(scope.getProject()))
|
||||||
}, false)
|
}, false)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -120,7 +120,7 @@ public object KotlinJavascriptSerializationUtil {
|
|||||||
}, skip)
|
}, skip)
|
||||||
|
|
||||||
val packageStream = ByteArrayOutputStream()
|
val packageStream = ByteArrayOutputStream()
|
||||||
val fragments = module.getPackageFragmentProvider().getPackageFragments(fqName)
|
val fragments = packageView.getFragments()
|
||||||
val packageProto = serializer.packageProto(fragments, skip).build() ?: error("Package fragments not serialized: $fragments")
|
val packageProto = serializer.packageProto(fragments, skip).build() ?: error("Package fragments not serialized: $fragments")
|
||||||
if (packageProto.getMemberCount() > 0) {
|
if (packageProto.getMemberCount() > 0) {
|
||||||
packageProto.writeTo(packageStream)
|
packageProto.writeTo(packageStream)
|
||||||
|
|||||||
Reference in New Issue
Block a user