Change to a recoverable error in proof search
This means if a constructor fails when deep in search, instead of
abandoning the whole thing we'll just move on to the next metavariable.
This effectively gives backtracking for the 'search' tactic.
Of course, care is needed in choosing what to search for (make sure the
types are descriptive enough to cut off search, in particular), because
if it goes really deep this could take a long time!
commitec06f94a95129954287869fbed803a5b2013be61
authorEdwin Brady <ecb10@st-andrews.ac.uk>
dateThu 5 Mar 2015, 16:00 (12 years ago)
parentb56f5c1
src/Idris/ProofSearch.hs+1−1
@@ -138,7 +138,7 @@ proofSearch rec fromProver ambigok deferonfail maxDepth elab fn nroot hints ist
138138 True)
139139 -- if all else fails, make a new metavariable
140140 (if fromProver
141− then cantSolveGoal
141+ then fail "cantSolveGoal"
142142 else do attack; defer [] nroot; solve) True) True
143143
144144 getFn d Nothing = []