(*******************************************************************
TASSI: invariant
we need, in the universe generation phase, to traverse objects
- that are not jet committed, so we search them in the frozen list.
+ that are not yet committed, so we search them in the frozen list.
Only uncommitted objects without a universe file (see the assertion)
can be searched with method
*******************************************************************)
(* the replacement ugraph must be the one returned by the *)
(* typechecker, restricted with the CicUnivUtils.clean_and_fill *)
let set_type_checking_info ?(replace_ugraph=None) uri =
- if Cache.can_be_cooked uri && replace_ugraph <> None then
- invalid_arg (
+(*
+ if not (Cache.can_be_cooked uri) && replace_ugraph <> None then begin
+ prerr_endline (
"?replace_ugraph must be None if you are not committing an "^
"object that has a universe graph associated "^
"(can happen only in the fase of universes graphs generation).");
- if not (Cache.can_be_cooked uri) && replace_ugraph = None then
- invalid_arg (
- "?replace_ugraph must be (Some ugraph) when committing an object that "^
- "has no associated universe graph. If this is in make_univ phase you "^
- "should drop this exception and let univ_make commit thi object with "^
- "proper arguments");
- begin
- match replace_ugraph with
- None -> ()
- | Some g -> Cache.hack_univ uri g
- end;
- Cache.frozen_to_cooked uri
+ assert false
+ else
+*)
+ match Cache.can_be_cooked uri, replace_ugraph with
+ | true, Some _
+ | false, None ->
+ prerr_endline (
+ "?replace_ugraph must be (Some ugraph) when committing an object that "^
+ "has no associated universe graph. If this is in make_univ phase you "^
+ "should drop this exception and let univ_make commit thi object with "^
+ "proper arguments");
+ assert false
+ | _ ->
+ (match replace_ugraph with
+ | None -> ()
+ | Some g -> Cache.hack_univ uri g);
+ Cache.frozen_to_cooked uri
;;
(* fetch, unfreeze and commit an uri to the cacheOfCookedObjects and
CheckedObj ( o, CicUniv.merge_ugraphs u base_univ )
else
let o,u = find_or_add_to_unchecked uri in
+ Cache.unchecked_to_frozen uri;
UncheckedObj o
;;