Don't generate compatibility suffix twice for properties

This commit is contained in:
Mikhael Bogdanov
2018-05-28 16:22:54 +02:00
parent 60f2dbeb8a
commit 020573ef3c
2 changed files with 5 additions and 4 deletions
@@ -33,6 +33,8 @@ private fun CallableMemberDescriptor.getJvmName() =
fun getAccessorNameSuffix(
descriptor: CallableMemberDescriptor, superCallDescriptor: ClassDescriptor?, accessorKind: AccessorKind
): String {
if (accessorKind == AccessorKind.JVM_DEFAULT_COMPATIBILITY) return descriptor.getJvmName() + "$" + AccessorKind.JVM_DEFAULT_COMPATIBILITY.suffix
val suffix = when (descriptor) {
is ConstructorDescriptor ->
return "will be ignored"
@@ -43,6 +45,5 @@ fun getAccessorNameSuffix(
else ->
throw UnsupportedOperationException("Do not know how to create accessor for descriptor $descriptor")
}
if (accessorKind == AccessorKind.JVM_DEFAULT_COMPATIBILITY) return suffix + "$" + AccessorKind.JVM_DEFAULT_COMPATIBILITY.suffix
return if (superCallDescriptor == null) suffix else "$suffix\$s${superCallDescriptor.name.asString().hashCode()}"
}
@@ -15,15 +15,15 @@ interface Test {
}
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, access$getTest$jd$jd
// TESTED_OBJECTS: Test, access$getTest$jd
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, access$getTest2$jd$jd
// TESTED_OBJECTS: Test, access$getTest2$jd
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
// TESTED_OBJECT_KIND: function
// TESTED_OBJECTS: Test, access$setTest2$jd$jd
// TESTED_OBJECTS: Test, access$setTest2$jd
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC