diff options
author | Eduardo Julian | 2015-04-19 19:50:10 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-04-19 19:50:10 -0400 |
commit | e1df2642c538293f1dfd0faffad72b48a626148a (patch) | |
tree | ba62cd4c50b193a8c147957f7ca6339f16dd1ff3 /src/lux/compiler/lambda.clj | |
parent | 6676e1bb8e79ed4336b113b573f3b9f9dd8399af (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.clj | 3 |
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)]))) |