[compiler] Only inline SSR state whose setter is no longer read #37865

Open
mattcarrollcode opened 10:17pm on October 15, 2026 wants to merge 2 commits into facebook/react main from
compiler-ssr-keep-referenced-setters

Pull request #37865 quality checks

Code files and functions touched by this pull request are analyzed below.

Quality targets

How does this pull request compare to chosen code quality targets? Read more about code quality targets.

Target name Target value This PR
Maximum Diff Delta per PR 500 0
Maximum comment count per PR 10 0
Pull request maximum business days between activity 3 21
Pull request maximum business days open 5 21

Coupled files

Are there any files from this commit that are always committed alongside another file? This often suggests that there exists code coupling to potentially remove. Read more about code coupling

No file coupling detected. 🎉

Biggest files changes in pull request

Path View whole file Lines removed Lines added Final line count
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-dispatch-passed-to-child.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-use-reducer-initializer-kept-after-other-state-inlined.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-keeps-other-state.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-inlines-constant-state.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-dispatch-passed-to-child.expect.md 0 0 ---
compiler/crates/react_compiler_optimization/src/dead_code_elimination.rs 0 0 ---
compiler/crates/react_compiler_optimization/src/optimize_for_ssr.rs 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-keeps-reducer-initializer.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-keeps-reducer-initializer.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-returned-from-custom-hook.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/docs/passes/05-deadCodeElimination.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-passed-to-child.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/docs/passes/35-optimizeForSSR.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-returned-from-custom-hook.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-use-reducer-initializer-state-only-read-by-effect.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-in-context-value.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-passed-to-child.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setter-in-context-value.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setstate-during-render.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-use-reducer-initializer-state-only-read-by-effect.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/Optimization/DeadCodeElimination.ts 0 0 436
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-inline-state-setter-only-in-removed-props.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-inline-state-setter-only-in-removed-props.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/Optimization/OptimizeForSSR.ts 0 0 393
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-in-custom-hook-keeps-state.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-use-reducer-initializer-kept-after-other-state-inlined.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-inlines-constant-state.js 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-keeps-other-state.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-render-phase-update-in-custom-hook-keeps-state.expect.md 0 0 ---
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/ssr/ssr-setstate-during-render.expect.md 0 0 ---

️ Biggest functions grown or shrunk by pull request

Which functions had their line count change as part of this pull request?

Could not find any functions changed by this pull request.