aboutsummaryrefslogtreecommitdiff
path: root/src/lux/compiler/lambda.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-04-19 19:50:10 -0400
committerEduardo Julian2015-04-19 19:50:10 -0400
commite1df2642c538293f1dfd0faffad72b48a626148a (patch)
treeba62cd4c50b193a8c147957f7ca6339f16dd1ff3 /src/lux/compiler/lambda.clj
parent6676e1bb8e79ed4336b113b573f3b9f9dd8399af (diff)
- Fixed several bugs in lux.lux
- Fixed an error in lux.base/analyse-2 - Modified the analyser so the symbols that identify all of the special forms must mandatorily have "" as their prefix. - Fixed a bug in the binary operations at lux.analyser.host wherein the types where being omitted. - Fixed a bug when closing-over variables inside lambda bodies wherein the names of bindings where being stores as (incomparable) arrays, instead of as (comparable) strings.
Diffstat (limited to '')
-rw-r--r--src/lux/compiler/lambda.clj3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lux/compiler/lambda.clj b/src/lux/compiler/lambda.clj
index c75ec4806..332f9804b 100644
--- a/src/lux/compiler/lambda.clj
+++ b/src/lux/compiler/lambda.clj
@@ -39,7 +39,8 @@
(-> (doto (.visitVarInsn Opcodes/ALOAD 0)
(.visitVarInsn Opcodes/ALOAD (inc ?captured-id))
(.visitFieldInsn Opcodes/PUTFIELD class-name captured-name clo-field-sig))
- (->> (let [captured-name (str &&/closure-prefix ?captured-id)])
+ (->> (let [captured-name (str &&/closure-prefix ?captured-id)
+ _ (prn 'add-lambda-<init> class-name ?captured-id)])
(matchv ::M/objects [?name+?captured]
[[?name ["Expression" [["captured" [_ ?captured-id ?source]] _]]]])
(doseq [?name+?captured (&/->seq env)])))