MCPcopy Index your code
hub / github.com/python/mypy / gen_generator_func

Function gen_generator_func

mypyc/irbuild/generator.py:63–84  ·  view source on GitHub ↗

Generate IR for generator function that returns generator object.

(
    builder: IRBuilder,
    gen_func_ir: Callable[
        [list[Register], list[BasicBlock], FuncInfo], tuple[FuncIR, Value | None]
    ],
)

Source from the content-addressed store, hash-verified

61
62
63def gen_generator_func(
64 builder: IRBuilder,
65 gen_func_ir: Callable[
66 [list[Register], list[BasicBlock], FuncInfo], tuple[FuncIR, Value | None]
67 ],
68) -> tuple[FuncIR, Value | None]:
69 """Generate IR for generator function that returns generator object."""
70 setup_generator_class(builder)
71 load_env_registers(builder, prefix=GENERATOR_ATTRIBUTE_PREFIX)
72 gen_arg_defaults(builder)
73 if builder.fn_info.can_merge_generator_and_env_classes():
74 gen = instantiate_generator_class(builder)
75 builder.fn_info._curr_env_reg = gen
76 finalize_env_class(builder, prefix=GENERATOR_ATTRIBUTE_PREFIX)
77 else:
78 finalize_env_class(builder, prefix=GENERATOR_ATTRIBUTE_PREFIX)
79 gen = instantiate_generator_class(builder)
80 builder.add(Return(gen))
81
82 args, _, blocks, ret_type, fn_info = builder.leave()
83 func_ir, func_reg = gen_func_ir(args, blocks, fn_info)
84 return func_ir, func_reg
85
86
87def gen_generator_func_body(builder: IRBuilder, fn_info: FuncInfo, func_reg: Value | None) -> None:

Callers 1

gen_func_itemFunction · 0.90

Calls 10

load_env_registersFunction · 0.90
gen_arg_defaultsFunction · 0.90
finalize_env_classFunction · 0.90
ReturnClass · 0.90
setup_generator_classFunction · 0.85
gen_func_irFunction · 0.85
leaveMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…