Allow trailing commas in comma-separated syntax elements (#1137)

This commit is contained in:
Jen Basch
2025-08-21 06:43:38 -07:00
committed by GitHub
parent 3f2f0c3a2b
commit ae5f02b285
10 changed files with 370 additions and 13 deletions
@@ -0,0 +1,9 @@
res1: Int(isEven, isNonZero, isBetween(-10, 10), ) = 6
res2: Int(
isEven, isNonZero, isBetween(-10, 10),
) = 6
res3: Int(
isEven,
isNonZero,
isBetween(-10, 10),
) = 6
@@ -0,0 +1,43 @@
local lA1 = (a, b, c,) -> true
local lA2 = (
a, b, c,
) -> true
local lA3 = (
a,
b,
c,
) -> true
local lB1 = (a: Int, b: Int, c: Int,) -> true
local lB2 = (
a: Int, b: Int, c: Int,
) -> true
local lB3 = (
a: Int,
b: Int,
c: Int,
) -> true
local lC1: (Dynamic,) -> Dynamic = new Mixin { a, -> x = true }
local lC2: (Dynamic,) -> Dynamic = new Mixin { a, ->
x = true
}
local lC3: (Dynamic,) -> Dynamic = new Mixin {
a, -> x = true
}
local lC4: (Dynamic,) -> Dynamic = new Mixin {
a, ->
x = true
}
local lD1: (Dynamic,) -> Dynamic = new Mixin { a: Dynamic, -> x = true }
local lD2: (Dynamic,) -> Dynamic = new Mixin { a: Dynamic, ->
x = true
}
local lD3: (Dynamic,) -> Dynamic = new Mixin {
a: Dynamic, -> x = true
}
local lD4: (Dynamic,) -> Dynamic = new Mixin {
a: Dynamic, ->
x = true
}
@@ -0,0 +1,157 @@
function moduleMethodA1(a, b, c, ) = true
function moduleMethodA2(
a, b, c,
) = true
function moduleMethodA3(
a,
b,
c,
) = true
function moduleMethodB1(a: Int, b: Int, c: Int, ) = true
function moduleMethodB2(
a: Int, b: Int, c: Int,
) = true
function moduleMethodB3(
a: Int,
b: Int,
c: Int,
) = true
class A {
function classMethodA1(a, b, c, ) = true
function classMethodA2(
a, b, c,
) = true
function classMethodA3(
a,
b,
c,
) = true
function classMethodB1(a: Int, b: Int, c: Int, ) = true
function classMethodB2(
a: Int, b: Int, c: Int,
) = true
function classMethodB3(
a: Int,
b: Int,
c: Int,
) = true
}
moduleMethodA1Call1 = moduleMethodA1(1, 2, 3, )
moduleMethodA1Call2 = moduleMethodA1(
1, 2, 3,
)
moduleMethodA1Call3 = moduleMethodA1(
1,
2,
3,
)
moduleMethodA2Call1 = moduleMethodA2(1, 2, 3, )
moduleMethodA2Call2 = moduleMethodA2(
1, 2, 3,
)
moduleMethodA2Call3 = moduleMethodA2(
1,
2,
3,
)
moduleMethodA3Call1 = moduleMethodA3(1, 2, 3, )
moduleMethodA3Call2 = moduleMethodA3(
1, 2, 3,
)
moduleMethodA3Call3 = moduleMethodA3(
1,
2,
3,
)
moduleMethodB1Call1 = moduleMethodB1(1, 2, 3, )
moduleMethodB1Call2 = moduleMethodB1(
1, 2, 3,
)
moduleMethodB1Call3 = moduleMethodB1(
1,
2,
3,
)
moduleMethodB2Call1 = moduleMethodB2(1, 2, 3, )
moduleMethodB2Call2 = moduleMethodB2(
1, 2, 3,
)
moduleMethodB2Call3 = moduleMethodB2(
1,
2,
3,
)
moduleMethodB3Call1 = moduleMethodB3(1, 2, 3, )
moduleMethodB3Call2 = moduleMethodB3(
1, 2, 3,
)
moduleMethodB3Call3 = moduleMethodB3(
1,
2,
3,
)
local a: A = new {}
classMethodA1Call1 = a.classMethodA1(1, 2, 3, )
classMethodA1Call2 = a.classMethodA1(
1, 2, 3,
)
classMethodA1Call3 = a.classMethodA1(
1,
2,
3,
)
classMethodA2Call1 = a.classMethodA2(1, 2, 3, )
classMethodA2Call2 = a.classMethodA2(
1, 2, 3,
)
classMethodA2Call3 = a.classMethodA2(
1,
2,
3,
)
classMethodA3Call1 = a.classMethodA3(1, 2, 3, )
classMethodA3Call2 = a.classMethodA3(
1, 2, 3,
)
classMethodA3Call3 = a.classMethodA3(
1,
2,
3,
)
classMethodB1Call1 = a.classMethodB1(1, 2, 3, )
classMethodB1Call2 = a.classMethodB1(
1, 2, 3,
)
classMethodB1Call3 = a.classMethodB1(
1,
2,
3,
)
classMethodB2Call1 = a.classMethodB2(1, 2, 3, )
classMethodB2Call2 = a.classMethodB2(
1, 2, 3,
)
classMethodB2Call3 = a.classMethodB2(
1,
2,
3,
)
classMethodB3Call1 = a.classMethodB3(1, 2, 3, )
classMethodB3Call2 = a.classMethodB3(
1, 2, 3,
)
classMethodB3Call3 = a.classMethodB3(
1,
2,
3,
)
@@ -0,0 +1,3 @@
res1: Mapping<String, String,>(!isEmpty) = new Mapping<String, String,> {
["hello"] = "world"
}
@@ -0,0 +1,3 @@
res1 = 6
res2 = 6
res3 = 6
@@ -0,0 +1,36 @@
moduleMethodA1Call1 = true
moduleMethodA1Call2 = true
moduleMethodA1Call3 = true
moduleMethodA2Call1 = true
moduleMethodA2Call2 = true
moduleMethodA2Call3 = true
moduleMethodA3Call1 = true
moduleMethodA3Call2 = true
moduleMethodA3Call3 = true
moduleMethodB1Call1 = true
moduleMethodB1Call2 = true
moduleMethodB1Call3 = true
moduleMethodB2Call1 = true
moduleMethodB2Call2 = true
moduleMethodB2Call3 = true
moduleMethodB3Call1 = true
moduleMethodB3Call2 = true
moduleMethodB3Call3 = true
classMethodA1Call1 = true
classMethodA1Call2 = true
classMethodA1Call3 = true
classMethodA2Call1 = true
classMethodA2Call2 = true
classMethodA2Call3 = true
classMethodA3Call1 = true
classMethodA3Call2 = true
classMethodA3Call3 = true
classMethodB1Call1 = true
classMethodB1Call2 = true
classMethodB1Call3 = true
classMethodB2Call1 = true
classMethodB2Call2 = true
classMethodB2Call3 = true
classMethodB3Call1 = true
classMethodB3Call2 = true
classMethodB3Call3 = true
@@ -0,0 +1,3 @@
res1 {
["hello"] = "world"
}