From d70b2c2c4e85c2a7061214c15a8ff13167d10422 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Wed, 13 Mar 2024 22:20:56 -0700 Subject: [PATCH] Repro for unexpected label as value block terminal This was one of the last invariants firing internally, this PR adds a minimal repro and the next PR makes it a todo. --- ...error.todo-useMemo-with-optional.expect.md | 32 +++++++++++++++++++ .../error.todo-useMemo-with-optional.js | 7 ++++ 2 files changed, 39 insertions(+) create mode 100644 compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.expect.md create mode 100644 compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.js diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.expect.md b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.expect.md new file mode 100644 index 0000000000..ceb037506a --- /dev/null +++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.expect.md @@ -0,0 +1,32 @@ + +## Input + +```javascript +function Component(props) { + return ( + useMemo(() => { + return [props.value]; + }) || [] + ); +} + +``` + + +## Error + +``` + 1 | function Component(props) { + 2 | return ( +> 3 | useMemo(() => { + | ^^^^^^^^^^^^^^^ +> 4 | return [props.value]; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 5 | }) || [] + | ^^^^^^^^^^^^^ [ReactForget] Invariant: Unexpected value block terminal kind 'label' (3:5) + 6 | ); + 7 | } + 8 | +``` + + \ No newline at end of file diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.js b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.js new file mode 100644 index 0000000000..533e2c370f --- /dev/null +++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.todo-useMemo-with-optional.js @@ -0,0 +1,7 @@ +function Component(props) { + return ( + useMemo(() => { + return [props.value]; + }) || [] + ); +}