diff options
author | 2014-08-14 13:01:30 +0200 | |
---|---|---|
committer | 2014-08-14 13:01:30 +0200 | |
commit | 37a58edffeff7b6a7f03ec781e1e2ca73de4b3af (patch) | |
tree | e7c73845d8ccc700662875c5455d9a797225da87 /kernel/closure.ml | |
parent | 9c1e76422c63ab845d72893ca85dd38ce5ce9bec (diff) |
Restrict eta-conversion to inductive records, fixing bug #3310.
Diffstat (limited to 'kernel/closure.ml')
-rw-r--r-- | kernel/closure.ml | 3 |
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') -> |