@@ -51,14 +51,14 @@ let to_ltac_val c = Tacinterp.Value.of_constr c
5151let run_template_program ~pm env evm ~poly pgm =
5252 Run_template_monad.run_template_program_rec ~poly (fun ~st _ _ _ -> st) ~st:pm env (evm, pgm)
5353
54- let fresh_env () =
54+ let fresh_env () =
5555 let env = Global.env () in
5656 let sigma = Evd.from_env env in
5757 env, sigma
5858
5959let to_constr_evars sigma c = EConstr.to_constr ~abort_on_undefined_evars:false sigma c
6060}
61-
61+
6262(** ********* Commands ********* *)
6363
6464VERNAC COMMAND EXTEND TemplateCoq_Test_Quote CLASSIFIED AS QUERY STATE program
@@ -76,7 +76,7 @@ VERNAC COMMAND EXTEND TemplateCoq_Quote_Definition CLASSIFIED AS SIDEFF STATE pr
7676 { let (env, evm) = fresh_env () in
7777 let (evm, def) = Constrintern.interp_open_constr env evm def in
7878 let (evm, pgm) = EConstr.fresh_global env evm (Lazy.force Template_monad.ptmQuoteDefinition) in
79- let pgm = Constr.mkApp (EConstr.to_constr evm pgm, [|Constr_quoter.quote_ident name; Constr.mkRel 0;
79+ let pgm = Constr.mkApp (EConstr.to_constr evm pgm, [|Constr_quoter.quote_ident name; Constr.mkRel 0;
8080 to_constr_evars evm def|]) in
8181 run_template_program env evm ~poly pgm }
8282END
@@ -98,7 +98,7 @@ VERNAC COMMAND EXTEND TemplateCoq_Quote_Recursively_Definition CLASSIFIED AS SID
9898 { let (env, evm) = fresh_env () in
9999 let (evm, def) = Constrintern.interp_open_constr env evm def in
100100 let (evm, pgm) = EConstr.fresh_global env evm (Lazy.force Template_monad.ptmQuoteRecDefinition) in
101- let pgm = Constr.mkApp (EConstr.to_constr evm pgm, [|Constr_quoter.quote_ident name; Constr.mkRel 0;
101+ let pgm = Constr.mkApp (EConstr.to_constr evm pgm, [|Constr_quoter.quote_ident name; Constr.mkRel 0;
102102 to_constr_evars evm def|]) in
103103 run_template_program env evm ~poly pgm }
104104END
@@ -108,7 +108,7 @@ VERNAC COMMAND EXTEND TemplateCoq_Test_Unquote CLASSIFIED AS QUERY STATE program
108108 { let (env, evm) = fresh_env () in
109109 let (evm, def) = Constrintern.interp_open_constr env evm def in
110110 let (evm, pgm) = EConstr.fresh_global env evm (Lazy.force Template_monad.ptmTestUnquote) in
111- let pgm = Constr.mkApp (EConstr.to_constr evm pgm,
111+ let pgm = Constr.mkApp (EConstr.to_constr evm pgm,
112112 [|to_constr_evars evm def|]) in
113113 run_template_program env evm ~poly pgm }
114114END
@@ -119,7 +119,7 @@ VERNAC COMMAND EXTEND TemplateCoq_Make_Definition CLASSIFIED AS SIDEFF STATE pro
119119 let (evm, def) = Constrintern.interp_open_constr env evm def in
120120 let (evm, pgm) = EConstr.fresh_global env evm (Lazy.force Template_monad.ptmMkDefinition) in
121121 let pgm = Constr.mkApp (EConstr.to_constr evm pgm,
122- [|Constr_quoter.quote_ident name;
122+ [|Constr_quoter.quote_ident name;
123123 to_constr_evars evm def|]) in
124124 run_template_program env evm ~poly pgm }
125125END
@@ -129,16 +129,17 @@ VERNAC COMMAND EXTEND TemplateCoq_Make_Inductive CLASSIFIED AS SIDEFF STATE prog
129129 { let (env, evm) = fresh_env () in
130130 let (evm, def) = Constrintern.interp_open_constr env evm def in
131131 let (evm, pgm) = EConstr.fresh_global env evm (Lazy.force Template_monad.ptmMkInductive) in
132- let pgm = Constr.mkApp (EConstr.to_constr evm pgm,
132+ let pgm = Constr.mkApp (EConstr.to_constr evm pgm,
133133 [|Constr_quoter.quote_bool false; to_constr_evars evm def|]) in
134134 run_template_program env evm ~poly pgm }
135135END
136136
137137VERNAC COMMAND EXTEND TemplateCoq_Run_Template_Program CLASSIFIED AS SIDEFF STATE program
138138 | #[ poly = polymorphic ] [ "MetaCoq" "Run" constr(def) ] ->
139139 { let (env, evm) = fresh_env () in
140- let (evm, def) = Constrintern.interp_open_constr env evm def in
141- let pgm = to_constr_evars evm def in
140+ let (pgm, ctx) = Constrintern.interp_constr env evm def in
141+ let evm = Evd.from_ctx ctx in
142+ let pgm = EConstr.to_constr ~abort_on_undefined_evars:true evm pgm in
142143 run_template_program env evm ~poly pgm }
143144END
144145
0 commit comments