]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_disambiguation/disambiguate.ml
Bug fixed in computation of the domain of records with left parameters.
[helm.git] / helm / ocaml / cic_disambiguation / disambiguate.ml
index f320db2cc3942b18fbbd356cc924f6d204af867a..71f582211f5530a407ae661b8a2c028072e7ab73 100644 (file)
@@ -118,7 +118,7 @@ let resolve (env: codomain_item Environment.t) (item: domain_item) ?(num = "") ?
       (DisambiguateTypes.string_of_domain_item item))
 
   (* TODO move it to Cic *)
-let find_in_context name (context: Cic.name list) =
+let find_in_context name context =
   let rec aux acc = function
     | [] -> raise Not_found
     | Cic.Name hd :: tl when hd = name -> acc
@@ -683,16 +683,16 @@ let domain_of_obj ~context ast =
        List.flatten
         (List.rev_map (fun (_,ty,_) -> domain_rev_of_term [] ty) fields) in
       let dom =
+       List.fold_left
+        (fun dom (_,ty) ->
+          domain_rev_of_term [] ty @ dom
+        ) (dom @ domain_rev_of_term [] ty) params
+      in
        List.filter
         (fun name->
           not (  List.exists (fun (name',_) -> name = Id name') params
               || List.exists (fun (name',_,_) -> name = Id name') fields)
         ) dom
-      in
-       List.fold_left
-        (fun dom (_,ty) ->
-          domain_rev_of_term [] ty @ dom
-        ) (dom @ domain_rev_of_term [] ty) params
  in
   rev_uniq domain_rev