diff options
author | David Aspinall <da@inf.ed.ac.uk> | 2012-08-27 12:30:16 +0000 |
---|---|---|
committer | David Aspinall <da@inf.ed.ac.uk> | 2012-08-27 12:30:16 +0000 |
commit | 82996a5df1bf7a2c09efbf42d49e9a1420bc8abc (patch) | |
tree | 399a17e6a19d47202dfe32c963e61e11c8d5e49d /etc | |
parent | 4d842784d392cc86128e6a0f02085ac3505bde7e (diff) |
Illustrat Trac #447
Diffstat (limited to 'etc')
-rw-r--r-- | etc/coq/bug-447.v | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/etc/coq/bug-447.v b/etc/coq/bug-447.v new file mode 100644 index 00000000..cc7ccc69 --- /dev/null +++ b/etc/coq/bug-447.v @@ -0,0 +1,101 @@ +Ltac bar k := k tt. + +(* The next tactic definition seems to get stuck when processing in PG. + It works fine typed into coqtop and also works if a couple of the + match lines are removed. + + It does seem to be something to do with the line length, as if + the lines are commented out the same problem happens. + + See http://proofgeneral.inf.ed.ac.uk/trac/ticket/447 +*) +Ltac foo x := + bar ltac:(fun a => + bar ltac:(fun b => + bar ltac:(fun c => + bar ltac:(fun d => + bar ltac:(fun e => + bar ltac:(fun f => + bar ltac:(fun g => + bar ltac:(fun h => + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + let x := match tt with | tt => constr:(1) end in + idtac)))))))). + +Ltac wim x := foo x. |