mirror of
https://github.com/erg-lang/erg.git
synced 2025-10-01 13:11:11 +00:00
Update lower.rs
This commit is contained in:
parent
08aa4054a1
commit
fb50e77cea
1 changed files with 24 additions and 16 deletions
|
@ -267,8 +267,8 @@ impl ASTLowerer {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pop_append_errs(&mut self) {
|
fn pop_append_errs(&mut self) {
|
||||||
if let Err(mut errs) = self.ctx.check_decls_and_pop() {
|
if let Err(errs) = self.ctx.check_decls_and_pop() {
|
||||||
self.errs.append(&mut errs);
|
self.errs.extend(errs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1329,14 +1329,18 @@ impl ASTLowerer {
|
||||||
self.errs.extend(errs);
|
self.errs.extend(errs);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ast::ClassAttr::Decl(decl) => {
|
ast::ClassAttr::Decl(decl) => match self.lower_type_asc(decl) {
|
||||||
let decl = self.lower_type_asc(decl)?;
|
Ok(decl) => {
|
||||||
hir_methods.push(hir::Expr::TypeAsc(decl));
|
hir_methods.push(hir::Expr::TypeAsc(decl));
|
||||||
}
|
}
|
||||||
|
Err(errs) => {
|
||||||
|
self.errs.extend(errs);
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Err(mut errs) = self.ctx.check_decls() {
|
if let Err(errs) = self.ctx.check_decls() {
|
||||||
self.errs.append(&mut errs);
|
self.errs.extend(errs);
|
||||||
}
|
}
|
||||||
if let Some((trait_, _)) = &impl_trait {
|
if let Some((trait_, _)) = &impl_trait {
|
||||||
self.check_override(&class, Some(trait_));
|
self.check_override(&class, Some(trait_));
|
||||||
|
@ -1438,14 +1442,18 @@ impl ASTLowerer {
|
||||||
self.errs.extend(errs);
|
self.errs.extend(errs);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ast::ClassAttr::Decl(decl) => {
|
ast::ClassAttr::Decl(decl) => match self.lower_type_asc(decl) {
|
||||||
let decl = self.lower_type_asc(decl)?;
|
Ok(decl) => {
|
||||||
hir_methods.push(hir::Expr::TypeAsc(decl));
|
hir_methods.push(hir::Expr::TypeAsc(decl));
|
||||||
}
|
}
|
||||||
|
Err(errs) => {
|
||||||
|
self.errs.extend(errs);
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Err(mut errs) = self.ctx.check_decls() {
|
if let Err(errs) = self.ctx.check_decls() {
|
||||||
self.errs.append(&mut errs);
|
self.errs.extend(errs);
|
||||||
}
|
}
|
||||||
self.push_patch();
|
self.push_patch();
|
||||||
}
|
}
|
||||||
|
@ -1934,8 +1942,8 @@ impl ASTLowerer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.ctx.clear_invalid_vars();
|
self.ctx.clear_invalid_vars();
|
||||||
self.ctx.check_decls().unwrap_or_else(|mut errs| {
|
self.ctx.check_decls().unwrap_or_else(|errs| {
|
||||||
self.errs.append(&mut errs);
|
self.errs.extend(errs);
|
||||||
});
|
});
|
||||||
let hir = HIR::new(ast.name, module);
|
let hir = HIR::new(ast.name, module);
|
||||||
log!(info "HIR (not resolved, current errs: {}):\n{hir}", self.errs.len());
|
log!(info "HIR (not resolved, current errs: {}):\n{hir}", self.errs.len());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue