Home / Function/ collectDepUsages() — react Function Reference

collectDepUsages() — react Function Reference

Architecture documentation for the collectDepUsages() function in InferEffectDependencies.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  9851361f_9c96_24d6_e407_3d4f7245f8ea["collectDepUsages()"]
  3393f920_76eb_7dd5_b95f_ab92de6cecce["InferEffectDependencies.ts"]
  9851361f_9c96_24d6_e407_3d4f7245f8ea -->|defined in| 3393f920_76eb_7dd5_b95f_ab92de6cecce
  3522f83b_2dff_3c9f_920f_3e428eb62b31["inferEffectDependencies()"]
  3522f83b_2dff_3c9f_920f_3e428eb62b31 -->|calls| 9851361f_9c96_24d6_e407_3d4f7245f8ea
  ccace1c3_85b7_a05e_c2a5_7eff8b3422ed["eachInstructionOperand()"]
  9851361f_9c96_24d6_e407_3d4f7245f8ea -->|calls| ccace1c3_85b7_a05e_c2a5_7eff8b3422ed
  358cdfdf_e03f_e4de_133c_5b70e0a98d45["push()"]
  9851361f_9c96_24d6_e407_3d4f7245f8ea -->|calls| 358cdfdf_e03f_e4de_133c_5b70e0a98d45
  style 9851361f_9c96_24d6_e407_3d4f7245f8ea fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Inference/InferEffectDependencies.ts lines 517–546

function collectDepUsages(
  deps: Array<ReactiveScopeDependency>,
  fnExpr: FunctionExpression,
): Array<SourceLocation> {
  const identifiers: Map<IdentifierId, ReactiveScopeDependency> = new Map();
  const loadedDeps: Set<IdentifierId> = new Set();
  const sourceLocations = [];
  for (const dep of deps) {
    identifiers.set(dep.identifier.id, dep);
  }

  for (const [, block] of fnExpr.loweredFunc.func.body.blocks) {
    for (const instr of block.instructions) {
      if (
        instr.value.kind === 'LoadLocal' &&
        identifiers.has(instr.value.place.identifier.id)
      ) {
        loadedDeps.add(instr.lvalue.identifier.id);
      }
      for (const place of eachInstructionOperand(instr)) {
        if (loadedDeps.has(place.identifier.id)) {
          // TODO(@jbrown215): handle member exprs!!
          sourceLocations.push(place.identifier.loc);
        }
      }
    }
  }

  return sourceLocations;
}

Domain

Subdomains

Frequently Asked Questions

What does collectDepUsages() do?
collectDepUsages() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Inference/InferEffectDependencies.ts.
Where is collectDepUsages() defined?
collectDepUsages() is defined in compiler/packages/babel-plugin-react-compiler/src/Inference/InferEffectDependencies.ts at line 517.
What does collectDepUsages() call?
collectDepUsages() calls 2 function(s): eachInstructionOperand, push.
What calls collectDepUsages()?
collectDepUsages() is called by 1 function(s): inferEffectDependencies.

Analyze Your Own Codebase

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

Try Supermodel Free