0 | pass | Open proc (any number of args) |
1 | pass | Closed proc with no args, passed too many |
2 | pass | Open proc has ARGV |
3 | pass | Closed proc has empty "$@" or ARGV |
4 | pass | Proc with default args |
5 | pass | Proc with word params |
6 | pass | Proc with ... "rest" word params |
7 | pass | word rest params 2 |
8 | pass | proc with typed args |
9 | pass | Proc name-with-hyphen |
10 | pass | Proc with block arg |
11 | pass | proc returning wrong type |
12 | pass | proc returning invalid string |
13 | pass | 'return' doesn't accept expressions |
14 | pass | procs are in same namespace as variables |
15 | pass | Nested proc is allowed |
16 | pass | Procs defined inside compound statements |
17 | pass | Block can be passed literally, or as expression in third arg group |
18 | pass | Pass through all 4 kinds of args |
19 | pass | Global and local ARGV, like "$@" |
20 | pass | Mutating global ARGV |
21 | pass | Mutating local ARGV |
22 | pass | typed proc allows all kinds of args |
23 | pass | can unset procs without -f |
24 | pass | procs shadow sh-funcs |
25 | pass | first word skips non-proc variables |
26 | pass | proc resolution changes with the local scope |
27 | pass | procs are defined in local scope |
28 | pass | declare -f -F only prints shell functions |
29 | pass | compgen -A function shows user-defined invokables - shell funcs, Proc, Obj |
30 | pass | type / type -a builtin on invokables - shell func, proc, invokable |
31 | pass | invokable Obj that doesn't declare self |
32 | pass | invokable Obj is called with self |
33 | pass | invokable Obj with more typed args |
34 | pass | two different objects can share the same __invoke__ |
35 | pass | Stateful proc with counter |