test: specialize attribute tests

This commit is contained in:
Leonardo de Moura 2022-09-07 16:32:25 -07:00
parent 19f5fe6f42
commit 5c00708b7f
2 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,23 @@
@[specialize f g h]
def f1 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))
@[specialize f 1 g]
def f2 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))
@[specialize 1 f g]
def f3 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))
@[specialize 0 g]
def f4 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))
@[specialize 10]
def f5 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))
@[specialize ff]
def f6 (f : Nat → Nat) (g : Nat → Nat) (x : Nat) :=
f (f (g x))

View file

@ -0,0 +1,6 @@
specializeAttr.lean:1:17-1:18: error: invalid specialization argument name `h`, `f1` does have an argument with this name
specializeAttr.lean:5:15-5:16: error: invalid specialization argument index, `f` has already been specified as a specialization candidate
specializeAttr.lean:9:15-9:16: error: invalid specialization argument name `f`, it has already been specified as a specialization candidate
specializeAttr.lean:13:13-13:14: error: invalid specialization argument index, index must be greater than 0
specializeAttr.lean:17:13-17:15: error: invalid argument index, `f5` has #3 arguments
specializeAttr.lean:21:13-21:15: error: invalid specialization argument name `ff`, `f6` does have an argument with this name