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,19 +87,20 @@ 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 {
return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
self.cfg.input.clone(), self.cfg.input.clone(),
line!() as usize, line!() as usize,
sig.loc(), sig.loc(),
self.caused_by(), self.caused_by(),
ident.name.inspect(), ident.name.inspect(),
))) )));
} else { }
}
let vi = VarInfo::new(sig_t, muty, vis, kind, None, self.impl_of(), py_name); let vi = VarInfo::new(sig_t, muty, vis, kind, None, self.impl_of(), py_name);
self.future_defined_locals.insert(ident.name.clone(), vi); self.future_defined_locals.insert(ident.name.clone(), vi);
Ok(()) Ok(())
} }
}
pub(crate) fn declare_sub( pub(crate) fn declare_sub(
&mut self, &mut self,
@ -141,14 +142,16 @@ 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 {
return Err(TyCheckErrors::from(TyCheckError::duplicate_decl_error(
self.cfg.input.clone(), self.cfg.input.clone(),
line!() as usize, line!() as usize,
sig.loc(), sig.loc(),
self.caused_by(), self.caused_by(),
name, name,
))) )));
} else { }
}
self.decls.insert(sig.ident.name.clone(), vi); self.decls.insert(sig.ident.name.clone(), vi);
if errs.is_empty() { if errs.is_empty() {
Ok(()) Ok(())
@ -156,7 +159,6 @@ impl Context {
Err(errs) Err(errs)
} }
} }
}
pub(crate) fn assign_var_sig( pub(crate) fn assign_var_sig(
&mut self, &mut self,