What's Changed
✨ New
react-x/refs: added render-reachability support for function declarations, IIFEs, synchronous array callbacks, and render-time callbacks passed touseMemoanduseReducer. (#1895)react-x/refs: added lazy-initialization support for explicitundefinedguards and for null guards enclosing additional nested conditions. (#1895)
🐞 Fixes
react-x/refs: reworked render-time call analysis as an unbounded fixed-point propagation, removing the previous 50-iteration cap. (#1895)react-x/refs: tightened inverted lazy-initialization handling so the non-null branch must unconditionally return or throw. (#1895)react-x/refs: stopped treating!ref.currentas a null guard because initialized refs may contain falsy values. (#1895)
🏗️ Internal
react-x/refs: refactored ref aliases, function bindings, JSX refs, and duplicate initialization tracking to use scoped ESLint variable identities and position-aware binding events instead of file-wide identifier names. (#1895)- Added behavior-boundary tests for
react-x/immutabilityand documented them in the spec diff report. - Updated build scripts.
- Bumped
@effect/language-serviceto^0.86.5. - Bumped
preactto^10.29.7. - Bumped
viteto^8.1.4in example apps. - Bumped
dprintJSON plugin to^0.23.0.
Full Changelog: v5.13.2...v5.14.0
Attestation
https://github.com/Rel1cx/eslint-react/attestations/34773545