Pass whole ReadContext/WriteContext to kotlinx-metadata extensions

This commit is contained in:
Alexander Udalov
2018-06-13 14:51:17 +02:00
parent 05123c13f8
commit b00f765255
4 changed files with 67 additions and 71 deletions
@@ -6,41 +6,40 @@
package kotlinx.metadata.jvm.impl package kotlinx.metadata.jvm.impl
import kotlinx.metadata.* import kotlinx.metadata.*
import kotlinx.metadata.impl.ReadContext
import kotlinx.metadata.impl.WriteContext
import kotlinx.metadata.impl.extensions.MetadataExtensions import kotlinx.metadata.impl.extensions.MetadataExtensions
import kotlinx.metadata.impl.readAnnotation import kotlinx.metadata.impl.readAnnotation
import kotlinx.metadata.impl.writeAnnotation import kotlinx.metadata.impl.writeAnnotation
import kotlinx.metadata.jvm.* import kotlinx.metadata.jvm.*
import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
import org.jetbrains.kotlin.metadata.deserialization.TypeTable
import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil
import org.jetbrains.kotlin.metadata.serialization.StringTable
internal class JvmMetadataExtensions : MetadataExtensions { internal class JvmMetadataExtensions : MetadataExtensions {
override fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, strings: NameResolver, types: TypeTable) { override fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, c: ReadContext) {
val ext = v.visitExtensions(JvmClassExtensionVisitor.TYPE) as? JvmClassExtensionVisitor ?: return val ext = v.visitExtensions(JvmClassExtensionVisitor.TYPE) as? JvmClassExtensionVisitor ?: return
val anonymousObjectOriginName = proto.getExtensionOrNull(JvmProtoBuf.anonymousObjectOriginName) val anonymousObjectOriginName = proto.getExtensionOrNull(JvmProtoBuf.anonymousObjectOriginName)
if (anonymousObjectOriginName != null) { if (anonymousObjectOriginName != null) {
ext.visitAnonymousObjectOriginName(strings.getString(anonymousObjectOriginName)) ext.visitAnonymousObjectOriginName(c[anonymousObjectOriginName])
} }
} }
override fun readFunctionExtensions(v: KmFunctionVisitor, proto: ProtoBuf.Function, strings: NameResolver, types: TypeTable) { override fun readFunctionExtensions(v: KmFunctionVisitor, proto: ProtoBuf.Function, c: ReadContext) {
val ext = v.visitExtensions(JvmFunctionExtensionVisitor.TYPE) as? JvmFunctionExtensionVisitor ?: return val ext = v.visitExtensions(JvmFunctionExtensionVisitor.TYPE) as? JvmFunctionExtensionVisitor ?: return
ext.visit(JvmProtoBufUtil.getJvmMethodSignature(proto, strings, types)?.wrapAsPublic()) ext.visit(JvmProtoBufUtil.getJvmMethodSignature(proto, c.strings, c.types)?.wrapAsPublic())
val lambdaClassOriginName = proto.getExtensionOrNull(JvmProtoBuf.lambdaClassOriginName) val lambdaClassOriginName = proto.getExtensionOrNull(JvmProtoBuf.lambdaClassOriginName)
if (lambdaClassOriginName != null) { if (lambdaClassOriginName != null) {
ext.visitLambdaClassOriginName(strings.getString(lambdaClassOriginName)) ext.visitLambdaClassOriginName(c[lambdaClassOriginName])
} }
} }
override fun readPropertyExtensions(v: KmPropertyVisitor, proto: ProtoBuf.Property, strings: NameResolver, types: TypeTable) { override fun readPropertyExtensions(v: KmPropertyVisitor, proto: ProtoBuf.Property, c: ReadContext) {
val ext = v.visitExtensions(JvmPropertyExtensionVisitor.TYPE) as? JvmPropertyExtensionVisitor ?: return val ext = v.visitExtensions(JvmPropertyExtensionVisitor.TYPE) as? JvmPropertyExtensionVisitor ?: return
val fieldSignature = JvmProtoBufUtil.getJvmFieldSignature(proto, strings, types) val fieldSignature = JvmProtoBufUtil.getJvmFieldSignature(proto, c.strings, c.types)
val propertySignature = proto.getExtensionOrNull(JvmProtoBuf.propertySignature) val propertySignature = proto.getExtensionOrNull(JvmProtoBuf.propertySignature)
val getterSignature = val getterSignature =
if (propertySignature != null && propertySignature.hasGetter()) propertySignature.getter else null if (propertySignature != null && propertySignature.hasGetter()) propertySignature.getter else null
@@ -48,69 +47,67 @@ internal class JvmMetadataExtensions : MetadataExtensions {
if (propertySignature != null && propertySignature.hasSetter()) propertySignature.setter else null if (propertySignature != null && propertySignature.hasSetter()) propertySignature.setter else null
ext.visit( ext.visit(
fieldSignature?.wrapAsPublic(), fieldSignature?.wrapAsPublic(),
getterSignature?.run { JvmMethodSignature(strings.getString(name), strings.getString(desc)) }, getterSignature?.run { JvmMethodSignature(c[name], c[desc]) },
setterSignature?.run { JvmMethodSignature(strings.getString(name), strings.getString(desc)) } setterSignature?.run { JvmMethodSignature(c[name], c[desc]) }
) )
val syntheticMethod = val syntheticMethod =
if (propertySignature != null && propertySignature.hasSyntheticMethod()) propertySignature.syntheticMethod else null if (propertySignature != null && propertySignature.hasSyntheticMethod()) propertySignature.syntheticMethod else null
ext.visitSyntheticMethodForAnnotations(syntheticMethod?.run { JvmMethodSignature(strings.getString(name), strings.getString(desc)) }) ext.visitSyntheticMethodForAnnotations(syntheticMethod?.run { JvmMethodSignature(c[name], c[desc]) })
ext.visitEnd() ext.visitEnd()
} }
override fun readConstructorExtensions(v: KmConstructorVisitor, proto: ProtoBuf.Constructor, strings: NameResolver, types: TypeTable) { override fun readConstructorExtensions(v: KmConstructorVisitor, proto: ProtoBuf.Constructor, c: ReadContext) {
val ext = v.visitExtensions(JvmConstructorExtensionVisitor.TYPE) as? JvmConstructorExtensionVisitor ?: return val ext = v.visitExtensions(JvmConstructorExtensionVisitor.TYPE) as? JvmConstructorExtensionVisitor ?: return
ext.visit(JvmProtoBufUtil.getJvmConstructorSignature(proto, strings, types)?.wrapAsPublic()) ext.visit(JvmProtoBufUtil.getJvmConstructorSignature(proto, c.strings, c.types)?.wrapAsPublic())
} }
override fun readTypeParameterExtensions(v: KmTypeParameterVisitor, proto: ProtoBuf.TypeParameter, strings: NameResolver) { override fun readTypeParameterExtensions(v: KmTypeParameterVisitor, proto: ProtoBuf.TypeParameter, c: ReadContext) {
val ext = v.visitExtensions(JvmTypeParameterExtensionVisitor.TYPE) as? JvmTypeParameterExtensionVisitor ?: return val ext = v.visitExtensions(JvmTypeParameterExtensionVisitor.TYPE) as? JvmTypeParameterExtensionVisitor ?: return
for (annotation in proto.getExtension(JvmProtoBuf.typeParameterAnnotation)) { for (annotation in proto.getExtension(JvmProtoBuf.typeParameterAnnotation)) {
ext.visitAnnotation(annotation.readAnnotation(strings)) ext.visitAnnotation(annotation.readAnnotation(c.strings))
} }
ext.visitEnd() ext.visitEnd()
} }
override fun readTypeExtensions(v: KmTypeVisitor, proto: ProtoBuf.Type, strings: NameResolver) { override fun readTypeExtensions(v: KmTypeVisitor, proto: ProtoBuf.Type, c: ReadContext) {
val ext = v.visitExtensions(JvmTypeExtensionVisitor.TYPE) as? JvmTypeExtensionVisitor ?: return val ext = v.visitExtensions(JvmTypeExtensionVisitor.TYPE) as? JvmTypeExtensionVisitor ?: return
ext.visit(proto.getExtension(JvmProtoBuf.isRaw)) ext.visit(proto.getExtension(JvmProtoBuf.isRaw))
for (annotation in proto.getExtension(JvmProtoBuf.typeAnnotation)) { for (annotation in proto.getExtension(JvmProtoBuf.typeAnnotation)) {
ext.visitAnnotation(annotation.readAnnotation(strings)) ext.visitAnnotation(annotation.readAnnotation(c.strings))
} }
ext.visitEnd() ext.visitEnd()
} }
override fun writeClassExtensions( override fun writeClassExtensions(type: KmExtensionType, proto: ProtoBuf.Class.Builder, c: WriteContext): KmClassExtensionVisitor? {
type: KmExtensionType, proto: ProtoBuf.Class.Builder, strings: StringTable
): KmClassExtensionVisitor? {
if (type != JvmClassExtensionVisitor.TYPE) return null if (type != JvmClassExtensionVisitor.TYPE) return null
return object : JvmClassExtensionVisitor() { return object : JvmClassExtensionVisitor() {
override fun visitAnonymousObjectOriginName(internalName: String) { override fun visitAnonymousObjectOriginName(internalName: String) {
proto.setExtension(JvmProtoBuf.anonymousObjectOriginName, strings.getStringIndex(internalName)) proto.setExtension(JvmProtoBuf.anonymousObjectOriginName, c[internalName])
} }
} }
} }
override fun writeFunctionExtensions( override fun writeFunctionExtensions(
type: KmExtensionType, proto: ProtoBuf.Function.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.Function.Builder, c: WriteContext
): KmFunctionExtensionVisitor? { ): KmFunctionExtensionVisitor? {
if (type != JvmFunctionExtensionVisitor.TYPE) return null if (type != JvmFunctionExtensionVisitor.TYPE) return null
return object : JvmFunctionExtensionVisitor() { return object : JvmFunctionExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) { override fun visit(desc: JvmMethodSignature?) {
if (desc != null) { if (desc != null) {
proto.setExtension(JvmProtoBuf.methodSignature, desc.toJvmMethodSignature(strings)) proto.setExtension(JvmProtoBuf.methodSignature, desc.toJvmMethodSignature(c))
} }
} }
override fun visitLambdaClassOriginName(internalName: String) { override fun visitLambdaClassOriginName(internalName: String) {
proto.setExtension(JvmProtoBuf.lambdaClassOriginName, strings.getStringIndex(internalName)) proto.setExtension(JvmProtoBuf.lambdaClassOriginName, c[internalName])
} }
} }
} }
override fun writePropertyExtensions( override fun writePropertyExtensions(
type: KmExtensionType, proto: ProtoBuf.Property.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.Property.Builder, c: WriteContext
): KmPropertyExtensionVisitor? { ): KmPropertyExtensionVisitor? {
if (type != JvmPropertyExtensionVisitor.TYPE) return null if (type != JvmPropertyExtensionVisitor.TYPE) return null
return object : JvmPropertyExtensionVisitor() { return object : JvmPropertyExtensionVisitor() {
@@ -125,15 +122,15 @@ internal class JvmMetadataExtensions : MetadataExtensions {
signature!!.apply { signature!!.apply {
if (fieldDesc != null) { if (fieldDesc != null) {
field = JvmProtoBuf.JvmFieldSignature.newBuilder().also { field -> field = JvmProtoBuf.JvmFieldSignature.newBuilder().also { field ->
field.name = strings.getStringIndex(fieldDesc.name) field.name = c[fieldDesc.name]
field.desc = strings.getStringIndex(fieldDesc.desc) field.desc = c[fieldDesc.desc]
}.build() }.build()
} }
if (getterDesc != null) { if (getterDesc != null) {
getter = getterDesc.toJvmMethodSignature(strings) getter = getterDesc.toJvmMethodSignature(c)
} }
if (setterDesc != null) { if (setterDesc != null) {
setter = setterDesc.toJvmMethodSignature(strings) setter = setterDesc.toJvmMethodSignature(c)
} }
} }
} }
@@ -145,7 +142,7 @@ internal class JvmMetadataExtensions : MetadataExtensions {
signature = JvmProtoBuf.JvmPropertySignature.newBuilder() signature = JvmProtoBuf.JvmPropertySignature.newBuilder()
} }
signature!!.syntheticMethod = desc.toJvmMethodSignature(strings) signature!!.syntheticMethod = desc.toJvmMethodSignature(c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -157,30 +154,30 @@ internal class JvmMetadataExtensions : MetadataExtensions {
} }
override fun writeConstructorExtensions( override fun writeConstructorExtensions(
type: KmExtensionType, proto: ProtoBuf.Constructor.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.Constructor.Builder, c: WriteContext
): KmConstructorExtensionVisitor? { ): KmConstructorExtensionVisitor? {
if (type != JvmConstructorExtensionVisitor.TYPE) return null if (type != JvmConstructorExtensionVisitor.TYPE) return null
return object : JvmConstructorExtensionVisitor() { return object : JvmConstructorExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) { override fun visit(desc: JvmMethodSignature?) {
if (desc != null) { if (desc != null) {
proto.setExtension(JvmProtoBuf.constructorSignature, desc.toJvmMethodSignature(strings)) proto.setExtension(JvmProtoBuf.constructorSignature, desc.toJvmMethodSignature(c))
} }
} }
} }
} }
override fun writeTypeParameterExtensions( override fun writeTypeParameterExtensions(
type: KmExtensionType, proto: ProtoBuf.TypeParameter.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.TypeParameter.Builder, c: WriteContext
): KmTypeParameterExtensionVisitor? { ): KmTypeParameterExtensionVisitor? {
if (type != JvmTypeParameterExtensionVisitor.TYPE) return null if (type != JvmTypeParameterExtensionVisitor.TYPE) return null
return object : JvmTypeParameterExtensionVisitor() { return object : JvmTypeParameterExtensionVisitor() {
override fun visitAnnotation(annotation: KmAnnotation) { override fun visitAnnotation(annotation: KmAnnotation) {
proto.addExtension(JvmProtoBuf.typeParameterAnnotation, annotation.writeAnnotation(strings).build()) proto.addExtension(JvmProtoBuf.typeParameterAnnotation, annotation.writeAnnotation(c.strings).build())
} }
} }
} }
override fun writeTypeExtensions(type: KmExtensionType, proto: ProtoBuf.Type.Builder, strings: StringTable): KmTypeExtensionVisitor? { override fun writeTypeExtensions(type: KmExtensionType, proto: ProtoBuf.Type.Builder, c: WriteContext): KmTypeExtensionVisitor? {
if (type != JvmTypeExtensionVisitor.TYPE) return null if (type != JvmTypeExtensionVisitor.TYPE) return null
return object : JvmTypeExtensionVisitor() { return object : JvmTypeExtensionVisitor() {
override fun visit(isRaw: Boolean) { override fun visit(isRaw: Boolean) {
@@ -190,14 +187,14 @@ internal class JvmMetadataExtensions : MetadataExtensions {
} }
override fun visitAnnotation(annotation: KmAnnotation) { override fun visitAnnotation(annotation: KmAnnotation) {
proto.addExtension(JvmProtoBuf.typeAnnotation, annotation.writeAnnotation(strings).build()) proto.addExtension(JvmProtoBuf.typeAnnotation, annotation.writeAnnotation(c.strings).build())
} }
} }
} }
private fun JvmMemberSignature.toJvmMethodSignature(strings: StringTable): JvmProtoBuf.JvmMethodSignature = private fun JvmMemberSignature.toJvmMethodSignature(c: WriteContext): JvmProtoBuf.JvmMethodSignature =
JvmProtoBuf.JvmMethodSignature.newBuilder().apply { JvmProtoBuf.JvmMethodSignature.newBuilder().apply {
name = strings.getStringIndex(this@toJvmMethodSignature.name) name = c[this@toJvmMethodSignature.name]
desc = strings.getStringIndex(this@toJvmMethodSignature.desc) desc = c[this@toJvmMethodSignature.desc]
}.build() }.build()
} }
@@ -6,40 +6,39 @@
package kotlinx.metadata.impl.extensions package kotlinx.metadata.impl.extensions
import kotlinx.metadata.* import kotlinx.metadata.*
import kotlinx.metadata.impl.ReadContext
import kotlinx.metadata.impl.WriteContext
import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
import org.jetbrains.kotlin.metadata.deserialization.TypeTable
import org.jetbrains.kotlin.metadata.serialization.StringTable
import java.util.* import java.util.*
interface MetadataExtensions { interface MetadataExtensions {
fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, strings: NameResolver, types: TypeTable) fun readClassExtensions(v: KmClassVisitor, proto: ProtoBuf.Class, c: ReadContext)
fun readFunctionExtensions(v: KmFunctionVisitor, proto: ProtoBuf.Function, strings: NameResolver, types: TypeTable) fun readFunctionExtensions(v: KmFunctionVisitor, proto: ProtoBuf.Function, c: ReadContext)
fun readPropertyExtensions(v: KmPropertyVisitor, proto: ProtoBuf.Property, strings: NameResolver, types: TypeTable) fun readPropertyExtensions(v: KmPropertyVisitor, proto: ProtoBuf.Property, c: ReadContext)
fun readConstructorExtensions(v: KmConstructorVisitor, proto: ProtoBuf.Constructor, strings: NameResolver, types: TypeTable) fun readConstructorExtensions(v: KmConstructorVisitor, proto: ProtoBuf.Constructor, c: ReadContext)
fun readTypeParameterExtensions(v: KmTypeParameterVisitor, proto: ProtoBuf.TypeParameter, strings: NameResolver) fun readTypeParameterExtensions(v: KmTypeParameterVisitor, proto: ProtoBuf.TypeParameter, c: ReadContext)
fun readTypeExtensions(v: KmTypeVisitor, proto: ProtoBuf.Type, strings: NameResolver) fun readTypeExtensions(v: KmTypeVisitor, proto: ProtoBuf.Type, c: ReadContext)
fun writeClassExtensions(type: KmExtensionType, proto: ProtoBuf.Class.Builder, strings: StringTable): KmClassExtensionVisitor? fun writeClassExtensions(type: KmExtensionType, proto: ProtoBuf.Class.Builder, c: WriteContext): KmClassExtensionVisitor?
fun writeFunctionExtensions(type: KmExtensionType, proto: ProtoBuf.Function.Builder, strings: StringTable): KmFunctionExtensionVisitor? fun writeFunctionExtensions(type: KmExtensionType, proto: ProtoBuf.Function.Builder, c: WriteContext): KmFunctionExtensionVisitor?
fun writePropertyExtensions(type: KmExtensionType, proto: ProtoBuf.Property.Builder, strings: StringTable): KmPropertyExtensionVisitor? fun writePropertyExtensions(type: KmExtensionType, proto: ProtoBuf.Property.Builder, c: WriteContext): KmPropertyExtensionVisitor?
fun writeConstructorExtensions( fun writeConstructorExtensions(
type: KmExtensionType, proto: ProtoBuf.Constructor.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.Constructor.Builder, c: WriteContext
): KmConstructorExtensionVisitor? ): KmConstructorExtensionVisitor?
fun writeTypeParameterExtensions( fun writeTypeParameterExtensions(
type: KmExtensionType, proto: ProtoBuf.TypeParameter.Builder, strings: StringTable type: KmExtensionType, proto: ProtoBuf.TypeParameter.Builder, c: WriteContext
): KmTypeParameterExtensionVisitor? ): KmTypeParameterExtensionVisitor?
fun writeTypeExtensions(type: KmExtensionType, proto: ProtoBuf.Type.Builder, strings: StringTable): KmTypeExtensionVisitor? fun writeTypeExtensions(type: KmExtensionType, proto: ProtoBuf.Type.Builder, c: WriteContext): KmTypeExtensionVisitor?
companion object { companion object {
val INSTANCES: List<MetadataExtensions> by lazy { val INSTANCES: List<MetadataExtensions> by lazy {
@@ -13,8 +13,8 @@ import org.jetbrains.kotlin.protobuf.MessageLite
import org.jetbrains.kotlin.metadata.deserialization.Flags as F import org.jetbrains.kotlin.metadata.deserialization.Flags as F
class ReadContext( class ReadContext(
internal val strings: NameResolver, val strings: NameResolver,
internal val types: TypeTable, val types: TypeTable,
internal val versionRequirements: VersionRequirementTable, internal val versionRequirements: VersionRequirementTable,
private val parent: ReadContext? = null private val parent: ReadContext? = null
) { ) {
@@ -82,7 +82,7 @@ fun ProtoBuf.Class.accept(v: KmClassVisitor, strings: NameResolver) {
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readClassExtensions(v, this, c.strings, c.types) extension.readClassExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -142,7 +142,7 @@ private fun ProtoBuf.Constructor.accept(v: KmConstructorVisitor, c: ReadContext)
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readConstructorExtensions(v, this, c.strings, c.types) extension.readConstructorExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -176,7 +176,7 @@ private fun ProtoBuf.Function.accept(v: KmFunctionVisitor, outer: ReadContext) {
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readFunctionExtensions(v, this, c.strings, c.types) extension.readFunctionExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -207,7 +207,7 @@ private fun ProtoBuf.Property.accept(v: KmPropertyVisitor, outer: ReadContext) {
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readPropertyExtensions(v, this, c.strings, c.types) extension.readPropertyExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -270,7 +270,7 @@ private fun ProtoBuf.TypeParameter.accept(v: KmTypeParameterVisitor, c: ReadCont
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readTypeParameterExtensions(v, this, c.strings) extension.readTypeParameterExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -324,7 +324,7 @@ private fun ProtoBuf.Type.accept(v: KmTypeVisitor, c: ReadContext) {
} }
for (extension in c.extensions) { for (extension in c.extensions) {
extension.readTypeExtensions(v, this, c.strings) extension.readTypeExtensions(v, this, c)
} }
v.visitEnd() v.visitEnd()
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTabl
import org.jetbrains.kotlin.metadata.serialization.StringTable import org.jetbrains.kotlin.metadata.serialization.StringTable
class WriteContext(val strings: StringTable) { class WriteContext(val strings: StringTable) {
internal val extensions = MetadataExtensions.INSTANCES private val extensions = MetadataExtensions.INSTANCES
val versionRequirements: MutableVersionRequirementTable = MutableVersionRequirementTable() val versionRequirements: MutableVersionRequirementTable = MutableVersionRequirementTable()
operator fun get(string: String): Int = operator fun get(string: String): Int =
@@ -47,7 +47,7 @@ private fun writeTypeParameter(
override fun visitExtensions(type: KmExtensionType): KmTypeParameterExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmTypeParameterExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writeTypeParameterExtensions(type, t, c.strings) writeTypeParameterExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -116,7 +116,7 @@ private fun writeType(c: WriteContext, flags: Flags, output: (ProtoBuf.Type.Buil
override fun visitExtensions(type: KmExtensionType): KmTypeExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmTypeExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writeTypeExtensions(type, t, c.strings) writeTypeExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -143,7 +143,7 @@ private fun writeConstructor(c: WriteContext, flags: Flags, output: (ProtoBuf.Co
override fun visitExtensions(type: KmExtensionType): KmConstructorExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmConstructorExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writeConstructorExtensions(type, t, c.strings) writeConstructorExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -178,7 +178,7 @@ private fun writeFunction(c: WriteContext, flags: Flags, name: String, output: (
override fun visitExtensions(type: KmExtensionType): KmFunctionExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmFunctionExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writeFunctionExtensions(type, t, c.strings) writeFunctionExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -212,7 +212,7 @@ private fun writeProperty(
override fun visitExtensions(type: KmExtensionType): KmPropertyExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmPropertyExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writePropertyExtensions(type, t, c.strings) writePropertyExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {
@@ -457,7 +457,7 @@ open class ClassWriter(stringTable: StringTable) : KmClassVisitor() {
override fun visitExtensions(type: KmExtensionType): KmClassExtensionVisitor? = override fun visitExtensions(type: KmExtensionType): KmClassExtensionVisitor? =
c.applySingleExtension(type) { c.applySingleExtension(type) {
writeClassExtensions(type, t, c.strings) writeClassExtensions(type, t, c)
} }
override fun visitEnd() { override fun visitEnd() {