fix: resolve class/package name conflicts on case-insensitive filesystems (PR #2828)
* Fix: resolve class/package name conflicts on case-insensitive filesystems **RenameVisitor** - Added package-level conflict detection for case-insensitive filesystems: when two packages differ only by case (e.g. com.Example vs com.example), rename the conflicting one and loop until the new name is also unique - Added class-level conflict detection (same pattern): when two classes in the same package differ only by case (e.g. Sink vs sink), rename the conflicting one to prevent file overwrite on Windows export **Tests** - Added TestCaseSensitivePkgChecks: verifies package rename when packages differ only by case; fixed smali data (2.smali changed Bar→Foo to create a genuine path conflict under case-insensitive FS) - Added TestCaseSensitiveClassInPkgChecks + smali fixtures: verifies class rename when two classes in a named package differ only by case (com.example.User vs com.example.user) * Apply suggestions from code review Co-authored-by: skylot <118523+skylot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: skylot <118523+skylot@users.noreply.github.com> --------- Co-authored-by: john <johnwsa@qq.com> Co-authored-by: skylot <118523+skylot@users.noreply.github.com>
J
John committed
b3d86ae908b647035af886d38a2159961f172ec7
Parent: 8b7d3f4
Committed by GitHub <noreply@github.com>
on 3/23/2026, 8:42:25 PM