(self, value: Value, compare: str)
| 226 | self.emit_line("goto %s;" % self.label(op.label)) |
| 227 | |
| 228 | def error_value_check(self, value: Value, compare: str) -> str: |
| 229 | typ = value.type |
| 230 | if isinstance(typ, RTuple): |
| 231 | # TODO: What about empty tuple? |
| 232 | return self.emitter.tuple_undefined_check_cond( |
| 233 | typ, self.reg(value), self.c_error_value, compare |
| 234 | ) |
| 235 | elif isinstance(typ, RVec): |
| 236 | # Error values for vecs are represented by a negative length. |
| 237 | vec_compare = ">=" if compare == "!=" else "<" |
| 238 | return f"{self.reg(value)}.len {vec_compare} 0" |
| 239 | else: |
| 240 | return f"{self.reg(value)} {compare} {self.c_error_value(typ)}" |
| 241 | |
| 242 | def visit_branch(self, op: Branch) -> None: |
| 243 | true, false = op.true, op.false |
no test coverage detected