MCPcopy Create free account
hub / github.com/python/mypy / init

Method init

mypyc/irbuild/for_helpers.py:1119–1136  ·  view source on GitHub ↗
(self, start_reg: Value, end_reg: Value, step: int)

Source from the content-addressed store, hash-verified

1117 """Generate optimized IR for a for loop over an integer range."""
1118
1119 def init(self, start_reg: Value, end_reg: Value, step: int) -> None:
1120 builder = self.builder
1121 self.start_reg = start_reg
1122 self.end_reg = end_reg
1123 self.step = step
1124 self.end_target = builder.maybe_spill(end_reg)
1125 if is_short_int_rprimitive(start_reg.type) and is_short_int_rprimitive(end_reg.type):
1126 index_type: RType = short_int_rprimitive
1127 elif is_fixed_width_rtype(end_reg.type):
1128 index_type = end_reg.type
1129 else:
1130 index_type = int_rprimitive
1131 index_reg = Register(index_type, line=self.line)
1132 builder.assign(index_reg, start_reg, self.line)
1133 self.index_reg = builder.maybe_spill_assignable(index_reg)
1134 # Initialize loop index to 0. Assert that the index target is assignable.
1135 self.index_target: Register | AssignmentTarget = builder.get_assignment_target(self.index)
1136 builder.assign(self.index_target, builder.read(self.index_reg, self.line), self.line)
1137
1138 def gen_condition(self) -> None:
1139 builder = self.builder

Callers 1

make_for_loop_generatorFunction · 0.95

Calls 8

is_short_int_rprimitiveFunction · 0.90
is_fixed_width_rtypeFunction · 0.90
RegisterClass · 0.90
maybe_spillMethod · 0.80
get_assignment_targetMethod · 0.80
assignMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected