Removing extra atomicfu references from LVT for Kotlin 1.5.20
diff --git a/atomicfu-transformer/src/main/kotlin/kotlinx/atomicfu/transformer/AtomicFUTransformer.kt b/atomicfu-transformer/src/main/kotlin/kotlinx/atomicfu/transformer/AtomicFUTransformer.kt
index c7c262c..3f50f9a 100644
--- a/atomicfu-transformer/src/main/kotlin/kotlinx/atomicfu/transformer/AtomicFUTransformer.kt
+++ b/atomicfu-transformer/src/main/kotlin/kotlinx/atomicfu/transformer/AtomicFUTransformer.kt
@@ -715,11 +715,16 @@
i = i.next
hasErrors = true
}
+ // make sure all kotlinx/atomicfu references removed
+ removeAtomicReferencesFromLVT()
// save transformed method if not in analysis phase
if (!hasErrors && !analyzePhase2)
accept(mv)
}
+ private fun removeAtomicReferencesFromLVT() =
+ localVariables?.removeIf { getType(it.desc) in AFU_TYPES }
+
private fun FieldInsnNode.checkCopyToDelegate(): AbstractInsnNode? {
val fieldId = FieldId(owner, name, desc)
if (fieldId in fieldDelegates) {