Home / Function/ validateLocalsNotReassignedAfterRender() — react Function Reference

validateLocalsNotReassignedAfterRender() — react Function Reference

Architecture documentation for the validateLocalsNotReassignedAfterRender() function in ValidateLocalsNotReassignedAfterRender.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  42a1b6ad_eddb_6bd3_4831_1d199766f971["validateLocalsNotReassignedAfterRender()"]
  5b745296_c60b_00ed_f4d9_4badd89a2f2b["ValidateLocalsNotReassignedAfterRender.ts"]
  42a1b6ad_eddb_6bd3_4831_1d199766f971 -->|defined in| 5b745296_c60b_00ed_f4d9_4badd89a2f2b
  c3bc3875_256f_8f5e_7800_2f9c5bae65eb["runWithEnvironment()"]
  c3bc3875_256f_8f5e_7800_2f9c5bae65eb -->|calls| 42a1b6ad_eddb_6bd3_4831_1d199766f971
  176abc6d_b49b_3a9c_1432_7b5b6d45f2ac["getContextReassignment()"]
  42a1b6ad_eddb_6bd3_4831_1d199766f971 -->|calls| 176abc6d_b49b_3a9c_1432_7b5b6d45f2ac
  02303def_636f_c5b3_a751_1cf138fcea69["pushDiagnostic()"]
  42a1b6ad_eddb_6bd3_4831_1d199766f971 -->|calls| 02303def_636f_c5b3_a751_1cf138fcea69
  ac13f5c1_be17_dd7a_6bd3_66d91c46aadf["create()"]
  42a1b6ad_eddb_6bd3_4831_1d199766f971 -->|calls| ac13f5c1_be17_dd7a_6bd3_66d91c46aadf
  1a2b7047_24c8_62d6_b328_5f07307d27ab["withDetails()"]
  42a1b6ad_eddb_6bd3_4831_1d199766f971 -->|calls| 1a2b7047_24c8_62d6_b328_5f07307d27ab
  style 42a1b6ad_eddb_6bd3_4831_1d199766f971 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateLocalsNotReassignedAfterRender.ts lines 23–51

export function validateLocalsNotReassignedAfterRender(fn: HIRFunction): void {
  const contextVariables = new Set<IdentifierId>();
  const reassignment = getContextReassignment(
    fn,
    contextVariables,
    false,
    false,
  );
  if (reassignment !== null) {
    const errors = new CompilerError();
    const variable =
      reassignment.identifier.name != null &&
      reassignment.identifier.name.kind === 'named'
        ? `\`${reassignment.identifier.name.value}\``
        : 'variable';
    errors.pushDiagnostic(
      CompilerDiagnostic.create({
        category: ErrorCategory.Immutability,
        reason: 'Cannot reassign variable after render completes',
        description: `Reassigning ${variable} after render has completed can cause inconsistent behavior on subsequent renders. Consider using state instead`,
      }).withDetails({
        kind: 'error',
        loc: reassignment.loc,
        message: `Cannot reassign ${variable} after render completes`,
      }),
    );
    throw errors;
  }
}

Domain

Subdomains

Frequently Asked Questions

What does validateLocalsNotReassignedAfterRender() do?
validateLocalsNotReassignedAfterRender() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateLocalsNotReassignedAfterRender.ts.
Where is validateLocalsNotReassignedAfterRender() defined?
validateLocalsNotReassignedAfterRender() is defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateLocalsNotReassignedAfterRender.ts at line 23.
What does validateLocalsNotReassignedAfterRender() call?
validateLocalsNotReassignedAfterRender() calls 4 function(s): create, getContextReassignment, pushDiagnostic, withDetails.
What calls validateLocalsNotReassignedAfterRender()?
validateLocalsNotReassignedAfterRender() is called by 1 function(s): runWithEnvironment.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free