summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1996-09-10 12:44:14 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1996-09-10 12:44:14 +0000
commit1109a9dd32132d454e82ca9a68f247e4c687af26 (patch)
treed7b13d30a1662dd1ac7f605e0717ede2d3c2e19a
parent4a6ea1c013f5f3b742f91d4a9ccae59853c8d58c (diff)
Expanser les abreviations dans le type d'une fonction tracee (au cas
ou le type contiendrait une abreviation pour un type fleche). git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@979 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--toplevel/topdirs.ml3
-rw-r--r--toplevel/trace.ml6
-rw-r--r--toplevel/trace.mli2
3 files changed, 6 insertions, 5 deletions
diff --git a/toplevel/topdirs.ml b/toplevel/topdirs.ml
index 42c97a764..c8bfc1852 100644
--- a/toplevel/topdirs.ml
+++ b/toplevel/topdirs.ml
@@ -233,7 +233,8 @@ let dir_trace lid =
closure = clos;
initial_closure = old_clos;
instrumented_fun =
- instrument_closure lid (Ctype.instance desc.val_type)
+ instrument_closure !toplevel_env lid
+ (Ctype.instance desc.val_type)
old_clos}
:: !traced_functions;
(* Redirect the code field of the old closure *)
diff --git a/toplevel/trace.ml b/toplevel/trace.ml
index 86d9836c9..5e14f585f 100644
--- a/toplevel/trace.ml
+++ b/toplevel/trace.ml
@@ -52,15 +52,15 @@ let overwrite_closure dst src =
(* Return a closure that performs as the given closure, but also
traces its execution. *)
-let rec instrument_closure name clos_typ =
- match (Ctype.repr clos_typ).desc with
+let rec instrument_closure env name clos_typ =
+ match (Ctype.repr(Ctype.expand_root env clos_typ)).desc with
Tarrow(t1, t2) ->
let starred_name =
match name with
Lident s -> Lident(s ^ "*")
| Ldot(lid, s) -> Ldot(lid, s ^ "*")
| Lapply(l1, l2) -> fatal_error "Trace.instrument_closure" in
- let trace_res = instrument_closure starred_name t2 in
+ let trace_res = instrument_closure env starred_name t2 in
(fun clos_val ->
Obj.repr(fun arg ->
open_hovbox 2;
diff --git a/toplevel/trace.mli b/toplevel/trace.mli
index d9ebe1b05..149b2849d 100644
--- a/toplevel/trace.mli
+++ b/toplevel/trace.mli
@@ -24,5 +24,5 @@ val is_traced: Obj.t -> Path.t option
val copy_closure: Obj.t -> Obj.t
val overwrite_closure: Obj.t -> Obj.t -> unit
val instrument_closure:
- Longident.t -> Typedtree.type_expr -> Obj.t -> Obj.t
+ Env.t -> Longident.t -> Typedtree.type_expr -> Obj.t -> Obj.t
val print_trace: Obj.t -> Obj.t -> Obj.t