]> matita.cs.unibo.it Git - helm.git/commitdiff
The pretty printer should never fail, even on fake inductive types used in
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 3 Jun 2011 08:55:01 +0000 (08:55 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 3 Jun 2011 08:55:01 +0000 (08:55 +0000)
patterns.

matita/components/ng_cic_content/interpretations.ml

index 84638ad6dfa43e03cf473ff0e8d56b3d3b44a38c..741cfa64043e919c5b87b2331604da0012a7176c 100644 (file)
@@ -305,6 +305,7 @@ let nast_of_cic0 status
                  [arg] -> idref (k ~context arg)
                | _ -> idref (Ast.Appl (List.map (k ~context) args))))
     | NCic.Match (NReference.Ref (uri,_) as r,outty,te,patterns) ->
+       (try
         let name = NUri.name_of_uri uri in
 (* CSC
         let uri_str = UriManager.string_of_uri uri in
@@ -351,6 +352,12 @@ let nast_of_cic0 status
           | `Term -> Some case_indty
         in
          idref (Ast.Case (k ~context te, indty, Some (k ~context outty), patterns))
+     with
+      NCicEnvironment.ObjectNotFound msg ->
+       idref (Ast.Case(k ~context te,Some ("NOT_FOUND: " ^ Lazy.force msg,None),
+       Some (k ~context outty),
+       (List.map (fun t -> Ast.Pattern ("????", None, []), k ~context t)
+         patterns))))
 ;;
 
 let rec nast_of_cic1 status ~idref ~output_type ~metasenv ~subst ~context term =