diff options
| author | herbelin | 2003-08-12 12:58:58 +0000 |
|---|---|---|
| committer | herbelin | 2003-08-12 12:58:58 +0000 |
| commit | 7ba5db11d6e9704d3acb89ca1dbb7cd9890a4385 (patch) | |
| tree | d1af2a89262cbcf5700c6b83bfd968f50179a2ad /pretyping | |
| parent | aed209d2a59ee71f3f4a434e8c6a6166d48f2eee (diff) | |
Bug et améliorations diverses
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4264 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
| -rw-r--r-- | pretyping/pretyping.ml | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/pretyping/pretyping.ml b/pretyping/pretyping.ml index e86d60c77a..ffbca83eac 100644 --- a/pretyping/pretyping.ml +++ b/pretyping/pretyping.ml @@ -673,7 +673,8 @@ let rec pretype tycon env isevars lvar = function let nconstr = Array.length mip.mind_consnames in let tyi = snd ind in if isrec && mis_is_recursive_subset [tyi] recargs then - Some (Detyping.detype env [] (names_of_rel_context env) + Some (Detyping.detype env + (ids_of_context env) (names_of_rel_context env) (nf_evar (evars_of isevars) v)) (* let sigma = evars_of isevars in @@ -732,7 +733,12 @@ let rec pretype tycon env isevars lvar = function RApp (dummy_loc,fix,realargs@[c]) (msgerrnl (str "Warning: could't translate Match"); None) *) - else + else if st = IfStyle & po = None then + (* Translate into a "if ... then ... else" *) + (* TODO: translate into a "if" even if po is dependent *) + None + else + (* Translate into a "match ... with" *) let rtntypopt, indnalopt = match po with | None -> None, (Anonymous,None) | Some p -> @@ -756,7 +762,11 @@ let rec pretype tycon env isevars lvar = function else [Anonymous],p,[] in let args = List.map (fun _ -> Anonymous) params @ nal in (Some rtntyopt,(List.hd na,Some (dummy_loc,ind,args))) in - + if st = IfStyle & po = None then + (* Translate into a "if ... then ... else" *) + (* TODO: translate into a "if" even if po is dependent *) + None + else let detype_eqn constr construct_nargs branch = let name_cons = function | Anonymous -> fun l -> l |
