mirror of
https://github.com/erg-lang/erg.git
synced 2025-10-01 05:11:09 +00:00
Update register.rs
This commit is contained in:
parent
af3ece6a1b
commit
b69ef5e093
1 changed files with 26 additions and 24 deletions
|
@ -87,18 +87,19 @@ impl Context {
|
|||
None
|
||||
};
|
||||
if let Some(_decl) = self.decls.remove(&ident.name) {
|
||||
Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
|
||||
self.cfg.input.clone(),
|
||||
line!() as usize,
|
||||
sig.loc(),
|
||||
self.caused_by(),
|
||||
ident.name.inspect(),
|
||||
)))
|
||||
} else {
|
||||
let vi = VarInfo::new(sig_t, muty, vis, kind, None, self.impl_of(), py_name);
|
||||
self.future_defined_locals.insert(ident.name.clone(), vi);
|
||||
Ok(())
|
||||
if !self.cfg.python_compatible_mode {
|
||||
return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
|
||||
self.cfg.input.clone(),
|
||||
line!() as usize,
|
||||
sig.loc(),
|
||||
self.caused_by(),
|
||||
ident.name.inspect(),
|
||||
)));
|
||||
}
|
||||
}
|
||||
let vi = VarInfo::new(sig_t, muty, vis, kind, None, self.impl_of(), py_name);
|
||||
self.future_defined_locals.insert(ident.name.clone(), vi);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn declare_sub(
|
||||
|
@ -141,21 +142,22 @@ impl Context {
|
|||
py_name,
|
||||
);
|
||||
if let Some(_decl) = self.decls.remove(name) {
|
||||
Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
|
||||
self.cfg.input.clone(),
|
||||
line!() as usize,
|
||||
sig.loc(),
|
||||
self.caused_by(),
|
||||
name,
|
||||
)))
|
||||
} else {
|
||||
self.decls.insert(sig.ident.name.clone(), vi);
|
||||
if errs.is_empty() {
|
||||
Ok(())
|
||||
} else {
|
||||
Err(errs)
|
||||
if !self.cfg.python_compatible_mode {
|
||||
return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
|
||||
self.cfg.input.clone(),
|
||||
line!() as usize,
|
||||
sig.loc(),
|
||||
self.caused_by(),
|
||||
name,
|
||||
)));
|
||||
}
|
||||
}
|
||||
self.decls.insert(sig.ident.name.clone(), vi);
|
||||
if errs.is_empty() {
|
||||
Ok(())
|
||||
} else {
|
||||
Err(errs)
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn assign_var_sig(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue