all: fix some comments

Change-Id: Id334943c9be6e035d52a8d8a4bd26e0e31ae9791
Reviewed-on: https://go-review.googlesource.com/c/tools/+/492578
Reviewed-by: Robert Findley <rfindley@google.com>
Reviewed-by: Tim King <taking@google.com>
Run-TryBot: shuang cui <imcusg@gmail.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
diff --git a/cmd/guru/guru.go b/cmd/guru/guru.go
index 7a42aaa..f8e6cfa 100644
--- a/cmd/guru/guru.go
+++ b/cmd/guru/guru.go
@@ -337,7 +337,7 @@
 //   - a QueryPos, denoting the extent of the user's query.
 //   - nil, meaning no position at all.
 //
-// The output format is is compatible with the 'gnu'
+// The output format is compatible with the 'gnu'
 // compilation-error-regexp in Emacs' compilation mode.
 func fprintf(w io.Writer, fset *token.FileSet, pos interface{}, format string, args ...interface{}) {
 	var start, end token.Pos
diff --git a/cmd/present/static/notes.js b/cmd/present/static/notes.js
index a6d327f..ea4911e 100644
--- a/cmd/present/static/notes.js
+++ b/cmd/present/static/notes.js
@@ -26,7 +26,7 @@
   initNotes();
 }
 
-// Create an unique key for the local storage so we don't mix the
+// Create a unique key for the local storage so we don't mix the
 // destSlide of different presentations. For golang.org/issue/24688.
 function destSlideKey() {
   var key = '';
diff --git a/go/analysis/passes/ifaceassert/parameterized.go b/go/analysis/passes/ifaceassert/parameterized.go
index b35f62d..b84577f 100644
--- a/go/analysis/passes/ifaceassert/parameterized.go
+++ b/go/analysis/passes/ifaceassert/parameterized.go
@@ -67,7 +67,7 @@
 		// of a generic function type (or an interface method) that is
 		// part of the type we're testing. We don't care about these type
 		// parameters.
-		// Similarly, the receiver of a method may declare (rather then
+		// Similarly, the receiver of a method may declare (rather than
 		// use) type parameters, we don't care about those either.
 		// Thus, we only need to look at the input and result parameters.
 		return w.isParameterized(t.Params()) || w.isParameterized(t.Results())
diff --git a/go/analysis/passes/printf/printf.go b/go/analysis/passes/printf/printf.go
index 314b152..9c6908e 100644
--- a/go/analysis/passes/printf/printf.go
+++ b/go/analysis/passes/printf/printf.go
@@ -278,7 +278,7 @@
 			// print/printf function can take, adding an ellipsis
 			// would break the program. For example:
 			//
-			//   func foo(arg1 string, arg2 ...interface{} {
+			//   func foo(arg1 string, arg2 ...interface{}) {
 			//       fmt.Printf("%s %v", arg1, arg2)
 			//   }
 			return
diff --git a/go/ssa/parameterized.go b/go/ssa/parameterized.go
index 3fc4348..b90ee0e 100644
--- a/go/ssa/parameterized.go
+++ b/go/ssa/parameterized.go
@@ -63,7 +63,7 @@
 		// of a generic function type (or an interface method) that is
 		// part of the type we're testing. We don't care about these type
 		// parameters.
-		// Similarly, the receiver of a method may declare (rather then
+		// Similarly, the receiver of a method may declare (rather than
 		// use) type parameters, we don't care about those either.
 		// Thus, we only need to look at the input and result parameters.
 		return w.isParameterized(t.Params()) || w.isParameterized(t.Results())
diff --git a/godoc/dirtrees.go b/godoc/dirtrees.go
index f6a5ba0..51aa1f3 100644
--- a/godoc/dirtrees.go
+++ b/godoc/dirtrees.go
@@ -220,7 +220,7 @@
 	// The root could be a symbolic link so use Stat not Lstat.
 	d, err := c.fs.Stat(root)
 	// If we fail here, report detailed error messages; otherwise
-	// is is hard to see why a directory tree was not built.
+	// is hard to see why a directory tree was not built.
 	switch {
 	case err != nil:
 		log.Printf("newDirectory(%s): %s", root, err)
diff --git a/gopls/internal/lsp/cache/check.go b/gopls/internal/lsp/cache/check.go
index 29f6751..ce84487 100644
--- a/gopls/internal/lsp/cache/check.go
+++ b/gopls/internal/lsp/cache/check.go
@@ -322,7 +322,7 @@
 // forEachPackage does a pre- and post- order traversal of the packages
 // specified by ids using the provided pre and post functions.
 //
-// The pre func is is optional. If set, pre is evaluated after the package
+// The pre func is optional. If set, pre is evaluated after the package
 // handle has been constructed, but before type-checking. If pre returns false,
 // type-checking is skipped for this package handle.
 //