diff options
author | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2014-04-27 15:09:04 +0200 |
---|---|---|
committer | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2014-04-28 09:40:46 +0200 |
commit | 5eb53b5bc8d765ed75e965f43f1084e18efc8790 (patch) | |
tree | 31c87e5f8c9f6cff5f2277912240a2a2f565bc90 /checker/inductive.ml | |
parent | 6541e32be7018104c47ccad75ff41ffc750ff944 (diff) |
Adding a field ci_cstr_nargs to case_info and mind_consnrealargs to
one_inductive_body so that when eta-expanding at "match" printing time
we know if a let is part of the expected signature or part of the
body.
This is an easy fix for bugs like #3293. Another fix could be to
enforce, as an invariant, or better syntactically, that
"match"/"Case"'s have the body of their branches expanded.
Diffstat (limited to 'checker/inductive.ml')
-rw-r--r-- | checker/inductive.ml | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/checker/inductive.ml b/checker/inductive.ml index 40a9bc316..e6a24f705 100644 --- a/checker/inductive.ml +++ b/checker/inductive.ml @@ -352,7 +352,8 @@ let check_case_info env indsp ci = if not (eq_ind indsp ci.ci_ind) || (mib.mind_nparams <> ci.ci_npar) || - (mip.mind_consnrealdecls <> ci.ci_cstr_ndecls) + (mip.mind_consnrealdecls <> ci.ci_cstr_ndecls) || + (mip.mind_consnrealargs <> ci.ci_cstr_nargs) then raise (TypeError(env,WrongCaseInfo(indsp,ci))) (************************************************************************) |