Your decompiler has a bug. The real code doesn’t check a == b, it checks (Object)a == (Object)b, bypassing the overloaded operator.
Your decompiler has a bug. The real code doesn’t check a == b, it checks (Object)a == (Object)b, bypassing the overloaded operator.