diff --git a/mers_lib/Cargo.toml b/mers_lib/Cargo.toml index 920663e..61fd27e 100755 --- a/mers_lib/Cargo.toml +++ b/mers_lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mers_lib" -version = "0.9.6" +version = "0.9.7" edition = "2021" license = "MIT OR Apache-2.0" description = "library to use the mers language in other projects" diff --git a/mers_lib/src/program/configs/mod.rs b/mers_lib/src/program/configs/mod.rs index a80f7cf..31e5dd9 100755 --- a/mers_lib/src/program/configs/mod.rs +++ b/mers_lib/src/program/configs/mod.rs @@ -157,6 +157,20 @@ impl Config { val: Arc>, val_type: crate::data::Type, ) -> Self { + // give the correct DisplayInfo to functions' inner scopes. + { + let data = val.write().unwrap(); + let mut data = data.get_mut_unchecked(); + if let Some(f) = data.mut_any().downcast_mut::() { + f.info.global.object_fields = Arc::clone(&self.info_check.global.object_fields); + f.info.global.object_fields_rev = + Arc::clone(&self.info_check.global.object_fields_rev); + let mut info_check = f.info_check.lock().unwrap(); + info_check.global.object_fields = Arc::clone(&self.info_check.global.object_fields); + info_check.global.object_fields_rev = + Arc::clone(&self.info_check.global.object_fields_rev); + } + } self.info_parsed.scopes[0].init_var(name, (0, self.globals)); self.info_run.scopes[0].init_var(self.globals, val); self.info_check.scopes[0].init_var(self.globals, val_type);