]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaDisambiguator.ml
snapshot
[helm.git] / helm / matita / matitaDisambiguator.ml
index 51e60bb1854b493b59dfd3e65907ca6981c67718..87215fba177db6ea4cc9ed50e6b7ab8249b499c5 100644 (file)
@@ -74,11 +74,16 @@ class disambiguator
     method env = _env
     method setEnv e = _env <- e
 
-    method disambiguateTermAst ?(context = []) ?(metasenv = []) ?(env = _env)
-      termAst
-    =
+    method disambiguateTermAst ?(context = []) ?(metasenv = []) ?env termAst =
+      let (save_state, env) =
+        match env with
+        | Some env -> (false, env)
+        | None -> (true, _env)
+      in
       match disambiguate_term mqiconn context metasenv termAst ~aliases:env with
-      | [ x ] -> x
+      | [ (env, metasenv, term) as x ] ->
+          if save_state then self#setEnv env;
+          x
       | _ -> assert false
 
     method disambiguateTerm ?context ?metasenv ?env stream =