Thanks for pointing me to the tests. Attached is an updated patch with the added test cases and the range tests all pass. On 11.01.2024 21:56, Stefan Kangas wrote: > Zachary Romero writes: > >> Hello Emacs maintainers, >> >> I was using the range package when I encountered a bug in the >> implementation of range-intersection. The bug seems to occur when the >> ranges involve a mix of integers and cons pairs. The following are >> some >> cases where the current implementation fails to compute the correct >> intersection: >> >> (range-intersection '((1 . 10) 11) '((11 . 12))) >> ;; Expects (11), returns nil >> >> (range-intersection '(11 (13 . 15)) '((13 . 15))) >> ;; Expects (13 . 15), returns nil >> >> (range-intersection '(1 11 13 15) '((1 . 2) (10 . 20))) >> ;; Expects (1 11 13 15), returns (1) >> >> >> I also refactored this function using pcase to try to make the steps >> of >> the algorithm more understandable. >> >> Let me know you thoughts and if there's any further changes I should >> make. > > Thanks for the patch. Could you please add tests for this as well? > See the file range-tests.el. > > Did you check that the existing tests all still pass?