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")
|
#test(type(for v in () []), "template")
|
||||||
|
|
||||||
---
|
---
|
||||||
|
// Ref: false
|
||||||
|
|
||||||
// Uniterable expression.
|
// Uniterable expression.
|
||||||
// Error: 11-15 cannot loop over boolean
|
// Error: 11-15 cannot loop over boolean
|
||||||
#for v in true {}
|
#for v in true {}
|
||||||
@ -69,3 +71,36 @@
|
|||||||
#test(error, for v in (1, 2, 3) {
|
#test(error, for v in (1, 2, 3) {
|
||||||
if v < 2 [Ok] else {error}
|
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.
|
// Condition must be boolean.
|
||||||
// If it isn't, neither branch is evaluated.
|
// If it isn't, neither branch is evaluated.
|
||||||
// Error: 5-14 expected boolean, found string
|
// Error: 5-14 expected boolean, found string
|
||||||
@ -69,3 +71,29 @@
|
|||||||
// Make sure that we don't complain twice.
|
// Make sure that we don't complain twice.
|
||||||
// Error: 5-12 cannot add integer and string
|
// Error: 5-12 cannot add integer and string
|
||||||
#if 1 + "2" {}
|
#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(v3, 3)
|
||||||
#test(v4, 4)
|
#test(v4, 4)
|
||||||
#test(v5, (1, 2))
|
#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.
|
// Value of while loops.
|
||||||
// Ref: false
|
// Ref: false
|
||||||
|
|
||||||
#test(type(while false {}), "template")
|
#test(type(while false {}), "template")
|
||||||
#test(type(while false []), "template")
|
#test(type(while false []), "template")
|
||||||
|
|
||||||
---
|
---
|
||||||
|
// Ref: false
|
||||||
|
|
||||||
// Condition must be boolean.
|
// Condition must be boolean.
|
||||||
// Error: 8-14 expected boolean, found template
|
// Error: 8-14 expected boolean, found template
|
||||||
#while [nope] [nope]
|
#while [nope] [nope]
|
||||||
@ -41,3 +44,22 @@
|
|||||||
if i < 5 [nope] else { error }
|
if i < 5 [nope] else { error }
|
||||||
})
|
})
|
||||||
#test(i, 5)
|
#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
|
||||||
|