diff options
Diffstat (limited to '')
-rw-r--r-- | lux-jvm/source/program.lux | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux index 9dc641d7f..e9f58a71b 100644 --- a/lux-jvm/source/program.lux +++ b/lux-jvm/source/program.lux @@ -113,16 +113,16 @@ Expander (do try.monad [apply_method (|> macro - (:coerce java/lang/Object) + (:as java/lang/Object) (java/lang/Object::getClass) (java/lang/Class::getMethod "apply" _apply2_args))] - (:coerce (Try (Try [Lux (List Code)])) - (java/lang/reflect/Method::invoke - (:coerce java/lang/Object macro) - (|> (ffi.array java/lang/Object 2) - (ffi.array_write 0 (:coerce java/lang/Object inputs)) - (ffi.array_write 1 (:coerce java/lang/Object lux))) - apply_method)))) + (:as (Try (Try [Lux (List Code)])) + (java/lang/reflect/Method::invoke + (:as java/lang/Object macro) + (|> (ffi.array java/lang/Object 2) + (ffi.array_write 0 (:as java/lang/Object inputs)) + (ffi.array_write 1 (:as java/lang/Object lux))) + apply_method)))) (def: how_to_wrap_a_phase Synthesis @@ -214,13 +214,13 @@ (: (Try java/lang/Object)) (do try.monad [apply_method (|> phase_wrapper - (:coerce java/lang/Object) + (:as java/lang/Object) (java/lang/Object::getClass) (java/lang/Class::getMethod runtime.apply_method _apply1_args))] (java/lang/reflect/Method::invoke - (:coerce java/lang/Object phase_wrapper) + (:as java/lang/Object phase_wrapper) (|> (ffi.array java/lang/Object 1) - (ffi.array_write 0 (:coerce java/lang/Object phase))) + (ffi.array_write 0 (:as java/lang/Object phase))) apply_method))))))) (def: #export platform @@ -241,30 +241,30 @@ (def: (extender phase_wrapper) (-> platform.Phase_Wrapper Extender) ## TODO: Stop relying on coercions ASAP. - (<| (:coerce Extender) + (<| (:as Extender) (function (@self handler)) - (:coerce Handler) + (:as Handler) (function (@self name phase)) - (:coerce Phase) + (:as Phase) (function (@self archive parameters)) - (:coerce Operation) + (:as Operation) (function (@self state)) - (:coerce Try) + (:as Try) try.assume - (:coerce Try) + (:as Try) (do try.monad [method (|> handler - (:coerce java/lang/Object) + (:as java/lang/Object) (java/lang/Object::getClass) (java/lang/Class::getMethod "apply" _apply5_args))] (java/lang/reflect/Method::invoke - (:coerce java/lang/Object handler) + (:as java/lang/Object handler) (|> (ffi.array java/lang/Object 5) - (ffi.array_write 0 (:coerce java/lang/Object name)) - (ffi.array_write 1 (:coerce java/lang/Object (phase_wrapper phase))) - (ffi.array_write 2 (:coerce java/lang/Object archive)) - (ffi.array_write 3 (:coerce java/lang/Object parameters)) - (ffi.array_write 4 (:coerce java/lang/Object state))) + (ffi.array_write 0 (:as java/lang/Object name)) + (ffi.array_write 1 (:as java/lang/Object (phase_wrapper phase))) + (ffi.array_write 2 (:as java/lang/Object archive)) + (ffi.array_write 3 (:as java/lang/Object parameters)) + (ffi.array_write 4 (:as java/lang/Object state))) method)))) (def: (declare_success! _) |