diff options
| author | herbelin | 2003-05-21 13:11:15 +0000 |
|---|---|---|
| committer | herbelin | 2003-05-21 13:11:15 +0000 |
| commit | 215f42dae466bbbdb865303af05c7e70b5fb3d15 (patch) | |
| tree | ef7e2c13c82149b6717e67626af19d3e39c606d5 /interp | |
| parent | 2e3b255c13bae814715dbdee1fea80f107920cee (diff) | |
Fusion à l'essai de lmatch et lfun dans tacinterp; utilisation de noms pour les metavariables de patterns; fusion NoHypId et Hyp
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4043 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/constrintern.ml | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml index 8831b054b5..ce671515f9 100644 --- a/interp/constrintern.ml +++ b/interp/constrintern.ml @@ -471,12 +471,17 @@ let internalise isarity sigma env allow_soapp lvar c = Array.of_list (List.map (intern false env) cl)) | CHole loc -> RHole (loc, QuestionMark) - | CPatVar (loc, n) when allow_soapp = None or !interning_grammar -> + | CPatVar (loc, n) when allow_soapp = None -> RPatVar (loc, n) + | CPatVar (loc, n) when Options.do_translate () -> + RVar (loc, snd n) | CPatVar (loc, (false,n as x)) -> - if List.mem n (out_some allow_soapp) then + if List.mem n (out_some allow_soapp) or Options.do_translate () then RPatVar (loc, x) - else + else if List.mem n (fst (let (a,_,_) = lvar in a)) + (* & !Options.v7 : ne pas exiger, Tauto est encore en V7 ! *) then + RVar (loc, n) + else error_unbound_patvar loc n | CPatVar (loc, _) -> raise (InternalisationError (loc,NegativeMetavariable)) |
