Rename "desc" parameters in kotlinx-metadata-jvm to "signature"

This commit is contained in:
Alexander Udalov
2019-05-06 17:58:14 +02:00
parent 4e15b95d17
commit fe52f5fc7c
6 changed files with 97 additions and 91 deletions
@@ -3,6 +3,7 @@
## 0.0.6
- [`KT-31308`](https://youtrack.jetbrains.com/issue/KT-31308) Add module name extensions to kotlinx-metadata-jvm
- Rename `desc` parameters to `signature` in JvmFunctionExtensionVisitor, JvmPropertyExtensionVisitor, JvmConstructorExtensionVisitor
## 0.0.5
@@ -148,9 +148,9 @@ internal class JvmMetadataExtensions : MetadataExtensions {
): KmFunctionExtensionVisitor? {
if (type != JvmFunctionExtensionVisitor.TYPE) return null
return object : JvmFunctionExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
if (desc != null) {
proto.setExtension(JvmProtoBuf.methodSignature, desc.toJvmMethodSignature(c))
override fun visit(signature: JvmMethodSignature?) {
if (signature != null) {
proto.setExtension(JvmProtoBuf.methodSignature, signature.toJvmMethodSignature(c))
}
}
@@ -167,36 +167,38 @@ internal class JvmMetadataExtensions : MetadataExtensions {
return object : JvmPropertyExtensionVisitor() {
var signature: JvmProtoBuf.JvmPropertySignature.Builder? = null
override fun visit(fieldDesc: JvmFieldSignature?, getterDesc: JvmMethodSignature?, setterDesc: JvmMethodSignature?) {
if (fieldDesc == null && getterDesc == null && setterDesc == null) return
override fun visit(
fieldSignature: JvmFieldSignature?, getterSignature: JvmMethodSignature?, setterSignature: JvmMethodSignature?
) {
if (fieldSignature == null && getterSignature == null && setterSignature == null) return
if (signature == null) {
signature = JvmProtoBuf.JvmPropertySignature.newBuilder()
}
signature!!.apply {
if (fieldDesc != null) {
if (fieldSignature != null) {
field = JvmProtoBuf.JvmFieldSignature.newBuilder().also { field ->
field.name = c[fieldDesc.name]
field.desc = c[fieldDesc.desc]
field.name = c[fieldSignature.name]
field.desc = c[fieldSignature.desc]
}.build()
}
if (getterDesc != null) {
getter = getterDesc.toJvmMethodSignature(c)
if (getterSignature != null) {
getter = getterSignature.toJvmMethodSignature(c)
}
if (setterDesc != null) {
setter = setterDesc.toJvmMethodSignature(c)
if (setterSignature != null) {
setter = setterSignature.toJvmMethodSignature(c)
}
}
}
override fun visitSyntheticMethodForAnnotations(desc: JvmMethodSignature?) {
if (desc == null) return
override fun visitSyntheticMethodForAnnotations(signature: JvmMethodSignature?) {
if (signature == null) return
if (signature == null) {
signature = JvmProtoBuf.JvmPropertySignature.newBuilder()
if (this.signature == null) {
this.signature = JvmProtoBuf.JvmPropertySignature.newBuilder()
}
signature!!.syntheticMethod = desc.toJvmMethodSignature(c)
this.signature!!.syntheticMethod = signature.toJvmMethodSignature(c)
}
override fun visitEnd() {
@@ -212,9 +214,9 @@ internal class JvmMetadataExtensions : MetadataExtensions {
): KmConstructorExtensionVisitor? {
if (type != JvmConstructorExtensionVisitor.TYPE) return null
return object : JvmConstructorExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
if (desc != null) {
proto.setExtension(JvmProtoBuf.constructorSignature, desc.toJvmMethodSignature(c))
override fun visit(signature: JvmMethodSignature?) {
if (signature != null) {
proto.setExtension(JvmProtoBuf.constructorSignature, signature.toJvmMethodSignature(c))
}
}
}
@@ -115,10 +115,10 @@ open class JvmFunctionExtensionVisitor @JvmOverloads constructor(
*
* Example: `JvmMethodSignature("equals", "(Ljava/lang/Object;)Z")`
*
* @param desc the signature of the function
* @param signature the signature of the function
*/
open fun visit(desc: JvmMethodSignature?) {
delegate?.visit(desc)
open fun visit(signature: JvmMethodSignature?) {
delegate?.visit(signature)
}
/**
@@ -156,19 +156,17 @@ open class JvmPropertyExtensionVisitor @JvmOverloads constructor(
/**
* Visits JVM signatures of field and accessors generated for the property.
*
* @param fieldDesc the name and the type of the field in the JVM-based format, or `null` if this property has no field.
* Example: `JvmFieldSignature("X", "Ljava/lang/Object;")`
* @param fieldSignature the signature of the field, or `null` if this property has no field.
* Example: `JvmFieldSignature("X", "Ljava/lang/Object;")`
*
* @param getterDesc the signature of the property getter in the JVM-based format,
* or `null` if this property has no getter or its signature is unknown.
* Example: `JvmMethodSignature("getX()", "Ljava/lang/Object;")`
* @param getterSignature the signature of the property getter, or `null` if this property has no getter or its signature is unknown.
* Example: `JvmMethodSignature("getX()", "Ljava/lang/Object;")`
*
* @param setterDesc the signature of the property setter in the JVM-based format,
* or `null` if this property has no setter or its signature is unknown
* Example: `JvmMethodSignature("setX", "(Ljava/lang/Object;)V")`,
* @param setterSignature the signature of the property setter, or `null` if this property has no setter or its signature is unknown.
* Example: `JvmMethodSignature("setX", "(Ljava/lang/Object;)V")`
*/
open fun visit(fieldDesc: JvmFieldSignature?, getterDesc: JvmMethodSignature?, setterDesc: JvmMethodSignature?) {
delegate?.visit(fieldDesc, getterDesc, setterDesc)
open fun visit(fieldSignature: JvmFieldSignature?, getterSignature: JvmMethodSignature?, setterSignature: JvmMethodSignature?) {
delegate?.visit(fieldSignature, getterSignature, setterSignature)
}
/**
@@ -176,10 +174,10 @@ open class JvmPropertyExtensionVisitor @JvmOverloads constructor(
*
* Example: `JvmMethodSignature("getX$annotations", "()V")`
*
* @param desc the signature of the synthetic method
* @param signature the signature of the synthetic method
*/
open fun visitSyntheticMethodForAnnotations(desc: JvmMethodSignature?) {
delegate?.visitSyntheticMethodForAnnotations(desc)
open fun visitSyntheticMethodForAnnotations(signature: JvmMethodSignature?) {
delegate?.visitSyntheticMethodForAnnotations(signature)
}
/**
@@ -207,15 +205,14 @@ open class JvmConstructorExtensionVisitor @JvmOverloads constructor(
private val delegate: JvmConstructorExtensionVisitor? = null
) : KmConstructorExtensionVisitor {
/**
* Visits the JVM signature of the constructor in the JVM-based format,
* or null if the JVM signature of this constructor is unknown.
* Visits the JVM signature of the constructor, or null if the JVM signature of this constructor is unknown.
*
* Example: `JvmMethodSignature("<init>", "(Ljava/lang/Object;)V")`
*
* @param desc the signature of the constructor
* @param signature the signature of the constructor
*/
open fun visit(desc: JvmMethodSignature?) {
delegate?.visit(desc)
open fun visit(signature: JvmMethodSignature?) {
delegate?.visit(signature)
}
companion object {
@@ -41,9 +41,9 @@ class MetadataSmokeTest {
if (type != JvmFunctionExtensionVisitor.TYPE) return null
return object : JvmFunctionExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
if (Flag.Function.IS_INLINE(flags) && desc != null) {
inlineFunctions += desc.asString()
override fun visit(signature: JvmMethodSignature?) {
if (Flag.Function.IS_INLINE(flags) && signature != null) {
inlineFunctions += signature.asString()
}
}
}
@@ -48,18 +48,19 @@ private fun Flags.toVisibility() = VISIBILITY_FLAGS_MAP.entries.firstOrNull { (m
private fun visitFunction(flags: Flags, name: String, addMember: (MemberVisibility) -> Unit) =
object : KmFunctionVisitor() {
var jvmDesc: JvmMemberSignature? = null
var desc: JvmMemberSignature? = null
override fun visitExtensions(type: KmExtensionType): KmFunctionExtensionVisitor? {
if (type != JvmFunctionExtensionVisitor.TYPE) return null
return object : JvmFunctionExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
jvmDesc = desc
override fun visit(signature: JvmMethodSignature?) {
desc = signature
}
}
}
override fun visitEnd() {
jvmDesc?.let { jvmDesc ->
desc?.let { jvmDesc ->
addMember(MemberVisibility(jvmDesc, flags))
}
}
@@ -67,18 +68,19 @@ private fun visitFunction(flags: Flags, name: String, addMember: (MemberVisibili
private fun visitConstructor(flags: Flags, addMember: (MemberVisibility) -> Unit) =
object : KmConstructorVisitor() {
var jvmDesc: JvmMemberSignature? = null
var desc: JvmMemberSignature? = null
override fun visitExtensions(type: KmExtensionType): KmConstructorExtensionVisitor? {
if (type != JvmConstructorExtensionVisitor.TYPE) return null
return object : JvmConstructorExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
jvmDesc = desc
override fun visit(signature: JvmMethodSignature?) {
desc = signature
}
}
}
override fun visitEnd() {
jvmDesc?.let { signature ->
desc?.let { signature ->
addMember(MemberVisibility(signature, flags))
}
}
@@ -86,28 +88,30 @@ private fun visitConstructor(flags: Flags, addMember: (MemberVisibility) -> Unit
private fun visitProperty(flags: Flags, name: String, getterFlags: Flags, setterFlags: Flags, addMember: (MemberVisibility) -> Unit) =
object : KmPropertyVisitor() {
var _fieldDesc: JvmMemberSignature? = null
var _getterDesc: JvmMemberSignature? = null
var _setterDesc: JvmMemberSignature? = null
var fieldDesc: JvmMemberSignature? = null
var getterDesc: JvmMemberSignature? = null
var setterDesc: JvmMemberSignature? = null
override fun visitExtensions(type: KmExtensionType): KmPropertyExtensionVisitor? {
if (type != JvmPropertyExtensionVisitor.TYPE) return null
return object : JvmPropertyExtensionVisitor() {
override fun visit(fieldDesc: JvmFieldSignature?, getterDesc: JvmMethodSignature?, setterDesc: JvmMethodSignature?) {
_fieldDesc = fieldDesc
_getterDesc = getterDesc
_setterDesc = setterDesc
override fun visit(
fieldSignature: JvmFieldSignature?, getterSignature: JvmMethodSignature?, setterSignature: JvmMethodSignature?
) {
fieldDesc = fieldSignature
getterDesc = getterSignature
setterDesc = setterSignature
}
}
}
override fun visitEnd() {
_getterDesc?.let { addMember(MemberVisibility(it, getterFlags)) }
_setterDesc?.let { addMember(MemberVisibility(it, setterFlags)) }
_fieldDesc?.let {
getterDesc?.let { addMember(MemberVisibility(it, getterFlags)) }
setterDesc?.let { addMember(MemberVisibility(it, setterFlags)) }
fieldDesc?.let {
val fieldVisibility = when {
Flag.Property.IS_LATEINIT(flags) -> setterFlags
_getterDesc == null && _setterDesc == null -> flags // JvmField or const case
getterDesc == null && setterDesc == null -> flags // JvmField or const case
else -> flagsOf(Flag.IS_PRIVATE)
}
addMember(MemberVisibility(it, fieldVisibility))
@@ -19,7 +19,7 @@ private fun visitFunction(settings: KotlinpSettings, sb: StringBuilder, flags: F
var receiverParameterType: String? = null
var returnType: String? = null
val versionRequirements = mutableListOf<String>()
var jvmDesc: JvmMemberSignature? = null
var jvmSignature: JvmMemberSignature? = null
var lambdaClassOriginName: String? = null
override fun visitReceiverParameterType(flags: Flags): KmTypeVisitor? =
@@ -42,8 +42,8 @@ private fun visitFunction(settings: KotlinpSettings, sb: StringBuilder, flags: F
override fun visitExtensions(type: KmExtensionType): KmFunctionExtensionVisitor? {
if (type != JvmFunctionExtensionVisitor.TYPE) return null
return object : JvmFunctionExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
jvmDesc = desc
override fun visit(signature: JvmMethodSignature?) {
jvmSignature = signature
}
override fun visitLambdaClassOriginName(internalName: String) {
@@ -60,8 +60,8 @@ private fun visitFunction(settings: KotlinpSettings, sb: StringBuilder, flags: F
for (versionRequirement in versionRequirements) {
sb.appendln(" // $versionRequirement")
}
if (jvmDesc != null) {
sb.appendln(" // signature: $jvmDesc")
if (jvmSignature != null) {
sb.appendln(" // signature: $jvmSignature")
}
sb.append(" ")
sb.appendFlags(flags, FUNCTION_FLAGS_MAP)
@@ -91,10 +91,10 @@ private fun visitProperty(
var returnType: String? = null
var setterParameter: String? = null
val versionRequirements = mutableListOf<String>()
var jvmFieldDesc: JvmMemberSignature? = null
var jvmGetterDesc: JvmMemberSignature? = null
var jvmSetterDesc: JvmMemberSignature? = null
var jvmSyntheticMethodForAnnotationsDesc: JvmMemberSignature? = null
var jvmFieldSignature: JvmMemberSignature? = null
var jvmGetterSignature: JvmMemberSignature? = null
var jvmSetterSignature: JvmMemberSignature? = null
var jvmSyntheticMethodForAnnotationsSignature: JvmMemberSignature? = null
override fun visitReceiverParameterType(flags: Flags): KmTypeVisitor? =
printType(flags) { receiverParameterType = it }
@@ -114,14 +114,16 @@ private fun visitProperty(
override fun visitExtensions(type: KmExtensionType): KmPropertyExtensionVisitor? {
if (type != JvmPropertyExtensionVisitor.TYPE) return null
return object : JvmPropertyExtensionVisitor() {
override fun visit(fieldDesc: JvmFieldSignature?, getterDesc: JvmMethodSignature?, setterDesc: JvmMethodSignature?) {
jvmFieldDesc = fieldDesc
jvmGetterDesc = getterDesc
jvmSetterDesc = setterDesc
override fun visit(
fieldSignature: JvmFieldSignature?, getterSignature: JvmMethodSignature?, setterSignature: JvmMethodSignature?
) {
jvmFieldSignature = fieldSignature
jvmGetterSignature = getterSignature
jvmSetterSignature = setterSignature
}
override fun visitSyntheticMethodForAnnotations(desc: JvmMethodSignature?) {
jvmSyntheticMethodForAnnotationsDesc = desc
override fun visitSyntheticMethodForAnnotations(signature: JvmMethodSignature?) {
jvmSyntheticMethodForAnnotationsSignature = signature
}
}
}
@@ -131,17 +133,17 @@ private fun visitProperty(
for (versionRequirement in versionRequirements) {
sb.appendln(" // $versionRequirement")
}
if (jvmFieldDesc != null) {
sb.appendln(" // field: $jvmFieldDesc")
if (jvmFieldSignature != null) {
sb.appendln(" // field: $jvmFieldSignature")
}
if (jvmGetterDesc != null) {
sb.appendln(" // getter: $jvmGetterDesc")
if (jvmGetterSignature != null) {
sb.appendln(" // getter: $jvmGetterSignature")
}
if (jvmSetterDesc != null) {
sb.appendln(" // setter: $jvmSetterDesc")
if (jvmSetterSignature != null) {
sb.appendln(" // setter: $jvmSetterSignature")
}
if (jvmSyntheticMethodForAnnotationsDesc != null) {
sb.appendln(" // synthetic method for annotations: $jvmSyntheticMethodForAnnotationsDesc")
if (jvmSyntheticMethodForAnnotationsSignature != null) {
sb.appendln(" // synthetic method for annotations: $jvmSyntheticMethodForAnnotationsSignature")
}
sb.append(" ")
sb.appendFlags(flags, PROPERTY_FLAGS_MAP)
@@ -182,7 +184,7 @@ private fun visitConstructor(sb: StringBuilder, flags: Flags): KmConstructorVisi
object : KmConstructorVisitor() {
val params = mutableListOf<String>()
val versionRequirements = mutableListOf<String>()
var jvmDesc: JvmMemberSignature? = null
var jvmSignature: JvmMemberSignature? = null
override fun visitValueParameter(flags: Flags, name: String): KmValueParameterVisitor? =
printValueParameter(flags, name) { params.add(it) }
@@ -193,8 +195,8 @@ private fun visitConstructor(sb: StringBuilder, flags: Flags): KmConstructorVisi
override fun visitExtensions(type: KmExtensionType): KmConstructorExtensionVisitor? {
if (type != JvmConstructorExtensionVisitor.TYPE) return null
return object : JvmConstructorExtensionVisitor() {
override fun visit(desc: JvmMethodSignature?) {
jvmDesc = desc
override fun visit(signature: JvmMethodSignature?) {
jvmSignature = signature
}
}
}
@@ -204,8 +206,8 @@ private fun visitConstructor(sb: StringBuilder, flags: Flags): KmConstructorVisi
for (versionRequirement in versionRequirements) {
sb.appendln(" // $versionRequirement")
}
if (jvmDesc != null) {
sb.appendln(" // signature: $jvmDesc")
if (jvmSignature != null) {
sb.appendln(" // signature: $jvmSignature")
}
sb.append(" ")
sb.appendFlags(flags, CONSTRUCTOR_FLAGS_MAP)