Share environment when making module from AST.

This commit is contained in:
Stephen Chung
2020-11-19 10:52:45 +08:00
parent 1de85d749d
commit 0e4743e7c7
2 changed files with 7 additions and 3 deletions

View File

@@ -1521,14 +1521,12 @@ impl Module {
// Non-private functions defined become module functions
#[cfg(not(feature = "no_function"))]
{
let ast_lib: Shared<Module> = ast.lib().clone().into();
ast.iter_functions()
.filter(|(_, access, _, _, _)| !access.is_private())
.for_each(|(_, _, _, _, func)| {
// Encapsulate AST environment
let mut func = func.as_ref().clone();
func.lib = Some(ast_lib.clone());
func.lib = Some(ast.shared_lib());
func.mods = func_mods.clone();
module.set_script_fn(func.into());
});