Home / Function/ getArgumentEffect() — react Function Reference

getArgumentEffect() — react Function Reference

Architecture documentation for the getArgumentEffect() function in InferMutationAliasingEffects.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  e1fecb5e_21c7_c2f3_65f9_02c98934dd77["getArgumentEffect()"]
  d24875c3_c045_4414_2cc9_16f96d59c629["InferMutationAliasingEffects.ts"]
  e1fecb5e_21c7_c2f3_65f9_02c98934dd77 -->|defined in| d24875c3_c045_4414_2cc9_16f96d59c629
  fc22e84f_49a6_8d04_faba_43cbf926c0aa["computeEffectsForLegacySignature()"]
  fc22e84f_49a6_8d04_faba_43cbf926c0aa -->|calls| e1fecb5e_21c7_c2f3_65f9_02c98934dd77
  cf8d627e_c2f0_6cd4_e5fc_35f3c7005b64["throwTodo()"]
  e1fecb5e_21c7_c2f3_65f9_02c98934dd77 -->|calls| cf8d627e_c2f0_6cd4_e5fc_35f3c7005b64
  style e1fecb5e_21c7_c2f3_65f9_02c98934dd77 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Inference/InferMutationAliasingEffects.ts lines 2812–2838

function getArgumentEffect(
  signatureEffect: Effect | null,
  arg: Place | SpreadPattern,
): Effect {
  if (signatureEffect != null) {
    if (arg.kind === 'Identifier') {
      return signatureEffect;
    } else if (
      signatureEffect === Effect.Mutate ||
      signatureEffect === Effect.ConditionallyMutate
    ) {
      return signatureEffect;
    } else {
      // see call-spread-argument-mutable-iterator test fixture
      if (signatureEffect === Effect.Freeze) {
        CompilerError.throwTodo({
          reason: 'Support spread syntax for hook arguments',
          loc: arg.place.loc,
        });
      }
      // effects[i] is Effect.Capture | Effect.Read | Effect.Store
      return Effect.ConditionallyMutateIterator;
    }
  } else {
    return Effect.ConditionallyMutate;
  }
}

Domain

Subdomains

Calls

Frequently Asked Questions

What does getArgumentEffect() do?
getArgumentEffect() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Inference/InferMutationAliasingEffects.ts.
Where is getArgumentEffect() defined?
getArgumentEffect() is defined in compiler/packages/babel-plugin-react-compiler/src/Inference/InferMutationAliasingEffects.ts at line 2812.
What does getArgumentEffect() call?
getArgumentEffect() calls 1 function(s): throwTodo.
What calls getArgumentEffect()?
getArgumentEffect() is called by 1 function(s): computeEffectsForLegacySignature.

Analyze Your Own Codebase

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

Try Supermodel Free