diff options
| author | Pierre-Marie Pédrot | 2015-12-28 02:08:42 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2015-12-28 02:18:25 +0100 |
| commit | cb2f6a95ee72edb956f419a24f8385c8ae7f96f4 (patch) | |
| tree | 2ddf7103c75e4e824d5bfefade3ec774498fc131 /tactics | |
| parent | 28d4740736e5ef3b6f8547710dcf7e5b4d11cabd (diff) | |
Removing the special status of open_constr generic argument.
We also intepret it at toplevel as a true constr and push the resulting
evarmap in the current state.
Diffstat (limited to 'tactics')
| -rw-r--r-- | tactics/tacintern.ml | 3 | ||||
| -rw-r--r-- | tactics/tacinterp.ml | 14 | ||||
| -rw-r--r-- | tactics/tacsubst.ml | 4 |
3 files changed, 3 insertions, 18 deletions
diff --git a/tactics/tacintern.ml b/tactics/tacintern.ml index 23de87d7db..08d2d21a3f 100644 --- a/tactics/tacintern.ml +++ b/tactics/tacintern.ml @@ -727,8 +727,6 @@ and intern_genarg ist x = map_raw wit_var intern_hyp ist x | ConstrArgType -> map_raw wit_constr intern_constr ist x - | OpenConstrArgType -> - map_raw wit_open_constr (fun ist -> on_snd (intern_constr ist)) ist x | ListArgType _ -> let list_unpacker wit l = let map x = @@ -832,6 +830,7 @@ let () = Genintern.register_intern0 wit_sort (fun ist s -> (ist, s)); Genintern.register_intern0 wit_quant_hyp (lift intern_quantified_hypothesis); Genintern.register_intern0 wit_uconstr (fun ist c -> (ist,intern_constr ist c)); + Genintern.register_intern0 wit_open_constr (fun ist c -> (ist,intern_constr ist c)); Genintern.register_intern0 wit_red_expr (lift intern_red_expr); Genintern.register_intern0 wit_bindings (lift intern_bindings); Genintern.register_intern0 wit_constr_with_bindings (lift intern_constr_with_bindings); diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 0ac115d1d5..ff66628098 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -1120,9 +1120,6 @@ let rec read_match_rule lfun ist env sigma = function (* misc *) -let mk_open_constr_value ist gl c = - let (sigma,c_interp) = pf_apply (interp_open_constr ist) gl c in - sigma, Value.of_constr c_interp let mk_hyp_value ist env sigma c = (mkVar (interp_hyp ist env sigma c)) @@ -1260,10 +1257,6 @@ and eval_tactic ist tac : unit Proofview.tactic = match tac with (Genarg.out_gen (glbwit wit_ident) x))) | VarArgType -> Ftactic.return (Value.of_constr (mk_hyp_value ist env sigma (Genarg.out_gen (glbwit wit_var) x))) - | OpenConstrArgType -> - let (sigma,v) = - Tacmach.New.of_old (fun gl -> mk_open_constr_value ist gl (snd (Genarg.out_gen (glbwit wit_open_constr) x))) gl in - Ftactic.(lift (Proofview.Unsafe.tclEVARS sigma) <*> return v) | ListArgType VarArgType -> let wit = glbwit (wit_list wit_var) in let ans = List.map (mk_hyp_value ist env sigma) (Genarg.out_gen wit x) in @@ -1626,12 +1619,6 @@ and interp_genarg ist env sigma concl gl x = in evdref := sigma; in_gen (topwit wit_constr) c_interp - | OpenConstrArgType -> - let expected_type = WithoutTypeConstraint in - in_gen (topwit wit_open_constr) - (interp_open_constr ~expected_type - ist env !evdref - (snd (Genarg.out_gen (glbwit wit_open_constr) x))) | ListArgType ConstrArgType -> let (sigma,v) = interp_genarg_constr_list ist env !evdref x in evdref := sigma; @@ -2283,6 +2270,7 @@ let () = Geninterp.register_interp0 wit_tacvalue (fun ist gl c -> project gl, c); Geninterp.register_interp0 wit_red_expr (lifts interp_red_expr); Geninterp.register_interp0 wit_quant_hyp (lift interp_declared_or_quantified_hypothesis); + Geninterp.register_interp0 wit_open_constr (lifts interp_open_constr); Geninterp.register_interp0 wit_bindings interp_bindings'; Geninterp.register_interp0 wit_constr_with_bindings interp_constr_with_bindings'; Geninterp.register_interp0 wit_constr_may_eval (lifts interp_constr_may_eval); diff --git a/tactics/tacsubst.ml b/tactics/tacsubst.ml index fdf65292a1..2132e9a573 100644 --- a/tactics/tacsubst.ml +++ b/tactics/tacsubst.ml @@ -281,9 +281,6 @@ and subst_genarg subst (x:glob_generic_argument) = | VarArgType -> in_gen (glbwit wit_var) (out_gen (glbwit wit_var) x) | ConstrArgType -> in_gen (glbwit wit_constr) (subst_glob_constr subst (out_gen (glbwit wit_constr) x)) - | OpenConstrArgType -> - in_gen (glbwit wit_open_constr) - ((),subst_glob_constr subst (snd (out_gen (glbwit wit_open_constr) x))) | ListArgType _ -> let list_unpacker wit l = let map x = @@ -322,6 +319,7 @@ let () = Genintern.register_subst0 wit_sort (fun _ v -> v); Genintern.register_subst0 wit_clause_dft_concl (fun _ v -> v); Genintern.register_subst0 wit_uconstr (fun subst c -> subst_glob_constr subst c); + Genintern.register_subst0 wit_open_constr (fun subst c -> subst_glob_constr subst c); Genintern.register_subst0 wit_red_expr subst_redexp; Genintern.register_subst0 wit_quant_hyp subst_declared_or_quantified_hypothesis; Genintern.register_subst0 wit_bindings subst_bindings; |
