from __future__ import annotations from typing import Callable, Final from mypyc.ir.ops import Value from mypyc.irbuild.ll_builder import LowLevelIRBuilder LowerFunc = Callable[[LowLevelIRBuilder, list[Value], int], Value] lowering_registry: Final[dict[str, LowerFunc]] = {} def lower_primitive_op(name: str) -> Callable[[LowerFunc], LowerFunc]: """Register a handler that generates low-level IR for a primitive op.""" def wrapper(f: LowerFunc) -> LowerFunc: assert name not in lowering_registry lowering_registry[name] = f return f return wrapper # Import various modules that set up global state. from mypyc.lower import int_ops, list_ops, misc_ops # noqa: F401