mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 04:24:43 +00:00
Update codegen.rs
This commit is contained in:
parent
7466c89bfb
commit
cf428fea5f
1 changed files with 13 additions and 1 deletions
|
@ -394,6 +394,18 @@ impl CodeGenerator {
|
|||
self.stack_inc();
|
||||
}
|
||||
|
||||
fn emit_load_global_instr(&mut self, ident: Identifier) {
|
||||
log!(info "entered {} ({ident})", fn_name!());
|
||||
let escaped = escape_name(ident);
|
||||
let name = self
|
||||
.local_search(&escaped, Name)
|
||||
.unwrap_or_else(|| self.register_name(escaped));
|
||||
let instr = LOAD_GLOBAL;
|
||||
self.write_instr(instr);
|
||||
self.write_arg(name.idx as u8);
|
||||
self.stack_inc();
|
||||
}
|
||||
|
||||
fn emit_import_name_instr(&mut self, ident: Identifier, items_len: usize) {
|
||||
log!(info "entered {}({ident})", fn_name!());
|
||||
let escaped = escape_name(ident);
|
||||
|
@ -1535,7 +1547,7 @@ impl CodeGenerator {
|
|||
self.write_instr(Opcode310::LOAD_ASSERTION_ERROR);
|
||||
self.write_arg(0);
|
||||
} else {
|
||||
self.emit_load_name_instr(Identifier::public("AssertionError"));
|
||||
self.emit_load_global_instr(Identifier::public("AssertionError"));
|
||||
}
|
||||
if let Some(expr) = args.try_remove(0) {
|
||||
self.emit_expr(expr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue