diff options
-rw-r--r-- | typing/ident.ml | 1 | ||||
-rw-r--r-- | typing/ident.mli | 1 | ||||
-rw-r--r-- | typing/typecore.ml | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/typing/ident.ml b/typing/ident.ml index bd08c470e..a9529f093 100644 --- a/typing/ident.ml +++ b/typing/ident.ml @@ -43,6 +43,7 @@ let same i1 i2 = i1 = i2 let binding_time i = i.stamp let current_time() = !currentstamp +let set_current_time t = currentstamp := max !currentstamp t let hide i = { stamp = -1; name = i.name; global = i.global } diff --git a/typing/ident.mli b/typing/ident.mli index 782157351..9711044d8 100644 --- a/typing/ident.mli +++ b/typing/ident.mli @@ -39,6 +39,7 @@ val global: t -> bool val binding_time: t -> int val current_time: unit -> int +val set_current_time: int -> unit val print: t -> unit diff --git a/typing/typecore.ml b/typing/typecore.ml index e27f2ab72..61ffeca29 100644 --- a/typing/typecore.ml +++ b/typing/typecore.ml @@ -745,6 +745,7 @@ let rec type_exp env sexp = end | Pexp_letmodule(name, smodl, sbody) -> let ty = newvar() in + Ident.set_current_time ty.level; let modl = !type_module env smodl in let (id, new_env) = Env.enter_module name modl.mod_type env in Ctype.init_def(Ident.current_time()); |