Fix empty parenthesized type unexpected error (#1323)

This commit is contained in:
Spencer Phillip Young
2025-11-18 06:35:44 -08:00
committed by GitHub
parent bc5d675b6e
commit ba281e8475
4 changed files with 11 additions and 0 deletions

View File

@@ -0,0 +1 @@
foo: Int|()|String = "foo"

View File

@@ -0,0 +1,6 @@
Pkl Error
Unexpected token `)`. Expected a type.
x | foo: Int|()|String = "foo"
^
at emptyParenthesizedTypeAnnotation (file:///$snippetsDir/input/errors/emptyParenthesizedTypeAnnotation.pkl)

View File

@@ -1393,6 +1393,9 @@ public class Parser {
children.add(ret);
typ = new Type.FunctionType(children, tk.span.endWith(ret.span()));
} else {
if (children.isEmpty()) {
throw new ParserError(ErrorMessages.create("unexpectedTokenForType", ")"), end);
}
typ = new ParenthesizedType((Type) children.get(0), tk.span.endWith(end));
}
}

View File

@@ -105,6 +105,7 @@ class ParserComparisonTest {
"errors/moduleWithHighMinPklVersionAndParseErrors.pkl",
"errors/underscore.pkl",
"errors/shebang.pkl",
"errors/emptyParenthesizedTypeAnnotation.pkl",
"notAUnionDefault.pkl",
"multipleDefaults.pkl",
"modules/invalidModule1.pkl",