Correctly handle trailing commas in function type literals in the generic parser (#1267)

This commit is contained in:
Jen Basch
2025-10-29 15:08:26 -07:00
committed by GitHub
parent 72874ec34a
commit 1d6261b263
3 changed files with 13 additions and 1 deletions

View File

@@ -14,3 +14,5 @@ trailingCommaInLambdas = (fooooooooooooooooooooooooooooooooo, baaaaaaaaaaaaaaaaa
trailingCommaInConstraints: String(isSomethingSomethingSomething, isSomethingElse, isSomethingSomethingSomethingElse) trailingCommaInConstraints: String(isSomethingSomethingSomething, isSomethingElse, isSomethingSomethingSomethingElse)
trailingCommaInTypeParameters: Mapping<SomethingSomethingSomethingSomething, SomethingSomething | SomethingElse> trailingCommaInTypeParameters: Mapping<SomethingSomethingSomethingSomething, SomethingSomething | SomethingElse>
functionType: (ReaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyLongType, ReaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyLongType2,) -> String

View File

@@ -33,3 +33,9 @@ trailingCommaInTypeParameters: Mapping<
SomethingSomethingSomethingSomething, SomethingSomethingSomethingSomething,
SomethingSomething | SomethingElse, SomethingSomething | SomethingElse,
> >
functionType: (
ReaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyLongType,
ReaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyLongType2,
) ->
String

View File

@@ -1169,7 +1169,11 @@ public class GenericParser {
elements.add(parseType(")")); elements.add(parseType(")"));
ff(elements); ff(elements);
while (lookahead == Token.COMMA) { while (lookahead == Token.COMMA) {
elements.add(makeTerminal(next())); var comma = next();
if (lookahead == Token.RPAREN) {
break;
}
elements.add(makeTerminal(comma));
ff(elements); ff(elements);
elements.add(parseType(")")); elements.add(parseType(")"));
totalTypes++; totalTypes++;