From 3ef4ce321c1ac6f242b1a52d4d0e919b9d662adc Mon Sep 17 00:00:00 2001 From: Josh Berdine Date: Tue, 15 Sep 2020 01:48:32 -0700 Subject: [PATCH] [ppx_trace] Improve: Remove explicit dependency on Stdlib.Fun.id Summary: Construct the identity function explicitly instead of relying on the `Stdlib.Fun.id` name, which can be problematic depending on compiler version and which modules have been `open`ed. Reviewed By: jvillard Differential Revision: D23636204 fbshipit-source-id: 2fb644c18 --- sledge/ppx_trace/ppx_trace.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sledge/ppx_trace/ppx_trace.ml b/sledge/ppx_trace/ppx_trace.ml index d8c731419..62b9ed5c1 100644 --- a/sledge/ppx_trace/ppx_trace.ml +++ b/sledge/ppx_trace/ppx_trace.ml @@ -87,6 +87,9 @@ let vb_stack_with, vb_stack_top = let top () = List.hd !stack in (with_, top) +(* (fun x -> x) *) +let fun_id loc = pexp_fun ~loc Nolabel None (pvar ~loc "x") (evar ~loc "x") + let mapper = object inherit Ast_traverse.map as super @@ -129,7 +132,7 @@ let mapper = | Pexp_extension ( {txt= "Trace.retn"; loc= retn_loc} , PStr [{pstr_desc= Pstr_eval (retn_fun, []); _}] ) -> - if not !debug then evar ~loc:exp.pexp_loc "Stdlib.Fun.id" + if not !debug then fun_id exp.pexp_loc else pexp_apply ~loc:exp.pexp_loc (evar ~loc:retn_loc "Trace.retn")