fix: check if synthetic class not yet processed but must be removed (#450)
This commit is contained in:
@@ -47,10 +47,7 @@ public class ClassModifier extends AbstractVisitor {
|
||||
for (ClassNode inner : cls.getInnerClasses()) {
|
||||
visit(inner);
|
||||
}
|
||||
if (cls.getAccessFlags().isSynthetic()
|
||||
&& cls.getFields().isEmpty()
|
||||
&& cls.getMethods().isEmpty()
|
||||
&& cls.getInnerClasses().isEmpty()) {
|
||||
if (isEmptySyntheticClass(cls)) {
|
||||
cls.add(AFlag.DONT_GENERATE);
|
||||
return false;
|
||||
}
|
||||
@@ -62,6 +59,13 @@ public class ClassModifier extends AbstractVisitor {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isEmptySyntheticClass(ClassNode cls) {
|
||||
return cls.getAccessFlags().isSynthetic()
|
||||
&& cls.getFields().isEmpty()
|
||||
&& cls.getMethods().isEmpty()
|
||||
&& cls.getInnerClasses().isEmpty();
|
||||
}
|
||||
|
||||
private void markAnonymousClass(ClassNode cls) {
|
||||
if (cls.isAnonymous()) {
|
||||
cls.add(AFlag.ANONYMOUS_CLASS);
|
||||
@@ -173,7 +177,7 @@ public class ClassModifier extends AbstractVisitor {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (argCls.contains(AFlag.DONT_GENERATE)) {
|
||||
if (argCls.contains(AFlag.DONT_GENERATE) || isEmptySyntheticClass(argCls)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user