-
Notifications
You must be signed in to change notification settings - Fork 15
merlin overrides use interval tree instead of list #173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
liam923
requested changes
Aug 7, 2025
liam923
requested changes
Aug 7, 2025
liam923
approved these changes
Aug 7, 2025
Contributor
|
I'll hit merge once CI passes. Poke me if I forget (I probably will) |
liam923
added a commit
that referenced
this pull request
Aug 15, 2025
* merlin document support for PPXs (#167) * initial working with tests * temp update * temp * major refactors, add support for .mli files * refactoring and cleanup * move all logic into override_document.ml; cleanup code; add logging * add many more tests; handle edge cases * revert std.ml changes * improve comments * update more comments * suggested changes * test nested ppx * document payload test * some more tests * resolve final comments * add test on floating attribute * add test for attribute in an extension's payload * Fix function syntax * merlin overrides: merlin locate support for PPXs (#171) * merlin document support for PPXs (#167) * initial working with tests * temp update * temp * major refactors, add support for .mli files * refactoring and cleanup * move all logic into override_document.ml; cleanup code; add logging * add many more tests; handle edge cases * revert std.ml changes * improve comments * update more comments * suggested changes * test nested ppx * document payload test * some more tests * resolve final comments * add test on floating attribute * add test for attribute in an extension's payload * Fix function syntax * working parsing of new merlin.document structure * fix document tests with new merlin.document structure * replicate merlin.document tests for merlin.locate * generalize comments, code for all overrides * delete duplicate files from merge conflict * add test overriding locate of a non-PPX * add test on overriding default behavior of document * format * combine document and locate tests into single file * adjust for new attribute structure * update comment documenting expected attribute structure * fix typo * remove named parameter * merlin locate outputs absolute paths using source_root --------- Co-authored-by: Liam Stevenson <lstevenson@janestreet.com> * merlin overrides use interval tree instead of list (#173) * interval tree interface * interval tree implementation and basic test * use array for construction, add more tests * add and update comments * fix error messages, validate inputs * use list instead of array, add tests, add comments * integrate into overrides.ml * add test for empty tree * resolve requested changes * add test for zero-width interval * undo test reformat * update outdated comment * update another oudated comment * update comment * Cache overrides interval trees using Phase_cache (#176) * implementation but failing tests * working overrides caching with tests * add USE_PPX_CACHE, add all cache entries to tests * update comments * use Option.map * move comment * fix overrides caching mechanism, functorize caches, add cache invalidation test * add comments, rename * cleanup test output, and resolve other comments * remove unnecessary sed commands from tests * add commentsg --------- Co-authored-by: Max Wang <orangemax888@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements interval tree and refactors overrides to use this new data structure. The chosen interval tree design is based off of this description.
Testing
Added unit tests for invalid inputs and common happy path cases.
Testing story can possibly be improved with more edge case testing.