@@ -3750,13 +3750,20 @@ type info =
37503750 | Impl
37513751 | Impl_intf
37523752
3753+ type syntax_kind =
3754+ | Ml
3755+ | Reason
37533756
37543757
37553758type module_info =
37563759 {
37573760 mutable info : info;
37583761 dir : string;
3759- is_re : bool;
3762+ syntax_kind : syntax_kind;
3763+ (* This is actually not stored in bsbuild meta info
3764+ since creating .d file only emit .cmj/.cmi dependencies, so it does not
3765+ need know which syntax it is written
3766+ *)
37603767 case : bool;
37613768 name_sans_extension : string;
37623769 }
@@ -3819,12 +3826,16 @@ type info =
38193826 | Intf (* intemediate state *)
38203827 | Impl
38213828 | Impl_intf
3829+
3830+ type syntax_kind =
3831+ | Ml
3832+ | Reason
38223833
38233834type module_info =
38243835 {
38253836 mutable info : info;
38263837 dir : string ;
3827- is_re : bool ;
3838+ syntax_kind : syntax_kind ;
38283839 case : bool;
38293840 name_sans_extension : string ;
38303841 }
@@ -10305,13 +10316,13 @@ let sanity_check (map : t) =
1030510316let check (x : module_info)
1030610317 name_sans_extension
1030710318 case
10308- is_re
10319+ syntax_kind
1030910320 (module_info : Bsb_db.info)
1031010321 =
1031110322 let x_ml_info = x.info in
1031210323 (if x.name_sans_extension <> name_sans_extension
1031310324 || x.case <> case
10314- || x.is_re <> is_re
10325+ || x.syntax_kind <> syntax_kind
1031510326 || x_ml_info = module_info
1031610327 || x_ml_info = Impl_intf
1031710328 then
@@ -10332,24 +10343,24 @@ let add_basename
1033210343 ?(error_on_invalid_suffix)
1033310344 basename : t =
1033410345 let info = ref Bsb_db.Impl in
10335- let is_re = ref false in
10346+ let syntax_kind = ref Bsb_db.Ml in
1033610347 let invalid_suffix = ref false in
1033710348 (match Ext_filename.get_extension_maybe basename with
1033810349 | ".ml" ->
1033910350 ()
1034010351 | ".re" ->
10341- is_re := true
10352+ syntax_kind := Reason
1034210353 | ".mli" ->
1034310354 info := Intf
1034410355 | ".rei" ->
1034510356 info := Intf;
10346- is_re := true
10357+ syntax_kind := Reason
1034710358 | _ ->
1034810359 invalid_suffix := true
1034910360
1035010361 );
1035110362 let info= !info in
10352- let is_re = !is_re in
10363+ let syntax_kind = !syntax_kind in
1035310364 let invalid_suffix = !invalid_suffix in
1035410365 if invalid_suffix then
1035510366 match error_on_invalid_suffix with
@@ -10372,9 +10383,9 @@ let add_basename
1037210383 (fun opt_module_info ->
1037310384 match opt_module_info with
1037410385 | None ->
10375- {dir ; name_sans_extension ; info ; is_re ; case }
10386+ {dir ; name_sans_extension ; info ; syntax_kind ; case }
1037610387 | Some x ->
10377- check x name_sans_extension case is_re info
10388+ check x name_sans_extension case syntax_kind info
1037810389 )
1037910390
1038010391end
@@ -12435,7 +12446,7 @@ let encode_single (db : Bsb_db.map) (buf : Ext_buffer.t) =
1243512446 let len_encoding = make_encoding length buf in
1243612447 Map_string.iter db (fun _ module_info ->
1243712448 len_encoding buf
12438- (Hash_string.find_exn mapping module_info.dir lsl 1 + Obj.magic module_info.case ));
12449+ (Hash_string.find_exn mapping module_info.dir lsl 1 + ( Obj.magic ( module_info.case : bool) : int) ));
1243912450 nl buf
1244012451 end
1244112452let encode (dbs : Bsb_db.t) buf =
@@ -13444,7 +13455,7 @@ let emit_module_build
1344413455 (module_info : Bsb_db.module_info)
1344513456 =
1344613457 let has_intf_file = module_info.info = Impl_intf in
13447- let is_re = module_info.is_re in
13458+ let is_re = module_info.syntax_kind = Reason in
1344813459 let filename_sans_extension = module_info.name_sans_extension in
1344913460 let input_impl =
1345013461 Bsb_config.proj_rel
0 commit comments