Write module name as proto extension instead of another annotation argument

This commit is contained in:
Alexander Udalov
2015-12-30 19:17:02 +03:00
parent d4c4515944
commit a4daa08e5c
20 changed files with 171 additions and 65 deletions
@@ -119,12 +119,13 @@ class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
private val onFileWrite: (bytesWritten: Int) -> Unit
) {
private val fqName = packageView.fqName
private val fragments = packageView.fragments
private val builtinsMessage = BuiltInsProtoBuf.BuiltIns.newBuilder()
private val extension = BuiltInsSerializerExtension()
private val extension = BuiltInsSerializerExtension(fragments)
fun run() {
serializeClasses(packageView.memberScope)
serializePackageFragments(packageView.fragments)
serializePackageFragments(fragments)
serializeStringTable()
serializeBuiltInsFile()
}
@@ -24,10 +24,12 @@ import org.jetbrains.kotlin.serialization.DescriptorSerializer
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
import org.jetbrains.kotlin.serialization.ProtoBuf
class BuiltInsSerializerExtension : KotlinSerializerExtensionBase(BuiltInSerializerProtocol) {
class BuiltInsSerializerExtension(
private val packageFragments: Collection<PackageFragmentDescriptor>
) : KotlinSerializerExtensionBase(BuiltInSerializerProtocol) {
override fun shouldUseTypeTable(): Boolean = true
override fun serializePackage(packageFragments: Collection<PackageFragmentDescriptor>, proto: ProtoBuf.Package.Builder) {
override fun serializePackage(proto: ProtoBuf.Package.Builder) {
if (packageFragments.isEmpty()) return
val classes = packageFragments.flatMap {