refactor: restructure list/map compilation loops and extract syntax error tests
- Convert list() and map() compiler functions from if/do-while to do-while loops - Remove redundant empty literal handling by breaking on right bracket/brace - Add new test files for duplicate comma, duplicate trailing comma, and empty list/map with comma - Expand newlines test to cover trailing comma and empty list/map cases - Simplify trailing_comma tests by removing inline syntax error checks - Update Test.fail() to handle variable arguments without kwargs
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
// Allow after '{', ':', and ',', and before ']'.
|
||||
var map = {
|
||||
|
||||
"a":
|
||||
|
||||
"a value",
|
||||
|
||||
"b": "b value"
|
||||
|
||||
}
|
||||
|
||||
IO.print(map["a"]) // expect: a value
|
||||
IO.print(map["b"]) // expect: b value
|
||||
|
||||
// Newline after trailing comma.
|
||||
map = {"c": "c value",
|
||||
|
||||
}
|
||||
|
||||
IO.print(map["c"]) // expect: c value
|
||||
|
||||
// Newline in empty map.
|
||||
map = {
|
||||
|
||||
}
|
||||
|
||||
IO.print(map.count) // expect: 0
|
||||
Reference in New Issue
Block a user