aboutsummaryrefslogtreecommitdiff
path: root/src/lux/compiler/case.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-03-18 08:50:27 -0400
committerEduardo Julian2015-03-18 08:50:27 -0400
commit9a037df75e0d06afb5f26b4c4222009bbfc2c9e6 (patch)
tree49c18c75e56e10430c99532ef49ecf08a109ae75 /src/lux/compiler/case.clj
parent17c482dcbd49294a8d6e995ab6878445330b216c (diff)
[2nd Super Refactoring That Breaks The System: Part 4]
- Finished moving the codebase to use the functions from lux.base with the "&" prefix.
Diffstat (limited to 'src/lux/compiler/case.clj')
-rw-r--r--src/lux/compiler/case.clj11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/lux/compiler/case.clj b/src/lux/compiler/case.clj
index 8d9c129c5..6f9fd998a 100644
--- a/src/lux/compiler/case.clj
+++ b/src/lux/compiler/case.clj
@@ -3,10 +3,7 @@
[template :refer [do-template]])
[clojure.core.match :as M :refer [match matchv]]
clojure.core.match.array
- (lux [base :as & :refer [exec return* return fail fail*
- repeat-m exhaust-m try-m try-all-m map-m reduce-m
- apply-m
- normalize-ident]]
+ (lux [base :as & :refer [exec return* return fail fail*]]
[type :as &type]
[lexer :as &lexer]
[parser :as &parser]
@@ -40,11 +37,11 @@
[register (&/V "Pattern" (&/T $body [&/V "TextMatch" ?value]))]
[["Tuple" ?members]]
- (let [[register* =members] (reduce (fn [[register =members] member]
+ (let [[register* =members] (&/fold (fn [[register =members] member]
(let [[register* =member] (->match $body register member)]
[register* (cons =member =members)]))
[register (list)]
- (&/->seq ?members))]
+ ?members)]
[register* (&/V "Pattern" (&/T $body [&/V "TupleMatch" (reverse =members)]))])
[["Tag" ?tag]]
@@ -182,7 +179,7 @@
(.visitInsn Opcodes/DUP)
(.visitMethodInsn Opcodes/INVOKESPECIAL ex-class "<init>" "()V")
(.visitInsn Opcodes/ATHROW))
- (map-m (fn [[?label ?body]]
+ (&/map% (fn [[?label ?body]]
(exec [:let [_ (.visitLabel writer ?label)]
ret (compile ?body)
:let [_ (.visitJumpInsn writer Opcodes/GOTO $end)]]