Skip to content

Commit aceb0e2

Browse files
committed
Feedback code review
1 parent 848b3ab commit aceb0e2

File tree

4 files changed

+13
-64
lines changed

4 files changed

+13
-64
lines changed

compiler/core/js_call_info.ml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,6 @@ let builtin_runtime_call =
4242

4343
let ml_full_call =
4444
{arity = Full; call_info = Call_ml; call_transformed_jsx = false}
45+
46+
let na_full_call transformed_jsx =
47+
{arity = Full; call_info = Call_na; call_transformed_jsx = transformed_jsx}

compiler/core/js_call_info.mli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,5 @@ val dummy : t
4242
val builtin_runtime_call : t
4343

4444
val ml_full_call : t
45+
46+
val na_full_call : bool -> t

compiler/core/lam_compile.ml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,7 @@ let rec apply_with_arity_aux (fn : J.expression) (arity : int list)
5050
if len >= x then
5151
let first_part, continue = Ext_list.split_at args x in
5252
apply_with_arity_aux
53-
(E.call
54-
~info:
55-
{
56-
arity = Full;
57-
call_info = Call_ml;
58-
(* no clue if this is correct *) call_transformed_jsx = false;
59-
}
60-
fn first_part)
53+
(E.call ~info:Js_call_info.ml_full_call fn first_part)
6154
rest continue (len - x)
6255
else if
6356
(* GPR #1423 *)
@@ -70,15 +63,7 @@ let rec apply_with_arity_aux (fn : J.expression) (arity : int list)
7063
~async:false ~one_unit_arg:false
7164
[
7265
S.return_stmt
73-
(E.call
74-
~info:
75-
{
76-
arity = Full;
77-
call_info = Call_ml;
78-
(* no clue if this is correct *) call_transformed_jsx =
79-
false;
80-
}
81-
fn
66+
(E.call ~info:Js_call_info.ml_full_call fn
8267
(Ext_list.append args @@ Ext_list.map params E.var));
8368
]
8469
else E.call ~info:Js_call_info.dummy fn args

compiler/core/lam_compile_external_call.ml

Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -288,14 +288,7 @@ let translate_ffi ?(transformed_jsx = false) (cxt : Lam_compile_context.t)
288288
let args, eff, dynamic = assemble_args_has_splice arg_types args in
289289
let args = if dynamic then E.variadic_args args else args in
290290
add_eff eff
291-
(E.call
292-
~info:
293-
{
294-
arity = Full;
295-
call_info = Call_na;
296-
call_transformed_jsx = transformed_jsx;
297-
}
298-
fn args))
291+
(E.call ~info:(Js_call_info.na_full_call transformed_jsx) fn args))
299292
| Js_call
300293
{
301294
external_module_name = module_name;
@@ -311,14 +304,7 @@ let translate_ffi ?(transformed_jsx = false) (cxt : Lam_compile_context.t)
311304
let args, eff, dynamic = assemble_args_has_splice arg_types args in
312305
let args = if dynamic then E.variadic_args args else args in
313306
add_eff eff
314-
(E.call
315-
~info:
316-
{
317-
arity = Full;
318-
call_info = Call_na;
319-
call_transformed_jsx = transformed_jsx;
320-
}
321-
fn args)
307+
(E.call ~info:(Js_call_info.na_full_call transformed_jsx) fn args)
322308
else
323309
let args, eff = assemble_args_no_splice arg_types args in
324310
add_eff eff
@@ -336,26 +322,12 @@ let translate_ffi ?(transformed_jsx = false) (cxt : Lam_compile_context.t)
336322
let args, eff, dynamic = assemble_args_has_splice arg_types args in
337323
let args = if dynamic then E.variadic_args args else args in
338324
add_eff eff
339-
(E.call
340-
~info:
341-
{
342-
arity = Full;
343-
call_info = Call_na;
344-
call_transformed_jsx = transformed_jsx;
345-
}
346-
fn args)
325+
(E.call ~info:(Js_call_info.na_full_call transformed_jsx) fn args)
347326
else
348327
let args, eff = assemble_args_no_splice arg_types args in
349328
(* TODO: fix in rest calling convention *)
350329
add_eff eff
351-
(E.call
352-
~info:
353-
{
354-
arity = Full;
355-
call_info = Call_na;
356-
call_transformed_jsx = transformed_jsx;
357-
}
358-
fn args)
330+
(E.call ~info:(Js_call_info.na_full_call transformed_jsx) fn args)
359331
| Js_new {external_module_name = module_name; name = fn; splice; scopes} ->
360332
(* handle [@@new]*)
361333
(* This has some side effect, it will
@@ -414,12 +386,7 @@ let translate_ffi ?(transformed_jsx = false) (cxt : Lam_compile_context.t)
414386
add_eff eff
415387
(let self = translate_scoped_access js_send_scopes self in
416388
E.call
417-
~info:
418-
{
419-
arity = Full;
420-
call_info = Call_na;
421-
call_transformed_jsx = transformed_jsx;
422-
}
389+
~info:(Js_call_info.na_full_call transformed_jsx)
423390
(E.dot self name) args)
424391
| _ -> assert false)
425392
| Js_module_as_var module_name -> external_var module_name ~dynamic_import
@@ -434,15 +401,7 @@ let translate_ffi ?(transformed_jsx = false) (cxt : Lam_compile_context.t)
434401
~dynamic_import
435402
in
436403
if args = [] then e
437-
else
438-
E.call
439-
~info:
440-
{
441-
arity = Full;
442-
call_info = Call_na;
443-
call_transformed_jsx = transformed_jsx;
444-
}
445-
e args
404+
else E.call ~info:(Js_call_info.na_full_call transformed_jsx) e args
446405
| Js_module_as_class module_name ->
447406
let fn = external_var module_name ~dynamic_import in
448407
let args, eff = assemble_args_no_splice arg_types args in

0 commit comments

Comments
 (0)