diff options
author | Eduardo Julian | 2015-08-12 00:14:53 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-08-12 00:14:53 -0400 |
commit | 95e7125c36dfa04a29ac363f1fc7e4c59b505415 (patch) | |
tree | 972b3f35b6ec659721582464726cfa5f4a677000 /src/lux/compiler/case.clj | |
parent | 72a9ed29ca5518ca98658873f4616d5637db80af (diff) |
- Changing tags so they're actually indices (part 3).
- Added several bug fixes
- Changed "Reader" to "Source" and "HostState" to "Host" in lux.lux
- Set up indexing of records via tags.
- Added lux.analyser.record namespace.
- Removed some (now) unnecessary code for working with records.
- Added the license (can't believe I missed it for so long.)
Diffstat (limited to '')
-rw-r--r-- | src/lux/compiler/case.clj | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/src/lux/compiler/case.clj b/src/lux/compiler/case.clj index b108d463c..4d8ac2190 100644 --- a/src/lux/compiler/case.clj +++ b/src/lux/compiler/case.clj @@ -102,29 +102,6 @@ (.visitInsn Opcodes/POP) (.visitJumpInsn Opcodes/GOTO $target)) - (&a-case/$RecordTestAC ?slots) - (doto writer - (.visitTypeInsn Opcodes/CHECKCAST "[Ljava/lang/Object;") - (-> (doto (.visitInsn Opcodes/DUP) - (.visitLdcInsn (int idx)) - (.visitInsn Opcodes/AALOAD) - (compile-match test $next $sub-else) - (.visitLabel $sub-else) - (.visitInsn Opcodes/POP) - (.visitJumpInsn Opcodes/GOTO $else) - (.visitLabel $next)) - (->> (|let [[idx [_ test]] idx+member - $next (new Label) - $sub-else (new Label)]) - (doseq [idx+member (->> ?slots - &/->seq - (sort compare-kv) - &/->list - &/enumerate - &/->seq)]))) - (.visitInsn Opcodes/POP) - (.visitJumpInsn Opcodes/GOTO $target)) - (&a-case/$VariantTestAC ?tag ?test) (doto writer (.visitTypeInsn Opcodes/CHECKCAST "[Ljava/lang/Object;") |