breaking‑change‑radar.

cases / react-19-render

react-19-render

react-dom 18.2.0 19.0.0

React 19 removed the legacy ReactDOM.render entry point in favour of createRoot from react-dom/client.

npm fixture evals/fixtures/react-19-render
grep-baseline
2 right 2 wrong
<0.1s · $0.00
agent · deepseek-v4-flash-free
2 right 0 wrong
31.2s · $0.00

What each detector said

One row per (file, symbol) site — the unit the scorer compares on. Ground truth comes from the case's hand-written labels.

4 sites · 2 where a detector is wrong
  1. not broken src/components/Chart.jsx :render grep-baseline flagged agent · deepseek-v4-flash-free silent

    A class component's own render() method. Survives React 19 untouched.

    3 matched lines · reasoning
       3  // A class component's own render() method. Same identifier, unrelated to
       4  // ReactDOM.render, and completely unaffected by the React 19 removal.
       6  render() {
    grep-baseline conf 0.50

    'ReactDOM.render' is named in the release notes and appears in 8 place(s) in this repo. No check was made that these are real call sites.

  2. not broken src/utils/template.js :render grep-baseline flagged agent · deepseek-v4-flash-free silent

    A local string-templating helper. Unrelated to React.

    2 matched lines · reasoning
       1  // A local helper that happens to be called render. Nothing to do with React.
       2  export function render(template, data) {
    grep-baseline conf 0.50

    'ReactDOM.render' is named in the release notes and appears in 8 place(s) in this repo. No check was made that these are real call sites.

  3. breaks src/index.jsx :render grep-baseline flagged agent · deepseek-v4-flash-free flagged

    Direct ReactDOM.render call.

    1 matched line · reasoning
       6  ReactDOM.render(<App />, container);
    grep-baseline conf 0.50

    'ReactDOM.render' is named in the release notes and appears in 8 place(s) in this repo. No check was made that these are real call sites.

  4. breaks src/legacy/mount.js :render grep-baseline flagged agent · deepseek-v4-flash-free flagged

    Aliased import (`import RD from 'react-dom'`), so the dotted name never appears. Still a real call site.

    2 matched lines · reasoning
       4  // Aliased import — the dotted name `ReactDOM.render` never appears here, but
       7  RD.render(LegacyWidget(props), el);
    grep-baseline conf 0.50

    'ReactDOM.render' is named in the release notes and appears in 8 place(s) in this repo. No check was made that these are real call sites.