mirror of
https://github.com/fankes/unmeta-gradle-plugin.git
synced 2025-09-05 18:45:17 +08:00
feat: add SourceDebugExtension, Metadata visit in UnmetaClassVisitor
This commit is contained in:
@@ -11,13 +11,19 @@ class UnmetaClassVisitor(
|
|||||||
var isModified = false
|
var isModified = false
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
var modifiedClassName = ""
|
||||||
|
private set
|
||||||
|
|
||||||
override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor? {
|
override fun visitAnnotation(descriptor: String?, visible: Boolean): AnnotationVisitor? {
|
||||||
return when (descriptor) {
|
return when (descriptor) {
|
||||||
"Lkotlin/coroutines/jvm/internal/DebugMetadata;" -> {
|
"Lkotlin/coroutines/jvm/internal/DebugMetadata;",
|
||||||
|
"Lkotlin/jvm/internal/SourceDebugExtension;",
|
||||||
|
"Lkotlin/Metadata;",
|
||||||
|
-> {
|
||||||
isModified = true
|
isModified = true
|
||||||
|
modifiedClassName = descriptor.removeSuffix(";").split("/").last()
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> super.visitAnnotation(descriptor, visible)
|
else -> super.visitAnnotation(descriptor, visible)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -90,7 +90,7 @@ abstract class UnmetaTask : DefaultTask() {
|
|||||||
classReader.accept(unmetaClassVisitor, ClassReader.SKIP_DEBUG)
|
classReader.accept(unmetaClassVisitor, ClassReader.SKIP_DEBUG)
|
||||||
if (unmetaClassVisitor.isModified) {
|
if (unmetaClassVisitor.isModified) {
|
||||||
++modifiedFiles
|
++modifiedFiles
|
||||||
log("- Removed @DebugMetadata annotation from ${it.toRelativeString(basePath)}")
|
log("- Removed @${unmetaClassVisitor.modifiedClassName} annotation from ${it.toRelativeString(basePath)}")
|
||||||
it.writeBytes(classWriter.toByteArray())
|
it.writeBytes(classWriter.toByteArray())
|
||||||
}
|
}
|
||||||
} catch (e: UnsupportedOperationException) {
|
} catch (e: UnsupportedOperationException) {
|
||||||
|
Reference in New Issue
Block a user