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

Method bind_module_attr

compiler/src/modules/parser/imports.rs:179–186  ·  view source on GitHub ↗

Emit `LoadModule + LoadAttr(name) + StoreName(alias)`: bind a module attribute under `alias`. */

(&mut self, import_idx: u16, name: &str, alias: &str)

Source from the content-addressed store, hash-verified

177
178 /* Emit `LoadModule + LoadAttr(name) + StoreName(alias)`: bind a module attribute under `alias`. */
179 fn bind_module_attr(&mut self, import_idx: u16, name: &str, alias: &str) {
180 self.chunk.emit(OpCode::LoadModule, import_idx);
181 let attr_idx = self.chunk.push_name(name);
182 self.chunk.emit(OpCode::LoadAttr, attr_idx);
183 let ver = self.increment_version(alias);
184 let slot = self.push_ssa_name(alias, ver);
185 self.chunk.emit(OpCode::StoreName, slot);
186 }
187
188 /* Named import: registers module, emits LoadModule+LoadAttr+StoreName; Native also populates extern_table for functions. */
189 fn resolve_and_bind_named(&mut self, spec: &str, span: (usize, usize), names: Vec<(String, String)>) {

Callers 2

resolve_and_bind_starMethod · 0.80

Calls 4

emitMethod · 0.80
push_nameMethod · 0.80
increment_versionMethod · 0.80
push_ssa_nameMethod · 0.80

Tested by

no test coverage detected