summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Maranget <luc.maranget@inria.fr>2005-09-07 16:07:48 +0000
committerLuc Maranget <luc.maranget@inria.fr>2005-09-07 16:07:48 +0000
commitfbf58963a894261e5ed034b8e8554598a51d19a2 (patch)
treeed01803954078c5860fbfbfe67c4c57e3c14a280
parentb7d26ab5a37b33bb65e218bd465a93711b967fe4 (diff)
PR #3870
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7046 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--bytecomp/matching.ml7
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")