diff options
author | Luc Maranget <luc.maranget@inria.fr> | 2005-09-07 16:07:48 +0000 |
---|---|---|
committer | Luc Maranget <luc.maranget@inria.fr> | 2005-09-07 16:07:48 +0000 |
commit | fbf58963a894261e5ed034b8e8554598a51d19a2 (patch) | |
tree | ed01803954078c5860fbfbfe67c4c57e3c14a280 | |
parent | b7d26ab5a37b33bb65e218bd465a93711b967fe4 (diff) |
PR #3870
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7046 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | bytecomp/matching.ml | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/bytecomp/matching.ml b/bytecomp/matching.ml index 2afa4d2b6..184626dfa 100644 --- a/bytecomp/matching.ml +++ b/bytecomp/matching.ml @@ -2462,7 +2462,7 @@ let for_tupled_function loc paraml pats_act_list partial = let flatten_pattern size p = match p.pat_desc with -| Tpat_tuple args -> args +| Tpat_tuple args -> args | Tpat_any -> omegas size | _ -> raise Cannot_flatten @@ -2470,6 +2470,9 @@ let rec flatten_pat_line size p k = match p.pat_desc with | Tpat_any -> omegas size::k | Tpat_tuple args -> args::k | Tpat_or (p1,p2,_) -> flatten_pat_line size p1 (flatten_pat_line size p2 k) +| Tpat_alias (p,_) -> (* Note: if this 'as' pat is here, then this is a useless + binding, solves PR #3780 *) + flatten_pat_line size p k | _ -> fatal_error "Matching.flatten_pat_line" let flatten_cases size cases = @@ -2480,7 +2483,7 @@ let flatten_cases size cases = cases let flatten_matrix size pss = - List.fold_right + List.fold_right (fun ps r -> match ps with | [p] -> flatten_pat_line size p r | _ -> fatal_error "Matching.flatten_matrix") |