aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs/refiner.ml
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-06-11 18:59:06 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-06-11 18:59:06 +0000
commit8f72678f7a1fc1d0e2c9ac7a5f682ce100bfa403 (patch)
tree4aa74c5721a3b24372cfa0d72784749de204d493 /proofs/refiner.ml
parent80105c8482bd487782dcab8161fa1fc1f3fdf635 (diff)
Use a lazy value for the message in FailError, so that it won't be
unnecessarily computed when the user won't see it (avoids the costly nf_evar_defs in typeclass errors). Add hook support for mutual definitions in Program. Try to solve only the argument typeclasses when calling [refine]. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12185 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs/refiner.ml')
-rw-r--r--proofs/refiner.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/proofs/refiner.ml b/proofs/refiner.ml
index b0239eeb4..8b3789c3b 100644
--- a/proofs/refiner.ml
+++ b/proofs/refiner.ml
@@ -335,10 +335,12 @@ let tclIDTAC_MESSAGE s gls =
let tclFAIL_s s gls = errorlabstrm "Refiner.tclFAIL_s" (str s)
(* A special exception for levels for the Fail tactic *)
-exception FailError of int * std_ppcmds
+exception FailError of int * std_ppcmds Lazy.t
(* The Fail tactic *)
-let tclFAIL lvl s g = raise (FailError (lvl,s))
+let tclFAIL lvl s g = raise (FailError (lvl,lazy s))
+
+let tclFAIL_lazy lvl s g = raise (FailError (lvl,s))
let start_tac gls =
let (sigr,g) = unpackage gls in