From cda91517b5b456b76d3614824fb567bcdf2877fa Mon Sep 17 00:00:00 2001 From: herbelin Date: Mon, 29 Oct 2001 12:28:11 +0000 Subject: Amérioration message d'erreur en cas d'échec du filtrage de premier ordre MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2144 85f007b7-540e-0410-9357-904b9bb8a0f7 --- pretyping/evarconv.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'pretyping/evarconv.ml') diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml index 0e5b9d6ce..2858151c1 100644 --- a/pretyping/evarconv.ml +++ b/pretyping/evarconv.ml @@ -141,9 +141,10 @@ and evar_eqappr_x env isevars pbty (term1,l1 as appr1) (term2,l2 as appr2) = let f1 () = (List.length l1 <= List.length l2) & let (deb2,rest2) = list_chop (List.length l2-List.length l1) l2 in + (* First compare extra args for better failure message *) + list_for_all2eq (evar_conv_x env isevars CONV) l1 rest2 & solve_simple_eqn evar_conv_x env isevars (pbty,ev1,applist(term2,deb2)) - & list_for_all2eq (evar_conv_x env isevars CONV) l1 rest2 and f4 () = match eval_flexible_term env flex2 with | Some v2 -> @@ -157,9 +158,10 @@ and evar_eqappr_x env isevars pbty (term1,l1 as appr1) (term2,l2 as appr2) = let f1 () = (List.length l2 <= List.length l1) & let (deb1,rest1) = list_chop (List.length l1-List.length l2) l1 in + (* First compare extra args for better failure message *) + list_for_all2eq (evar_conv_x env isevars CONV) rest1 l2 & solve_simple_eqn evar_conv_x env isevars - (pbty,ev2,applist(term1,deb1)) - & list_for_all2eq (evar_conv_x env isevars CONV) rest1 l2 + (pbty,ev2,applist(term1,deb1)) and f4 () = match eval_flexible_term env flex1 with | Some v1 -> @@ -195,16 +197,19 @@ and evar_eqappr_x env isevars pbty (term1,l1 as appr1) (term2,l2 as appr2) = | Flexible ev1, Rigid _ -> (List.length l1 <= List.length l2) & let (deb2,rest2) = list_chop (List.length l2-List.length l1) l2 in + (* First compare extra args for better failure message *) + list_for_all2eq (evar_conv_x env isevars CONV) l1 rest2 & solve_simple_eqn evar_conv_x env isevars (pbty,ev1,applist(term2,deb2)) - & list_for_all2eq (evar_conv_x env isevars CONV) l1 rest2 | Rigid _, Flexible ev2 -> (List.length l2 <= List.length l1) & let (deb1,rest1) = list_chop (List.length l1-List.length l2) l1 in + (* First compare extra args for better failure message *) + list_for_all2eq (evar_conv_x env isevars CONV) rest1 l2 & solve_simple_eqn evar_conv_x env isevars (pbty,ev2,applist(term1,deb1)) - & list_for_all2eq (evar_conv_x env isevars CONV) rest1 l2 + | MaybeFlexible flex1, Rigid _ -> let f3 () = -- cgit v1.2.3