[compiler] Fix refs lint false positive for props.ref forwarding#36463
Open
yudin-s wants to merge 1 commit into
Open
[compiler] Fix refs lint false positive for props.ref forwarding#36463yudin-s wants to merge 1 commit into
yudin-s wants to merge 1 commit into
Conversation
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.
Summary
Fixes a false positive in the refs validation used by
eslint-plugin-react-hookswhere forwardingprops.refthrough JSX could cause siblingprops.*reads to be treated as ref accesses.The ref validation temporary sidemap now keeps ref-typed property loads such as
props.refas their declared ref type instead of aliasing them back to the containing object. This preserves diagnostics for directprops.ref.currentupdates while allowing ordinary sibling prop reads in JSX.Adds a compiler fixture covering JSX forwarding of
props.refalongside sibling props.Fixes #34775
Related: #36416 appears to address the same class of issue; this PR keeps the narrower regression case isolated.
Recreated from #36462 after signing the Meta CLA.
How did you test this change?
corepack yarn prettier --check packages/babel-plugin-react-compiler/src/Validation/ValidateNoRefAccessInRender.ts packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-props-property-access-after-ref-prop.tsxnode ../snap/dist/main.js test --worker-threads false --pattern allow-props-property-access-after-ref-propshowed1 Tests, 1 Passed, 0 Failedbefore the local snap runner shutdown errorFarm is ended, no more calls can be done to itnode ../snap/dist/main.js test --worker-threads false --pattern error.invalid-write-ref-prop-in-rendershowed1 Tests, 1 Passed, 0 Failedbefore the same local snap runner shutdown error