Skip to content

Commit c656c7b

Browse files
authored
Merge pull request #2584 from BuckleScript/clean_up_code
clean up statement handling
2 parents 2c947d3 + c8f7903 commit c656c7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+4544
-6643
lines changed

jscomp/all.depend

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,8 @@ core/lam_pass_deep_flatten.cmx : core/lam_util.cmx core/lam_group.cmx \
509509
core/lam.cmx core/js_number.cmx ext/ident_set.cmx ext/ext_list.cmx \
510510
core/lam_pass_deep_flatten.cmi
511511
core/js_stmt_make.cmx : core/lam_print.cmx core/lam.cmx core/js_exp_make.cmx \
512-
core/js_closure.cmx core/js_analyzer.cmx core/j.cmx core/js_stmt_make.cmi
512+
core/js_closure.cmx core/js_analyzer.cmx core/j.cmx ext/ext_list.cmx \
513+
core/js_stmt_make.cmi
513514
core/js_pass_flatten.cmx : core/js_stmt_make.cmx core/js_map.cmx \
514515
core/js_exp_make.cmx core/js_analyzer.cmx core/j.cmx ext/ext_list.cmx \
515516
core/js_pass_flatten.cmi
@@ -891,9 +892,9 @@ bsb/bsb_ninja_gen.cmx : ext/string_map.cmx ext/literals.cmx \
891892
bsb/bsb_rule.cmx bsb/bsb_parse_sources.cmx bsb/bsb_ninja_util.cmx \
892893
bsb/bsb_ninja_global_vars.cmx bsb/bsb_ninja_file_groups.cmx \
893894
bsb/bsb_namespace_map_gen.cmx bsb/bsb_log.cmx bsb/bsb_exception.cmx \
894-
bsb/bsb_dir_index.cmx bsb/bsb_db.cmx bsb/bsb_config_types.cmx \
895-
bsb/bsb_config.cmx bsb/bsb_build_util.cmx bsb/bsb_build_schemas.cmx \
896-
bsb/bsb_ninja_gen.cmi
895+
bsb/bsb_dir_index.cmx bsb/bsb_default.cmx bsb/bsb_db.cmx \
896+
bsb/bsb_config_types.cmx bsb/bsb_config.cmx bsb/bsb_build_util.cmx \
897+
bsb/bsb_build_schemas.cmx bsb/bsb_ninja_gen.cmi
897898
bsb/bsb_ninja_global_vars.cmx :
898899
bsb/bsb_ninja_regen.cmx : ext/literals.cmx ext/ext_path.cmx \
899900
bsb/bsb_ninja_gen.cmx bsb/bsb_ninja_check.cmx bsb/bsb_merlin_gen.cmx \

jscomp/bsb/bsb_config_parse.ml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
2424

