From 7deaedd405c46b3ae866eb17b9a5df1ced9a0688 Mon Sep 17 00:00:00 2001 From: Edward Muller Date: Sun, 28 Jul 2019 00:52:02 +0000 Subject: [PATCH] internal/lsp/cache: clean up parse.go switch the ioLimit channel from a bool to a struct{} as the values stuffed into the channel have no meaning. A mix of consistency and comment cleanups in *importer.parseFiles. sameFile is reported as unused, so removed, removing some now unused imports. The assignment to lit in *view.parseDeferOrGoStmt's for{} loop was reported as ineffective. Update the comment of fix a little for clarity. Change-Id: I50f0442bfd7e4d0cc0e6fdadbf1f6272366a716c Change-Id: I50f0442bfd7e4d0cc0e6fdadbf1f6272366a716c GitHub-Last-Rev: 74d8a8bdb768a827db3c1fd1723a528818e222ee GitHub-Pull-Request: golang/tools#109 Reviewed-on: https://go-review.googlesource.com/c/tools/+/179957 Reviewed-by: Rebecca Stambler Run-TryBot: Rebecca Stambler TryBot-Result: Gobot Gobot --- internal/lsp/cache/parse.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/lsp/cache/parse.go b/internal/lsp/cache/parse.go index 7b547f84..6895ab61 100644 --- a/internal/lsp/cache/parse.go +++ b/internal/lsp/cache/parse.go @@ -18,7 +18,7 @@ import ( ) // Limits the number of parallel parser calls per process. -var parseLimit = make(chan bool, 20) +var parseLimit = make(chan struct{}, 20) // parseKey uniquely identifies a parsed Go file. type parseKey struct { @@ -80,7 +80,7 @@ func parseGo(ctx context.Context, c *cache, fh source.FileHandle, mode source.Pa if err != nil { return nil, err } - parseLimit <- true + parseLimit <- struct{}{} defer func() { <-parseLimit }() parserMode := parser.AllErrors | parser.ParseComments if mode == source.ParseHeader { @@ -140,8 +140,8 @@ func isEllipsisArray(n ast.Expr) bool { return ok } -// fix inspects and potentially modifies any *ast.BadStmts or *ast.BadExprs in the AST. -// We attempt to modify the AST such that we can type-check it more effectively. +// fix inspects the AST and potentially modifies any *ast.BadStmts so that it can be +// type-checked more effectively. func fix(ctx context.Context, file *ast.File, tok *token.File, src []byte) error { var parent ast.Node var err error @@ -207,7 +207,7 @@ func parseDeferOrGoStmt(bad *ast.BadStmt, parent ast.Node, tok *token.File, src var to, curr token.Pos FindTo: for { - curr, tkn, lit = s.Scan() + curr, tkn, _ = s.Scan() // TODO(rstambler): This still needs more handling to work correctly. // We encounter a specific issue with code that looks like this: //