Skip to content

Commit afb7905

Browse files
committed
Refactor: log error earlier instead of propagating and logging.
1 parent c71c515 commit afb7905

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

analysis/.depend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ src/ProcessCmt.cmx : src/Utils.cmx src/Uri2.cmx src/SharedTypes.cmx \
2929
src/Protocol.cmx : src/vendor/Json.cmx
3030
src/References.cmx : src/Utils.cmx src/Uri2.cmx src/SharedTypes.cmx \
3131
src/ProcessCmt.cmx src/Log.cmx src/Infix.cmx
32-
src/Shared.cmx : src/PrintType.cmx src/Files.cmx
32+
src/Shared.cmx : src/PrintType.cmx src/Log.cmx src/Files.cmx
3333
src/SharedTypes.cmx : src/Utils.cmx src/Uri2.cmx src/Shared.cmx \
3434
src/Infix.cmx
3535
src/Uri2.cmx :

analysis/src/ProcessCmt.ml

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -535,8 +535,8 @@ let forCmt ~moduleName ~uri ({cmt_modname; cmt_annots} : Cmt_format.cmt_infos) =
535535

536536
let fileForCmt ~moduleName ~uri cmt =
537537
match Shared.tryReadCmt cmt with
538-
| Error e -> Error e
539-
| Ok infos -> Ok (forCmt ~moduleName ~uri infos)
538+
| None -> None
539+
| Some infos -> Some (forCmt ~moduleName ~uri infos)
540540

541541
let addLocItem extra loc locType =
542542
if not loc.Warnings.loc_ghost then
@@ -1178,20 +1178,18 @@ let extraForCmt ~file ({cmt_annots} : Cmt_format.cmt_infos) =
11781178

11791179
let fullForCmt ~moduleName ~package ~uri cmt =
11801180
match Shared.tryReadCmt cmt with
1181-
| Error e -> Error e
1182-
| Ok infos ->
1181+
| None -> None
1182+
| Some infos ->
11831183
let file = forCmt ~moduleName ~uri infos in
11841184
let extra = extraForCmt ~file infos in
1185-
Ok {file; extra; package}
1185+
Some {file; extra; package}
11861186

11871187
open SharedTypes
11881188

11891189
let newFileForCmt ~moduleName cmtCache changed ~cmt ~uri =
11901190
match fileForCmt ~moduleName ~uri cmt with
1191-
| Error e ->
1192-
Log.log e;
1193-
None
1194-
| Ok file ->
1191+
| None -> None
1192+
| Some file ->
11951193
Hashtbl.replace cmtCache cmt (changed, file);
11961194
Some file
11971195

@@ -1209,10 +1207,8 @@ let getFullFromCmt ~uri =
12091207
| Some paths -> (
12101208
let cmt = SharedTypes.getCmt ~interface:(Utils.endsWith path "i") paths in
12111209
match fullForCmt ~moduleName ~package ~uri cmt with
1212-
| Error message ->
1213-
prerr_endline message;
1214-
None
1215-
| Ok full ->
1210+
| None -> None
1211+
| Some full ->
12161212
Hashtbl.replace package.interModuleDependencies moduleName
12171213
(SharedTypes.hashList full.extra.externalReferences |> List.map fst);
12181214
Some full)

analysis/src/Shared.ml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
let tryReadCmt cmt =
2-
if not (Files.exists cmt) then Error ("Cmt file does not exist " ^ cmt)
2+
if not (Files.exists cmt) then (
3+
Log.log ("Cmt file does not exist " ^ cmt);
4+
None)
35
else
46
match Cmt_format.read_cmt cmt with
57
| exception Cmi_format.Error err ->
6-
Error
8+
Log.log
79
("Failed to load " ^ cmt ^ " as a cmt w/ ocaml version " ^ "406"
810
^ ", error: "
911
^
1012
(Cmi_format.report_error Format.str_formatter err;
11-
Format.flush_str_formatter ()))
13+
Format.flush_str_formatter ()));
14+
None
1215
| exception err ->
13-
Error
16+
Log.log
1417
("Invalid cmt format " ^ cmt
1518
^ " - probably wrong ocaml version, expected " ^ Config.version ^ " : "
16-
^ Printexc.to_string err)
17-
| x -> Ok x
19+
^ Printexc.to_string err);
20+
None
21+
| x -> Some x
1822

1923
(** TODO move to the Process_ stuff *)
2024
let rec dig typ =

0 commit comments

Comments
 (0)