allow enclosing type signatures in parenthesis

This commit is contained in:
Neemek 2026-07-08 19:45:36 +02:00
parent e48bda7e98
commit bf29e6c3dd
Signed by: neemek
GPG key ID: 84FFE4D7D40AB25E

View file

@ -960,7 +960,17 @@ func (p *Parser) parseParams() ([]FunctionParameter, error) {
func (p *Parser) parseSignature() (TypeSignature, error) {
var s TypeSignature
if p.accept(TokenFunc) {
if p.accept(TokenOpenParenthesis) {
is, err := p.parseSignature()
if err != nil {
return nil, err
}
if err := p.expect(TokenCloseParenthesis, "expected closing parenthesis"); err != nil {
return nil, err
}
s = is
} else if p.accept(TokenFunc) {
if err := p.expect(TokenOpenParenthesis, "func signature must have parentheses for parameters"); err != nil {
return nil, err
}
@ -1017,7 +1027,7 @@ func (p *Parser) parseSignature() (TypeSignature, error) {
return nil, err
}
if err := p.expect(TokenCloseBracket, "list must close parameter list"); err != nil {
if err := p.expect(TokenCloseBracket, "square brackets enclose list content signature"); err != nil {
return nil, err
}