diff options
Diffstat (limited to 'luxc')
-rw-r--r-- | luxc/src/lux/analyser/env.clj | 2 | ||||
-rw-r--r-- | luxc/src/lux/analyser/function.clj | 8 | ||||
-rw-r--r-- | luxc/src/lux/analyser/lux.clj | 4 | ||||
-rw-r--r-- | luxc/src/lux/base.clj | 16 |
4 files changed, 15 insertions, 15 deletions
diff --git a/luxc/src/lux/analyser/env.clj b/luxc/src/lux/analyser/env.clj index b8027a048..6f6e9f986 100644 --- a/luxc/src/lux/analyser/env.clj +++ b/luxc/src/lux/analyser/env.clj @@ -66,5 +66,5 @@ state) (&/$Cons env _) - (return* state (->> env (&/get$ &/$closure) (&/get$ &/$mappings)))) + (return* state (->> env (&/get$ &/$captured) (&/get$ &/$mappings)))) )) diff --git a/luxc/src/lux/analyser/function.clj b/luxc/src/lux/analyser/function.clj index aaaaed9f9..7d199ba30 100644 --- a/luxc/src/lux/analyser/function.clj +++ b/luxc/src/lux/analyser/function.clj @@ -20,9 +20,9 @@ (|let [[[register-type register-cursor] _] register register* (&&/|meta register-type register-cursor (&&/$captured (&/T [scope - (->> frame (&/get$ &/$closure) (&/get$ &/$counter)) + (->> frame (&/get$ &/$captured) (&/get$ &/$counter)) register])))] - (&/T [register* (&/update$ &/$closure #(->> % - (&/update$ &/$counter inc) - (&/update$ &/$mappings (fn [mps] (&/|put name register* mps)))) + (&/T [register* (&/update$ &/$captured #(->> % + (&/update$ &/$counter inc) + (&/update$ &/$mappings (fn [mps] (&/|put name register* mps)))) frame)]))) diff --git a/luxc/src/lux/analyser/lux.clj b/luxc/src/lux/analyser/lux.clj index e10810475..6649628c7 100644 --- a/luxc/src/lux/analyser/lux.clj +++ b/luxc/src/lux/analyser/lux.clj @@ -277,7 +277,7 @@ (fn [state] (|let [stack (&/get$ &/$scopes state) no-binding? #(and (->> % (&/get$ &/$locals) (&/get$ &/$mappings) (&/|contains? name) not) - (->> % (&/get$ &/$closure) (&/get$ &/$mappings) (&/|contains? name) not)) + (->> % (&/get$ &/$captured) (&/get$ &/$mappings) (&/|contains? name) not)) [inner outer] (&/|split-with no-binding? stack)] (|case outer (&/$Nil) @@ -292,7 +292,7 @@ [register* frame*] (&&function/close-over in-scope name register frame)] (&/T [register* (&/$Cons frame* new-inner)]))) (&/T [(or (->> bottom-outer (&/get$ &/$locals) (&/get$ &/$mappings) (&/|get name)) - (->> bottom-outer (&/get$ &/$closure) (&/get$ &/$mappings) (&/|get name))) + (->> bottom-outer (&/get$ &/$captured) (&/get$ &/$mappings) (&/|get name))) &/$Nil]) (&/|reverse inner) scopes)] ((|do [_ (&type/check exo-type (&&/expr-type* =local))] diff --git a/luxc/src/lux/base.clj b/luxc/src/lux/base.clj index 95c78bc02..536009a39 100644 --- a/luxc/src/lux/base.clj +++ b/luxc/src/lux/base.clj @@ -119,9 +119,9 @@ ;; Env (deftuple ["name" - "inner-closures" + "inner" "locals" - "closure"]) + "captured"]) ;; Host (deftuple @@ -726,13 +726,13 @@ (|table)])) (defn env [name old-name] - (T [;; "lux;name" + (T [;; name ($Cons name old-name) - ;; "lux;inner-closures" + ;; inner 0 - ;; "lux;locals" + ;; locals +init-bindings+ - ;; "lux;closure" + ;; captured +init-bindings+] )) @@ -959,10 +959,10 @@ (defn with-closure [body] (|do [closure-name (|do [top get-top-local-env] - (return (->> top (get$ $inner-closures) str)))] + (return (->> top (get$ $inner) str)))] (fn [state] (let [body* (with-scope closure-name body)] - (run-state body* (update$ $scopes #($Cons (update$ $inner-closures inc (|head %)) + (run-state body* (update$ $scopes #($Cons (update$ $inner inc (|head %)) (|tail %)) state)))))) |