2525
let config_file_bak = "bsconfig.json.bak"
26-
let refmt3_exe = "refmt3.exe"
27-
let refmt2_exe = "refmt.exe"
2826
let get_list_string = Bsb_build_util.get_list_string
2927
let (//) = Ext_path.combine
3028

jscomp/bsb/bsb_default.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ let bsc_flags =
5353

5454
let refmt_flags = ["--print"; "binary"]
5555

56-
56+
let refmt_v3 = "refmt.exe"
57+
let refmt_none = "refmt.exe"
5758

5859
let main_entries = [Bsb_config_types.JsTarget "Index"]

jscomp/bsb/bsb_default.mli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ val bsc_flags : string list
2828

2929
val refmt_flags : string list
3030

31+
val refmt_v3 : string
3132

33+
val refmt_none : string
3234

3335
val main_entries : Bsb_config_types.entries_t list

jscomp/bsb/bsb_ninja_gen.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ let output_ninja_and_namespace_map
126126
(match refmt with
127127
| Refmt_none ->
128128
Bsb_log.warn "@{<warning>Warning:@} refmt version missing. Please set it explicitly, since we may change the default in the future.@.";
129-
bsc_dir // "refmt.exe"
129+
bsc_dir // Bsb_default.refmt_none
130130
| Refmt_v3 ->
131-
bsc_dir // "refmt3.exe"
131+
bsc_dir // Bsb_default.refmt_v3
132132
| Refmt_custom x -> x );
133133
Bsb_ninja_global_vars.reason_react_jsx, reason_react_jsx_flag;
134134
Bsb_ninja_global_vars.refmt_flags, refmt_flags;

jscomp/core/js_ast_util.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ let rec named_expression (e : J.expression)
3939
else
4040
let obj = Ext_ident.create_tmp () in
4141
let obj_code =
42-
S.define
42+
S.define_variable
4343
~kind:Strict obj e in
4444
Some (obj_code, obj)

jscomp/core/js_of_lam_variant.ml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ let eval (arg : J.expression) (dispatches : (int * string) list ) : E.t =
4141
[(S.int_switch arg
4242
(Ext_list.map (fun (i,r) ->
4343
{J.case = i ;
44-
body = [S.return (E.str r)],
44+
body = [S.return_stmt (E.str r)],
4545
false (* FIXME: if true, still print break*)
4646
}) dispatches))]
4747

@@ -60,7 +60,7 @@ let eval_as_event (arg : J.expression) (dispatches : (int * string) list ) =
6060
[(S.int_switch arg
6161
(Ext_list.map (fun (i,r) ->
6262
{J.case = i ;
63-
body = [S.return (E.index (E.var event) 0l)],
63+
body = [S.return_stmt (E.index (E.var event) 0l)],
6464
false (* FIXME: if true, still print break*)
6565
}) dispatches))]
6666
, (* TODO: improve, one dispatch later,
@@ -71,7 +71,7 @@ let eval_as_event (arg : J.expression) (dispatches : (int * string) list ) =
7171
[(S.int_switch arg
7272
(Ext_list.map (fun (i,r) ->
7373
{J.case = i ;
74-
body = [S.return (E.index (E.var event) 1l)],
74+
body = [S.return_stmt (E.index (E.var event) 1l)],
7575
false (* FIXME: if true, still print break*)
7676
}) dispatches))]
7777
)
@@ -87,7 +87,7 @@ let eval_as_int (arg : J.expression) (dispatches : (int * int) list ) : E.t =
8787
[(S.int_switch arg
8888
(Ext_list.map (fun (i,r) ->
8989
{J.case = i ;
90-
body = [S.return (E.int (Int32.of_int r))],
90+
body = [S.return_stmt (E.int (Int32.of_int r))],
9191
false (* FIXME: if true, still print break*)
9292
}) dispatches))]
9393

jscomp/core/js_output.ml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ let handle_name_tail
6767
then dummy
6868
else {block = []; value = Some exp ; finished = False}
6969
| EffectCall, ReturnTrue _ ->
70-
make [S.return exp] ~finished:True
70+
make [S.return_stmt exp] ~finished:True
7171
| Declare (kind, n), ReturnFalse ->
72-
make [ S.define ~kind n exp]
72+
make [ S.define_variable ~kind n exp]
7373
| Assign n ,ReturnFalse ->
7474
make [S.assign n exp ]
7575
| (Declare _ | Assign _ ), ReturnTrue _ ->
@@ -83,17 +83,18 @@ let handle_block_return
8383
(lam : Lam.t) (block : J.block) exp : t =
8484
match st, should_return with
8585
| Declare (kind,n), ReturnFalse ->
86-
make (block @ [ S.define ~kind n exp])
86+
make (block @ [ S.define_variable ~kind n exp])
8787
| Assign n, ReturnFalse -> make (block @ [S.assign n exp])
8888
| (Declare _ | Assign _), ReturnTrue _ -> make [S.unknown_lambda lam] ~finished:True
8989
| EffectCall, ReturnFalse -> make block ~value:exp
90-
| EffectCall, ReturnTrue _ -> make (block @ [S.return exp]) ~finished:True
90+
| EffectCall, ReturnTrue _ -> make (block @ [S.return_stmt exp]) ~finished:True
9191
| NeedValue, _ -> make block ~value:exp
9292

9393
let statement_of_opt_expr (x : J.expression option) : J.statement =
9494
match x with
95-
| None -> S.empty ()
96-
| Some x when Js_analyzer.no_side_effect_expression x -> S.empty ()
95+
| None -> S.empty_stmt
96+
| Some x when Js_analyzer.no_side_effect_expression x ->
97+
S.empty_stmt
9798
(* TODO, pure analysis in lambda instead *)
9899
| Some x -> S.exp x
99100

jscomp/core/js_pass_flatten.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,16 @@ let flatten_map =
6464
end
6565
| Return ( {return_value = {expression_desc = Cond (a,b,c); comment}})
6666
->
67-
{ statement_desc = If (a, [self#statement (S.return b)],
68-
Some [ self#statement (S.return c)]); comment}
67+
{ statement_desc = If (a, [self#statement (S.return_stmt b)],
68+
Some [ self#statement (S.return_stmt c)]); comment}
6969

7070
| Return ({return_value = {expression_desc = Seq _; _} as v}) ->
7171
let block = Js_analyzer.rev_flatten_seq v in
7272
begin match block with
7373
| {statement_desc = Exp last_one ; _} :: rest_rev
7474
->
7575
super#statement
76-
(S.block (Ext_list.rev_map_append (self#statement) rest_rev [S.return last_one]))
76+
(S.block (Ext_list.rev_map_append (self#statement) rest_rev [S.return_stmt last_one]))
7777
| _ -> assert false
7878
end
7979
| Block [x]

jscomp/core/js_pass_flatten_and_mark_dead.ml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class rewrite_return ?return_value ()=
4949
let mk_return =
5050
match return_value with
5151
| None -> fun e -> S.exp e
52-
| Some ident -> fun e -> S.define ~kind:Variable ident e in
52+
| Some ident -> fun e ->
53+
S.define_variable ~kind:Variable ident e in
5354
object (self : 'self)
5455
inherit Js_map.map as super
5556
method! statement x =
@@ -229,8 +230,9 @@ let subst_map name = object (self)
229230
| _ ->
230231
(* self#add_substitue ident e ; *)
231232
S.block @@
232-
(Ext_list.rev_map_append (fun (id,v) ->
233-
S.define ~kind:Strict id v) bindings [original_statement] )
233+
(Ext_list.rev_map_append
234+
(fun (id,v) ->
235+
S.define_variable ~kind:Strict id v) bindings [original_statement] )
234236
end
235237
| _ -> super#statement v
236238

jscomp/core/js_pass_tailcall_inline.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ let subst name export_set stats =
211211
(* (Js_dump.string_of_block [st]); *)
212212
Js_op_util.update_used_stats v.ident_info Dead_pure;
213213
let block =
214-
Ext_list.fold_right2 (fun param arg acc -> S.define ~kind:Variable param arg :: acc)
214+
Ext_list.fold_right2
215+
(fun param arg acc ->
216+
S.define_variable ~kind:Variable param arg :: acc)
215217
params args ( self#block block) (* see #278 before changes*)
216218

217219
in

0 commit comments

Comments
 (0)