mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 12:24:45 +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();
|
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) {
|
fn emit_import_name_instr(&mut self, ident: Identifier, items_len: usize) {
|
||||||
log!(info "entered {}({ident})", fn_name!());
|
log!(info "entered {}({ident})", fn_name!());
|
||||||
let escaped = escape_name(ident);
|
let escaped = escape_name(ident);
|
||||||
|
@ -1535,7 +1547,7 @@ impl CodeGenerator {
|
||||||
self.write_instr(Opcode310::LOAD_ASSERTION_ERROR);
|
self.write_instr(Opcode310::LOAD_ASSERTION_ERROR);
|
||||||
self.write_arg(0);
|
self.write_arg(0);
|
||||||
} else {
|
} 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) {
|
if let Some(expr) = args.try_remove(0) {
|
||||||
self.emit_expr(expr);
|
self.emit_expr(expr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue