From cd919ce2a6ee7e67444de0e9d24d07529f637215 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sun, 7 Jul 2024 02:15:29 +0800 Subject: [PATCH] feat: add SourceDebugExtension, Metadata visit in UnmetaClassVisitor --- .../main/java/com/axzae/unmeta/UnmetaClassVisitor.kt | 10 ++++++++-- .../src/main/java/com/axzae/unmeta/UnmetaTask.kt | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaClassVisitor.kt b/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaClassVisitor.kt index 8e00caa..cb06ba6 100644 --- a/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaClassVisitor.kt +++ b/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaClassVisitor.kt @@ -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) } } diff --git a/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaTask.kt b/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaTask.kt index 9766e72..767e668 100644 --- a/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaTask.kt +++ b/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaTask.kt @@ -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) {