diff options
author | Son Ho | 2024-04-04 15:47:54 +0200 |
---|---|---|
committer | Son Ho | 2024-04-04 15:47:54 +0200 |
commit | 1f3ce79023d902d0145da38e878d991a6ba29236 (patch) | |
tree | 1dad0ad70d25020d2e231573ba7174954df2980c /compiler | |
parent | 9e7aacc885c067af71d12c8f796f9951dd045261 (diff) |
Update the way errors are reported
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/Errors.ml | 6 | ||||
-rw-r--r-- | compiler/Main.ml | 11 |
2 files changed, 7 insertions, 10 deletions
diff --git a/compiler/Errors.ml b/compiler/Errors.ml index 7dfe659a..30887593 100644 --- a/compiler/Errors.ml +++ b/compiler/Errors.ml @@ -20,12 +20,6 @@ let format_error_message_with_file_line (file : string) (line : int) "In file " ^ file ^ ", line " ^ string_of_int line ^ ":\n" ^ format_error_message meta msg -let error_list_to_string (error_list : (Meta.meta option * string) list) : - string = - List.fold_left - (fun errors (meta, msg) -> errors ^ "\n" ^ format_error_message meta msg) - "" error_list - exception CFailure of (Meta.meta option * string) let error_list : (Meta.meta option * string) list ref = ref [] diff --git a/compiler/Main.ml b/compiler/Main.ml index 9e72a21b..416f3a07 100644 --- a/compiler/Main.ml +++ b/compiler/Main.ml @@ -278,10 +278,13 @@ let () = (* In theory it shouldn't happen, but there may be uncaught errors - note that we let the [Failure] exceptions go through (they are send if we use the option [-abort-on-error] *) - if not (List.is_empty !Errors.error_list) then ( - let errors = Errors.error_list_to_string !Errors.error_list in - log#serror errors; - exit 1)); + ()); + + if !Errors.error_list <> [] then ( + List.iter + (fun (meta, msg) -> log#serror (Errors.format_error_message meta msg)) + !Errors.error_list; + exit 1); (* Print total elapsed time *) log#linfo |