summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ml/ppx_deriving/files/ocaml405.patch')
-rw-r--r--dev-ml/ppx_deriving/files/ocaml405.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/dev-ml/ppx_deriving/files/ocaml405.patch b/dev-ml/ppx_deriving/files/ocaml405.patch
new file mode 100644
index 000000000000..6f0a5c56f462
--- /dev/null
+++ b/dev-ml/ppx_deriving/files/ocaml405.patch
@@ -0,0 +1,21 @@
+Index: ppx_deriving-4.1/src/ppx_deriving.cppo.ml
+===================================================================
+--- ppx_deriving-4.1.orig/src/ppx_deriving.cppo.ml
++++ ppx_deriving-4.1/src/ppx_deriving.cppo.ml
+@@ -310,6 +310,7 @@ let free_vars_in_core_type typ =
+ List.map free_in xs |> List.concat
+ | { ptyp_desc = Ptyp_alias (x, name) } -> [name] @ free_in x
+ | { ptyp_desc = Ptyp_poly (bound, x) } ->
++ let bound = List.map (fun x -> x.Location.txt) bound in
+ List.filter (fun y -> not (List.mem y bound)) (free_in x)
+ | { ptyp_desc = Ptyp_variant (rows, _, _) } ->
+ List.map (
+@@ -401,7 +402,7 @@ let binop_reduce x a b =
+ [%expr [%e x] [%e a] [%e b]]
+
+ let strong_type_of_type ty =
+- let free_vars = free_vars_in_core_type ty in
++ let free_vars = List.map Location.mknoloc (free_vars_in_core_type ty) in
+ Typ.force_poly @@ Typ.poly free_vars ty
+
+ let derive path pstr_loc item attributes fn arg =