aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/output
diff options
context:
space:
mode:
authorGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-04-09 16:08:48 +0200
committerGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-04-09 16:08:48 +0200
commit834530272b9006e28a4b7ba35b1f8f861f51e7ce (patch)
treee485fd87323492daf135d7eecbb330a9e03fc0bb /test-suite/output
parentf9ef634e94c667641a9da12fa2b9f8e585d6d5c6 (diff)
parent8ad6bf357284f3fcfd94f08561450bb5bf38ad36 (diff)
Merge PR #7116: Fixes #7110: missing test on the absence of a "as" while looking for a notation for a nested pattern
Diffstat (limited to 'test-suite/output')
-rw-r--r--test-suite/output/Notations3.out8
-rw-r--r--test-suite/output/Notations3.v16
2 files changed, 24 insertions, 0 deletions
diff --git a/test-suite/output/Notations3.out b/test-suite/output/Notations3.out
index 1987b6a6e..304353f55 100644
--- a/test-suite/output/Notations3.out
+++ b/test-suite/output/Notations3.out
@@ -223,3 +223,11 @@ fun S : nat => [[S | S.S]]
: Set
exists2 '{{y, z}} : nat * nat, y > z & z > y
: Prop
+foo =
+fun l : list nat => match l with
+ | _ :: (_ :: _) as l1 => l1
+ | _ => l
+ end
+ : list nat -> list nat
+
+Argument scope is [list_scope]
diff --git a/test-suite/output/Notations3.v b/test-suite/output/Notations3.v
index c165f9553..d2d136946 100644
--- a/test-suite/output/Notations3.v
+++ b/test-suite/output/Notations3.v
@@ -278,10 +278,12 @@ Set Printing Notations.
(* Check insensitivity of "match" clauses to order *)
+Module IfPat.
Notation "'if' t 'is' n .+ 1 'then' p 'else' q" :=
(match t with S n => p | 0 => q end)
(at level 200).
Check fun x => if x is n.+1 then n else 1.
+End IfPat.
(* Examples with binding patterns *)
@@ -338,11 +340,13 @@ Check ∀ '(((x,y),true)|((x,y),false)), x>y.
(* Check Georges' printability of a "if is then else" notation *)
+Module IfPat2.
Notation "'if' c 'is' p 'then' u 'else' v" :=
(match c with p => u | _ => v end)
(at level 200, p pattern at level 100).
Check fun p => if p is S n then n else 0.
Check fun p => if p is Lt then 1 else 0.
+End IfPat2.
(* Check that mixed binders and terms defaults to ident and not pattern *)
Module F.
@@ -364,3 +368,15 @@ Check {'(x,y)|x+y=0}.
(* Check exists2 with a pattern *)
Check ex2 (fun x => let '(y,z) := x in y>z) (fun x => let '(y,z) := x in z>y).
+
+Module Issue7110.
+Open Scope list_scope.
+Notation "[ :: x1 , x2 , .. , xn & s ]" := (x1 :: x2 :: .. (xn :: s) ..)
+ (at level 0).
+Definition foo (l : list nat) :=
+ match l with
+ | a :: (b :: l) as l1 => l1
+ | _ => l
+end.
+Print foo.
+End Issue7110.