Home / Function/ tyEqual() — react Function Reference

tyEqual() — react Function Reference

Architecture documentation for the tyEqual() function in ValidateNoRefAccessInRender.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  16e31318_ef73_3912_2fbe_59422088d52e["tyEqual()"]
  8dbbe52d_b145_88fe_e0da_33d06180b558["ValidateNoRefAccessInRender.ts"]
  16e31318_ef73_3912_2fbe_59422088d52e -->|defined in| 8dbbe52d_b145_88fe_e0da_33d06180b558
  648272d7_e6a6_0efe_25c4_d76434ffaafb["set()"]
  648272d7_e6a6_0efe_25c4_d76434ffaafb -->|calls| 16e31318_ef73_3912_2fbe_59422088d52e
  041ca752_10c1_3cda_1f5c_02f44a01310e["invariant()"]
  16e31318_ef73_3912_2fbe_59422088d52e -->|calls| 041ca752_10c1_3cda_1f5c_02f44a01310e
  style 16e31318_ef73_3912_2fbe_59422088d52e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoRefAccessInRender.ts lines 186–227

function tyEqual(a: RefAccessType, b: RefAccessType): boolean {
  if (a.kind !== b.kind) {
    return false;
  }
  switch (a.kind) {
    case 'None':
      return true;
    case 'Ref':
      return true;
    case 'Nullable':
      return true;
    case 'Guard':
      CompilerError.invariant(b.kind === 'Guard', {
        reason: 'Expected ref value',
        loc: GeneratedSource,
      });
      return a.refId === b.refId;
    case 'RefValue':
      CompilerError.invariant(b.kind === 'RefValue', {
        reason: 'Expected ref value',
        loc: GeneratedSource,
      });
      return a.loc == b.loc;
    case 'Structure': {
      CompilerError.invariant(b.kind === 'Structure', {
        reason: 'Expected structure',
        loc: GeneratedSource,
      });
      const fnTypesEqual =
        (a.fn === null && b.fn === null) ||
        (a.fn !== null &&
          b.fn !== null &&
          a.fn.readRefEffect === b.fn.readRefEffect &&
          tyEqual(a.fn.returnType, b.fn.returnType));
      return (
        fnTypesEqual &&
        (a.value === b.value ||
          (a.value !== null && b.value !== null && tyEqual(a.value, b.value)))
      );
    }
  }
}

Domain

Subdomains

Calls

Called By

Frequently Asked Questions

What does tyEqual() do?
tyEqual() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoRefAccessInRender.ts.
Where is tyEqual() defined?
tyEqual() is defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoRefAccessInRender.ts at line 186.
What does tyEqual() call?
tyEqual() calls 1 function(s): invariant.
What calls tyEqual()?
tyEqual() is called by 1 function(s): set.

Analyze Your Own Codebase

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

Try Supermodel Free