Update register.rs

This commit is contained in:
Shunsuke Shibayama 2022-12-22 23:49:21 +09:00
parent af3ece6a1b
commit b69ef5e093

View file

@ -87,18 +87,19 @@ impl Context {
None None
}; };
if let Some(_decl) = self.decls.remove(&ident.name) { if let Some(_decl) = self.decls.remove(&ident.name) {
Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error( if !self.cfg.python_compatible_mode {
self.cfg.input.clone(), return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
line!() as usize, self.cfg.input.clone(),
sig.loc(), line!() as usize,
self.caused_by(), sig.loc(),
ident.name.inspect(), 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(())
} }
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( pub(crate) fn declare_sub(
@ -141,21 +142,22 @@ impl Context {
py_name, py_name,
); );
if let Some(_decl) = self.decls.remove(name) { if let Some(_decl) = self.decls.remove(name) {
Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error( if !self.cfg.python_compatible_mode {
self.cfg.input.clone(), return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
line!() as usize, self.cfg.input.clone(),
sig.loc(), line!() as usize,
self.caused_by(), sig.loc(),
name, self.caused_by(),
))) name,
} else { )));
self.decls.insert(sig.ident.name.clone(), vi);
if errs.is_empty() {
Ok(())
} else {
Err(errs)
} }
} }
self.decls.insert(sig.ident.name.clone(), vi);
if errs.is_empty() {
Ok(())
} else {
Err(errs)
}
} }
pub(crate) fn assign_var_sig( pub(crate) fn assign_var_sig(