allow enclosing type signatures in parenthesis
This commit is contained in:
parent
e48bda7e98
commit
bf29e6c3dd
1 changed files with 12 additions and 2 deletions
|
|
@ -960,7 +960,17 @@ func (p *Parser) parseParams() ([]FunctionParameter, error) {
|
||||||
func (p *Parser) parseSignature() (TypeSignature, error) {
|
func (p *Parser) parseSignature() (TypeSignature, error) {
|
||||||
var s TypeSignature
|
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 {
|
if err := p.expect(TokenOpenParenthesis, "func signature must have parentheses for parameters"); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -1017,7 +1027,7 @@ func (p *Parser) parseSignature() (TypeSignature, error) {
|
||||||
return nil, err
|
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
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue