143 lines
1.5 KiB
Markdown
143 lines
1.5 KiB
Markdown
# Invalid Declarations
|
|
|
|
All errors should be collected, printed and exit with 1.
|
|
|
|
Malformed YAML:
|
|
|
|
---
|
|
id: fn1
|
|
fail
|
|
...
|
|
1 + 1
|
|
|
|
Empty YAML:
|
|
|
|
---
|
|
...
|
|
1 + 1
|
|
|
|
Empty YAML and code:
|
|
|
|
---
|
|
...
|
|
|
|
Misses id:
|
|
|
|
---
|
|
identifier: fn1
|
|
...
|
|
1 + 1
|
|
|
|
Wrong id (doesn't starts with `%a`):
|
|
|
|
---
|
|
id: 1
|
|
...
|
|
1 + 1
|
|
|
|
Wrong id (doesn't follows with `[_%w]`):
|
|
|
|
---
|
|
id: f-1
|
|
...
|
|
1 + 1
|
|
|
|
Wrong id (more than 1 word):
|
|
|
|
---
|
|
id: f n1
|
|
...
|
|
1 + 1
|
|
|
|
Invalid value:
|
|
|
|
---
|
|
id: fn1
|
|
shift: "true"
|
|
...
|
|
1 + 1
|
|
|
|
Invalid path:
|
|
|
|
---
|
|
id: fn1
|
|
dump: invalid/path.txt
|
|
...
|
|
1 + 1
|
|
|
|
Extra key:
|
|
|
|
---
|
|
id: fn1
|
|
language: fennel
|
|
...
|
|
1 + 1
|
|
|
|
Uknown lang:
|
|
|
|
---
|
|
id: fn1
|
|
lang: fail
|
|
...
|
|
1 + 1
|
|
|
|
Uknown cmd:
|
|
|
|
---
|
|
id: fn1
|
|
cmd: piton -E -X utf8
|
|
...
|
|
1 + 1
|
|
|
|
Empty code:
|
|
|
|
---
|
|
id: fn1
|
|
...
|
|
|
|
Misses arg:
|
|
|
|
---
|
|
id: fn1
|
|
...
|
|
#a + #b
|
|
|
|
Infinite loop:
|
|
|
|
---
|
|
id: fn1
|
|
args:
|
|
x: 1
|
|
...
|
|
`fn1(2)` * #x
|
|
|
|
Invalid code:
|
|
|
|
---
|
|
id: fn1
|
|
...
|
|
false + false
|
|
|
|
# Declarations With Invalid Calls:
|
|
|
|
---
|
|
id: fn1
|
|
typed: true
|
|
args:
|
|
a: 1
|
|
b: 2
|
|
...
|
|
#a * #b
|
|
|
|
# Invalid Calls
|
|
|
|
- `fn1(` never end
|
|
- `fn1(invalid arg)`
|
|
- `fn1()` misses args
|
|
- `fn1(1)` less args
|
|
- `fn1(1, 2, 3)` extra args
|
|
- `fn1(x: 3, y: 4)` wrong kwargs
|
|
- `fn1(1, a: 2)` mixed arg and kwarg
|
|
- `fn1(a: 1.0, b: 2.0)` misses type
|
|
- `fn2()` not declared
|