I tried the patch but the error still occurred. However, the patch did give me some clues as to where to start investigating, and I think I found a second cause: at the top of ComparableConstant.java, InvokeDynamic and MethodHandle are both assigned priority=10. I think this causes them to sort inconsistently (see line 116). I changed MethodHandle's priority to 17 and my codebase now builds successfully with ProGuard.
I tried the patch but the error still occurred. However, the patch did give me some clues as to where to start investigating, and I think I found a second cause: at the top of ComparableConstant.java, InvokeDynamic and MethodHandle are both assigned priority=10. I think this causes them to sort inconsistently. I changed MethodHandle's priority to 17 and my codebase now builds successfully with ProGuard.
Hi Eric. Do you have an approximate timeline for 6.1beta3 and 6.1 GA? Thanks!
Thanks Eric. The codebase that demonstrated this definitely has static arrays of doubles with non-finite values.
ConstantPoolSorter.visitProgramClass: "Comparison method violates its general contract" (6.1.0beta2)