diff options
| author | herbelin | 2011-08-10 19:20:42 +0000 |
|---|---|---|
| committer | herbelin | 2011-08-10 19:20:42 +0000 |
| commit | c468066951baafc1164261f58c61dd601619bcc8 (patch) | |
| tree | 41715f20d6c35ba55a730070829272875bdabd47 /interp | |
| parent | 1d6ad11aa4916c4caa3d49da12a14e39b000b978 (diff) | |
Fixing printing bug with last trailing non-maximally implicit
arguments needed for correct typing of partial applications (knowing
that in practice, users should anyway better declare such arguments as
maximally inserted).
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14404 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/constrextern.ml | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml index 33dec8aa69..eb817ce1bd 100644 --- a/interp/constrextern.ml +++ b/interp/constrextern.ml @@ -438,8 +438,11 @@ let is_projection nargs = function let is_hole = function CHole _ -> true | _ -> false -let is_significant_implicit a impl tail = - not (is_hole a) or (tail = [] & not (List.for_all is_status_implicit impl)) +let is_significant_implicit a = + not (is_hole a) + +let is_needed_for_correct_partial_application tail imp = + tail = [] & not (maximal_insertion_of imp) (* Implicit args indexes are in ascending order *) (* inctx is useful only if there is a last argument to be deduced from ctxt *) @@ -451,8 +454,9 @@ let explicitize loc inctx impl (cf,f) args = let visible = !Flags.raw_print or (!print_implicits & !print_implicits_explicit_args) or + (is_needed_for_correct_partial_application tail imp) or (!print_implicits_defensive & - is_significant_implicit a impl tail & + is_significant_implicit a & not (is_inferable_implicit inctx n imp)) in if visible then |
