Repository navigation
Commit 10209f8
committed
fix(leases): fold every member of a Unicode range in write scopes
Class membership compared only the candidate's own case variants against a
range, so a general interval missed both alias shapes it had to cover.
`[ρ-ς]` did not cover `Σ`: the variants of Σ are Σ and σ, and neither is a
member, although Σ and the member ς are the same file. `[ß-à]` dropped `SS`
because a multi-character candidate was skipped before the range was checked.
Walk the range's code points and compare each member's canonical fold with
the candidate's. That keeps the original interval and gives both shapes the
same symmetric comparison single-character members already had, so `[ρ-ς]`
covers `Σ` and `[ß-à]` consumes `SS` as ß. A one-element range is covered by
the same path.
Negated classes keep excluding exactly one consumed character, so `[!ß]S.ts`
still continues into `SS.ts`, while `[!ρ-ς]` now excludes `Σ` instead of
admitting it as an uncovered path. An interval too wide to walk falls back to
the candidate's own case variants.
Signed-off-by: JasonBuildAI <jasonbuildai@gmail.com>1 parent 09f9bf3 commit 10209f8
2 files changed
Lines changed: 37 additions & 8 deletions
File tree
- loopx/control_plane/work_items
- tests/control_plane_ts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
220 | 236 | | |
221 | 237 | | |
222 | 238 | | |
223 | 239 | | |
224 | | - | |
| 240 | + | |
| 241 | + | |
225 | 242 | | |
226 | 243 | | |
227 | 244 | | |
| |||
230 | 247 | | |
231 | 248 | | |
232 | 249 | | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
237 | 263 | | |
238 | 264 | | |
239 | | - | |
240 | | - | |
241 | | - | |
| 265 | + | |
| 266 | + | |
242 | 267 | | |
243 | 268 | | |
244 | 269 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
319 | 322 | | |
320 | 323 | | |
321 | 324 | | |
| |||
325 | 328 | | |
326 | 329 | | |
327 | 330 | | |
| 331 | + | |
328 | 332 | | |
329 | 333 | | |
330 | 334 | | |
| |||
0 commit comments