From f491929b3b228472dc74fe5fe46c7d7df2bb040c Mon Sep 17 00:00:00 2001 From: Thomas Refis Date: Thu, 20 Feb 2020 09:52:57 +0100 Subject: matching: push simple types to flatten_pattern Unfortunately since the function is exposed and used in translcore we need to keep the generic one, and introduce a flatten_simple_pattern. --- lambda/matching.ml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lambda') diff --git a/lambda/matching.ml b/lambda/matching.ml index 413d3fa2d2..fd3d58ac83 100644 --- a/lambda/matching.ml +++ b/lambda/matching.ml @@ -3583,11 +3583,17 @@ let flatten_pattern size p = | Tpat_any -> Patterns.omegas size | _ -> raise Cannot_flatten +let flatten_simple_pattern size (p : Simple.pattern) = + match p.pat_desc with + | `Tuple args -> args + | `Any -> Patterns.omegas size + | _ -> raise Cannot_flatten + let flatten_cases size cases = List.map (function | (p, []), action -> ( - match flatten_pattern size (General.erase p) with + match flatten_simple_pattern size p with | p :: ps -> ((p, ps), action) | [] -> assert false ) -- cgit v1.2.1