summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJon French2018-08-23 14:45:04 +0100
committerJon French2018-08-24 13:37:02 +0100
commit64696a87293aad7d2ceb7eddf63f90f868482530 (patch)
tree450d6f70ada43361b730634f4e5a1bbb8cdb3eb7 /src
parentb4e66ec5a79f7602567a29de5581b88e6053b758 (diff)
rewrite_defs_pat_lits: rewrite away fewer lits when generating ocaml, for cleaner generated code and reduced compiler warnings
Diffstat (limited to 'src')
-rw-r--r--src/rewrites.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rewrites.ml b/src/rewrites.ml
index e17976c3..7bc35681 100644
--- a/src/rewrites.ml
+++ b/src/rewrites.ml
@@ -3430,6 +3430,10 @@ let rewrite_no_strings (L_aux (lit, _)) = match lit with
| L_string _ -> false
| _ -> true
+let rewrite_lit_ocaml (L_aux (lit, _)) = match lit with
+ | L_num _ | L_string _ | L_hex _ | L_bin _ | L_real _ | L_unit -> false
+ | _ -> true
+
let rewrite_defs_pat_lits rewrite_lit =
let rewrite_pexp (Pat_aux (pexp_aux, annot) as pexp) =
let guards = ref [] in
@@ -4568,7 +4572,7 @@ let rewrite_defs_ocaml = [
("mapping_builtins", rewrite_defs_mapping_patterns);
("rewrite_undefined", rewrite_undefined_if_gen false);
("rewrite_defs_vector_string_pats_to_bit_list", rewrite_defs_vector_string_pats_to_bit_list);
- ("pat_lits", rewrite_defs_pat_lits rewrite_no_strings);
+ ("pat_lits", rewrite_defs_pat_lits rewrite_lit_ocaml);
("vector_concat_assignments", rewrite_vector_concat_assignments);
("tuple_assignments", rewrite_tuple_assignments);
("simple_assignments", rewrite_simple_assignments);