(self: Parser, node: doc.Expr)
| 311 | |
| 312 | @dispatch.register(token="relax", type_name="Expr") |
| 313 | def visit_expr_stmt(self: Parser, node: doc.Expr) -> None: |
| 314 | value = self.eval_expr(node.value) |
| 315 | if isinstance(value, relax.Expr): |
| 316 | var = R.emit(value) |
| 317 | IRBuilder.name("_", var) |
| 318 | is_void_value = ( |
| 319 | isinstance(var.struct_info, relax.TupleStructInfo) and len(var.struct_info.fields) == 0 |
| 320 | ) |
| 321 | |
| 322 | if not is_void_value: |
| 323 | self.report_error( |
| 324 | node, |
| 325 | f"Non-void relax expressions must be bound to a variable, " |
| 326 | f"but expression of type {var.struct_info} was used as a statement.", |
| 327 | ) |
| 328 | |
| 329 | elif value is not None: |
| 330 | self.report_error(node, f"Unsupported Expr stmt type {value}.") |
| 331 | |
| 332 | |
| 333 | @dispatch.register(token="relax", type_name="arguments") |
nothing calls this directly
no test coverage detected
searching dependent graphs…