LT-22353: Change Hermit Crab to allow merge and split rules#374
Merged
jtmaxwell3 merged 7 commits intomasterfrom Jan 20, 2026
Merged
LT-22353: Change Hermit Crab to allow merge and split rules#374jtmaxwell3 merged 7 commits intomasterfrom
jtmaxwell3 merged 7 commits intomasterfrom
Conversation
ddaspit
approved these changes
Jan 20, 2026
Contributor
ddaspit
left a comment
There was a problem hiding this comment.
@ddaspit reviewed 4 files and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on @jtmaxwell3).
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #374 +/- ##
==========================================
+ Coverage 72.61% 72.67% +0.06%
==========================================
Files 423 423
Lines 35992 36009 +17
Branches 4965 4965
==========================================
+ Hits 26134 26169 +35
+ Misses 8760 8745 -15
+ Partials 1098 1095 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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
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.
This fixes https://jira.sil.org/browse/LT-22353. We want to add merge rules (2 -> 1) and split rules (1 -> 2) in the phonology. It turns out that NarrowAnalysisRewriteRuleSpec implemented merge rules, but the code had never been tested and there was a bug when the right hand side had anything in it. I added unit tests and fixed the bug. It also turned out that NarrowAnalysisRewriteRuleSpec worked for expanding as well as narrowing, so I added unit tests for expanding and code to use NarrowAnalysisRewriteRuleSpec in this case. There is no need to test for an infinite loop (see EpenthesisSynthesisRewriteSubruleSpec) when expanding since a rule cannot apply to its own output.
This change is