Pass whole ReadContext/WriteContext to kotlinx-metadata extensions
This commit is contained in:
+38
-41
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-15
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user