From 6efd1f99d77e50ef26d94c411a1e0336a39b64ca Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Tue, 20 Jun 2023 15:16:55 -0700 Subject: [PATCH] Make function name a string not an identifier Fixes #1751. Function ids can be plain strings, and we can refer to them as globals rather than via a local identifier. In addition to the bug from $1751 this also cleans up an existing todo. --- .../src/HIR/BuildHIR.ts | 5 ++--- .../babel-plugin-react-forget/src/HIR/HIR.ts | 4 ++-- .../src/HIR/HIRBuilder.ts | 16 ++-------------- .../src/Inference/InferReferenceEffects.ts | 9 --------- .../ReactiveScopes/CodegenReactiveFunction.ts | 7 ++----- .../src/ReactiveScopes/PrintReactiveFunction.ts | 4 +--- .../ReactiveScopes/PropagateScopeDependencies.ts | 6 ------ .../src/ReactiveScopes/PruneNonEscapingScopes.ts | 3 --- .../src/ReactiveScopes/RenameVariables.ts | 3 --- .../compiler/array-pattern-params.expect.md | 4 ++-- .../babel-existing-react-import.expect.md | 8 ++++---- ...capturing-function-member-expr-call.expect.md | 4 ++-- .../destructuring-array-param-default.expect.md | 6 +++--- .../compiler/destructuring-assignment.expect.md | 16 ++++++++-------- ...pe-and-local-variables-with-default.expect.md | 4 ++-- ...mixed-scope-declarations-and-locals.expect.md | 4 ++-- .../destructuring-object-param-default.expect.md | 6 +++--- .../fixtures/compiler/destructuring.expect.md | 4 ++-- .../error.hoisted-function-declaration.expect.md | 2 +- ...or.invalid-access-ref-during-render.expect.md | 2 +- .../error.invalid-array-push-frozen.expect.md | 2 +- ...alid-computed-store-to-frozen-value.expect.md | 2 +- ...e-computed-property-of-frozen-value.expect.md | 2 +- ...lid-delete-property-of-frozen-value.expect.md | 2 +- ...-expression-mutates-immutable-value.expect.md | 2 +- ...invalid-mutate-after-aliased-freeze.expect.md | 2 +- .../error.invalid-mutate-after-freeze.expect.md | 2 +- .../error.invalid-pass-ref-to-function.expect.md | 2 +- ...alid-property-store-to-frozen-value.expect.md | 2 +- ...f-in-callback-invoked-during-render.expect.md | 2 +- .../error.invalid-ref-value-as-props.expect.md | 2 +- ...alid-set-and-read-ref-during-render.expect.md | 4 ++-- ...-ref-added-to-dep-without-type-info.expect.md | 2 +- ...rror.mutate-captured-arg-separately.expect.md | 2 +- ...-analysis-destructured-rest-element.expect.md | 8 ++++---- .../function-param-assignment-pattern.expect.md | 4 ++-- .../compiler/object-pattern-params.expect.md | 4 ++-- ...pect.md => recursive-function-expr.expect.md} | 9 +++++---- ...nction-expr.js => recursive-function-expr.js} | 0 ...-current-aliased-not-added-to-dep-2.expect.md | 4 ++-- .../ref-current-not-added-to-dep-2.expect.md | 4 ++-- .../remove-memoization-kitchen-sink.expect.md | 4 ++-- .../unused-object-element-with-rest.expect.md | 4 ++-- .../useMemo-if-else-multiple-return.expect.md | 8 ++++---- .../useMemo-independently-memoizeable.expect.md | 4 ++-- .../useMemo-inlining-block-return.expect.md | 8 ++++---- .../compiler/useMemo-inverted-if.expect.md | 8 ++++---- ...eled-statement-unconditional-return.expect.md | 4 ++-- .../fixtures/compiler/useMemo-logical.expect.md | 4 ++-- .../compiler/useMemo-multiple-if-else.expect.md | 12 ++++++------ .../fixtures/compiler/useMemo-simple.expect.md | 4 ++-- .../useMemo-switch-no-fallthrough.expect.md | 8 ++++---- .../compiler/useMemo-switch-return.expect.md | 8 ++++---- .../__tests__/ReactForgetDiagnostics-test.ts | 4 ++-- 54 files changed, 111 insertions(+), 149 deletions(-) rename compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/{error._bug.recursive-function-expr.expect.md => recursive-function-expr.expect.md} (51%) rename compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/{error._bug.recursive-function-expr.js => recursive-function-expr.js} (100%) diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/BuildHIR.ts b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/BuildHIR.ts index 358edf0855..a87a10bf61 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/BuildHIR.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/BuildHIR.ts @@ -23,7 +23,6 @@ import { GeneratedSource, GotoVariant, HIRFunction, - Identifier, IfTerminal, InstructionKind, InstructionValue, @@ -77,9 +76,9 @@ export function lower( // Internal babel is on an older version that does not have hasNode (v7.17) // See https://github.com/babel/babel/pull/13940/files for impl // TODO: write helper function for NodePath.node != null - let id: Identifier | null = null; + let id: string | null = null; if (func.isFunctionDeclaration() && func.get("id").node != null) { - id = builder.resolveIdentifier(func.get("id") as NodePath); + id = (func.get("id") as NodePath).node.name; } const params: Array = []; func.get("params").forEach((param) => { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIR.ts b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIR.ts index 05b80f1bd8..1b3a553f68 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIR.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIR.ts @@ -48,7 +48,7 @@ export type SourceLocation = t.SourceLocation | typeof GeneratedSource; */ export type ReactiveFunction = { loc: SourceLocation; - id: Identifier | null; + id: string | null; params: Array; generator: boolean; async: boolean; @@ -216,7 +216,7 @@ export type ReactiveLabelTerminal = { */ export type HIRFunction = { loc: SourceLocation; - id: Identifier | null; + id: string | null; env: Environment; params: Array; context: Array; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIRBuilder.ts b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIRBuilder.ts index bf3b2ec0a9..f231307407 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIRBuilder.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/HIR/HIRBuilder.ts @@ -171,23 +171,11 @@ export default class HIRBuilder { if (binding == null) { return null; } - // If the binding is from the parent function's outer scope, then - // we treat it equivalently to a global. - // - // TODO: remove the exception that resolves references to the - // parent function itself. We don't need to support self-recursion, - // so we can treat such references as globals. + // Check if the binding is from module scope, if so return null const outerBinding = this.parentFunction.scope.parent.getBinding(originalName); if (binding === outerBinding) { - const func = this.parentFunction; - const isParentFunctionReference = - func.isFunctionDeclaration() && - func.get("id").node != null && - func.get("id").node!.name === originalName; - if (!isParentFunctionReference) { - return null; - } + return null; } return binding; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/Inference/InferReferenceEffects.ts b/compiler/forget/packages/babel-plugin-react-forget/src/Inference/InferReferenceEffects.ts index 4aab1f122b..def729e796 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/Inference/InferReferenceEffects.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/Inference/InferReferenceEffects.ts @@ -96,15 +96,6 @@ export default function inferReferenceEffects( value: undefined, }; initialState.initialize(value, ValueKind.Frozen); - if (fn.id !== null) { - const id: Place = { - kind: "Identifier", - identifier: fn.id, - loc: fn.loc, - effect: Effect.Freeze, - }; - initialState.define(id, value); - } for (const ref of fn.context) { // TODO(gsn): This is a hack. diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/CodegenReactiveFunction.ts b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/CodegenReactiveFunction.ts index 257565715a..b8679e8b84 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/CodegenReactiveFunction.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/CodegenReactiveFunction.ts @@ -38,10 +38,7 @@ import { buildReactiveFunction } from "./BuildReactiveFunction"; export function codegenReactiveFunction( fn: ReactiveFunction ): Result { - const cx = new Context(fn.env, fn.id?.name ?? "[[ anonymous ]]"); - if (fn.id !== null) { - cx.temp.set(fn.id.id, null); - } + const cx = new Context(fn.env, fn.id ?? "[[ anonymous ]]"); for (const param of fn.params) { cx.temp.set(param.identifier.id, null); } @@ -77,7 +74,7 @@ export function codegenReactiveFunction( return Ok( createFunctionDeclaration( fn.loc, - fn.id !== null ? convertIdentifier(fn.id) : null, + fn.id !== null ? t.identifier(fn.id) : null, params, body, fn.generator, diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PrintReactiveFunction.ts b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PrintReactiveFunction.ts index c90aeca7ae..d230e7905e 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PrintReactiveFunction.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PrintReactiveFunction.ts @@ -24,9 +24,7 @@ import { assertExhaustive } from "../Utils/utils"; export function printReactiveFunction(fn: ReactiveFunction): string { const writer = new Writer(); - writer.writeLine( - `function ${fn.id !== null ? printIdentifier(fn.id) : ""}(` - ); + writer.writeLine(`function ${fn.id !== null ? fn.id : ""}(`); writer.indented(() => { for (const param of fn.params) { writer.writeLine(`${printPlace(param)},`); diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PropagateScopeDependencies.ts b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PropagateScopeDependencies.ts index 311ff3829e..3f6071c90b 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PropagateScopeDependencies.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PropagateScopeDependencies.ts @@ -49,12 +49,6 @@ export function propagateScopeDependencies(fn: ReactiveFunction): void { visitReactiveFunction(fn, new FindPromotedTemporaries(), escapingTemporaries); const context = new Context(escapingTemporaries.usedOutsideDeclaringScope); - if (fn.id !== null) { - context.declare(fn.id, { - id: makeInstructionId(0), - scope: empty(), - }); - } for (const param of fn.params) { context.declare(param.identifier, { id: makeInstructionId(0), diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PruneNonEscapingScopes.ts b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PruneNonEscapingScopes.ts index 0e467545c3..4b27332bc9 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PruneNonEscapingScopes.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/PruneNonEscapingScopes.ts @@ -117,9 +117,6 @@ export function pruneNonEscapingScopes( // First build up a map of which instructions are involved in creating which values, // and which values are returned. const state = new State(fn.env); - if (fn.id !== null) { - state.declare(fn.id.id); - } for (const param of fn.params) { state.declare(param.identifier.id); } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/RenameVariables.ts b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/RenameVariables.ts index bbdf7ab2e7..f0766a6bb1 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/RenameVariables.ts +++ b/compiler/forget/packages/babel-plugin-react-forget/src/ReactiveScopes/RenameVariables.ts @@ -33,9 +33,6 @@ import { export function renameVariables(fn: ReactiveFunction): void { const scopes = new Scopes(); scopes.enter(() => { - if (fn.id !== null) { - scopes.visit(fn.id); - } for (const param of fn.params) { scopes.visit(param.identifier); } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/array-pattern-params.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/array-pattern-params.expect.md index 9000c19753..717a7474fe 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/array-pattern-params.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/array-pattern-params.expect.md @@ -14,9 +14,9 @@ function component([a, b]) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; -function component(t17) { +function component(t16) { const $ = useMemoCache(7); - const [a, b] = t17; + const [a, b] = t16; const c_0 = $[0] !== a; let t0; if (c_0) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/babel-existing-react-import.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/babel-existing-react-import.expect.md index 1ad85f11ce..842c70726d 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/babel-existing-react-import.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/babel-existing-react-import.expect.md @@ -41,8 +41,8 @@ function Component(props) { } else { t0 = $[1]; } - const t16 = t0; - const expensiveNumber = t16; + const t15 = t0; + const expensiveNumber = t15; const c_2 = $[2] !== expensiveNumber; let t1; if (c_2) { @@ -67,8 +67,8 @@ function Component2(props) { } else { t0 = $[1]; } - const t16 = t0; - const expensiveNumber = t16; + const t15 = t0; + const expensiveNumber = t15; const c_2 = $[2] !== expensiveNumber; let t1; if (c_2) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/capturing-function-member-expr-call.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/capturing-function-member-expr-call.expect.md index d355e89a51..9d28478e70 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/capturing-function-member-expr-call.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/capturing-function-member-expr-call.expect.md @@ -20,9 +20,9 @@ function component({ mutator }) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; -function component(t27) { +function component(t26) { const $ = useMemoCache(7); - const { mutator } = t27; + const { mutator } = t26; const c_0 = $[0] !== mutator; let t0; if (c_0) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-array-param-default.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-array-param-default.expect.md index 06ec2a7ddb..2b904270e4 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-array-param-default.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-array-param-default.expect.md @@ -11,9 +11,9 @@ function Component([a = 2]) { ## Code ```javascript -function Component(t14) { - const [t15] = t14; - const a = t15 === undefined ? 2 : t15; +function Component(t13) { + const [t14] = t13; + const a = t14 === undefined ? 2 : t14; return a; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-assignment.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-assignment.expect.md index f903a00b3d..7370b12494 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-assignment.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-assignment.expect.md @@ -30,14 +30,14 @@ import { unstable_useMemoCache as useMemoCache } from "react"; function foo(a, b, c) { const $ = useMemoCache(5); - const [d, t47] = a; - const [t49] = t47; - const { e: t51 } = t49; - const { f: g } = t51; - const { l: t56, o } = b; - const { m: t59 } = t56; - const [t61] = t59; - const [n] = t61; + const [d, t46] = a; + const [t48] = t46; + const { e: t50 } = t48; + const { f: g } = t50; + const { l: t55, o } = b; + const { m: t58 } = t55; + const [t60] = t58; + const [n] = t60; const c_0 = $[0] !== d; const c_1 = $[1] !== g; const c_2 = $[2] !== n; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-and-local-variables-with-default.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-and-local-variables-with-default.expect.md index 0c9af1c07a..05490643ad 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-and-local-variables-with-default.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-and-local-variables-with-default.expect.md @@ -38,7 +38,7 @@ function Component(props) { if (c_0) { const allUrls = []; - const { media: t0, comments: t2, urls: t82 } = post; + const { media: t0, comments: t2, urls: t81 } = post; const c_3 = $[3] !== t0; let t1; if (c_3) { @@ -59,7 +59,7 @@ function Component(props) { t3 = $[6]; } const comments = t3; - const urls = t82 === undefined ? [] : t82; + const urls = t81 === undefined ? [] : t81; const c_7 = $[7] !== comments.length; let t4; if (c_7) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-declarations-and-locals.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-declarations-and-locals.expect.md index 431e23cdd7..536652b111 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-declarations-and-locals.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-mixed-scope-declarations-and-locals.expect.md @@ -38,8 +38,8 @@ function Component(props) { if (c_0) { const allUrls = []; - const { media: t85, comments, urls } = post; - media = t85; + const { media: t84, comments, urls } = post; + media = t84; const c_3 = $[3] !== comments.length; let t0; if (c_3) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-object-param-default.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-object-param-default.expect.md index 996f4c6f41..f97dfec14d 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-object-param-default.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring-object-param-default.expect.md @@ -11,9 +11,9 @@ function Component({ a = 2 }) { ## Code ```javascript -function Component(t14) { - const { a: t15 } = t14; - const a = t15 === undefined ? 2 : t15; +function Component(t13) { + const { a: t14 } = t13; + const a = t14 === undefined ? 2 : t14; return a; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring.expect.md index c9a6bec1a2..0ada1a3d5c 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/destructuring.expect.md @@ -59,8 +59,8 @@ function foo(a, b, c) { g = $[6]; } const { f } = t2; - const { l: t52, p } = b; - const { m: t3 } = t52; + const { l: t51, p } = b; + const { m: t3 } = t51; const c_7 = $[7] !== t3; let t4; let o; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.hoisted-function-declaration.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.hoisted-function-declaration.expect.md index 9f531de0cf..28e146cad9 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.hoisted-function-declaration.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.hoisted-function-declaration.expect.md @@ -17,7 +17,7 @@ function component(a) { ## Error ``` -[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$6 is undefined +[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$5 is undefined ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-access-ref-during-render.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-access-ref-during-render.expect.md index 436fc08db3..88f8f154ae 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-access-ref-during-render.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-access-ref-during-render.expect.md @@ -15,7 +15,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $23:TObject (5:5) +[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $22:TObject (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-array-push-frozen.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-array-push-frozen.expect.md index 0c52830e06..edaad82e83 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-array-push-frozen.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-array-push-frozen.expect.md @@ -15,7 +15,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $20:TObject (frozen) (4:4) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $19:TObject (frozen) (4:4) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-computed-store-to-frozen-value.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-computed-store-to-frozen-value.expect.md index 66d0839c20..7be038e7e4 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-computed-store-to-frozen-value.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-computed-store-to-frozen-value.expect.md @@ -16,7 +16,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $22 (frozen) (5:5) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $21 (frozen) (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-computed-property-of-frozen-value.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-computed-property-of-frozen-value.expect.md index 6d0acd75d8..eeb67a8924 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-computed-property-of-frozen-value.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-computed-property-of-frozen-value.expect.md @@ -16,7 +16,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $20 (frozen) (5:5) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $19 (frozen) (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-property-of-frozen-value.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-property-of-frozen-value.expect.md index 973d80490a..f93d177cec 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-property-of-frozen-value.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-delete-property-of-frozen-value.expect.md @@ -16,7 +16,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $19 (frozen) (5:5) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $18 (frozen) (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-function-expression-mutates-immutable-value.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-function-expression-mutates-immutable-value.expect.md index d6c944bed7..ca91a7670d 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-function-expression-mutates-immutable-value.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-function-expression-mutates-immutable-value.expect.md @@ -18,7 +18,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $40 (frozen) (5:5) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $39 (frozen) (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-aliased-freeze.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-aliased-freeze.expect.md index e9627583ba..024da66e92 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-aliased-freeze.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-aliased-freeze.expect.md @@ -25,7 +25,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $46:TObject (frozen) (13:13) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $44:TObject (frozen) (13:13) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-freeze.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-freeze.expect.md index 6fcb57cbde..25841c62e9 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-freeze.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-mutate-after-freeze.expect.md @@ -19,7 +19,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $27:TObject (frozen) (7:7) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $26:TObject (frozen) (7:7) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-pass-ref-to-function.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-pass-ref-to-function.expect.md index f9cab45985..2f2d8fbc12 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-pass-ref-to-function.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-pass-ref-to-function.expect.md @@ -14,7 +14,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at mutate? $22[6:8]:TObject (3:3) +[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at mutate? $21[6:8]:TObject (3:3) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-property-store-to-frozen-value.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-property-store-to-frozen-value.expect.md index efb0e09e58..01160d0d36 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-property-store-to-frozen-value.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-property-store-to-frozen-value.expect.md @@ -16,7 +16,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $21 (frozen) (5:5) +[ReactForget] InvalidInput: InferReferenceEffects: inferred mutation of known immutable value. Found mutation of $20 (frozen) (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-in-callback-invoked-during-render.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-in-callback-invoked-during-render.expect.md index d2989287b7..39b4f09f77 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-in-callback-invoked-during-render.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-in-callback-invoked-during-render.expect.md @@ -18,7 +18,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at capture $43[6:16]:TObject (5:5) +[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at capture $42[6:16]:TObject (5:5) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-value-as-props.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-value-as-props.expect.md index 40ea3775b3..b1fed506ca 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-value-as-props.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-ref-value-as-props.expect.md @@ -13,7 +13,7 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $20:TObject (3:3) +[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $19:TObject (3:3) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-set-and-read-ref-during-render.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-set-and-read-ref-during-render.expect.md index 0f97f4e8ea..db7f30a1f8 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-set-and-read-ref-during-render.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-set-and-read-ref-during-render.expect.md @@ -14,9 +14,9 @@ function Component(props) { ## Error ``` -[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at store $22[7:9]:TObject (3:3) +[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at store $21[7:9]:TObject (3:3) -[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $25:TObject (4:4) +[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $24:TObject (4:4) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-use-ref-added-to-dep-without-type-info.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-use-ref-added-to-dep-without-type-info.expect.md index 3a4da0a087..57909d2247 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-use-ref-added-to-dep-without-type-info.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.invalid-use-ref-added-to-dep-without-type-info.expect.md @@ -21,7 +21,7 @@ function Foo({ a }) { ## Error ``` -[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at capture $30:TObject (4:4) +[ReactForget] InvalidInput: Ref values may not be passed to functions because they could read the ref value (`current` property) during render. Cannot access ref object at capture $29:TObject (4:4) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.mutate-captured-arg-separately.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.mutate-captured-arg-separately.expect.md index 967b7a86e8..f7d91daa00 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.mutate-captured-arg-separately.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error.mutate-captured-arg-separately.expect.md @@ -19,7 +19,7 @@ function component(a) { ## Error ``` -[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$2 is undefined (7:7) +[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$1 is undefined (7:7) ``` \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/escape-analysis-destructured-rest-element.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/escape-analysis-destructured-rest-element.expect.md index b80443d5f4..688b571b2e 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/escape-analysis-destructured-rest-element.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/escape-analysis-destructured-rest-element.expect.md @@ -21,8 +21,8 @@ function Component(props) { const c_0 = $[0] !== props.a; let b; if (c_0) { - const { a, ...t30 } = props.a; - b = t30; + const { a, ...t29 } = props.a; + b = t29; $[0] = props.a; $[1] = b; } else { @@ -31,8 +31,8 @@ function Component(props) { const c_2 = $[2] !== props.c; let d; if (c_2) { - const [c, ...t31] = props.c; - d = t31; + const [c, ...t30] = props.c; + d = t30; $[2] = props.c; $[3] = d; } else { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/function-param-assignment-pattern.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/function-param-assignment-pattern.expect.md index 7b9e6293ca..847b3c6154 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/function-param-assignment-pattern.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/function-param-assignment-pattern.expect.md @@ -12,9 +12,9 @@ function Component(x = "default", y = [{}]) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; -function Component(t24, t0) { +function Component(t23, t0) { const $ = useMemoCache(5); - const x = t24 === undefined ? "default" : t24; + const x = t23 === undefined ? "default" : t23; const c_0 = $[0] !== t0; let t1; if (c_0) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/object-pattern-params.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/object-pattern-params.expect.md index 79623bf40f..90f0e6329b 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/object-pattern-params.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/object-pattern-params.expect.md @@ -14,9 +14,9 @@ function component({ a, b }) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; -function component(t17) { +function component(t16) { const $ = useMemoCache(7); - const { a, b } = t17; + const { a, b } = t16; const c_0 = $[0] !== a; let t0; if (c_0) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error._bug.recursive-function-expr.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/recursive-function-expr.expect.md similarity index 51% rename from compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error._bug.recursive-function-expr.expect.md rename to compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/recursive-function-expr.expect.md index c0099b8a3a..b2d6ade145 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error._bug.recursive-function-expr.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/recursive-function-expr.expect.md @@ -8,11 +8,12 @@ function foo() { ``` +## Code -## Error +```javascript +function foo() { + (() => foo())(); +} ``` -Expected value for identifier `0` to be initialized. -``` - \ No newline at end of file diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error._bug.recursive-function-expr.js b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/recursive-function-expr.js similarity index 100% rename from compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/error._bug.recursive-function-expr.js rename to compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/recursive-function-expr.js diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-aliased-not-added-to-dep-2.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-aliased-not-added-to-dep-2.expect.md index 4a142eb308..7054f3d815 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-aliased-not-added-to-dep-2.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-aliased-not-added-to-dep-2.expect.md @@ -17,9 +17,9 @@ function Foo({ a }) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; // @validateRefAccessDuringRender false -function Foo(t21) { +function Foo(t20) { const $ = useMemoCache(4); - const { a } = t21; + const { a } = t20; const ref = useRef(); const val = ref.current; const c_0 = $[0] !== a; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-not-added-to-dep-2.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-not-added-to-dep-2.expect.md index bb197280f3..83da9c0bed 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-not-added-to-dep-2.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/ref-current-not-added-to-dep-2.expect.md @@ -16,9 +16,9 @@ function Foo({ a }) { ```javascript import { unstable_useMemoCache as useMemoCache } from "react"; // @validateRefAccessDuringRender false -function Foo(t18) { +function Foo(t17) { const $ = useMemoCache(4); - const { a } = t18; + const { a } = t17; const ref = useRef(); const c_0 = $[0] !== a; let t0; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/remove-memoization-kitchen-sink.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/remove-memoization-kitchen-sink.expect.md index 5e9cd29a9b..e2449aadab 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/remove-memoization-kitchen-sink.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/remove-memoization-kitchen-sink.expect.md @@ -29,8 +29,8 @@ function Component(props) { const object = { x, onChange }; const { x: x_0, onChange: onChange_0 } = object; - const t44 = ; - return t44; + const t43 = ; + return t43; } ``` diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unused-object-element-with-rest.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unused-object-element-with-rest.expect.md index 9a3643b9d4..4da00970e8 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unused-object-element-with-rest.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unused-object-element-with-rest.expect.md @@ -19,8 +19,8 @@ function Foo(props) { const c_0 = $[0] !== props.a; let rest; if (c_0) { - const { unused, ...t16 } = props.a; - rest = t16; + const { unused, ...t15 } = props.a; + rest = t15; $[0] = props.a; $[1] = rest; } else { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-if-else-multiple-return.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-if-else-multiple-return.expect.md index 47d8a8f0bc..b42aa84f6b 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-if-else-multiple-return.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-if-else-multiple-return.expect.md @@ -20,7 +20,7 @@ function Component(props) { import { unstable_useMemoCache as useMemoCache } from "react"; function Component(props) { const $ = useMemoCache(4); - let t21 = undefined; + let t20 = undefined; bb7: { if (props.cond) { const c_0 = $[0] !== props.a; @@ -32,7 +32,7 @@ function Component(props) { } else { t0 = $[1]; } - t21 = t0; + t20 = t0; break bb7; } const c_2 = $[2] !== props.b; @@ -44,9 +44,9 @@ function Component(props) { } else { t1 = $[3]; } - t21 = t1; + t20 = t1; } - const x = t21; + const x = t20; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-independently-memoizeable.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-independently-memoizeable.expect.md index cee08550c2..84dec932ed 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-independently-memoizeable.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-independently-memoizeable.expect.md @@ -51,8 +51,8 @@ function Component(props) { } else { t2 = $[6]; } - const t27 = t2; - const [a_0, b_0] = t27; + const t26 = t2; + const [a_0, b_0] = t26; const c_7 = $[7] !== a_0; const c_8 = $[8] !== b_0; let t3; diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inlining-block-return.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inlining-block-return.expect.md index e14c4179a0..ab7d84ee83 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inlining-block-return.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inlining-block-return.expect.md @@ -19,7 +19,7 @@ function component(a, b) { import { unstable_useMemoCache as useMemoCache } from "react"; function component(a, b) { const $ = useMemoCache(2); - let t14 = undefined; + let t13 = undefined; bb6: { if (a) { const c_0 = $[0] !== b; @@ -31,12 +31,12 @@ function component(a, b) { } else { t0 = $[1]; } - t14 = t0; + t13 = t0; break bb6; } - t14 = undefined; + t13 = undefined; } - const x = t14; + const x = t13; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md index a1ffe4a99c..63cb96a626 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-inverted-if.expect.md @@ -21,20 +21,20 @@ function Component(props) { ```javascript function Component(props) { - let t17 = undefined; + let t16 = undefined; bb10: { bb5: { if (props.cond) { break bb5; } - t17 = props.a; + t16 = props.a; break bb10; } - t17 = props.b; + t16 = props.b; } - const x = t17; + const x = t16; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-labeled-statement-unconditional-return.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-labeled-statement-unconditional-return.expect.md index d0a3336633..d07a63f60f 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-labeled-statement-unconditional-return.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-labeled-statement-unconditional-return.expect.md @@ -17,8 +17,8 @@ function Component(props) { ```javascript function Component(props) { - const t9 = props.value; - const x = t9; + const t8 = props.value; + const x = t8; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-logical.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-logical.expect.md index 3a335d515f..bba79a794a 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-logical.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-logical.expect.md @@ -13,8 +13,8 @@ function Component(props) { ```javascript function Component(props) { - const t17 = props.a && props.b; - const x = t17; + const t16 = props.a && props.b; + const x = t16; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-multiple-if-else.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-multiple-if-else.expect.md index c99ce367cb..b709c71c26 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-multiple-if-else.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-multiple-if-else.expect.md @@ -25,7 +25,7 @@ function Component(props) { import { unstable_useMemoCache as useMemoCache } from "react"; function Component(props) { const $ = useMemoCache(3); - let t32 = undefined; + let t31 = undefined; bb9: { const c_0 = $[0] !== props; let y; @@ -35,21 +35,21 @@ function Component(props) { y.push(props.a); } if (props.cond2) { - t32 = y; + t31 = y; break bb9; } y.push(props.b); $[0] = props; $[1] = y; - $[2] = t32; + $[2] = t31; } else { y = $[1]; - t32 = $[2]; + t31 = $[2]; } - t32 = y; + t31 = y; } - const x = t32; + const x = t31; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-simple.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-simple.expect.md index d1804c16b4..7d03aa9398 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-simple.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-simple.expect.md @@ -24,8 +24,8 @@ function component(a) { } else { t0 = $[1]; } - const t10 = t0; - const x = t10; + const t9 = t0; + const x = t9; const c_2 = $[2] !== x; let t1; if (c_2) { diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-no-fallthrough.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-no-fallthrough.expect.md index 25f584d49e..9a738c699a 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-no-fallthrough.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-no-fallthrough.expect.md @@ -22,17 +22,17 @@ function Component(props) { ```javascript function Component(props) { - let t18 = undefined; + let t17 = undefined; bb8: switch (props.key) { case "key": { - t18 = props.value; + t17 = props.value; break bb8; } default: { - t18 = props.defaultValue; + t17 = props.defaultValue; } } - const x = t18; + const x = t17; return x; } diff --git a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md index 0bd9903e03..6124428fa5 100644 --- a/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md +++ b/compiler/forget/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/useMemo-switch-return.expect.md @@ -28,12 +28,12 @@ function Component(props) { ```javascript function Component(props) { - let t22 = undefined; + let t21 = undefined; bb10: { let y = undefined; bb2: switch (props.switch) { case "foo": { - t22 = "foo"; + t21 = "foo"; break bb10; } case "bar": { @@ -45,9 +45,9 @@ function Component(props) { } } - t22 = y; + t21 = y; } - const x = t22; + const x = t21; return x; } diff --git a/compiler/forget/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts b/compiler/forget/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts index 4a8d1d4afb..a2e0fb8dac 100644 --- a/compiler/forget/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts +++ b/compiler/forget/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts @@ -56,7 +56,7 @@ const tests: ForgetTestCases = { errors: [ { message: - "[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $23:TObject (6:6)", + "[ReactForget] InvalidInput: Ref values (the `current` property) may not be accessed during render. Cannot access ref value at freeze $22:TObject (6:6)", line: 6, column: 10, endColumn: 15, @@ -81,7 +81,7 @@ const tests: ForgetTestCases = { errors: [ { message: - "[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$2 is undefined (8:8)", + "[ReactForget] Invariant: EnterSSA: Expected identifier to be defined before being used. Identifier x$1 is undefined (8:8)", line: 8, column: 3, endColumn: 17,