Overlay keep (#5629)

* Allow env vars to be kept from removed overlay

* Rename --keep to --keep-custom; Add new test

* Rename some symbols

* (WIP) Start working on --keep for defs and aliases

* Fix decls/aliases not melting properly

* Use id instead of the whole cloned overlay

* Rewrite overlay remove for no reason

Doesn't fix the bug but at least looks better.

* Rename variable

* Fix adding overlay env vars

* Add more tests; Fmt + Clippy
This commit is contained in:
Jakub Žádník
2022-05-25 00:22:17 +03:00
committed by GitHub
parent 8018ae3286
commit 9a482ce284
8 changed files with 363 additions and 145 deletions

View File

@ -2063,6 +2063,8 @@ pub fn parse_overlay_remove(
)
};
let keep_custom = call.has_flag("keep-custom");
let pipeline = Pipeline::from_vec(vec![Expression {
expr: Expr::Call(call),
span: span(spans),
@ -2097,16 +2099,7 @@ pub fn parse_overlay_remove(
);
}
// let original_module = if call.has_flag("discard") {
// None
// } else if let Some(module_id) = working_set.find_module(overlay_name.as_bytes()) {
// // TODO: Remove clone
// Some(working_set.get_module(module_id).clone())
// } else {
// Some(Module::new())
// };
working_set.remove_overlay(overlay_name.as_bytes());
working_set.remove_overlay(overlay_name.as_bytes(), keep_custom);
(pipeline, None)
}