You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-ml/ppx_driver/files/oc43.patch

68 lines
2.4 KiB

diff -uNr ppx_driver-113.33.00/_oasis ppx_driver-113.33.00+4.03/_oasis
--- ppx_driver-113.33.00/_oasis 2016-03-09 16:44:54.000000000 +0100
+++ ppx_driver-113.33.00+4.03/_oasis 2016-03-22 15:13:50.000000000 +0100
@@ -1,8 +1,8 @@
OASISFormat: 0.4
-OCamlVersion: >= 4.02.3
+OCamlVersion: >= 4.03.0
FindlibVersion: >= 1.3.2
Name: ppx_driver
-Version: 113.33.00
+Version: 113.33.00+4.03
Synopsis: Feature-full driver for OCaml AST transformers
Authors: Jane Street Group, LLC <opensource@janestreet.com>
Copyrights: (C) 2015-2016 Jane Street Group LLC <opensource@janestreet.com>
diff -uNr ppx_driver-113.33.00/opam ppx_driver-113.33.00+4.03/opam
--- ppx_driver-113.33.00/opam 2016-03-18 12:08:01.000000000 +0100
+++ ppx_driver-113.33.00+4.03/opam 2016-03-22 17:51:36.000000000 +0100
@@ -16,4 +16,4 @@
"ppx_core"
"ppx_optcomp"
]
-available: [ ocaml-version >= "4.02.3" ]
+available: [ ocaml-version >= "4.03.0" ]
diff -uNr ppx_driver-113.33.00/src/ppx_driver.ml ppx_driver-113.33.00+4.03/src/ppx_driver.ml
--- ppx_driver-113.33.00/src/ppx_driver.ml 2016-03-09 16:44:54.000000000 +0100
+++ ppx_driver-113.33.00+4.03/src/ppx_driver.ml 2016-03-22 15:13:50.000000000 +0100
@@ -111,6 +111,24 @@
|> fst
;;
+let remove_empty_lets = object
+ inherit Ast_traverse.map as super
+
+ method! structure_item st =
+ let st = super#structure_item st in
+ match st.pstr_desc with
+ | Pstr_value (_, []) ->
+ let (module B) = Ast_builder.make st.pstr_loc in
+ B.pstr_value Nonrecursive [B.value_binding ~pat:B.punit ~expr:B.eunit]
+ | _ -> st
+
+ method! expression e =
+ let e = super#expression e in
+ match e.pexp_desc with
+ | Pexp_let (_, [], e) -> e
+ | _ -> e
+end
+
let map_structure st =
let st =
if !perform_checks then begin
@@ -123,6 +141,7 @@
apply_transforms st ~field:(fun (ct : Transform.t) -> ct.impl)
~dropped_so_far:Attribute.dropped_so_far_structure
in
+ let st = remove_empty_lets#structure st in
if !perform_checks then begin
Attribute.check_unused#structure st;
Extension.check_unused#structure st;
@@ -143,6 +162,7 @@
apply_transforms sg ~field:(fun ct -> ct.intf)
~dropped_so_far:Attribute.dropped_so_far_signature
in
+ let sg = remove_empty_lets#signature sg in
if !perform_checks then begin
Attribute.check_unused#signature sg;
Extension.check_unused#signature sg;