Home / Function/ visit() — react Function Reference

visit() — react Function Reference

Architecture documentation for the visit() function in RenameVariables.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  9fff5f56_18e8_8886_6559_68fb29f122fb["visit()"]
  a4975235_ac38_42fc_f847_271a62829ded["Scopes"]
  9fff5f56_18e8_8886_6559_68fb29f122fb -->|defined in| a4975235_ac38_42fc_f847_271a62829ded
  b95a6a8b_8071_1164_fd41_4d42b52d9ea3["renameVariablesImpl()"]
  b95a6a8b_8071_1164_fd41_4d42b52d9ea3 -->|calls| 9fff5f56_18e8_8886_6559_68fb29f122fb
  80786b50_8518_5cd7_d9be_c0451e4458b9["visitParam()"]
  80786b50_8518_5cd7_d9be_c0451e4458b9 -->|calls| 9fff5f56_18e8_8886_6559_68fb29f122fb
  f90d8dc1_64eb_084c_5c44_6858b6b758c6["visitLValue()"]
  f90d8dc1_64eb_084c_5c44_6858b6b758c6 -->|calls| 9fff5f56_18e8_8886_6559_68fb29f122fb
  81ab854c_18a9_da4f_9b20_d5e7b20d6a0b["visitPlace()"]
  81ab854c_18a9_da4f_9b20_d5e7b20d6a0b -->|calls| 9fff5f56_18e8_8886_6559_68fb29f122fb
  a3e340dd_fd2c_8bf8_f396_ba5c6082fee4["visitScope()"]
  a3e340dd_fd2c_8bf8_f396_ba5c6082fee4 -->|calls| 9fff5f56_18e8_8886_6559_68fb29f122fb
  e8a23b25_1280_8027_cc90_bec80af081c6["isPromotedTemporary()"]
  9fff5f56_18e8_8886_6559_68fb29f122fb -->|calls| e8a23b25_1280_8027_cc90_bec80af081c6
  e9e29739_8dbd_20ce_497d_9f7a51cccb60["isPromotedJsxTemporary()"]
  9fff5f56_18e8_8886_6559_68fb29f122fb -->|calls| e9e29739_8dbd_20ce_497d_9f7a51cccb60
  dcb26d23_8970_206b_e5d8_91b588c501b5["makeIdentifierName()"]
  9fff5f56_18e8_8886_6559_68fb29f122fb -->|calls| dcb26d23_8970_206b_e5d8_91b588c501b5
  style 9fff5f56_18e8_8886_6559_68fb29f122fb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/RenameVariables.ts lines 137–169

  visit(identifier: Identifier): void {
    const originalName = identifier.name;
    if (originalName === null) {
      return;
    }
    const mappedName = this.#seen.get(identifier.declarationId);
    if (mappedName !== undefined) {
      identifier.name = mappedName;
      return;
    }
    let name: string = originalName.value;
    let id = 0;
    if (isPromotedTemporary(originalName.value)) {
      name = `t${id++}`;
    } else if (isPromotedJsxTemporary(originalName.value)) {
      name = `T${id++}`;
    }
    while (this.#lookup(name) !== null || this.#globals.has(name)) {
      if (isPromotedTemporary(originalName.value)) {
        name = `t${id++}`;
      } else if (isPromotedJsxTemporary(originalName.value)) {
        name = `T${id++}`;
      } else {
        name = `${originalName.value}$${id++}`;
      }
    }
    this.#programContext.addNewReference(name);
    const identifierName = makeIdentifierName(name);
    identifier.name = identifierName;
    this.#seen.set(identifier.declarationId, identifierName);
    this.#stack.at(-1)!.set(identifierName.value, identifier.declarationId);
    this.names.add(identifierName.value);
  }

Domain

Subdomains

Frequently Asked Questions

What does visit() do?
visit() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/RenameVariables.ts.
Where is visit() defined?
visit() is defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/RenameVariables.ts at line 137.
What does visit() call?
visit() calls 3 function(s): isPromotedJsxTemporary, isPromotedTemporary, makeIdentifierName.
What calls visit()?
visit() is called by 5 function(s): renameVariablesImpl, visitLValue, visitParam, visitPlace, visitScope.

Analyze Your Own Codebase

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

Try Supermodel Free