fix: attempt to improve package rename checks (#1997)

This commit is contained in:
Skylot
2023-09-09 20:16:57 +01:00
parent 45a637f33b
commit e358476c71
3 changed files with 5 additions and 5 deletions
@@ -79,7 +79,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
public void changePkg(String aliasPkg) {
if (isInner()) {
throw new JadxRuntimeException("Can't change package for inner class");
throw new JadxRuntimeException("Can't change package for inner class: " + this);
}
if (!Objects.equals(getAliasPkg(), aliasPkg)) {
ClassAliasInfo newAlias = new ClassAliasInfo(aliasPkg, getAliasShortName());
@@ -582,7 +582,7 @@ public class ClassNode extends NotificationAttrNode
clsInfo.changeShortName(newName);
return;
}
if (isInner()) {
if (clsInfo.isInner()) {
addWarn("Can't change package for inner class: " + this + " to " + newName);
return;
}
@@ -598,7 +598,7 @@ public class ClassNode extends NotificationAttrNode
private boolean changeClassNodePackage(String fullPkg) {
if (clsInfo.isInner()) {
throw new JadxRuntimeException("Can't change package for inner class");
throw new JadxRuntimeException("Can't change package for inner class: " + clsInfo);
}
if (fullPkg.equals(clsInfo.getAliasPkg())) {
return false;
@@ -618,7 +618,7 @@ public class ClassNode extends NotificationAttrNode
@Override
public void onParentPackageUpdate(PackageNode updatedPkg) {
if (isInner()) {
if (clsInfo.isInner()) {
return;
}
clsInfo.changePkg(packageNode.getAliasPkgInfo().getFullName());
@@ -313,7 +313,7 @@ public class RootNode {
}
classes.forEach(ClassNode::updateParentClass);
for (PackageNode pkg : packages) {
pkg.getClasses().removeIf(ClassNode::isInner);
pkg.getClasses().removeIf(cls -> cls.getClassInfo().isInner());
}
}