Skip to content

collections

Lower backend-neutral list, tuple, set, and dictionary query nodes using the semantic collection sidecars attached during analysis.

Classes:

CollectionVisitorMixin

Bases: VisitorMixinBase

Methods:

visit

visit(node: CollectionCount) -> None
Source code in packages/irx/src/irx/builder/lowering/collections.py
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
@VisitorCore.visit.dispatch
def visit(self, node: astx.CollectionCount) -> None:
    """
    title: Visit CollectionCount nodes.
    parameters:
      node:
        type: astx.CollectionCount
    """
    resolution = self._resolved_collection_method(node)
    if resolution.method is not CollectionMethodKind.COUNT:
        raise TypeError("collection count has invalid semantic method")
    self.result_stack.append(
        self._sequence_or_literal_search(
            base=node.base,
            value=node.value,
            method=CollectionMethodKind.COUNT,
        )
    )