irx.builder.diagnostics

irx.builder.diagnostics

Source: packages/irx/src/irx/builder/diagnostics.py

title: Shared lowering diagnostics helpers.
summary: >-
  Centralize the small helpers that lowering uses to raise structured
  diagnostic exceptions instead of ad hoc Exception strings.

Functions

resolved_ast_type_name(node: astx.AST | None) -> str

title: Return one node's best-effort semantic type name.
parameters:
  node:
    type: astx.AST | None
returns:
  type: str

lowered_value_type_name(value: ir.Value | None) -> str

title: Return one lowered LLVM value type name.
parameters:
  value:
    type: ir.Value | None
returns:
  type: str

raise_lowering_error(message: str, *, code: str, node: astx.AST | None=None, notes: tuple[str, ...]=(), hint: str | None=None, cause: Exception | None=None) -> NoReturn

title: Raise one user-facing lowering diagnostic.
parameters:
  message:
    type: str
  code:
    type: str
  node:
    type: astx.AST | None
  notes:
    type: tuple[str, Ellipsis]
  hint:
    type: str | None
  cause:
    type: Exception | None
returns:
  type: NoReturn

raise_lowering_internal_error(message: str, *, node: astx.AST | None=None, code: str=DiagnosticCodes.LOWERING_MISSING_SEMANTIC_METADATA, notes: tuple[str, ...]=(), hint: str | None=None, cause: Exception | None=None) -> NoReturn

title: Raise one internal lowering consistency diagnostic.
parameters:
  message:
    type: str
  node:
    type: astx.AST | None
  code:
    type: str
  notes:
    type: tuple[str, Ellipsis]
  hint:
    type: str | None
  cause:
    type: Exception | None
returns:
  type: NoReturn

require_semantic_metadata(value: T | None, *, node: astx.AST, metadata: str, context: str) -> T

title: Require one semantic sidecar field during lowering.
parameters:
  value:
    type: T | None
  node:
    type: astx.AST
  metadata:
    type: str
  context:
    type: str
returns:
  type: T

require_lowered_value(value: ir.Value | None, *, node: astx.AST, context: str) -> ir.Value

title: Require one lowered LLVM value during lowering.
parameters:
  value:
    type: ir.Value | None
  node:
    type: astx.AST
  context:
    type: str
returns:
  type: ir.Value