On Thu, 18 May 2023 23:58:28 GMT, John Hendrikx <[email protected]> wrote:
>> The class `PseudoClassState` is private API, but was exposed erroneously in >> the CSS API. Instead, `Set<PseudoClass>` should have been used. This PR >> corrects this. > > John Hendrikx has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 11 additional > commits since the last revision: > > - Merge branch 'openjdk:master' into feature/remove-private-api-in-css > - Override hashCode with a comment explaining why > - Fix style issues > - Restore removed public method > - Fix PseudoClassTest > - Add missing null check > - Fix tests, don't call addAll with null > - Remove unused methods > - Fix build by pulling in partial fix for BitSet class > - Ensure Set PseudoClass and StyleClass are immutable in CSS API > > Updated documentation, fixed warnings and removed some unnecessary code > - ... and 1 more: https://git.openjdk.org/jfx/compare/de7bf3da...80ff9992 I will still fix it so it isn't worse than it was before, but I just found another reason why you shouldn't use `getClass() == other.getClass()` when dealing with sets: @Test void twoEmptyBitSetsShouldBeEqual() { /* * Per Set contract, the empty set is equal to any other empty set. */ assertEquals(new StyleClassSet(), new PseudoClassState()); assertEquals(new PseudoClassState(), new StyleClassSet()); assertEquals(Set.of(), new PseudoClassState()); assertEquals(new PseudoClassState(), Set.of()); assertEquals(Set.of(), new StyleClassSet()); assertEquals(new StyleClassSet(), Set.of()); } I will leave that for #1076 (where this test is coming from). I'm only adding a test to verify the fix I'm adding here, and was seeing what I can use before writing new ones. The above test passes though because it will back to `super.equals(obj)` in that case. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1070#issuecomment-1553807939
