Skip to content

buffer_views

Handle buffer-view descriptors, indexing, writes, and lifetime helper expressions using the shared tensor-and-buffer support mixin.

Classes:

ExpressionBufferViewVisitorMixin

Bases: ExpressionTensorBufferSupportVisitorMixin

Methods:

visit

visit(node: BufferViewRelease) -> None
Source code in packages/irx/src/irx/analysis/handlers/_expressions/buffer_views.py
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
@SemanticAnalyzerCore.visit.dispatch
def visit(self, node: astx.BufferViewRelease) -> None:
    """
    title: Visit BufferViewRelease nodes.
    parameters:
      node:
        type: astx.BufferViewRelease
    """
    self.visit(node.view)
    if not isinstance(self._expr_type(node.view), astx.BufferViewType):
        self.context.diagnostics.add(
            "buffer release requires a BufferViewType view",
            node=node,
            code=DiagnosticCodes.SEMANTIC_BUFFER_MISUSE,
        )
    self._validate_buffer_lifetime_operation(
        node=node,
        view=node.view,
        operation="release",
    )
    self._set_type(node, astx.Int32())