Skip to content

Commit a0e4f43

Browse files
committed
Polish
1 parent 3fd3b1c commit a0e4f43

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

mypyc/irbuild/main.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ def f(x: int) -> int:
3838
from mypyc.irbuild.mapper import Mapper
3939
from mypyc.irbuild.prebuildvisitor import PreBuildVisitor
4040
from mypyc.irbuild.prepare import (
41+
adjust_generator_classes_of_methods,
4142
build_type_map,
4243
create_generator_class_for_func,
4344
find_singledispatch_register_impls,
44-
gen_generator_types,
4545
)
4646
from mypyc.irbuild.visitor import IRBuilderVisitor
4747
from mypyc.irbuild.vtable import compute_vtable
@@ -69,7 +69,7 @@ def build_ir(
6969
"""
7070

7171
build_type_map(mapper, modules, graph, types, options, errors)
72-
gen_generator_types(mapper, modules)
72+
adjust_generator_classes_of_methods(mapper)
7373
singledispatch_info = find_singledispatch_register_impls(modules, errors)
7474

7575
result: ModuleIRs = {}
@@ -89,7 +89,6 @@ def build_ir(
8989
if isinstance(fdef, FuncDef):
9090
# Make generator class name sufficiently unique.
9191
suffix = f"___{fdef.line}"
92-
# TODO: decorated?
9392
if fdef.is_coroutine or fdef.is_generator:
9493
create_generator_class_for_func(
9594
module.fullname, None, fdef, mapper, name_suffix=suffix

mypyc/irbuild/prepare.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,6 @@ def prepare_func_def(
196196
mapper: Mapper,
197197
options: CompilerOptions,
198198
) -> FuncDecl:
199-
# create_generator_class_if_needed(module_name, class_name, fdef, mapper)
200-
# assert False
201-
202199
kind = (
203200
FUNC_CLASSMETHOD
204201
if fdef.is_class
@@ -813,7 +810,12 @@ def registered_impl_from_possible_register_call(
813810
return None
814811

815812

816-
def gen_generator_types(mapper: Mapper, modules: list[MypyFile]) -> None:
813+
def adjust_generator_classes_of_methods(mapper: Mapper) -> None:
814+
"""Make optimizations and adjustments to generated generator classes of methods.
815+
816+
This is a separate pass after type map has been built, since we need all classes
817+
to be processed to analyze class hierarchies.
818+
"""
817819
for fdef, ir in mapper.func_to_decl.items():
818820
if isinstance(fdef, FuncDef) and (fdef.is_coroutine or fdef.is_generator):
819821
gen_ir = create_generator_class_for_func(ir.module_name, ir.class_name, fdef, mapper)

0 commit comments

Comments
 (0)