From bded3cec2e69ed30f9341a693a2b3dd67eaa8ccc Mon Sep 17 00:00:00 2001 From: Carl Bergman <30546+carlbergman@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:52:29 +0100 Subject: [PATCH] [compiler] Add fixture for custom hook with use() not compiled Custom hooks whose only invocation is the `use()` function are skipped by the compiler. This fixture demonstrates the current (broken) output where `useMyContext` is not compiled. Ref #35960 --- .../compiler/use-operator-in-hook.expect.md | 43 +++++++++++++++++++ .../fixtures/compiler/use-operator-in-hook.js | 14 ++++++ 2 files changed, 57 insertions(+) create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.expect.md create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.js diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.expect.md new file mode 100644 index 000000000000..cdd5651cfade --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.expect.md @@ -0,0 +1,43 @@ + +## Input + +```javascript +// @compilationMode:"infer" @expectNothingCompiled +import {use} from 'react'; + +const MyContext = React.createContext(null); + +function useMyContext() { + const context = use(MyContext); + return [context]; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useMyContext, + params: [], +}; + +``` + +## Code + +```javascript +// @compilationMode:"infer" @expectNothingCompiled +import { use } from "react"; + +const MyContext = React.createContext(null); + +function useMyContext() { + const context = use(MyContext); + return [context]; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useMyContext, + params: [], +}; + +``` + +### Eval output +(kind: ok) [null] \ No newline at end of file diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.js b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.js new file mode 100644 index 000000000000..2874390928bd --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/use-operator-in-hook.js @@ -0,0 +1,14 @@ +// @compilationMode:"infer" @expectNothingCompiled +import {use} from 'react'; + +const MyContext = React.createContext(null); + +function useMyContext() { + const context = use(MyContext); + return [context]; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useMyContext, + params: [], +};