@ -156,8 +156,7 @@ impl ExecutorContext {
|
|||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
) -> Result<(), KclError> {
|
) -> Result<(), KclError> {
|
||||||
for statement in &program.body {
|
for statement in &program.body {
|
||||||
match statement {
|
if let BodyItem::ImportStatement(import_stmt) = statement {
|
||||||
BodyItem::ImportStatement(import_stmt) => {
|
|
||||||
let path_str = import_stmt.path.to_string();
|
let path_str = import_stmt.path.to_string();
|
||||||
|
|
||||||
if modules.contains_key(&path_str) {
|
if modules.contains_key(&path_str) {
|
||||||
@ -192,8 +191,6 @@ impl ExecutorContext {
|
|||||||
modules.insert(path_str, progn.clone().inner);
|
modules.insert(path_str, progn.clone().inner);
|
||||||
|
|
||||||
self.preload_all_modules(modules, &progn, exec_state).await?;
|
self.preload_all_modules(modules, &progn, exec_state).await?;
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -2571,8 +2568,6 @@ a = foo()
|
|||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
async fn load_all_modules() {
|
async fn load_all_modules() {
|
||||||
let mut universe = HashMap::<String, Node<Program>>::new();
|
|
||||||
|
|
||||||
// program a.kcl
|
// program a.kcl
|
||||||
let programa_kcl = r#"
|
let programa_kcl = r#"
|
||||||
export a = 1
|
export a = 1
|
||||||
@ -2598,7 +2593,7 @@ import c from 'c.kcl'
|
|||||||
d = b + c
|
d = b + c
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
let main = crate::parsing::parse_str(&main_kcl, ModuleId::default())
|
let main = crate::parsing::parse_str(main_kcl, ModuleId::default())
|
||||||
.parse_errs_as_err()
|
.parse_errs_as_err()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -735,12 +735,10 @@ impl ExecutorContext {
|
|||||||
|
|
||||||
for module in modules {
|
for module in modules {
|
||||||
let program = universe.get(&module).unwrap().clone();
|
let program = universe.get(&module).unwrap().clone();
|
||||||
let module = module.clone();
|
let exec_state = exec_state.clone();
|
||||||
let mut exec_state = exec_state.clone();
|
|
||||||
let exec_ctxt = self.clone();
|
let exec_ctxt = self.clone();
|
||||||
|
|
||||||
set.spawn(async move {
|
set.spawn(async move {
|
||||||
let module = module;
|
|
||||||
let mut exec_state = exec_state;
|
let mut exec_state = exec_state;
|
||||||
let exec_ctxt = exec_ctxt;
|
let exec_ctxt = exec_ctxt;
|
||||||
let program = program;
|
let program = program;
|
||||||
@ -761,7 +759,7 @@ impl ExecutorContext {
|
|||||||
set.join_all().await;
|
set.join_all().await;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.inner_run(&program, exec_state, false).await
|
self.inner_run(program, exec_state, false).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform the execution of a program. Accept all possible parameters and
|
/// Perform the execution of a program. Accept all possible parameters and
|
||||||
|
Reference in New Issue
Block a user