aboutsummaryrefslogtreecommitdiff
path: root/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
diff options
context:
space:
mode:
Diffstat (limited to 'lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux')
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux13
1 files changed, 7 insertions, 6 deletions
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
index 78033cc96..28a5c34bc 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
@@ -1015,13 +1015,14 @@
inputs! (|> inputsTI
list.enumeration
(list#each (function (_ [register [type term]])
- (case (type.primitive? type)
- {.#Right type}
- (_.ALOAD (++ register))
-
- {.#Left type}
+ (let [then! (case (type.primitive? type)
+ {.#Right type}
+ (_.unwrap type)
+
+ {.#Left type}
+ (_.CHECKCAST type))]
(|>> (_.ALOAD (++ register))
- (_.CHECKCAST type)))))
+ then!))))
_.fuse)
store_capturedI (|> env
list.size