mirror of
https://github.com/fankes/unmeta-gradle-plugin.git
synced 2025-09-04 01:55:16 +08:00
feat: add SourceDebugExtension, Metadata visit in UnmetaClassVisitor
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user