From: Robert Findley Date: Fri, 8 Oct 2021 15:14:35 +0000 (-0400) Subject: go/parser: clean up unnecessary arguments and replace an if statement X-Git-Tag: go1.18beta1~957 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=34f7b1f841cc450cc3aba42019e613fd03a84fce;p=gostls13.git go/parser: clean up unnecessary arguments and replace an if statement Eliminate an unnecessary argument from parseGenericType, and replace an if statement with a switch. Change-Id: Iaa8afeface929332579f183c8e523961cca9aca4 Reviewed-on: https://go-review.googlesource.com/c/go/+/354869 Trust: Robert Findley Run-TryBot: Robert Findley TryBot-Result: Go Bot Reviewed-by: Robert Griesemer --- diff --git a/src/go/parser/parser.go b/src/go/parser/parser.go index 049515656c..dd6b93d20f 100644 --- a/src/go/parser/parser.go +++ b/src/go/parser/parser.go @@ -2506,9 +2506,9 @@ func (p *parser) parseValueSpec(doc *ast.CommentGroup, _ token.Pos, keyword toke return spec } -func (p *parser) parseGenericType(spec *ast.TypeSpec, openPos token.Pos, name0 *ast.Ident, closeTok token.Token) { - list := p.parseParameterList(name0, closeTok, p.parseParamDecl, true) - closePos := p.expect(closeTok) +func (p *parser) parseGenericType(spec *ast.TypeSpec, openPos token.Pos, name0 *ast.Ident) { + list := p.parseParameterList(name0, token.RBRACK, p.parseParamDecl, true) + closePos := p.expect(token.RBRACK) spec.TypeParams = &ast.FieldList{Opening: openPos, List: list, Closing: closePos} // Type alias cannot have type parameters. Accept them for robustness but complain. if p.tok == token.ASSIGN { @@ -2537,7 +2537,7 @@ func (p *parser) parseTypeSpec(doc *ast.CommentGroup, _ token.Pos, _ token.Token p.exprLev-- if name0, _ := x.(*ast.Ident); p.parseTypeParams() && name0 != nil && p.tok != token.RBRACK { // generic type [T any]; - p.parseGenericType(spec, lbrack, name0, token.RBRACK) + p.parseGenericType(spec, lbrack, name0) } else { // array type // TODO(rfindley) should resolve all identifiers in x. @@ -2619,10 +2619,11 @@ func (p *parser) parseFuncDecl() *ast.FuncDecl { results := p.parseResult() var body *ast.BlockStmt - if p.tok == token.LBRACE { + switch p.tok { + case token.LBRACE: body = p.parseBody() p.expectSemi() - } else if p.tok == token.SEMICOLON { + case token.SEMICOLON: p.next() if p.tok == token.LBRACE { // opening { of function declaration on next line @@ -2630,7 +2631,7 @@ func (p *parser) parseFuncDecl() *ast.FuncDecl { body = p.parseBody() p.expectSemi() } - } else { + default: p.expectSemi() }