X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2FmatitaExcPp.ml;h=04bdd6a3871af183948a1a81e68c7dc83c2a3d21;hb=b367de0252e88d6b0476648d5ceac7e4aeffca27;hp=312a9a4f8a6ebc475ab1ab736818688978d79687;hpb=8e6a30412bbac3acc0a020e0fe90d492b0fc6776;p=helm.git diff --git a/helm/software/matita/matitaExcPp.ml b/helm/software/matita/matitaExcPp.ml index 312a9a4f8..04bdd6a38 100644 --- a/helm/software/matita/matitaExcPp.ml +++ b/helm/software/matita/matitaExcPp.ml @@ -33,8 +33,9 @@ let compact_disambiguation_errors all_passes errorll = (List.map (fun (pass,l) -> List.map - (fun (env,diff,offset,msg,significant) -> - offset, [[pass], [[pass], env, diff], msg, significant]) l + (fun (env,diff,offset_msg,significant) -> + let offset, msg = Lazy.force offset_msg in + offset, [[pass], [[pass], env, diff], lazy msg, significant]) l ) errorll) in (* Here we are doing a stable sort and list_uniq returns the latter "equal" element. I.e. we are showing the error corresponding to the @@ -139,28 +140,58 @@ let rec to_string = | CicRefine.RefineFailure msg | CicRefine.AssertFailure msg -> None, "Refiner error: " ^ Lazy.force msg + | NCicRefiner.RefineFailure msg -> + None, "NRefiner failure: " ^ snd (Lazy.force msg) + | NCicRefiner.Uncertain msg -> + None, "NRefiner uncertain: " ^ snd (Lazy.force msg) + | NCicMetaSubst.Uncertain msg -> + None, "NCicMetaSubst uncertain: " ^ Lazy.force msg + | NCicTypeChecker.TypeCheckerFailure msg -> + None, "NTypeChecker failure: " ^ Lazy.force msg + | NCicTypeChecker.AssertFailure msg -> + None, "NTypeChecker assert failure: " ^ Lazy.force msg + | NCicEnvironment.ObjectNotFound msg -> + None, "NCicEnvironment object not found: " ^ Lazy.force msg + | NCicEnvironment.AlreadyDefined msg -> + None, "NCicEnvironment already defined: " ^ Lazy.force msg + | NCicRefiner.AssertFailure msg -> + None, "NRefiner assert failure: " ^ Lazy.force msg + | NCicEnvironment.BadDependency (msg,e) -> + None, "NCicEnvironment bad dependency: " ^ Lazy.force msg ^ + snd (to_string e) + | NCicEnvironment.BadConstraint msg -> + None, "NCicEnvironment bad constraint: " ^ Lazy.force msg + | NCicUnification.UnificationFailure msg -> + None, "NCicUnification failure: " ^ Lazy.force msg + | NCicUnification.Uncertain msg -> + None, "NCicUnification uncertain: " ^ Lazy.force msg | CicTypeChecker.TypeCheckerFailure msg -> None, "Type checking error: " ^ Lazy.force msg | CicTypeChecker.AssertFailure msg -> None, "Type checking assertion failed: " ^ Lazy.force msg | LibrarySync.AlreadyDefined s -> None, "Already defined: " ^ UriManager.string_of_uri s - | CoercDb.EqCarrNotImplemented msg -> - None, ("EqCarrNotImplemented: " ^ Lazy.force msg) | DisambiguateChoices.Choice_not_found msg -> None, ("Disambiguation choice not found: " ^ Lazy.force msg) - | MatitaEngine.EnrichedWithLexiconStatus (exn,_) -> - None, "EnrichedWithLexiconStatus "^snd(to_string exn) - | GrafiteDisambiguator.DisambiguationError (offset,errorll) -> + | MatitaEngine.EnrichedWithStatus (exn,_) -> + None, "EnrichedWithStatus "^snd(to_string exn) + | NTacStatus.Error (msg,None) -> + None, "NTactic error: " ^ Lazy.force msg + | NTacStatus.Error (msg,Some exn) -> + None, "NTactic error: " ^ Lazy.force msg ^ "\n" ^ snd(to_string exn) + | MultiPassDisambiguator.DisambiguationError (offset,errorll) -> let loc = match errorll with - ((_,_,Some floc,_,_)::_)::_ -> - let (x, y) = HExtlib.loc_of_floc floc in - let x = x + offset in - let y = y + offset in - let floc = HExtlib.floc_of_loc (x,y) in - Some floc - | _ -> None in + | ((_,_,loc_msg,_)::_)::_ -> + let floc, _ = Lazy.force loc_msg in + if floc = Stdpp.dummy_loc then None else + let (x, y) = HExtlib.loc_of_floc floc in + let x = x + offset in + let y = y + offset in + let floc = HExtlib.floc_of_loc (x,y) in + Some floc + | _ -> assert false + in let annotated_errorll = List.rev (snd @@ -184,11 +215,10 @@ let rec to_string = let msg = (List.map (fun (passes,_,_,floc,msg,significant) -> let loc_descr = - match floc with - None -> "" - | Some floc -> - let (x, y) = HExtlib.loc_of_floc floc in - sprintf " at %d-%d" (x+offset) (y+offset) + if floc = HExtlib.dummy_floc then "" + else + let (x, y) = HExtlib.loc_of_floc floc in + sprintf " at %d-%d" (x+offset) (y+offset) in "*" ^ (if not significant then "(Spurious?) " else "") ^ "Error" ^ loc_descr ^ ": " ^ Lazy.force msg,