@@ -116,6 +116,34 @@ def get_plain_module_render_state(plain_module: PlainModule) -> PlainModuleRende
116116 return pr
117117
118118
119+ def get_all_affected_modules_from_change (
120+ plain_module : PlainModule ,
121+ plain_module_render_state : PlainModuleRenderState ,
122+ ) -> list [PlainModule ]:
123+ all_affected_modules = list [PlainModule ]()
124+
125+ if plain_module_render_state .change_type == "spec_change" :
126+ start_module = plain_module_render_state .change
127+ elif plain_module_render_state .change_type == "code_change" :
128+ if plain_module_render_state .change .is_module_fully_rendered ():
129+ start_module = plain_module .get_next_module (plain_module_render_state .change .module_name )
130+ else :
131+ start_module = plain_module_render_state .change
132+ else :
133+ raise ValueError (f"Unknown change type: { plain_module_render_state .change_type } " )
134+
135+ affected_module = False
136+ all_modules = plain_module .all_required_modules + [plain_module ]
137+ for module in all_modules :
138+ if module .module_name == start_module .module_name :
139+ affected_module = True
140+
141+ if affected_module :
142+ all_affected_modules .append (module )
143+
144+ return all_affected_modules
145+
146+
119147def get_render_choices (
120148 plain_module : PlainModule ,
121149 plain_module_render_state : PlainModuleRenderState ,
@@ -165,17 +193,11 @@ def get_render_choices(
165193 choice_idx += 1
166194
167195 if plain_module_render_state .change :
168- all_affected_modules = list [str ]()
169- affected_module = False
170- for module in plain_module .all_required_modules :
171- if module .module_name == plain_module_render_state .change .module_name :
172- affected_module = True
173- if affected_module :
174- all_affected_modules .append (module .module_name )
196+ all_affected_modules = get_all_affected_modules_from_change (plain_module , plain_module_render_state )
175197
176198 if len (all_affected_modules ) > 0 :
177199 choices [str (choice_idx )] = RenderChoice (
178- module = plain_module_render_state . change ,
200+ module = all_affected_modules [ 0 ] ,
179201 render_range = None ,
180202 choice_type = "rerender_affected" ,
181203 wipe_later_modules = True ,
0 commit comments