MCPcopy
hub / github.com/python/mypy / test_register

Method test_register

mypyc/test/test_emitfunc.py:1077–1101  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1075 )
1076
1077 def test_register(self) -> None:
1078 reg = Register(int_rprimitive)
1079 op = Assign(reg, Integer(5))
1080 self.block.ops.append(op)
1081 self.block.ops.append(Unreachable())
1082 fn = FuncIR(
1083 FuncDecl("myfunc", None, "mod", FuncSignature([self.arg], list_rprimitive)),
1084 [self.reg],
1085 [self.block],
1086 )
1087 value_names = generate_names_for_ir(fn.arg_regs, fn.blocks)
1088 emitter = Emitter(EmitterContext(NameGenerator([["mod"]]), True), value_names)
1089 generate_native_function(fn, emitter, "prog.py", "prog")
1090 result = emitter.fragments
1091 assert_string_arrays_equal(
1092 [
1093 "PyObject *CPyDef_myfunc(CPyTagged cpy_r_arg) {\n",
1094 " CPyTagged cpy_r_r0;\n",
1095 " cpy_r_r0 = 10;\n",
1096 " CPy_Unreachable();\n",
1097 "}\n",
1098 ],
1099 result,
1100 msg="Generated code invalid",
1101 )

Callers

nothing calls this directly

Calls 14

RegisterClass · 0.90
AssignClass · 0.90
IntegerClass · 0.90
UnreachableClass · 0.90
FuncIRClass · 0.90
FuncDeclClass · 0.90
FuncSignatureClass · 0.90
generate_names_for_irFunction · 0.90
EmitterClass · 0.90
EmitterContextClass · 0.90
NameGeneratorClass · 0.90
generate_native_functionFunction · 0.90

Tested by

no test coverage detected