Skip to content

Commit 0aaa715

Browse files
committed
adjust to new single file emission approach
1 parent 3bacd37 commit 0aaa715

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

jscomp/frontend/bs_embed_lang.ml

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,37 @@ let extract_extension str =
1010

1111
let transformed_count = Hashtbl.create 10
1212

13-
let increment_transformed_count (ext_name : string) =
14-
match Hashtbl.find_opt transformed_count ext_name with
15-
| None -> Hashtbl.add transformed_count ext_name 1
16-
| Some count -> Hashtbl.replace transformed_count ext_name (count + 1)
13+
let escaped_name_for_ext ?fn_name (ext_name : string) =
14+
match fn_name with
15+
| Some fn_name -> ext_name ^ "_" ^ fn_name
16+
| None -> ext_name
1717

18-
let get_transformed_count ext_name =
19-
match Hashtbl.find_opt transformed_count ext_name with
18+
let increment_transformed_count ?fn_name (ext_name : string) =
19+
let name = escaped_name_for_ext ?fn_name ext_name in
20+
match Hashtbl.find_opt transformed_count name with
21+
| None -> Hashtbl.add transformed_count name 1
22+
| Some count -> Hashtbl.replace transformed_count name (count + 1)
23+
24+
let get_transformed_count ?fn_name ext_name =
25+
match
26+
Hashtbl.find_opt transformed_count (escaped_name_for_ext ?fn_name ext_name)
27+
with
2028
| None -> 0
2129
| Some count -> count
2230

2331
type transformMode = LetBinding | ModuleBinding
2432

2533
let make_lident ?fn_name ~extension_name ~transform_mode filename =
2634
Longident.parse
27-
(Printf.sprintf "%s__%s.M%i%s"
35+
(Printf.sprintf "%s__%s%s__M%i%s"
2836
(if String.ends_with filename ~suffix:".res" then
2937
Filename.(chop_suffix (basename filename) ".res")
3038
else Filename.(chop_suffix (basename filename) ".resi"))
3139
extension_name
32-
(get_transformed_count extension_name)
40+
(match fn_name with
41+
| None -> ""
42+
| Some fn_name -> "_" ^ fn_name)
43+
(get_transformed_count ?fn_name extension_name)
3344
(match (transform_mode, fn_name) with
3445
| LetBinding, Some fn_name -> "." ^ fn_name
3546
| LetBinding, None -> ".default"
@@ -50,7 +61,7 @@ let transform_expr expr =
5061
match extract_extension ext_name with
5162
| None -> expr
5263
| Some (extension_name, fn_name) ->
53-
increment_transformed_count extension_name;
64+
increment_transformed_count ?fn_name extension_name;
5465
let loc = expr.pexp_loc in
5566
let filename = loc.loc_start.pos_fname in
5667
let lid =
@@ -87,8 +98,8 @@ let structure_item structure_item =
8798
when ext_name |> should_transform -> (
8899
match extract_extension ext_name with
89100
| None -> structure_item
90-
| Some (extension_name, _fn_name) ->
91-
increment_transformed_count extension_name;
101+
| Some (extension_name, fn_name) ->
102+
increment_transformed_count ?fn_name extension_name;
92103
{
93104
structure_item with
94105
pstr_desc =
@@ -117,8 +128,8 @@ let structure_item structure_item =
117128
when ext_name |> should_transform -> (
118129
match extract_extension ext_name with
119130
| None -> structure_item
120-
| Some (extension_name, _fn_name) ->
121-
increment_transformed_count extension_name;
131+
| Some (extension_name, fn_name) ->
132+
increment_transformed_count ?fn_name extension_name;
122133
{
123134
structure_item with
124135
pstr_desc =

0 commit comments

Comments
 (0)