MCPcopy Create free account
hub / github.com/dylan-sutton-chavez/edge-python / with_fresh_chunk

Method with_fresh_chunk

compiler/src/modules/parser/mod.rs:157–183  ·  view source on GitHub ↗
(&mut self, f: impl FnOnce(&mut Self))

Source from the content-addressed store, hash-verified

155 }
156
157 pub(super) fn with_fresh_chunk(&mut self, f: impl FnOnce(&mut Self)) -> SSAChunk {
158 let saved_chunk = core::mem::take(&mut self.chunk);
159 let saved_ver = self.ssa_versions.clone();
160 let saved_globals = core::mem::take(&mut self.globals_decl);
161 // Nested body owns its loops and block stack; isolate, then restore the enclosing ones.
162 let saved_loops = (
163 core::mem::take(&mut self.loop_starts),
164 core::mem::take(&mut self.loop_breaks),
165 core::mem::take(&mut self.loop_kinds),
166 core::mem::take(&mut self.loop_cleanup_base),
167 core::mem::replace(&mut self.cleanup_count, 0),
168 );
169 // Copy parent externs so nested def bodies can call imported natives; extras don't leak up.
170 self.chunk.extern_table = saved_chunk.extern_table.clone();
171 self.chunk.extern_index = saved_chunk.extern_index.clone();
172 // Inherit source/path for consistent traceback file context.
173 self.chunk.source = saved_chunk.source.clone();
174 self.chunk.path = saved_chunk.path.clone();
175 f(self);
176 let body = core::mem::take(&mut self.chunk);
177 self.chunk = saved_chunk;
178 self.ssa_versions = saved_ver;
179 self.globals_decl = saved_globals;
180 (self.loop_starts, self.loop_breaks, self.loop_kinds,
181 self.loop_cleanup_base, self.cleanup_count) = saved_loops;
182 body
183 }
184}
185
186// SSA join points: Phi emission at control-flow merges.

Callers 3

class_def_withMethod · 0.80
compile_bodyMethod · 0.80
parse_lambdaMethod · 0.80

Calls 1

replaceFunction · 0.50

Tested by

no test coverage detected