]> matita.cs.unibo.it Git - helm.git/commitdiff
Bug fixed: local type declarations are not allowed in ocaml.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 19 Nov 2007 18:16:25 +0000 (18:16 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 19 Nov 2007 18:16:25 +0000 (18:16 +0000)
helm/software/components/cic_exportation/cicExportation.ml

index 8af058f9692d3bb8590fac15264d8236893c859b..58e8170911ba0d05a3f470622a3b6b5ecfe59ba4 100644 (file)
@@ -183,9 +183,19 @@ let rec pp ~in_type t context =
             "(function " ^ ppname b ^ " -> " ^
              pp ~in_type t ((Some (b,Cic.Decl s))::context) ^ ")")
     | C.LetIn (b,s,t) ->
-       let ty,_ = CicTypeChecker.type_of_aux' [] context s CicUniv.oblivion_ugraph in
-       "(let " ^ ppname b ^ " = " ^ pp ~in_type:false s context ^ " in " ^
-        pp ~in_type t ((Some (b,Cic.Def (s,Some ty)))::context) ^ ")"
+       (match analyze_term context s with
+           `Type
+         | `Proof ->
+            let ty,_ =
+             CicTypeChecker.type_of_aux' [] context s CicUniv.oblivion_ugraph
+            in
+             pp ~in_type t ((Some (b,Cic.Def (s,Some ty)))::context)
+         | `Term ->
+            let ty,_ =
+             CicTypeChecker.type_of_aux' [] context s CicUniv.oblivion_ugraph
+            in
+            "(let " ^ ppname b ^ " = " ^ pp ~in_type:false s context ^ " in " ^
+             pp ~in_type t ((Some (b,Cic.Def (s,Some ty)))::context) ^ ")")
     | C.Appl (he::tl) when in_type ->
        let hes = pp ~in_type he context in
        let stl = String.concat "," (clean_args_for_ty context tl) in