]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_proof_checking/cicTypeChecker.ml
- added SortExpectedMetaFound exception (huge hack)
[helm.git] / helm / ocaml / cic_proof_checking / cicTypeChecker.ml
index b034e3928800e139e80e94e7d2396618f8e66255..19ee778f56d25aaf1e94e404935177bcdd53b67f 100644 (file)
@@ -30,6 +30,7 @@ open Printf
 
 exception AssertFailure of string;;
 exception TypeCheckerFailure of string;;
+exception SortExpectedMetaFound of string;;   (* TODO temp *)
 
 let fdebug = ref 0;;
 let debug t context =
@@ -631,7 +632,8 @@ and eat_lambdas context n te =
        eat_lambdas ((Some (name,(C.Decl so)))::context) (n - 1) ta
       in
        (te, k + 1, context')
-   | (_, _) -> raise (AssertFailure "9")
+   | (n, te) ->
+       raise (AssertFailure (sprintf "9 (%d, %s)" n (CicPp.ppterm te)))
 
 (*CSC: Tutto quello che segue e' l'intuzione di luca ;-) *)
 and check_is_really_smaller_arg context n nn kl x safes te =
@@ -1636,10 +1638,10 @@ in if not res then debug_print ("#### " ^ CicPp.ppterm (type_of_aux context p) ^
         when (s2 = C.Prop or s2 = C.Set or s2 = C.CProp) -> (* different from Coq manual!!! *)
          C.Sort s2
     | (C.Sort s1, C.Sort s2) -> C.Sort C.Type (*CSC manca la gestione degli universi!!! *)
-    | (_,_) ->
-      raise (TypeCheckerFailure (sprintf
+    | (_,_) -> raise (SortExpectedMetaFound (sprintf
         "Prod: expected two sorts, found = %s, %s" (CicPp.ppterm t1')
           (CicPp.ppterm t2')))
+(*       raise (TypeCheckerFailure (sprintf *)
 
  and eat_prods context hetype =
   (*CSC: siamo sicuri che le are_convertible non lavorino con termini non *)