summaryrefslogtreecommitdiff
path: root/src/reporting_basic.ml
diff options
context:
space:
mode:
authorJon French2018-08-28 18:15:54 +0100
committerJon French2018-08-28 18:16:01 +0100
commit6ae76dbd77ae0af0db606263b0c2d62daed74202 (patch)
tree112f74f3038a1b1d35b3ff27d833c95c76869a23 /src/reporting_basic.ml
parent9232814ed220cff16e6cac808f327b326f2e2f2c (diff)
add __POS__ argument to Err_unreachable for better error reporting
Diffstat (limited to 'src/reporting_basic.ml')
-rw-r--r--src/reporting_basic.ml6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/reporting_basic.ml b/src/reporting_basic.ml
index c0b3440d..a90c2bcd 100644
--- a/src/reporting_basic.ml
+++ b/src/reporting_basic.ml
@@ -257,7 +257,7 @@ let print_err fatal verb_loc l m1 m2 =
type error =
| Err_general of Parse_ast.l * string
- | Err_unreachable of Parse_ast.l * string
+ | Err_unreachable of Parse_ast.l * (string * int * int * int) * string
| Err_todo of Parse_ast.l * string
| Err_syntax of Lexing.position * string
| Err_syntax_locn of Parse_ast.l * string
@@ -267,7 +267,7 @@ type error =
let dest_err = function
| Err_general (l, m) -> ("Error", false, Loc l, m)
- | Err_unreachable (l, m) -> ("Internal error: Unreachable code", false, Loc l, m)
+ | Err_unreachable (l, (file, line, _, _), m) -> ((Printf.sprintf "Internal error: Unreachable code (at \"%s\" line %d)" file line), false, Loc l, m)
| Err_todo (l, m) -> ("Todo" ^ m, false, Loc l, "")
| Err_syntax (p, m) -> ("Syntax error", false, Pos p, m)
| Err_syntax_locn (l, m) -> ("Syntax error", false, Loc l, m)
@@ -279,7 +279,7 @@ exception Fatal_error of error
(* Abbreviations for the very common cases *)
let err_todo l m = Fatal_error (Err_todo (l, m))
-let err_unreachable l m = Fatal_error (Err_unreachable (l, m))
+let err_unreachable l ocaml_pos m = Fatal_error (Err_unreachable (l, ocaml_pos, m))
let err_general l m = Fatal_error (Err_general (l, m))
let err_typ l m = Fatal_error (Err_type (l,m))
let err_typ_dual l1 l2 m = Fatal_error (Err_type_dual (l1,l2,m))