Move invalid syntax tests into appropriate places

This commit is contained in:
Laurenz 2021-06-09 10:51:19 +02:00
parent edff2ae680
commit c7416f18bd
12 changed files with 106 additions and 100 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 879 B

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -57,6 +57,8 @@
#test(type(for v in () []), "template")
---
// Ref: false
// Uniterable expression.
// Error: 11-15 cannot loop over boolean
#for v in true {}
@ -69,3 +71,36 @@
#test(error, for v in (1, 2, 3) {
if v < 2 [Ok] else {error}
})
---
// Error: 5 expected identifier
#for
// Error: 5 expected identifier
{for}
// Error: 7 expected keyword `in`
#for v
// Error: 10 expected expression
#for v in
// Error: 15 expected body
#for v in iter
// Should output `v in iter`.
// Error: 5 expected identifier
#for
v in iter {}
// Should output `A thing`.
// Error: 7-10 expected identifier, found string
A#for "v" thing
// Should output `in iter`.
// Error: 6-9 expected identifier, found string
#for "v" in iter {}
// Should output `+ b in iter`.
// Error: 7 expected keyword `in`
#for a + b in iter {}

View File

@ -61,6 +61,8 @@
}
---
// Ref: false
// Condition must be boolean.
// If it isn't, neither branch is evaluated.
// Error: 5-14 expected boolean, found string
@ -69,3 +71,29 @@
// Make sure that we don't complain twice.
// Error: 5-12 cannot add integer and string
#if 1 + "2" {}
---
// Error: 4 expected expression
#if
// Error: 4 expected expression
{if}
// Error: 6 expected body
#if x
// Error: 1-6 unexpected keyword `else`
#else {}
// Should output `x`.
// Error: 4 expected expression
#if
x {}
// Should output `something`.
// Error: 6 expected body
#if x something
// Should output `A thing.`
// Error: 20 expected body
A#if false {} #else thing

View File

@ -1,100 +0,0 @@
// Test invalid control syntax.
---
// Error: 5 expected identifier
#let
// Error: 5 expected identifier
{let}
// Error: 6-9 expected identifier, found string
#let "v"
// Should output `1`.
// Error: 7 expected semicolon or line break
#let v 1
// Error: 9 expected expression
#let v =
// Should output `= 1`.
// Error: 6-9 expected identifier, found string
#let "v" = 1
---
// Error: 4 expected expression
#if
// Error: 4 expected expression
{if}
// Error: 6 expected body
#if x
// Error: 1-6 unexpected keyword `else`
#else {}
// Should output `x`.
// Error: 4 expected expression
#if
x {}
// Should output `something`.
// Error: 6 expected body
#if x something
// Should output `A thing.`
// Error: 20 expected body
A#if false {} #else thing
---
// Error: 7 expected expression
#while
// Error: 7 expected expression
{while}
// Error: 9 expected body
#while x
// Should output `x`.
// Error: 7 expected expression
#while
x {}
// Should output `something`.
// Error: 9 expected body
#while x something
---
// Error: 5 expected identifier
#for
// Error: 5 expected identifier
{for}
// Error: 7 expected keyword `in`
#for v
// Error: 10 expected expression
#for v in
// Error: 15 expected body
#for v in iter
// Should output `v in iter`.
// Error: 5 expected identifier
#for
v in iter {}
// Should output `A thing`.
// Error: 7-10 expected identifier, found string
A#for "v" thing
// Should output `in iter`.
// Error: 6-9 expected identifier, found string
#for "v" in iter {}
// Should output `+ b in iter`.
// Error: 7 expected keyword `in`
#for a + b in iter {}

View File

@ -61,3 +61,24 @@ Three
#test(v3, 3)
#test(v4, 4)
#test(v5, (1, 2))
---
// Error: 5 expected identifier
#let
// Error: 5 expected identifier
{let}
// Error: 6-9 expected identifier, found string
#let "v"
// Should output `1`.
// Error: 7 expected semicolon or line break
#let v 1
// Error: 9 expected expression
#let v =
// Should output `= 1`.
// Error: 6-9 expected identifier, found string
#let "v" = 1

View File

@ -22,10 +22,13 @@
---
// Value of while loops.
// Ref: false
#test(type(while false {}), "template")
#test(type(while false []), "template")
---
// Ref: false
// Condition must be boolean.
// Error: 8-14 expected boolean, found template
#while [nope] [nope]
@ -41,3 +44,22 @@
if i < 5 [nope] else { error }
})
#test(i, 5)
---
// Error: 7 expected expression
#while
// Error: 7 expected expression
{while}
// Error: 9 expected body
#while x
// Should output `x`.
// Error: 7 expected expression
#while
x {}
// Should output `something`.
// Error: 9 expected body
#while x something