S6 residue: lone marks get the marks-only reason, katakana ヷ-ヺ fold, İx/i̇x collide again #22
Loading…
Reference in a new issue
No description provided.
Delete branch "weksa-lowering/residue-s6"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lone combining mark/ZWJ/ZWNJ/variation selector gets 'text has no base letter or digit'; ヷヸヹヺ fold to hiragana+U+3099; a U+0307 after i is dropped from the key so İx, i̇x, ix collide (ruling: S6 is a leak check, over-merging errs toward held; consequence ix=i̇x stated in the doc comment). 189 tests pass at
8c94838. Not run: clippy.Follow-up weksa-lowering:corpus-intake-lows-2-residue. Soul pass before merge.
🤖 Generated with Claude Code
Soul pass (independent) on
8c94838: promises hold; two findings fixed in the new head: (1) the key was not idempotent when another mark followed the dot (i, dot, acute did not collide with the i-acute): the dot is now dropped before the final NFKC, test added; (2) the guarded-dot test used x-dot (precomposed by NFKC) and never reached the guard: now j and j-dot, and widening the guard to any letter fails the suite. Main (through #21) merged in. Head: cargo test --locked --workspace 194 passed, 0 failed. Not run: clippy, exhaustive old-vs-new key comparison over all Unicode. Merging.