feat: add SourceDebugExtension, Metadata visit in UnmetaClassVisitor

This commit is contained in:
2024-07-07 02:15:29 +08:00
parent 0cb7216285
commit cd919ce2a6
2 changed files with 9 additions and 3 deletions

View File

@@ -11,13 +11,19 @@ class UnmetaClassVisitor(
var isModified = false
private set
var modifiedClassName = ""
private set
override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor? {
return when (descriptor) {
"Lkotlin/coroutines/jvm/internal/DebugMetadata;" -> {
"Lkotlin/coroutines/jvm/internal/DebugMetadata;",
"Lkotlin/jvm/internal/SourceDebugExtension;",
"Lkotlin/Metadata;",
-> {
isModified = true
modifiedClassName = descriptor.removeSuffix(";").split("/").last()
null
}
else -> super.visitAnnotation(descriptor, visible)
}
}

View File

@@ -90,7 +90,7 @@ abstract class UnmetaTask : DefaultTask() {
classReader.accept(unmetaClassVisitor, ClassReader.SKIP_DEBUG)
if (unmetaClassVisitor.isModified) {
++modifiedFiles
log("- Removed @DebugMetadata annotation from ${it.toRelativeString(basePath)}")
log("- Removed @${unmetaClassVisitor.modifiedClassName} annotation from ${it.toRelativeString(basePath)}")
it.writeBytes(classWriter.toByteArray())
}
} catch (e: UnsupportedOperationException) {