@@ -91,15 +91,16 @@ let append_list x xs =
9191 This would not work with [NonNullString]
9292*)
9393let 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 )
9596 (raw_arg : E.t )
9697 : arg_expression * E.t list =
9798 let arg =
9899 match arg_label with
99100 | Optional ->
100101 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 _
103104 | EmptyCst _
104105 -> assert false in
105106 match arg_type with
@@ -176,16 +177,17 @@ let assemble_args_no_splice call_loc ffi
176177 | [] , _
177178 -> assert (args = [] ) ; empty_pair
178179 | { arg_label = EmptyCst cst ; _} :: labels, args
179- | { arg_label = Label {cst = Some cst ;_ } ; _} :: labels , args ->
180+ | { arg_label = LabelCst {cst ; } ; _} :: labels , args ->
180181 let accs, eff = aux labels args in
181182 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,
183184 arg :: args
184185 ->
185186 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
187189 append_list acc accs, Ext_list. append new_eff eff
188- | { arg_label = Empty | Label {cst = None ;_} | Optional ; _ } :: _ , []
190+ | { arg_label = Empty | Label | Optional ; _ } :: _ , []
189191 -> assert false
190192 in
191193 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)
202204 match labels, args with
203205 | [] , _ -> assert (args = [] ); empty_pair
204206 | { arg_label = EmptyCst cst ; _} :: labels , args
205- | { arg_label = Label {cst = Some cst ;_ } ; _} :: labels , args ->
207+ | { arg_label = LabelCst {cst} ; _} :: labels , args ->
206208 let accs, eff = aux labels args in
207209 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,
209211 arg :: args
210212 ->
211213 let accs, eff = aux labels args in
@@ -214,10 +216,10 @@ let assemble_args_has_splice call_loc ffi (arg_types : specs) (args : exprs)
214216 Ext_list. append ls accs, eff
215217 | _ ->
216218 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
218220 append_list acc accs, Ext_list. append new_eff eff
219221 end
220- | { arg_label = Empty | Label {cst = None ;_} | Optional ; _ } :: _ , []
222+ | { arg_label = Empty | Label | Optional ; _ } :: _ , []
221223 -> assert false
222224 in
223225 let args, eff = aux arg_types args in
0 commit comments