diff options
| -rw-r--r-- | tactics/tacinterp.ml | 3 | ||||
| -rw-r--r-- | test-suite/output/ltac.out | 1 | ||||
| -rw-r--r-- | test-suite/output/ltac.v | 5 |
3 files changed, 9 insertions, 0 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 5ecc46d670..c3f7fa1439 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -816,6 +816,9 @@ let rec message_of_value v = Ftactic.return (pr_closed_glob_env (pf_env gl) (Proofview.Goal.sigma gl) c) end + else if has_type v (topwit wit_var) then + let id = out_gen (topwit wit_var) v in + Ftactic.nf_enter begin fun gl -> Ftactic.return (pr_id id) end else match Value.to_list v with | Some l -> Ftactic.List.map message_of_value l >>= fun l -> diff --git a/test-suite/output/ltac.out b/test-suite/output/ltac.out index d003c70df9..266e4c7243 100644 --- a/test-suite/output/ltac.out +++ b/test-suite/output/ltac.out @@ -1,2 +1,3 @@ The command has indeed failed with message: Error: Ltac variable y depends on pattern variable name z which is not bound in current context. +Hx diff --git a/test-suite/output/ltac.v b/test-suite/output/ltac.v index 7e2610c7d7..e5bcff8ddb 100644 --- a/test-suite/output/ltac.v +++ b/test-suite/output/ltac.v @@ -15,3 +15,8 @@ lazymatch goal with | H1 : HT |- _ => idtac end. Abort. + +(* Check printing of the "var" argument "Hx" *) +Ltac m H := idtac H; exact H. +Goal True. +let a:=constr:(let Hx := 0 in ltac:(m Hx)) in idtac. |
