compiler: Improve ValidateNoRefAccessInRender to ignore access in effects
Improves ValidateNoRefAccessInRender (still disabled by default) to properly ignore ref access within effects. This includes allowing ref access within functions that are only transitively called from an effect. While I was here I also added some extra test fixtures for allowing global mutation in effects. ghstack-source-id: fb6352a1788b7bdbebb40d5b844b711ef87d6771 Pull Request resolved: https://github.com/facebook/react/pull/29151
Showing
- compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoRefAccesInRender.ts 26 additions, 15 deletions...act-compiler/src/Validation/ValidateNoRefAccesInRender.ts
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-in-effect-indirect-usecallback.expect.md 106 additions, 0 deletions...-global-mutation-in-effect-indirect-usecallback.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-in-effect-indirect-usecallback.js 25 additions, 0 deletions...r/allow-global-mutation-in-effect-indirect-usecallback.js
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-in-effect-indirect.expect.md 106 additions, 0 deletions...mpiler/allow-global-mutation-in-effect-indirect.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-in-effect-indirect.js 25 additions, 0 deletions...ures/compiler/allow-global-mutation-in-effect-indirect.js
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-unused-usecallback.expect.md 48 additions, 0 deletions...mpiler/allow-global-mutation-unused-usecallback.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-global-mutation-unused-usecallback.js 14 additions, 0 deletions...ures/compiler/allow-global-mutation-unused-usecallback.js
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-effect-indirect.expect.md 121 additions, 0 deletions...es/compiler/allow-ref-access-in-effect-indirect.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-effect-indirect.js 34 additions, 0 deletions.../fixtures/compiler/allow-ref-access-in-effect-indirect.js
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-effect.expect.md 103 additions, 0 deletions...__/fixtures/compiler/allow-ref-access-in-effect.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-effect.js 30 additions, 0 deletions...__tests__/fixtures/compiler/allow-ref-access-in-effect.js
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-unused-callback-nested.expect.md 104 additions, 0 deletions...iler/allow-ref-access-in-unused-callback-nested.expect.md
- compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/allow-ref-access-in-unused-callback-nested.js 32 additions, 0 deletions...es/compiler/allow-ref-access-in-unused-callback-nested.js
Please register or sign in to comment