Fix fragile pattern matching
authorSiraaj Khandkar <siraaj@khandkar.net>
Mon, 17 Sep 2018 11:02:39 +0000 (07:02 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Mon, 17 Sep 2018 11:02:39 +0000 (07:02 -0400)
compiler/src/lib/tiger/tiger_error.ml
compiler/src/lib/tiger/tiger_error.mli
compiler/src/lib/tiger/tiger_test_cases_book.ml

index f49bca4..b4ec719 100644 (file)
@@ -213,3 +213,25 @@ let is_wrong_type t =
   | Invalid_operand_type _
   | Different_operand_types _ ->
       false
+
+let is_invalid_syntax t =
+  match t with
+  | Invalid_syntax _ ->
+      true
+  | Wrong_type _
+  | Unknown_type _
+  | Unknown_id _
+  | Id_is_a_function _
+  | Id_not_a_function _
+  | No_such_field_in_record _
+  | Exp_not_a_record _
+  | Exp_not_an_array _
+  | Wrong_type_of_expression_in_var_dec _
+  | Wrong_type_used_as_array _
+  | Wrong_type_used_as_record _
+  | Wrong_type_of_field_value _
+  | Wrong_type_of_arg _
+  | Wrong_number_of_args _
+  | Invalid_operand_type _
+  | Different_operand_types _ ->
+      false
index a9d30eb..ed4a7cf 100644 (file)
@@ -73,3 +73,4 @@ val to_string : t -> string
 val is_unknown_id   : t -> bool
 val is_unknown_type : t -> bool
 val is_wrong_type   : t -> bool
+val is_invalid_syntax : t -> bool
index 92ad429..3911f53 100644 (file)
@@ -85,7 +85,7 @@ let is_error_expected_parsing_of_filename =
   let module E = Tiger_error in
   function
   | "test49.tig" ->
-      Some (function E.Invalid_syntax _ -> true | _ -> false)
+      Some Error.is_invalid_syntax
       (* TODO: Be more specific - test position *)
   | _ ->
     (* TODO: Fill-in other expected cases *)
This page took 0.02937 seconds and 4 git commands to generate.