diff options
| author | Pierre-Marie Pédrot | 2019-10-10 16:50:16 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2019-10-18 10:29:09 +0200 |
| commit | 2dca6c1a3560522a11dd0afda8bd3c61d646ed2e (patch) | |
| tree | 9e0e729b46a86666eef26ee53a17735ecacf8fa6 /test-suite/ltac2 | |
| parent | cc9856e33fa1a15fe699e8d9cd7b76086563683d (diff) | |
Allow to pass Ltac1 values to Ltac2 quotations.
This is the dual of #10344.
Diffstat (limited to 'test-suite/ltac2')
| -rw-r--r-- | test-suite/ltac2/ltac2env.v | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test-suite/ltac2/ltac2env.v b/test-suite/ltac2/ltac2env.v new file mode 100644 index 0000000000..743e62932d --- /dev/null +++ b/test-suite/ltac2/ltac2env.v @@ -0,0 +1,15 @@ +Require Import Ltac2.Ltac2. + +Ltac2 get_opt o := match o with None => Control.throw Not_found | Some x => x end. + +Goal True. +Proof. +(* Fails at runtime because not fully applied *) +Fail ltac1:(ltac2:(x |- ())). +(* Type mismatch: Ltac1.t vs. constr *) +Fail ltac1:(ltac2:(x |- pose $x)). +(* Check that runtime cast is OK *) +ltac1:(let t := ltac2:(x |- let c := (get_opt (Ltac1.to_constr x)) in pose $c) in t nat). +(* Type mismatch *) +Fail ltac1:(let t := ltac2:(x |- let c := (get_opt (Ltac1.to_constr x)) in pose $c) in t ident:(foo)). +Abort. |
