diff options
| author | Hugo Herbelin | 2017-05-20 20:38:02 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2017-05-31 00:39:35 +0200 |
| commit | dfdaf4de7870cc828b9887b8619b38f01d7e5493 (patch) | |
| tree | f0979a6d5c7c7ef7138b31cf6b25334738e29de6 /test-suite/bugs/closed | |
| parent | 9ee5808746cbcf6e04c08e6a2e798b6cbb34bb06 (diff) | |
Fixing #5523 (missing support for complex constructions in recursive notations).
We get rid of a complex function doing both an incremental comparison
and an effect on names (Notation_ops.compare_glob_constr).
For the effect on names, it was actually already done at the time of
turning glob_constr to notation_constr, so it could be skipped here.
For the comparison, we rely on a new incremental variant of
Glob_ops.glob_eq_constr (thanks to Gaƫtan for getting rid of the
artificial recursivity in mk_glob_constr_eq).
Seizing the opportunity to get rid of catch-all clauses in
pattern-matching (as advocated by Maxime). Also make indentation
closer to the one of other functions.
Diffstat (limited to 'test-suite/bugs/closed')
| -rw-r--r-- | test-suite/bugs/closed/5523.v | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/5523.v b/test-suite/bugs/closed/5523.v new file mode 100644 index 0000000000..d7582a3797 --- /dev/null +++ b/test-suite/bugs/closed/5523.v @@ -0,0 +1,6 @@ +(* Support for complex constructions in recursive notations, especially "match". *) + +Definition Let_In {A P} (x : A) (f : forall a : A, P a) : P x := let y := x in f y. +Notation "'dlet' x , y := v 'in' ( a , b , .. , c )" + := (Let_In v (fun '(x, y) => pair .. (pair a b) .. c)) + (at level 0). |
