Move invalid syntax tests into appropriate places
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 879 B After Width: | Height: | Size: 1.5 KiB |
@ -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 {}
|
||||
|
@ -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
|
||||
|
@ -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 {}
|
@ -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
|
||||
|
@ -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
|
||||
|