There is a bug currently with the method (and potentially even field) renamer which, at a bit more complex (not really) hierarchies breaks VIA name collision (more prominent with aggressive overloading set to true).
This was tested on a ~3mb snake game jar (attached below alongside all of the libraries).
The collisions happen in 2 or 3 classes. One of them is org.apache.logging.log4j.util.SortedArrayStringMap, which has name collisions with methods isEmpty()Z and isFrozen()Z.
I have tried multiple solutions to try and tackle this issue, but to no avail. I even wrote code which detected name collisions before renaming, yet it still decided to collide names. isEmpty and isFrozen both get remapped to a. Combine that with matching descriptors and you get a ClassFormatError thrown.
I personally think the issue lies in the hierarchy/how methods get mapped/win names from methods who already have these methods mapped. In the latest commit, I have added a DuplicateMethodCheckTransformer in the test package which checks every class for duplicate methods. Use that after method renaming.
JAR and libs are in this ZIP file:
snake.zip

There is a bug currently with the method (and potentially even field) renamer which, at a bit more complex (not really) hierarchies breaks VIA name collision (more prominent with aggressive overloading set to
true).This was tested on a ~3mb snake game jar (attached below alongside all of the libraries).
The collisions happen in 2 or 3 classes. One of them is
org.apache.logging.log4j.util.SortedArrayStringMap, which has name collisions with methodsisEmpty()ZandisFrozen()Z.I have tried multiple solutions to try and tackle this issue, but to no avail. I even wrote code which detected name collisions before renaming, yet it still decided to collide names.
isEmptyandisFrozenboth get remapped toa. Combine that with matching descriptors and you get a ClassFormatError thrown.I personally think the issue lies in the hierarchy/how methods get mapped/win names from methods who already have these methods mapped. In the latest commit, I have added a
DuplicateMethodCheckTransformerin the test package which checks every class for duplicate methods. Use that after method renaming.JAR and libs are in this ZIP file:
snake.zip