aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/tool/compiler
diff options
context:
space:
mode:
authorEduardo Julian2022-04-05 07:16:43 -0400
committerEduardo Julian2022-04-05 07:16:43 -0400
commita2d994a3f7a39964452df7523f69e16b10b266f9 (patch)
treeaa533a9dd218a9c14332d4c4697c25bc35f07a4d /stdlib/source/library/lux/tool/compiler
parent14f18c100c2f8c3ec9c60c14330d926cd2d6f639 (diff)
Properly handling variance for remaining mutable types.
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler')
-rw-r--r--stdlib/source/library/lux/tool/compiler/default/platform.lux20
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/io/archive.lux12
2 files changed, 22 insertions, 10 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/default/platform.lux b/stdlib/source/library/lux/tool/compiler/default/platform.lux
index bf809bbb5..1facd15f6 100644
--- a/stdlib/source/library/lux/tool/compiler/default/platform.lux
+++ b/stdlib/source/library/lux/tool/compiler/default/platform.lux
@@ -115,7 +115,10 @@
(let [system (the #&file_system platform)
write_artifact! (is (-> [artifact.ID (Maybe Text) Binary] (Action Any))
(function (_ [artifact_id custom content])
- (cache/artifact.cache! system context @module artifact_id content)))]
+ (with_expansions [<it> (cache/artifact.cache! system context @module artifact_id content)]
+ (for @.old (as (Async (Try Any))
+ <it>)
+ <it>))))]
(do [! ..monad]
[_ (is (Async (Try Any))
(cache/module.enable! async.monad system context @module))
@@ -132,12 +135,15 @@
(is (Action (List Any)))))
document (# async.monad in
(document.marked? key (the [archive.#module module.#document] entry)))]
- (|> [(|> entry
- (the archive.#module)
- (has module.#document document))
- (the archive.#registry entry)]
- (_.result (..writer format))
- (cache/module.cache! system context @module)))))
+ (with_expansions [<it> (|> [(|> entry
+ (the archive.#module)
+ (has module.#document document))
+ (the archive.#registry entry)]
+ (_.result (..writer format))
+ (cache/module.cache! system context @module))]
+ (for @.old (as (Async (Try Any))
+ <it>)
+ <it>)))))
... TODO: Inline ASAP
(def: initialize_buffer!
diff --git a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
index 26298275f..bd1c6aa1e 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
@@ -332,9 +332,15 @@
(list.only (|>> product.left (dictionary.key? purge) not))
(monad.each ! (function (_ [module_name [@module entry]])
(do !
- [[entry bundles] (..load_definitions fs context @module host_environment entry)]
- (in [[module_name entry]
- bundles])))))]
+ [[entry bundles] (with_expansions [<it> (..load_definitions fs context @module host_environment entry)]
+ (for @.old (as (Async (Try [(archive.Entry .Module) Bundles]))
+ <it>)
+ <it>))]
+ (in (with_expansions [<it> [[module_name entry]
+ bundles]]
+ (for @.old (as [[descriptor.Module (archive.Entry .Module)] Bundles]
+ <it>)
+ <it>)))))))]
(in it)))
(def: (load_every_reserved_module customs configuration host_environment fs context import contexts archive)