aboutsummaryrefslogtreecommitdiff
path: root/src/lux/analyser/lux.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/lux/analyser/lux.clj')
-rw-r--r--src/lux/analyser/lux.clj6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/lux/analyser/lux.clj b/src/lux/analyser/lux.clj
index b78908922..6877788db 100644
--- a/src/lux/analyser/lux.clj
+++ b/src/lux/analyser/lux.clj
@@ -293,12 +293,10 @@
(fail* (str "[Analyser Error] Unknown global definition: " name)))
(&/$Cons bottom-outer _)
- (|let [scopes (&/|tail (&/folds #(&/$Cons (&/get$ &/$name %2) %1)
- (&/|map #(&/get$ &/$name %) outer)
- (&/|reverse inner)))
+ (|let [scopes (&/|map #(&/get$ &/$name %) (&/|reverse inner))
[=local inner*] (&/fold2 (fn [register+new-inner frame in-scope]
(|let [[register new-inner] register+new-inner
- [register* frame*] (&&lambda/close-over (&/get-cached-scope-name in-scope) name register frame)]
+ [register* frame*] (&&lambda/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)))