From af3673b08204cb4d3d6994aa3a5bd6363bfd7459 Mon Sep 17 00:00:00 2001 From: Gaëtan Gilbert Date: Thu, 17 Jan 2019 11:44:38 +0000 Subject: Fix #9344, #9348: incorrect unsafe to_constr in vnorm --- pretyping/vnorm.ml | 2 +- test-suite/bugs/closed/bug_9344.v | 1 + test-suite/bugs/closed/bug_9348.v | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 test-suite/bugs/closed/bug_9344.v create mode 100644 test-suite/bugs/closed/bug_9348.v diff --git a/pretyping/vnorm.ml b/pretyping/vnorm.ml index 62e9e477f7..1fe6545ce4 100644 --- a/pretyping/vnorm.ml +++ b/pretyping/vnorm.ml @@ -202,7 +202,7 @@ and nf_univ_args ~nb_univs mk env sigma stk = and nf_evar env sigma evk stk = let evi = try Evd.find sigma evk with Not_found -> assert false in let hyps = Environ.named_context_of_val (Evd.evar_filtered_hyps evi) in - let concl = EConstr.Unsafe.to_constr @@ Evd.evar_concl evi in + let concl = EConstr.to_constr ~abort_on_undefined_evars:false sigma @@ Evd.evar_concl evi in if List.is_empty hyps then nf_stk env sigma (mkEvar (evk, [||])) concl stk else match stk with diff --git a/test-suite/bugs/closed/bug_9344.v b/test-suite/bugs/closed/bug_9344.v new file mode 100644 index 0000000000..fbf86b2dad --- /dev/null +++ b/test-suite/bugs/closed/bug_9344.v @@ -0,0 +1 @@ +Compute _ I. diff --git a/test-suite/bugs/closed/bug_9348.v b/test-suite/bugs/closed/bug_9348.v new file mode 100644 index 0000000000..a4673b5ffc --- /dev/null +++ b/test-suite/bugs/closed/bug_9348.v @@ -0,0 +1,3 @@ +Set Primitive Projections. +Record r {A} := R {f : A -> A}. +Compute f _ I. -- cgit v1.2.3 From ace68d056551a4a2834d1d4908375dba7a1fbc44 Mon Sep 17 00:00:00 2001 From: Maxime Dénès Date: Mon, 29 Apr 2019 17:35:06 +0200 Subject: Fix variant of #9344 for native_compute --- pretyping/nativenorm.ml | 2 +- test-suite/bugs/closed/bug_9344.v | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pretyping/nativenorm.ml b/pretyping/nativenorm.ml index e694502231..0fcd6a9e9d 100644 --- a/pretyping/nativenorm.ml +++ b/pretyping/nativenorm.ml @@ -415,7 +415,7 @@ and nf_predicate env sigma ind mip params v pT = and nf_evar env sigma evk args = let evi = try Evd.find sigma evk with Not_found -> assert false in let hyps = Environ.named_context_of_val (Evd.evar_filtered_hyps evi) in - let ty = EConstr.Unsafe.to_constr @@ Evd.evar_concl evi in + let ty = EConstr.to_constr ~abort_on_undefined_evars:false sigma @@ Evd.evar_concl evi in if List.is_empty hyps then begin assert (Int.equal (Array.length args) 0); mkEvar (evk, [||]), ty diff --git a/test-suite/bugs/closed/bug_9344.v b/test-suite/bugs/closed/bug_9344.v index fbf86b2dad..0d44c9721a 100644 --- a/test-suite/bugs/closed/bug_9344.v +++ b/test-suite/bugs/closed/bug_9344.v @@ -1 +1,2 @@ Compute _ I. +Eval native_compute in _ I. -- cgit v1.2.3