diff options
| author | Tej Chajed | 2017-03-23 15:11:46 -0400 |
|---|---|---|
| committer | Tej Chajed | 2017-03-23 15:15:43 -0400 |
| commit | 209ff6ae4367b8c96b59bc318f4791dcb2251c14 (patch) | |
| tree | 4b3bfb5c0b8664ffe056c3a3af3117e1c5a1a785 | |
| parent | 9dc839ee08d4aef904d95bd358d5486b4964ef4e (diff) | |
Correctly identify [Time Defined.] as a defined
Need to check inside control expressions. Also fixes handling of
[Redirect "file" Defined.] and [Timeout n Defined.].
Fixes Coq bug 5411 (https://coq.inria.fr/bugs/show_bug.cgi?id=5411):
coqc -quick hangs on [Time Defined.]
| -rw-r--r-- | stm/stm.ml | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/stm/stm.ml b/stm/stm.ml index f577994ffa..71ec8acc68 100644 --- a/stm/stm.ml +++ b/stm/stm.ml @@ -1912,10 +1912,14 @@ let collect_proof keep cur hd brkind id = | [] -> no_name | id :: _ -> Id.to_string id in let loc = (snd cur).loc in - let is_defined = function - | _, { expr = VernacEndProof (Proved ((Transparent|Opaque (Some _)),_)) } -> - true + let rec is_defined_expr = function + | VernacEndProof (Proved ((Transparent|Opaque (Some _)),_)) -> true + | VernacTime (_, e) -> is_defined_expr e + | VernacRedirect (_, (_, e)) -> is_defined_expr e + | VernacTimeout (_, e) -> is_defined_expr e | _ -> false in + let is_defined = function + | _, { expr = e } -> is_defined_expr e in let proof_using_ast = function | Some (_, ({ expr = VernacProof(_,Some _) } as v)) -> Some v | _ -> None in |
