From 2a7d2653e06c16c15c05d559fce5f63fdd50e3ac Mon Sep 17 00:00:00 2001 From: Algent Date: Wed, 2 Sep 2026 17:35:31 +0200 Subject: [PATCH] test: preserve ASM BitSet equality dispatch --- .../asm/ASMImplicitsCharacterizationTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/codechicken/multipart/asm/ASMImplicitsCharacterizationTest.java b/src/test/java/codechicken/multipart/asm/ASMImplicitsCharacterizationTest.java index 1ae9fd5..7f5633a 100644 --- a/src/test/java/codechicken/multipart/asm/ASMImplicitsCharacterizationTest.java +++ b/src/test/java/codechicken/multipart/asm/ASMImplicitsCharacterizationTest.java @@ -155,6 +155,9 @@ class ASMImplicitsCharacterizationTest { @Test void boxedValueClassesKeepValueEqualityAndNullHashFailures() { + TrackingBitSet shared = new TrackingBitSet(); + assertTrue(new ASMImplicits.ExtBitSet(shared).equals(new ASMImplicits.ExtBitSet(shared))); + assertEquals(1, shared.equalsCalls, "Even identical non-null values dispatch BitSet.equals"); BitSet value = bits(1, 65); ASMImplicits.ExtBitSet wrapper = new ASMImplicits.ExtBitSet(value); assertEquals(wrapper, new ASMImplicits.ExtBitSet(bits(1, 65))); @@ -225,6 +228,13 @@ class ASMImplicitsCharacterizationTest { private static class TrackingBitSet extends BitSet { private String calls = ""; + private int equalsCalls; + + @Override + public boolean equals(Object other) { + equalsCalls++; + return super.equals(other); + } @Override public void clear() {