diff options
author | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-06-11 18:59:06 +0000 |
---|---|---|
committer | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-06-11 18:59:06 +0000 |
commit | 8f72678f7a1fc1d0e2c9ac7a5f682ce100bfa403 (patch) | |
tree | 4aa74c5721a3b24372cfa0d72784749de204d493 /proofs/refiner.ml | |
parent | 80105c8482bd487782dcab8161fa1fc1f3fdf635 (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.ml | 6 |
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 |