@@ -91,15 +91,16 @@ let append_list x xs =
91
91
This would not work with [NonNullString]
92
92
*)
93
93
let ocaml_to_js_eff
94
- ({arg_label; arg_type } : External_arg_spec.t_noname )
94
+ ~(arg_label : External_arg_spec.label_noname )
95
+ ~(arg_type : External_arg_spec.attr )
95
96
(raw_arg : E.t )
96
97
: arg_expression * E.t list =
97
98
let arg =
98
99
match arg_label with
99
100
| Optional ->
100
101
Js_of_lam_option. get_default_undefined_from_optional raw_arg
101
- | Label { cst = None ;_} | Empty -> raw_arg
102
- | Label {cst = Some _;_}
102
+ | Label | Empty -> raw_arg
103
+ | LabelCst _
103
104
| EmptyCst _
104
105
-> assert false in
105
106
match arg_type with
@@ -176,16 +177,17 @@ let assemble_args_no_splice call_loc ffi
176
177
| [] , _
177
178
-> assert (args = [] ) ; empty_pair
178
179
| { arg_label = EmptyCst cst ; _} :: labels, args
179
- | { arg_label = Label {cst = Some cst ;_ } ; _} :: labels , args ->
180
+ | { arg_label = LabelCst {cst ; } ; _} :: labels , args ->
180
181
let accs, eff = aux labels args in
181
182
Lam_compile_const. translate_arg_cst cst :: accs, eff
182
- | ( {arg_label = Empty | Label {cst = None ;_} | Optional ;_ } as arg_kind) ::labels,
183
+ | {arg_label = Empty | Label | Optional as arg_label ; arg_type } ::labels,
183
184
arg :: args
184
185
->
185
186
let accs, eff = aux labels args in
186
- let acc, new_eff = ocaml_to_js_eff arg_kind arg in
187
+ let acc, new_eff = ocaml_to_js_eff
188
+ ~arg_label ~arg_type arg in
187
189
append_list acc accs, Ext_list. append new_eff eff
188
- | { arg_label = Empty | Label {cst = None ;_} | Optional ; _ } :: _ , []
190
+ | { arg_label = Empty | Label | Optional ; _ } :: _ , []
189
191
-> assert false
190
192
in
191
193
let args, eff = aux arg_types args in
@@ -202,10 +204,10 @@ let assemble_args_has_splice call_loc ffi (arg_types : specs) (args : exprs)
202
204
match labels, args with
203
205
| [] , _ -> assert (args = [] ); empty_pair
204
206
| { arg_label = EmptyCst cst ; _} :: labels , args
205
- | { arg_label = Label {cst = Some cst ;_ } ; _} :: labels , args ->
207
+ | { arg_label = LabelCst {cst} ; _} :: labels , args ->
206
208
let accs, eff = aux labels args in
207
209
Lam_compile_const. translate_arg_cst cst :: accs, eff
208
- | ({arg_label = Empty | Label {cst = None ;_} | Optional ;_ } as arg_kind ) ::labels,
210
+ | ({arg_label = Empty | Label | Optional as arg_label; arg_type } ) ::labels,
209
211
arg :: args
210
212
->
211
213
let accs, eff = aux labels args in
@@ -214,10 +216,10 @@ let assemble_args_has_splice call_loc ffi (arg_types : specs) (args : exprs)
214
216
Ext_list. append ls accs, eff
215
217
| _ ->
216
218
if args = [] then dynamic := true ;
217
- let acc, new_eff = ocaml_to_js_eff arg_kind arg in
219
+ let acc, new_eff = ocaml_to_js_eff ~arg_type ~arg_label arg in
218
220
append_list acc accs, Ext_list. append new_eff eff
219
221
end
220
- | { arg_label = Empty | Label {cst = None ;_} | Optional ; _ } :: _ , []
222
+ | { arg_label = Empty | Label | Optional ; _ } :: _ , []
221
223
-> assert false
222
224
in
223
225
let args, eff = aux arg_types args in
0 commit comments