--- /dev/null
+Index: CHANGES
+===================================================================
+retrieving revision 6.36
+retrieving revision 6.38
+diff -c -r6.36 -r6.38
+*** CHANGES 15 Mar 2011 12:36:08 -0000 6.36
+--- CHANGES 16 Mar 2011 16:52:42 -0000 6.38
+***************
+*** 1,3 ****
+--- 1,11 ----
++ Camlp5 Version 6.02.3:
++ ----------------------
++
++ * [16 Mar 11] Fixed bug: incorrect compilation of label patterns of the
++ form ~a:b (or ~{a = b} in revised syntax) in class declarations.
++ * [16 Mar 11] Fixed bug: error while printing label patterns ~a:b with
++ pr_o.cmo (error message "labels not pretty printed (in patt)").
++
+ Camlp5 Version 6.02.2:
+ ----------------------
+
+Index: etc/pr_o.ml
+===================================================================
+retrieving revision 6.51
+diff -c -r6.51 pr_o.ml
+*** etc/pr_o.ml 15 Mar 2011 13:49:10 -0000 6.51
+--- etc/pr_o.ml 16 Mar 2011 15:18:58 -0000
+***************
+*** 1363,1369 ****
+ | <:patt< _ >> -> pprintf pc "_"
+ | <:patt:< ?{$_$} >> | <:patt:< ?{$_$ = $_$} >> | <:patt:< ?{$_$} >> |
+ <:patt:< ?{$_$ = ?{$_$ = $_$}} >> | <:patt:< ?{$_$ = $_$} >> |
+! <:patt:< ~{$_$} >> | <:patt:< ~{$_$ = $_$} >> ->
+ error loc "labels not pretty printed (in patt)"
+ | <:patt< `$s$ >> ->
+ failwith "polymorphic variants not pretty printed; add pr_ro.cmo"
+--- 1363,1369 ----
+ | <:patt< _ >> -> pprintf pc "_"
+ | <:patt:< ?{$_$} >> | <:patt:< ?{$_$ = $_$} >> | <:patt:< ?{$_$} >> |
+ <:patt:< ?{$_$ = ?{$_$ = $_$}} >> | <:patt:< ?{$_$ = $_$} >> |
+! <:patt:< ~{$list:_$} >> ->
+ error loc "labels not pretty printed (in patt)"
+ | <:patt< `$s$ >> ->
+ failwith "polymorphic variants not pretty printed; add pr_ro.cmo"
+Index: main/ast2pt.ml
+===================================================================
+retrieving revision 6.32
+diff -c -r6.32 ast2pt.ml
+*** main/ast2pt.ml 15 Mar 2011 12:36:08 -0000 6.32
+--- main/ast2pt.ml 16 Mar 2011 15:57:40 -0000
+***************
+*** 1326,1341 ****
+ [ Some pcl_fun ->
+ match uv lppo with
+ [ [(p, po)] -> do {
+- let _ =
+- match uv po with
+- [ Some _ -> error loc "label not implemented in that case 1"
+- | None -> None ]
+- in
+ let lab =
+ match p with
+ [ PaLid _ s -> uv s
+ | p -> error loc "label not implemented in that case 2" ]
+ in
+ mkpcl loc (pcl_fun lab None (patt p) (class_expr ce))
+ }
+ | [] | [_ :: _] -> error ploc "case class multi lab not yet impl" ]
+--- 1326,1341 ----
+ [ Some pcl_fun ->
+ match uv lppo with
+ [ [(p, po)] -> do {
+ let lab =
+ match p with
+ [ PaLid _ s -> uv s
+ | p -> error loc "label not implemented in that case 2" ]
+ in
++ let p =
++ match uv po with
++ [ Some p -> p
++ | None -> p ]
++ in
+ mkpcl loc (pcl_fun lab None (patt p) (class_expr ce))
+ }
+ | [] | [_ :: _] -> error ploc "case class multi lab not yet impl" ]
+Index: ocaml_src/main/ast2pt.ml
+===================================================================
+retrieving revision 6.32
+diff -c -r6.32 ast2pt.ml
+*** ocaml_src/main/ast2pt.ml 15 Mar 2011 12:36:09 -0000 6.32
+--- ocaml_src/main/ast2pt.ml 16 Mar 2011 16:05:41 -0000
+***************
+*** 1522,1537 ****
+ Some pcl_fun ->
+ begin match uv lppo with
+ [p, po] ->
+- let _ =
+- match uv po with
+- Some _ -> error loc "label not implemented in that case 1"
+- | None -> None
+- in
+ let lab =
+ match p with
+ PaLid (_, s) -> uv s
+ | p -> error loc "label not implemented in that case 2"
+ in
+ mkpcl loc (pcl_fun lab None (patt p) (class_expr ce))
+ | [] | _ :: _ -> error ploc "case class multi lab not yet impl"
+ end
+--- 1522,1537 ----
+ Some pcl_fun ->
+ begin match uv lppo with
+ [p, po] ->
+ let lab =
+ match p with
+ PaLid (_, s) -> uv s
+ | p -> error loc "label not implemented in that case 2"
+ in
++ let p =
++ match uv po with
++ Some p -> p
++ | None -> p
++ in
+ mkpcl loc (pcl_fun lab None (patt p) (class_expr ce))
+ | [] | _ :: _ -> error ploc "case class multi lab not yet impl"
+ end