aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/closure.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2014-08-14 13:01:30 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2014-08-14 13:01:30 +0200
commit37a58edffeff7b6a7f03ec781e1e2ca73de4b3af (patch)
treee7c73845d8ccc700662875c5455d9a797225da87 /kernel/closure.ml
parent9c1e76422c63ab845d72893ca85dd38ce5ce9bec (diff)
Restrict eta-conversion to inductive records, fixing bug #3310.
Diffstat (limited to 'kernel/closure.ml')
-rw-r--r--kernel/closure.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/closure.ml b/kernel/closure.ml
index 62ee5db5d..6dacb7818 100644
--- a/kernel/closure.ml
+++ b/kernel/closure.ml
@@ -866,7 +866,8 @@ let rec get_parameters depth n argstk =
let eta_expand_ind_stacks env ind m s (f, s') =
let mib = lookup_mind (fst ind) env in
match mib.Declarations.mind_record with
- | Some (exp,projs) when Array.length projs > 0 ->
+ | Some (exp,projs) when Array.length projs > 0
+ && mib.Declarations.mind_finite ->
let primitive = Environ.is_projection projs.(0) env in
if primitive then
(* (Construct, pars1 .. parsm :: arg1...argn :: []) ~= (f, s') ->