Refactor: allow to distinguish whether JvmMemberSignature is for field or for method
Introduce a method to create org.jetbrains.kotlin.load.kotlin.MemberSignature directly from JvmMemberSignature. Create JvmFunctionSignature from JvmMemberSignature.
This commit is contained in:
@@ -12,7 +12,18 @@ package kotlinx.metadata.jvm
|
||||
* @property desc JVM descriptor of a method, e.g. `(Ljava/lang/Object;)Z`, or a field type, e.g. `Ljava/lang/String;`
|
||||
*/
|
||||
data class JvmMemberSignature(val name: String, val desc: String) {
|
||||
override fun toString() = name + desc
|
||||
|
||||
/**
|
||||
* Returns `true` when this signature represents a field.
|
||||
*/
|
||||
val isField: Boolean get() = desc.indexOf("(") < 0
|
||||
|
||||
/**
|
||||
* Returns `true` when this signature represents a method.
|
||||
*/
|
||||
val isMethod: Boolean get() = desc.indexOf("(") >= 0
|
||||
|
||||
override fun toString() = if (isField) name + ":" + desc else name + desc
|
||||
}
|
||||
|
||||
internal fun org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMemberSignature.wrapAsPublic() = JvmMemberSignature(name, desc)
|
||||
@@ -132,10 +132,7 @@ private fun visitProperty(
|
||||
sb.appendln(" // $versionRequirement")
|
||||
}
|
||||
if (jvmFieldDesc != null) {
|
||||
// TODO: support that case in jvmFieldDesc.toString()
|
||||
sb.append(" // field: ${jvmFieldDesc!!.name}")
|
||||
sb.append(":").append(jvmFieldDesc!!.desc)
|
||||
sb.appendln()
|
||||
sb.appendln(" // field: $jvmFieldDesc")
|
||||
}
|
||||
if (jvmGetterDesc != null) {
|
||||
sb.appendln(" // getter: $jvmGetterDesc")
|
||||
|
||||
Reference in New Issue
Block a user