STL rework

- fixed lots of bugs
- overlay libraries work correctly and reliably
- the STL is an overlay library
- examples updated
This commit is contained in:
2023-06-17 21:12:23 +01:00
parent 5bb8a12fc2
commit aebbf51228
91 changed files with 1444 additions and 1395 deletions

View File

@@ -34,13 +34,16 @@ pub fn parse_layer(
};
let source =
source_loader::load_source(targets, prelude, i, loader, &|path| {
injected_as(path).is_some()
environment.0.walk(&i.r(path)[..], false).is_ok()
})?;
let tree = project_tree::build_tree(source, i, prelude, &injected_names)?;
let sum = ProjectTree(Rc::new(
environment.0.as_ref().clone() + tree.0.as_ref().clone(),
environment.0.as_ref().clone().overlay(tree.0.as_ref().clone()),
));
let resolvd = import_resolution::resolve_imports(sum, i, &injected_as)?;
let resolvd =
import_resolution::resolve_imports(sum, i, &injected_as, &|path| {
tree.0.walk(path, false).is_ok()
})?;
// Addition among modules favours the left hand side.
Ok(resolvd)
}