Commit 20a452e
fix(lint): lintLivenessProperties skips malformed collection items instead of throwing (#11734)
The docblock's own contract — "Advisory only — returns findings, never
throws" — was not held by three walks: the flat TYPE_COLLECTIONS loop, the
object walk, and the field walk nested under it. Each read `item.name` (or
`item.object`) off every collection element with no record guard, so a null
element threw TypeError instead of being skipped. The translation bundle
walk already guarded its two levels this way (#11383); this adds the same
`isRecord()` guard to the three that did not.
Measured before the fix: all three walks throw on a null element, not just
the flat loop the card's suggested shape named. Three new regression tests
(one per guarded walk) reverse-verified red against the unguarded source.
Co-authored-by: Claude <noreply@anthropic.com>1 parent ee7a016 commit 20a452e
3 files changed
Lines changed: 65 additions & 0 deletions
File tree
- .changeset
- packages/lint/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
758 | 803 | | |
759 | 804 | | |
760 | 805 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
358 | 361 | | |
359 | 362 | | |
360 | 363 | | |
361 | 364 | | |
| 365 | + | |
362 | 366 | | |
363 | 367 | | |
364 | 368 | | |
| |||
402 | 406 | | |
403 | 407 | | |
404 | 408 | | |
| 409 | + | |
| 410 | + | |
405 | 411 | | |
406 | 412 | | |
407 | 413 | | |
| |||
0 commit comments