fix: attempt to improve package rename checks (#1997)
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user