nogo: instantiate type info for generic types when running under Go >=1.18 (#3212)
This mirrors what golang.org/x/tools/go/packages does when loading packages.
Should fix #3211 (and probably #3164 as well).
diff --git a/WORKSPACE b/WORKSPACE
index 57237d7..4240a88 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -104,8 +104,8 @@
go_repository(
name = "org_golang_x_mod",
importpath = "golang.org/x/mod",
- sum = "h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=",
- version = "v0.4.2",
+ sum = "h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=",
+ version = "v0.6.0-dev.0.20220419223038-86c51ed26bb4",
)
go_repository(
diff --git a/go/private/repositories.bzl b/go/private/repositories.bzl
index 425baad..4c35318 100644
--- a/go/private/repositories.bzl
+++ b/go/private/repositories.bzl
@@ -64,13 +64,13 @@
wrapper(
http_archive,
name = "org_golang_x_tools",
- # v0.1.9, latest as of 2022-03-14
+ # v0.1.11, latest as of 2022-07-14
urls = [
- "https://mirror.bazel.build/github.com/golang/tools/archive/v0.1.9.zip",
- "https://github.com/golang/tools/archive/v0.1.9.zip",
+ "https://mirror.bazel.build/github.com/golang/tools/archive/refs/tags/v0.1.11.zip",
+ "https://github.com/golang/tools/archive/refs/tags/v0.1.11.zip",
],
- sha256 = "1d338afb3cd8013cfb035da6831dea2210efb0386c17b9c99b5e84724e3d733a",
- strip_prefix = "tools-0.1.9",
+ sha256 = "d31521bddf3380e4ae2ae1ce6dcfca301bce6072527a07d612e13902c93916ef",
+ strip_prefix = "tools-0.1.11",
patches = [
# deletegopls removes the gopls subdirectory. It contains a nested
# module with additional dependencies. It's not needed by rules_go.
diff --git a/go/tools/builders/BUILD.bazel b/go/tools/builders/BUILD.bazel
index ec45446..bb79688 100644
--- a/go/tools/builders/BUILD.bazel
+++ b/go/tools/builders/BUILD.bazel
@@ -81,6 +81,8 @@
"env.go",
"flags.go",
"nogo_main.go",
+ "nogo_typeparams_go117.go",
+ "nogo_typeparams_go118.go",
"pack.go",
],
# //go/tools/builders:nogo_srcs is considered a different target by
diff --git a/go/tools/builders/nogo_main.go b/go/tools/builders/nogo_main.go
index 97c683e..e33b490 100644
--- a/go/tools/builders/nogo_main.go
+++ b/go/tools/builders/nogo_main.go
@@ -335,6 +335,9 @@
Scopes: make(map[ast.Node]*types.Scope),
Selections: make(map[*ast.SelectorExpr]*types.Selection),
}
+
+ initInstanceInfo(info)
+
types, err := config.Check(packagePath, pkg.fset, syntax, info)
if err != nil {
pkg.illTyped, pkg.typeCheckError = true, err
diff --git a/go/tools/builders/nogo_typeparams_go117.go b/go/tools/builders/nogo_typeparams_go117.go
new file mode 100644
index 0000000..9b6fe9a
--- /dev/null
+++ b/go/tools/builders/nogo_typeparams_go117.go
@@ -0,0 +1,23 @@
+/* Copyright 2022 The Bazel Authors. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+//go:build !go1.18
+// +build !go1.18
+
+package main
+
+import "go/types"
+
+func initInstanceInfo(*types.Info) {}
diff --git a/go/tools/builders/nogo_typeparams_go118.go b/go/tools/builders/nogo_typeparams_go118.go
new file mode 100644
index 0000000..787b492
--- /dev/null
+++ b/go/tools/builders/nogo_typeparams_go118.go
@@ -0,0 +1,28 @@
+/* Copyright 2022 The Bazel Authors. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+//go:build go1.18
+// +build go1.18
+
+package main
+
+import (
+ "go/ast"
+ "go/types"
+)
+
+func initInstanceInfo(info *types.Info) {
+ info.Instances = make(map[*ast.Ident]types.Instance)
+}
diff --git a/tests/core/nogo/generics/BUILD.bazel b/tests/core/nogo/generics/BUILD.bazel
new file mode 100644
index 0000000..a40df34
--- /dev/null
+++ b/tests/core/nogo/generics/BUILD.bazel
@@ -0,0 +1,6 @@
+load("@io_bazel_rules_go//go/tools/bazel_testing:def.bzl", "go_bazel_test")
+
+go_bazel_test(
+ name = "generics_test",
+ srcs = ["generics_test.go"],
+)
diff --git a/tests/core/nogo/generics/README.rst b/tests/core/nogo/generics/README.rst
new file mode 100644
index 0000000..c348a99
--- /dev/null
+++ b/tests/core/nogo/generics/README.rst
@@ -0,0 +1,18 @@
+nogo analyzers run against code using generics
+==============================================
+
+.. _nogo: /go/nogo.rst
+.. _buildssa: https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/buildssa
+.. _nilness: https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/nilness
+
+Tests to ensure that `nogo`_ analyzers that run on code using generics get correct
+type instantiation information.
+
+.. contents::
+
+generics_test
+-------------
+
+Verifies that code using generic types gets loaded including all type instantiation
+information, so that analyzers based on the `buildssa`_ analyzer (such as `nilness`_) get
+a complete picture of all types in the code.
diff --git a/tests/core/nogo/generics/generics_test.go b/tests/core/nogo/generics/generics_test.go
new file mode 100644
index 0000000..562d52e
--- /dev/null
+++ b/tests/core/nogo/generics/generics_test.go
@@ -0,0 +1,85 @@
+// Copyright 2022 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package generics_test
+
+import (
+ "bytes"
+ "testing"
+
+ "github.com/bazelbuild/rules_go/go/tools/bazel_testing"
+)
+
+func TestMain(m *testing.M) {
+ bazel_testing.TestMain(m, bazel_testing.Args{
+ Nogo: "@//:nogo",
+ Main: `
+-- BUILD.bazel --
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "nogo")
+
+nogo(
+ name = "nogo",
+ visibility = ["//visibility:public"],
+ deps = ["@org_golang_x_tools//go/analysis/passes/buildssa"],
+)
+
+go_library(
+ name = "src",
+ srcs = ["src.go"],
+ importpath = "src",
+)
+
+-- src.go --
+package src
+
+type Set[T comparable] struct {
+ m map[T]struct{}
+}
+
+func New[T comparable](s ...T) *Set[T] {
+ set := &Set[T]{}
+ set.Add(s...)
+ return set
+}
+
+func (set *Set[T]) Add(s ...T) {
+ if set.m == nil {
+ set.m = make(map[T]struct{})
+ }
+ for _, s := range s {
+ set.m[s] = struct{}{}
+ }
+}
+
+func S(x ...string) *Set[string] {
+ return New[string](x...)
+}
+`,
+ })
+}
+
+func Test(t *testing.T) {
+ cmd := bazel_testing.BazelCmd("build", "//:src")
+ var stderr bytes.Buffer
+ cmd.Stderr = &stderr
+
+ if err := cmd.Run(); err != nil {
+ t.Log("output:", stderr.String())
+ t.Fatal("unexpected error:", err)
+ }
+
+ if bytes.Contains(stderr.Bytes(), []byte("panic")) {
+ t.Errorf("found panic in Bazel output: \n%s", stderr.String())
+ }
+}
diff --git a/tests/integration/popular_repos/BUILD.bazel b/tests/integration/popular_repos/BUILD.bazel
index 96aaaef..3c24a07 100644
--- a/tests/integration/popular_repos/BUILD.bazel
+++ b/tests/integration/popular_repos/BUILD.bazel
@@ -185,6 +185,9 @@
"@org_golang_x_tools//internal/jsonrpc2:jsonrpc2_test",
"@org_golang_x_tools//internal/jsonrpc2/servertest:servertest_test",
"@org_golang_x_tools//internal/jsonrpc2_v2:jsonrpc2_v2_test",
+ "@org_golang_x_tools//internal/lsp/bug:bug_test",
+ "@org_golang_x_tools//internal/lsp/debug:debug_test",
+ "@org_golang_x_tools//internal/lsp/lsppos:lsppos_test",
"@org_golang_x_tools//internal/lsp/progress:progress_test",
"@org_golang_x_tools//internal/lsp/regtest:regtest_test",
"@org_golang_x_tools//internal/lsp/source/completion:completion_test",
diff --git a/tests/integration/popular_repos/README.rst b/tests/integration/popular_repos/README.rst
index adaad2d..c375a79 100644
--- a/tests/integration/popular_repos/README.rst
+++ b/tests/integration/popular_repos/README.rst
@@ -184,6 +184,9 @@
* @org_golang_x_tools//internal/jsonrpc2:jsonrpc2_test
* @org_golang_x_tools//internal/jsonrpc2/servertest:servertest_test
* @org_golang_x_tools//internal/jsonrpc2_v2:jsonrpc2_v2_test
+* @org_golang_x_tools//internal/lsp/bug:bug_test
+* @org_golang_x_tools//internal/lsp/debug:debug_test
+* @org_golang_x_tools//internal/lsp/lsppos:lsppos_test
* @org_golang_x_tools//internal/lsp/progress:progress_test
* @org_golang_x_tools//internal/lsp/regtest:regtest_test
* @org_golang_x_tools//internal/lsp/source/completion:completion_test
diff --git a/tests/integration/popular_repos/popular_repos.bzl b/tests/integration/popular_repos/popular_repos.bzl
index c5148f4..752b654 100644
--- a/tests/integration/popular_repos/popular_repos.bzl
+++ b/tests/integration/popular_repos/popular_repos.bzl
@@ -71,5 +71,5 @@
go_repository,
name = "org_golang_x_mod",
importpath = "golang.org/x/mod",
- commit = "c8bb1bd8a2aaa5c50fa106c8116850d503792d16",
+ commit = "86c51ed26bb44749b7d60a57bab0e7524656fe8a",
)
diff --git a/tests/integration/popular_repos/popular_repos.py b/tests/integration/popular_repos/popular_repos.py
index 9f257fc..548821b 100755
--- a/tests/integration/popular_repos/popular_repos.py
+++ b/tests/integration/popular_repos/popular_repos.py
@@ -94,6 +94,9 @@
"cmd/gorename:gorename_test", # TODO(#417)
"cmd/guru/testdata/src/referrers:referrers_test", # Not a real test
"cmd/guru:guru_test", # Needs testdata directory
+ "cmd/signature-fuzzer/fuzz-driver:fuzz-driver_test", # requires working GOROOT
+ "cmd/signature-fuzzer/fuzz-runner:fuzz-runner_test", # requires working GOROOT
+ "cmd/signature-fuzzer/internal/fuzz-generator:fuzz-generator_test", # requires working GOROOT
"cmd/stringer:stringer_test", # Needs testdata directory
"container/intsets:intsets_test", # TODO(#413): External test depends on symbols defined in internal test.
"copyright:copyright_test", # # requires runfiles
@@ -111,6 +114,7 @@
"go/analysis/passes/buildtag:buildtag_test", # Needs testdata directory
"go/analysis/passes/cgocall:cgocall_test", # Needs testdata directory
"go/analysis/passes/composite:composite_test", # Needs testdata directory
+ "go/analysis/passes/composite/testdata/src/a:a_test", # Does not compile
"go/analysis/passes/copylock:copylock_test", # Needs testdata directory
"go/analysis/passes/ctrlflow:ctrlflow_test", # Needs testdata directory
"go/analysis/passes/deepequalerrors:deepequalerrors_test", # requires go list
@@ -174,6 +178,7 @@
"internal/apidiff:apidiff_test", # Needs testdata directory
"internal/gocommand:gocommand_test", # Needs go tool
"internal/imports:imports_test", # Needs testdata directory
+ "internal/lsp/analysis/embeddirective:embeddirective_test", # requires GOROOT
"internal/lsp/analysis/fillreturns:fillreturns_test", # Needs go tool
"internal/lsp/analysis/fillstruct:fillstruct_test", # Needs go tool
"internal/lsp/analysis/infertypeargs:infertypeargs_test", # Needs go tool
@@ -195,6 +200,7 @@
"internal/lsp/fuzzy:fuzzy_test", # has additional deps
"internal/lsp/lsprpc:lsprpc_test", # has additional deps
"internal/lsp/mod:mod_test", # has additional deps
+ "internal/lsp/safetoken:safetoken_test", # requires build cache
"internal/lsp/snippet:snippet_test", # has additional deps
"internal/lsp/source:source_test", # Needs testdata directory
"internal/lsp/testdata/analyzer:analyzer_test", # is testdata
@@ -233,7 +239,7 @@
dict(
name = "org_golang_x_mod",
importpath = "golang.org/x/mod",
- commit = "c8bb1bd8a2aaa5c50fa106c8116850d503792d16",
+ commit = "86c51ed26bb44749b7d60a57bab0e7524656fe8a",
excludes = [
"sumdb/tlog:tlog_test", # Needs network, not available on RBE
"zip:zip_test", # Needs vcs tools, not available on RBE
diff --git a/third_party/org_golang_x_tools-deletegopls.patch b/third_party/org_golang_x_tools-deletegopls.patch
index 15eec5b..c885f23 100644
--- a/third_party/org_golang_x_tools-deletegopls.patch
+++ b/third_party/org_golang_x_tools-deletegopls.patch
@@ -1,7 +1,7 @@
diff -urN a/gopls/README.md b/gopls/README.md
---- a/gopls/README.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/README.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,105 +0,0 @@
+--- a/gopls/README.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/README.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,113 +0,0 @@
-# `gopls`, the Go language server
-
-[![PkgGoDev](https://pkg.go.dev/badge/golang.org/x/tools/gopls)](https://pkg.go.dev/golang.org/x/tools/gopls)
@@ -73,13 +73,21 @@
-
-## Supported Go versions and build systems
-
--`gopls` follows the [Go Release
--Policy](https://golang.org/doc/devel/release.html#policy), meaning that it
--officially supports the last 2 major Go releases. Per
+-`gopls` follows the
+-[Go Release Policy](https://golang.org/doc/devel/release.html#policy),
+-meaning that it officially supports the last 2 major Go releases. Per
-[issue #39146](golang.org/issues/39146), we attempt to maintain best-effort
-support for the last 4 major Go releases, but this support extends only to not
-breaking the build and avoiding easily fixable regressions.
-
+-The following table shows the final gopls version that supports being built at
+-a given Go Version. Any more recent Go versions missing from this table can
+-still be built with the latest version of gopls.
+-
+-| Go Version | Final gopls Version With Support |
+-| ----------- | -------------------------------- |
+-| Go 1.12 | [gopls@v0.7.5](https://github.com/golang/tools/releases/tag/gopls%2Fv0.7.5) |
+-
-Our extended support is enforced via [continuous integration with older Go
-versions](doc/contributing.md#ci). This legacy Go CI may not block releases:
-test failures may be skipped rather than fixed. Furthermore, if a regression in
@@ -108,8 +116,8 @@
-[LSP]: https://microsoft.github.io/language-server-protocol/
-[Gophers Slack]: https://gophers.slack.com/
diff -urN a/gopls/api-diff/api_diff.go b/gopls/api-diff/api_diff.go
---- a/gopls/api-diff/api_diff.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/api-diff/api_diff.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/api-diff/api_diff.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/api-diff/api_diff.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,274 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -386,9 +394,9 @@
- return fmt.Sprintf("%q", difflib.ToUnified("previous", "current", before, d)), err
-}
diff -urN a/gopls/doc/advanced.md b/gopls/doc/advanced.md
---- a/gopls/doc/advanced.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/advanced.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,75 +0,0 @@
+--- a/gopls/doc/advanced.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/advanced.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,69 +0,0 @@
-# Advanced topics
-
-This documentation is for advanced `gopls` users, who may want to test
@@ -407,7 +415,8 @@
-
-### Unstable versions
-
--To update `gopls` to the latest **unstable** version, use:
+-To update `gopls` to the latest **unstable** version, use the following
+-commands.
-
-```sh
-# Create an empty go.mod file, only for tracking requirements.
@@ -415,11 +424,8 @@
-go mod init gopls-unstable
-
-# Use 'go get' to add requirements and to ensure they work together.
--go get golang.org/x/tools/gopls@master golang.org/x/tools@master
+-go get -d golang.org/x/tools/gopls@master golang.org/x/tools@master
-
--# For go1.17 or older, the above `go get` command will build and
--# install `gopls`. For go1.18+ or tip, run the following command to install
--# using selected versions in go.mod.
-go install golang.org/x/tools/gopls
-```
-
@@ -437,37 +443,33 @@
-
-## Working with generic code
-
--Gopls has beta support for editing generic Go code, as defined by the type
--parameters proposal ([golang/go#43651](https://golang.org/issues/43651)) and
--type set addendum ([golang/go#45346](https://golang.org/issues/45346)).
--
--To enable this support, you need to build gopls with a version of Go that
--supports generics. The easiest way to do this is by installing Go 1.18 Beta
--1 as described at
--[Tutorial: Getting started with generics#prerequisites](https://go.dev/doc/tutorial/generics),
--and then using this Go version to build gopls:
+-Gopls has support for editing generic Go code. To enable this support, you need
+-to **install gopls using Go 1.18 or later**. The easiest way to do this is by
+-[installing Go 1.18+](https://go.dev/dl) and then using this Go version to
+-install gopls:
-
-```
--$ go1.18beta1 install golang.org/x/tools/gopls@latest
+-$ go install golang.org/x/tools/gopls@latest
-```
-
--When using the Go 1.18, it is strongly recommended that you install the latest
--version of `gopls`, or the latest **unstable** version as
--[described above](#installing-unreleased-versions).
+-It is strongly recommended that you install the latest version of `gopls`, or
+-the latest **unstable** version as [described above](#installing-unreleased-versions).
+-We're still working on improving our generics support.
-
--The `gopls` built with these instructions understands generic code. To actually
--run the generic code you develop, you must also use the beta version of the Go
--compiler. For example:
+-The `gopls` built with these instructions understands generic code. See the
+-[generics tutorial](https://go.dev/doc/tutorial/generics) for more information
+-on how to use generics in Go!
-
--```
--$ go1.18beta1 run .
--```
+-### Known issues
+-
+- * [`staticcheck`](https://github.com/golang/tools/blob/master/gopls/doc/settings.md#staticcheck-bool)
+- on generic code is not supported yet.
-
-[Go project]: https://go.googlesource.com/go
diff -urN a/gopls/doc/analyzers.md b/gopls/doc/analyzers.md
---- a/gopls/doc/analyzers.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/analyzers.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,658 +0,0 @@
+--- a/gopls/doc/analyzers.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/analyzers.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,676 +0,0 @@
-# Analyzers
-
-This document describes the analyzers that `gopls` uses inside the editor.
@@ -578,6 +580,15 @@
-
-**Enabled by default.**
-
+-## **embed**
+-
+-check for //go:embed directive import
+-
+-This analyzer checks that the embed package is imported when source code contains //go:embed comment directives.
+-The embed package must be imported for //go:embed directives to function.import _ "embed".
+-
+-**Enabled by default.**
+-
-## **errorsas**
-
-report passing non-pointer or non-error values to errors.As
@@ -1044,7 +1055,7 @@
-
-check for constraints that could be simplified to "any"
-
--**Enabled by default.**
+-**Disabled by default. Enable it by setting `"analyses": {"useany": true}`.**
-
-## **fillreturns**
-
@@ -1125,10 +1136,19 @@
-
-**Enabled by default.**
-
+-## **stubmethods**
+-
+-stub methods analyzer
+-
+-This analyzer generates method stubs for concrete types
+-in order to implement a target interface
+-
+-**Enabled by default.**
+-
-<!-- END Analyzers: DO NOT MANUALLY EDIT THIS SECTION -->
diff -urN a/gopls/doc/command-line.md b/gopls/doc/command-line.md
---- a/gopls/doc/command-line.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/command-line.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/command-line.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/command-line.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-# Command line
-
@@ -1146,9 +1166,9 @@
-
-It is not a goal of `gopls` to be a high performance command line tool. Its command line is intended for single file/package user interaction speeds, not bulk processing.
diff -urN a/gopls/doc/commands.md b/gopls/doc/commands.md
---- a/gopls/doc/commands.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/commands.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,370 +0,0 @@
+--- a/gopls/doc/commands.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/commands.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,436 +0,0 @@
-# Commands
-
-This document describes the LSP-level commands supported by `gopls`. They cannot be invoked directly by users, and all the details are subject to change, so nobody should rely on this information.
@@ -1235,6 +1255,22 @@
-}
-```
-
+-### **Run go mod edit -go=version**
+-Identifier: `gopls.edit_go_directive`
+-
+-Runs `go mod edit -go=version` for a module.
+-
+-Args:
+-
+-```
+-{
+- // Any document URI within the relevant module.
+- "URI": string,
+- // The version to pass to `go mod edit -go`.
+- "Version": string,
+-}
+-```
+-
-### **Toggle gc_details**
-Identifier: `gopls.gc_details`
-
@@ -1293,6 +1329,37 @@
-}
-```
-
+-### **List imports of a file and its package**
+-Identifier: `gopls.list_imports`
+-
+-Retrieve a list of imports in the given Go file, and the package it
+-belongs to.
+-
+-Args:
+-
+-```
+-{
+- // The file URI.
+- "URI": string,
+-}
+-```
+-
+-Result:
+-
+-```
+-{
+- // Imports is a list of imports in the requested file.
+- "Imports": []{
+- "Path": string,
+- "Name": string,
+- },
+- // PackageImports is a list of all imports in the requested file's package.
+- "PackageImports": []{
+- "Path": string,
+- },
+-}
+-```
+-
-### **List known packages**
-Identifier: `gopls.list_known_packages`
-
@@ -1369,6 +1436,42 @@
-}
-```
-
+-### **Run vulncheck (experimental)**
+-Identifier: `gopls.run_vulncheck_exp`
+-
+-Run vulnerability check (`govulncheck`).
+-
+-Args:
+-
+-```
+-{
+- // Dir is the directory from which vulncheck will run from.
+- "Dir": string,
+- // Package pattern. E.g. "", ".", "./...".
+- "Pattern": string,
+-}
+-```
+-
+-Result:
+-
+-```
+-{
+- "Vuln": []{
+- "ID": string,
+- "Details": string,
+- "Aliases": []string,
+- "Symbol": string,
+- "PkgPath": string,
+- "ModPath": string,
+- "URL": string,
+- "CurrentVersion": string,
+- "FixedVersion": string,
+- "CallStacks": [][]golang.org/x/tools/internal/lsp/command.StackEntry,
+- "CallStackSummaries": []string,
+- },
+-}
+-```
+-
-### **Start the gopls debug server**
-Identifier: `gopls.start_debugging`
-
@@ -1501,27 +1604,10 @@
-}
-```
-
--### **Query workspace metadata**
--Identifier: `gopls.workspace_metadata`
--
--Query the server for information about active workspaces.
--
--Result:
--
--```
--{
-- // All workspaces for this session.
-- "Workspaces": []{
-- "Name": string,
-- "ModuleDir": string,
-- },
--}
--```
--
-<!-- END Commands: DO NOT MANUALLY EDIT THIS SECTION -->
diff -urN a/gopls/doc/contributing.md b/gopls/doc/contributing.md
---- a/gopls/doc/contributing.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/contributing.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/contributing.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/contributing.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,119 +0,0 @@
-# Documentation for contributors
-
@@ -1643,8 +1729,8 @@
-[issue-gopls]: https://github.com/golang/go/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3Agopls "gopls issues"
-[issue-wanted]: https://github.com/golang/go/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Agopls+label%3A"help+wanted" "help wanted"
diff -urN a/gopls/doc/daemon.md b/gopls/doc/daemon.md
---- a/gopls/doc/daemon.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/daemon.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/daemon.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/daemon.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,183 +0,0 @@
-# Running gopls as a daemon
-
@@ -1830,8 +1916,8 @@
-change its configuration. These flags only matter for the forwarder process
-that actually starts the daemon.
diff -urN a/gopls/doc/design/design.md b/gopls/doc/design/design.md
---- a/gopls/doc/design/design.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/design/design.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/design/design.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/design/design.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,394 +0,0 @@
-# `gopls` design documentation
-
@@ -2228,8 +2314,8 @@
-[`textDocument/typeDefinition`]: https://github.com/Microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-14.md#textDocument_typeDefinition
-[`workspace/didChangeWatchedFiles`]: https://github.com/Microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-14.md#workspace_didChangeWatchedFiles
diff -urN a/gopls/doc/design/implementation.md b/gopls/doc/design/implementation.md
---- a/gopls/doc/design/implementation.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/design/implementation.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/design/implementation.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/design/implementation.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-# gopls implementation documentation
-
@@ -2280,8 +2366,8 @@
-[internal/span]: https://github.com/golang/tools/tree/master/internal/span
-[x/tools]: https://github.com/golang/tools
diff -urN a/gopls/doc/design/integrating.md b/gopls/doc/design/integrating.md
---- a/gopls/doc/design/integrating.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/design/integrating.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/design/integrating.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/design/integrating.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-# Documentation for plugin authors
-
@@ -2375,8 +2461,8 @@
-[#31553]: https://github.com/golang/go/issues/31553
-[#31526]: https://github.com/golang/go/issues/31526
diff -urN a/gopls/doc/emacs.md b/gopls/doc/emacs.md
---- a/gopls/doc/emacs.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/emacs.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/emacs.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/emacs.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,183 +0,0 @@
-# Emacs
-
@@ -2562,8 +2648,8 @@
-[settings]: settings.md
-[Gophers slack]: https://invite.slack.golangbridge.org/
diff -urN a/gopls/doc/features.md b/gopls/doc/features.md
---- a/gopls/doc/features.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/features.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/features.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/features.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-# Features
-
@@ -2621,8 +2707,8 @@
-<!--TODO(rstambler): Automatically generate a list of supported features.-->
-
diff -urN a/gopls/doc/generate.go b/gopls/doc/generate.go
---- a/gopls/doc/generate.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/generate.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/generate.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/generate.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,712 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -3060,7 +3146,7 @@
- fmt.Fprintf(&b, "%s\t// %s\n", indent, line)
- }
- }
-- tag := fld.JSONTag
+- tag := strings.Split(fld.JSONTag, ",")[0]
- if tag == "" {
- tag = fld.Name
- }
@@ -3337,8 +3423,8 @@
- return result, nil
-}
diff -urN a/gopls/doc/generate_test.go b/gopls/doc/generate_test.go
---- a/gopls/doc/generate_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/generate_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/generate_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/generate_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -3367,8 +3453,8 @@
- }
-}
diff -urN a/gopls/doc/semantictokens.md b/gopls/doc/semantictokens.md
---- a/gopls/doc/semantictokens.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/semantictokens.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/semantictokens.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/semantictokens.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,121 +0,0 @@
-# Semantic Tokens
-
@@ -3493,8 +3579,8 @@
-in the unedited part of the file, and they do.
\ No newline at end of file
diff -urN a/gopls/doc/settings.md b/gopls/doc/settings.md
---- a/gopls/doc/settings.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/settings.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/settings.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/settings.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,484 +0,0 @@
-# Settings
-
@@ -3685,7 +3771,7 @@
-
-codelenses overrides the enabled/disabled state of code lenses. See the
-"Code Lenses" section of the
--[Settings page](https://github.com/golang/tools/blob/master/gopls/doc/settings.md)
+-[Settings page](https://github.com/golang/tools/blob/master/gopls/doc/settings.md#code-lenses)
-for the list of supported lenses.
-
-Example Usage:
@@ -3752,7 +3838,7 @@
-
-**This setting is experimental and may be deleted.**
-
--experimentalPostfixCompletions enables artifical method snippets
+-experimentalPostfixCompletions enables artificial method snippets
-such as "someSlice.sort!".
-
-Default: `true`.
@@ -3896,7 +3982,7 @@
-* `"FastFuzzy"`
-* `"Fuzzy"`
-
--Default: `"Fuzzy"`.
+-Default: `"FastFuzzy"`.
-
-##### **symbolStyle** *enum*
-
@@ -3981,9 +4067,9 @@
-Runs `go mod vendor` for a module.
-<!-- END Lenses: DO NOT MANUALLY EDIT THIS SECTION -->
diff -urN a/gopls/doc/subl.md b/gopls/doc/subl.md
---- a/gopls/doc/subl.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/subl.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,77 +0,0 @@
+--- a/gopls/doc/subl.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/subl.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,81 +0,0 @@
-# Sublime Text
-
-Use the [LSP] package. After installing it using Package Control, do the following:
@@ -4042,6 +4128,10 @@
- "settings": {
- "LSP": {
- "gopls": {
+- // To use a specific version of gopls with Sublime Text LSP (e.g., to try new features in development)
+- "command": [
+- "/path/to/your/go/bin/gopls"
+- ],
- "env": {
- "PATH": "/path/to/your/go-dev/bin:/path/to/your/go/bin",
- "GOPATH": "",
@@ -4062,8 +4152,8 @@
-
-[LSP]: https://packagecontrol.io/packages/LSP
diff -urN a/gopls/doc/troubleshooting.md b/gopls/doc/troubleshooting.md
---- a/gopls/doc/troubleshooting.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/troubleshooting.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/doc/troubleshooting.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/troubleshooting.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-# Troubleshooting
-
@@ -4114,9 +4204,9 @@
-
-`gopls` automatically writes out memory debug information when your usage exceeds 1GB. This information can be found in your temporary directory with names like `gopls.1234-5GiB-withnames.zip`. On Windows, your temporary directory will be located at `%TMP%`, and on Unixes, it will be `$TMPDIR`, which is usually `/tmp`. Please [file an issue](#file-an-issue) with this memory debug information attached. If you are uncomfortable sharing the package names of your code, you can share the `-nonames` zip instead, but it's much less useful.
diff -urN a/gopls/doc/vim.md b/gopls/doc/vim.md
---- a/gopls/doc/vim.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/vim.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,229 +0,0 @@
+--- a/gopls/doc/vim.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/vim.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,225 +0,0 @@
-# Vim / Neovim
-
-* [vim-go](#vimgo)
@@ -4212,7 +4302,7 @@
- "languageserver": {
- "golang": {
- "command": "gopls",
-- "rootPatterns": ["go.mod", ".vim/", ".git/", ".hg/"],
+- "rootPatterns": ["go.work", "go.mod", ".vim/", ".git/", ".hg/"],
- "filetypes": ["go"],
- "initializationOptions": {
- "usePlaceholders": true
@@ -4221,6 +4311,13 @@
- }
-```
-
+-If you use `go.work` files, you may want to set the
+-`workspace.workspaceFolderCheckCwd` option. This will force coc.nvim to search
+-parent directories for `go.work` files, even if the current open directory has
+-a `go.mod` file. See the
+-[coc.nvim documentation](https://github.com/neoclide/coc.nvim/wiki/Using-workspaceFolders)
+-for more details.
+-
-Other [settings](settings.md) can be added in `initializationOptions` too.
-
-The `editor.action.organizeImport` code action will auto-format code and add missing imports. To run this automatically on save, add the following line to your `init.vim`:
@@ -4260,8 +4357,12 @@
-```vim
-lua <<EOF
- lspconfig = require "lspconfig"
+- util = require "lspconfig/util"
+-
- lspconfig.gopls.setup {
- cmd = {"gopls", "serve"},
+- filetypes = {"go", "gomod"},
+- root_dir = util.root_pattern("go.work", "go.mod", ".git"),
- settings = {
- gopls = {
- analyses = {
@@ -4283,38 +4384,23 @@
-lua <<EOF
- -- …
-
-- function goimports(timeout_ms)
-- local context = { only = { "source.organizeImports" } }
-- vim.validate { context = { context, "t", true } }
--
+- function OrgImports(wait_ms)
- local params = vim.lsp.util.make_range_params()
-- params.context = context
--
-- -- See the implementation of the textDocument/codeAction callback
-- -- (lua/vim/lsp/handler.lua) for how to do this properly.
-- local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, timeout_ms)
-- if not result or next(result) == nil then return end
-- local actions = result[1].result
-- if not actions then return end
-- local action = actions[1]
--
-- -- textDocument/codeAction can return either Command[] or CodeAction[]. If it
-- -- is a CodeAction, it can have either an edit, a command or both. Edits
-- -- should be executed first.
-- if action.edit or type(action.command) == "table" then
-- if action.edit then
-- vim.lsp.util.apply_workspace_edit(action.edit)
+- params.context = {only = {"source.organizeImports"}}
+- local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms)
+- for _, res in pairs(result or {}) do
+- for _, r in pairs(res.result or {}) do
+- if r.edit then
+- vim.lsp.util.apply_workspace_edit(r.edit, "UTF-8")
+- else
+- vim.lsp.buf.execute_command(r.command)
+- end
- end
-- if type(action.command) == "table" then
-- vim.lsp.buf.execute_command(action.command)
-- end
-- else
-- vim.lsp.buf.execute_command(action)
- end
- end
-EOF
-
--autocmd BufWritePre *.go lua goimports(1000)
+-autocmd BufWritePre *.go lua OrgImports(1000)
-```
-
-(Taken from the [discussion][nvim-lspconfig-imports] on Neovim issue tracker.)
@@ -4347,9 +4433,9 @@
-[nvim-lspconfig]: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#gopls
-[nvim-lspconfig-imports]: https://github.com/neovim/nvim-lspconfig/issues/115
diff -urN a/gopls/doc/workspace.md b/gopls/doc/workspace.md
---- a/gopls/doc/workspace.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/doc/workspace.md 1969-12-31 16:00:00.000000000 -0800
-@@ -1,75 +0,0 @@
+--- a/gopls/doc/workspace.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/doc/workspace.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,95 +0,0 @@
-# Setting up your workspace
-
-`gopls` supports both Go module and GOPATH modes. However, it needs a defined
@@ -4371,40 +4457,60 @@
-
-### Multiple modules
-
--As of Jan 2021, if you are working with multiple modules or nested modules, you
--will need to create a "workspace folder" for each module. This means that each
--module has its own scope, and features will not work across modules. We are
--currently working on addressing this limitation--see details about
--[experimental workspace module mode](#workspace-module-experimental)
--below.
+-Gopls has several alternatives for working on multiple modules simultaneously,
+-described below. Starting with Go 1.18, Go workspaces are the preferred solution.
+-
+-#### Go workspaces (Go 1.18+)
+-
+-Starting with Go 1.18, the `go` command has native support for multi-module
+-workspaces, via [`go.work`](https://go.dev/ref/mod#workspaces) files. These
+-files are recognized by gopls starting with `gopls@v0.8.0`.
+-
+-The easiest way to work on multiple modules in Go 1.18 and later is therefore
+-to create a `go.work` file containing the modules you wish to work on, and set
+-your workspace root to the directory containing the `go.work` file.
+-
+-For example, suppose this repo is checked out into the `$WORK/tools` directory.
+-We can work on both `golang.org/x/tools` and `golang.org/x/tools/gopls`
+-simultaneously by creating a `go.work` file:
+-
+-```
+-cd $WORK
+-go work init
+-go work use tools tools/gopls
+-```
+-
+-...followed by opening the `$WORK` directory in our editor.
+-
+-#### Experimental workspace module (Go 1.17 and earlier)
+-
+-With earlier versions of Go, `gopls` can simulate multi-module workspaces by
+-creating a synthetic module requiring the the modules in the workspace root.
+-See [the design document](https://github.com/golang/proposal/blob/master/design/37720-gopls-workspaces.md)
+-for more information.
+-
+-This feature is experimental, and will eventually be removed once `go.work`
+-files are accepted by all supported Go versions.
+-
+-You can enable this feature by configuring the
+-[experimentalWorkspaceModule](settings.md#experimentalworkspacemodule-bool)
+-setting.
+-
+-#### Multiple workspace folders
+-
+-If neither of the above solutions work, and your editor allows configuring the
+-set of
+-["workspace folders"](https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#workspaceFolder)
+-used during your LSP session, you can still work on multiple modules by adding
+-a workspace folder at each module root (the locations of `go.mod` files). This
+-means that each module has its own scope, and features will not work across
+-modules.
-
-In VS Code, you can create a workspace folder by setting up a
-[multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces).
-View the [documentation for your editor plugin](../README.md#editor) to learn how to
-configure a workspace folder in your editor.
-
--#### Workspace module (experimental)
--
--Many `gopls` users would like to work with multiple modules at the same time
--([golang/go#32394](https://github.com/golang/go/issues/32394)), and
--specifically, have features that work across modules. We plan to add support
--for this via a concept called the "workspace module", which is described in
--[this design document](https://github.com/golang/proposal/blob/master/design/37720-gopls-workspaces.md).
--This feature works by creating a temporary module that requires all of your
--workspace modules, meaning all of their dependencies must be compatible.
--
--The workspace module feature is currently available as an opt-in experiment,
--and it will allow you to work with multiple modules without creating workspace
--folders for each module. You can try it out by configuring the
--[experimentalWorkspaceModule](settings.md#experimentalworkspacemodule-bool)
--setting. If you try it and encounter issues, please
--[report them](https://github.com/golang/go/issues/new) so we can address them
--before the feature is enabled by default.
--
--You can follow our progress on the workspace module work by looking at the
--open issues in the
--[gopls/workspace-module milestone](https://github.com/golang/go/milestone/179).
--
-### GOPATH mode
-
-When opening a directory within your GOPATH, the workspace scope will be just
@@ -4426,29 +4532,31 @@
-If you have additional use cases that are not mentioned above, please
-[file a new issue](https://github.com/golang/go/issues/new).
diff -urN a/gopls/go.mod b/gopls/go.mod
---- a/gopls/go.mod 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/go.mod 1969-12-31 16:00:00.000000000 -0800
-@@ -1,26 +0,0 @@
+--- a/gopls/go.mod 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/go.mod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,28 +0,0 @@
-module golang.org/x/tools/gopls
-
-go 1.18
-
-require (
-- github.com/google/go-cmp v0.5.6
+- github.com/google/go-cmp v0.5.7
- github.com/jba/printsrc v0.2.2
- github.com/jba/templatecheck v0.6.0
- github.com/sergi/go-diff v1.1.0
-- golang.org/x/mod v0.5.1
-- golang.org/x/sys v0.0.0-20211019181941-9d821ace8654
-- golang.org/x/tools v0.1.7
-- honnef.co/go/tools v0.2.1
-- mvdan.cc/gofumpt v0.1.1
-- mvdan.cc/xurls/v2 v2.3.0
+- golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
+- golang.org/x/sys v0.0.0-20220209214540-3681064d5158
+- golang.org/x/tools v0.1.11-0.20220330174940-8e193c2ba95e
+- golang.org/x/vuln v0.0.0-20220503210553-a5481fb0c8be
+- honnef.co/go/tools v0.3.0
+- mvdan.cc/gofumpt v0.3.0
+- mvdan.cc/xurls/v2 v2.4.0
-)
-
-require (
-- github.com/BurntSushi/toml v0.4.1 // indirect
+- github.com/BurntSushi/toml v1.0.0 // indirect
- github.com/google/safehtml v0.0.2 // indirect
+- golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect
- golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
- golang.org/x/text v0.3.7 // indirect
- golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
@@ -4456,18 +4564,27 @@
-
-replace golang.org/x/tools => ../
diff -urN a/gopls/go.sum b/gopls/go.sum
---- a/gopls/go.sum 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/go.sum 1969-12-31 16:00:00.000000000 -0800
-@@ -1,67 +0,0 @@
+--- a/gopls/go.sum 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/go.sum 1970-01-01 01:00:00.000000000 +0100
+@@ -1,95 +0,0 @@
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
--github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
-github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+-github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU=
+-github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+-github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=
+-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
--github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
--github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
+-github.com/frankban/quicktest v1.14.2 h1:SPb1KFFmM+ybpEjPUhCCkZOM5xlovT5UbrMvWnXyBns=
+-github.com/frankban/quicktest v1.14.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
+-github.com/google/go-cmdtest v0.4.0/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o=
+-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
+-github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/safehtml v0.0.2 h1:ZOt2VXg4x24bW0m2jtzAOkhoXV0iM8vNKc0paByCZqM=
-github.com/google/safehtml v0.0.2/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZjJAzjHnU=
-github.com/jba/printsrc v0.2.2 h1:9OHK51UT+/iMAEBlQIIXW04qvKyF3/vvLuwW/hL8tDU=
@@ -4475,13 +4592,18 @@
-github.com/jba/templatecheck v0.6.0 h1:SwM8C4hlK/YNLsdcXStfnHWE2HKkuTVwy5FKQHt5ro8=
-github.com/jba/templatecheck v0.6.0/go.mod h1:/1k7EajoSErFI9GLHAsiIJEaNLt3ALKNw2TV7z2SYv4=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+-github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
--github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
--github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
+-github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+-github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg=
+-github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -4490,10 +4612,16 @@
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
--golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
--golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
+-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+-golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM=
+-golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
-golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
+-golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+-golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
+-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -4501,14 +4629,19 @@
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
--golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
+-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220209214540-3681064d5158 h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c=
+-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+-golang.org/x/vuln v0.0.0-20220503210553-a5481fb0c8be h1:jokAF1mfylAi1iTQx7C44B7vyXUcSEMw8eDv0PzNu8s=
+-golang.org/x/vuln v0.0.0-20220503210553-a5481fb0c8be/go.mod h1:twca1SxmF6/i2wHY/mj1vLIkkHdp+nil/yA32ZOP4kg=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
@@ -4520,15 +4653,18 @@
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
--honnef.co/go/tools v0.2.1 h1:/EPr//+UMMXwMTkXvCCoaJDq8cpjMO80Ou+L4PDo2mY=
--honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
--mvdan.cc/gofumpt v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
--mvdan.cc/gofumpt v0.1.1/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48=
--mvdan.cc/xurls/v2 v2.3.0 h1:59Olnbt67UKpxF1EwVBopJvkSUBmgtb468E4GVWIZ1I=
--mvdan.cc/xurls/v2 v2.3.0/go.mod h1:AjuTy7gEiUArFMjgBBDU4SMxlfUYsRokpJQgNWOt3e4=
+-honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
+-honnef.co/go/tools v0.3.0 h1:2LdYUZ7CIxnYgskbUZfY7FPggmqnh6shBqfWa8Tn3XU=
+-honnef.co/go/tools v0.3.0/go.mod h1:vlRD9XErLMGT+mDuofSr0mMMquscM/1nQqtRSsh6m70=
+-mvdan.cc/gofumpt v0.3.0 h1:kTojdZo9AcEYbQYhGuLf/zszYthRdhDNDUi2JKTxas4=
+-mvdan.cc/gofumpt v0.3.0/go.mod h1:0+VyGZWleeIj5oostkOex+nDBA0eyavuDnDusAJ8ylo=
+-mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5 h1:Jh3LAeMt1eGpxomyu3jVkmVZWW2MxZ1qIIV2TZ/nRio=
+-mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5/go.mod h1:b8RRCBm0eeiWR8cfN88xeq2G5SG3VKGO+5UPWi5FSOY=
+-mvdan.cc/xurls/v2 v2.4.0 h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=
+-mvdan.cc/xurls/v2 v2.4.0/go.mod h1:+GEjq9uNjqs8LQfM9nVnM8rff0OQ5Iash5rzX+N1CSg=
diff -urN a/gopls/integration/govim/Dockerfile b/gopls/integration/govim/Dockerfile
---- a/gopls/integration/govim/Dockerfile 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/Dockerfile 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/Dockerfile 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/Dockerfile 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-# Copyright 2019 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
@@ -4547,8 +4683,8 @@
-RUN git clone https://github.com/govim/govim /src/govim && cd /src/govim && \
- git checkout $GOVIM_REF
diff -urN a/gopls/integration/govim/README.md b/gopls/integration/govim/README.md
---- a/gopls/integration/govim/README.md 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/README.md 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/README.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-# govim integration tests
-
@@ -4598,8 +4734,8 @@
-
-[govim]: https://github.com/govim/govim
diff -urN a/gopls/integration/govim/artifacts.go b/gopls/integration/govim/artifacts.go
---- a/gopls/integration/govim/artifacts.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/artifacts.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/artifacts.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/artifacts.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,67 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -4669,8 +4805,8 @@
- return nil
-}
diff -urN a/gopls/integration/govim/cloudbuild.harness.yaml b/gopls/integration/govim/cloudbuild.harness.yaml
---- a/gopls/integration/govim/cloudbuild.harness.yaml 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/cloudbuild.harness.yaml 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/cloudbuild.harness.yaml 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/cloudbuild.harness.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-# Copyright 2019 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
@@ -4694,8 +4830,8 @@
-images:
- - gcr.io/$PROJECT_ID/govim-harness
diff -urN a/gopls/integration/govim/cloudbuild.yaml b/gopls/integration/govim/cloudbuild.yaml
---- a/gopls/integration/govim/cloudbuild.yaml 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/cloudbuild.yaml 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/cloudbuild.yaml 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/cloudbuild.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-# Copyright 2019 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
@@ -4749,8 +4885,8 @@
-# shared.
-logsBucket: 'gs://${_RESULT_BUCKET}'
diff -urN a/gopls/integration/govim/run_local.sh b/gopls/integration/govim/run_local.sh
---- a/gopls/integration/govim/run_local.sh 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/run_local.sh 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/run_local.sh 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/run_local.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-#!/bin/bash -e
-
@@ -4767,7 +4903,7 @@
-Args:
- --sudo run docker with sudo
- --short run `go test` with `-short`
-- --version run on the specific tagged Go version (or latest) rather
+- --version run on the specific tagged govim version (or latest) rather
- than the default branch
-
-Run govim tests against HEAD using local docker.
@@ -4825,7 +4961,7 @@
-${SUDO_IF_NEEDED}docker run --rm -t \
- -v "${tools_dir}:/src/tools" \
- -w "/src/tools/gopls" \
-- golang:latest \
+- golang:rc \
- go build -o $(basename ${temp_gopls})
-
-# Build the test harness. Here we are careful to pass in a very limited build
@@ -4849,8 +4985,8 @@
- go test ${TEST_SHORT} ./cmd/govim \
- -gopls "/src/tools/gopls/${temp_gopls_name}"
diff -urN a/gopls/integration/govim/run_tests_for_cloudbuild.sh b/gopls/integration/govim/run_tests_for_cloudbuild.sh
---- a/gopls/integration/govim/run_tests_for_cloudbuild.sh 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/integration/govim/run_tests_for_cloudbuild.sh 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/integration/govim/run_tests_for_cloudbuild.sh 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/integration/govim/run_tests_for_cloudbuild.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-#!/bin/bash
-
@@ -4881,8 +5017,8 @@
- find "$GOVIM_TESTSCRIPT_WORKDIR_ROOT" -type d \( -name .vim -o -name gopath \) -prune -exec rm -rf '{}' \;
-fi
diff -urN a/gopls/internal/coverage/coverage.go b/gopls/internal/coverage/coverage.go
---- a/gopls/internal/coverage/coverage.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/coverage/coverage.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/coverage/coverage.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/coverage/coverage.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,261 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -5145,16 +5281,700 @@
- filepath.WalkDir(dir, f)
- return ans
-}
+diff -urN a/gopls/internal/govulncheck/README.md b/gopls/internal/govulncheck/README.md
+--- a/gopls/internal/govulncheck/README.md 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/README.md 1970-01-01 01:00:00.000000000 +0100
+@@ -1,17 +0,0 @@
+-# internal/govulncheck package
+-
+-This package is a literal copy of the cmd/govulncheck/internal/govulncheck
+-package in the vuln repo (https://go.googlesource.com/vuln).
+-
+-The `copy.sh` does the copying, after removing all .go files here. To use it:
+-
+-1. Clone the vuln repo to a directory next to the directory holding this repo
+- (tools). After doing that your directory structure should look something like
+- ```
+- ~/repos/x/tools/gopls/...
+- ~/repos/x/vuln/...
+- ```
+-
+-2. cd to this directory.
+-
+-3. Run `copy.sh`.
+diff -urN a/gopls/internal/govulncheck/cache.go b/gopls/internal/govulncheck/cache.go
+--- a/gopls/internal/govulncheck/cache.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/cache.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,138 +0,0 @@
+-// Copyright 2021 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-// Package govulncheck supports the govulncheck command.
+-package govulncheck
+-
+-import (
+- "encoding/json"
+- "go/build"
+- "io/ioutil"
+- "os"
+- "path/filepath"
+- "sync"
+- "time"
+-
+- "golang.org/x/vuln/client"
+- "golang.org/x/vuln/osv"
+-)
+-
+-// The cache uses a single JSON index file for each vulnerability database
+-// which contains the map from packages to the time the last
+-// vulnerability for that package was added/modified and the time that
+-// the index was retrieved from the vulnerability database. The JSON
+-// format is as follows:
+-//
+-// $GOPATH/pkg/mod/cache/download/vulndb/{db hostname}/indexes/index.json
+-// {
+-// Retrieved time.Time
+-// Index client.DBIndex
+-// }
+-//
+-// Each package also has a JSON file which contains the array of vulnerability
+-// entries for the package. The JSON format is as follows:
+-//
+-// $GOPATH/pkg/mod/cache/download/vulndb/{db hostname}/{import path}/vulns.json
+-// []*osv.Entry
+-
+-// FSCache is a thread-safe file-system cache implementing osv.Cache
+-//
+-// TODO: use something like cmd/go/internal/lockedfile for thread safety?
+-type FSCache struct {
+- mu sync.Mutex
+- rootDir string
+-}
+-
+-// Assert that *FSCache implements client.Cache.
+-var _ client.Cache = (*FSCache)(nil)
+-
+-// use cfg.GOMODCACHE available in cmd/go/internal?
+-var defaultCacheRoot = filepath.Join(build.Default.GOPATH, "/pkg/mod/cache/download/vulndb")
+-
+-func DefaultCache() *FSCache {
+- return &FSCache{rootDir: defaultCacheRoot}
+-}
+-
+-type cachedIndex struct {
+- Retrieved time.Time
+- Index client.DBIndex
+-}
+-
+-func (c *FSCache) ReadIndex(dbName string) (client.DBIndex, time.Time, error) {
+- c.mu.Lock()
+- defer c.mu.Unlock()
+-
+- b, err := ioutil.ReadFile(filepath.Join(c.rootDir, dbName, "index.json"))
+- if err != nil {
+- if os.IsNotExist(err) {
+- return nil, time.Time{}, nil
+- }
+- return nil, time.Time{}, err
+- }
+- var index cachedIndex
+- if err := json.Unmarshal(b, &index); err != nil {
+- return nil, time.Time{}, err
+- }
+- return index.Index, index.Retrieved, nil
+-}
+-
+-func (c *FSCache) WriteIndex(dbName string, index client.DBIndex, retrieved time.Time) error {
+- c.mu.Lock()
+- defer c.mu.Unlock()
+-
+- path := filepath.Join(c.rootDir, dbName)
+- if err := os.MkdirAll(path, 0755); err != nil {
+- return err
+- }
+- j, err := json.Marshal(cachedIndex{
+- Index: index,
+- Retrieved: retrieved,
+- })
+- if err != nil {
+- return err
+- }
+- if err := ioutil.WriteFile(filepath.Join(path, "index.json"), j, 0666); err != nil {
+- return err
+- }
+- return nil
+-}
+-
+-func (c *FSCache) ReadEntries(dbName string, p string) ([]*osv.Entry, error) {
+- c.mu.Lock()
+- defer c.mu.Unlock()
+-
+- b, err := ioutil.ReadFile(filepath.Join(c.rootDir, dbName, p, "vulns.json"))
+- if err != nil {
+- if os.IsNotExist(err) {
+- return nil, nil
+- }
+- return nil, err
+- }
+- var entries []*osv.Entry
+- if err := json.Unmarshal(b, &entries); err != nil {
+- return nil, err
+- }
+- return entries, nil
+-}
+-
+-func (c *FSCache) WriteEntries(dbName string, p string, entries []*osv.Entry) error {
+- c.mu.Lock()
+- defer c.mu.Unlock()
+-
+- path := filepath.Join(c.rootDir, dbName, p)
+- if err := os.MkdirAll(path, 0777); err != nil {
+- return err
+- }
+- j, err := json.Marshal(entries)
+- if err != nil {
+- return err
+- }
+- if err := ioutil.WriteFile(filepath.Join(path, "vulns.json"), j, 0666); err != nil {
+- return err
+- }
+- return nil
+-}
+diff -urN a/gopls/internal/govulncheck/cache_test.go b/gopls/internal/govulncheck/cache_test.go
+--- a/gopls/internal/govulncheck/cache_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/cache_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,165 +0,0 @@
+-// Copyright 2021 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package govulncheck
+-
+-import (
+- "fmt"
+- "os"
+- "path/filepath"
+- "reflect"
+- "testing"
+- "time"
+-
+- "golang.org/x/sync/errgroup"
+- "golang.org/x/vuln/client"
+- "golang.org/x/vuln/osv"
+-)
+-
+-func TestCache(t *testing.T) {
+- tmpDir := t.TempDir()
+-
+- cache := &FSCache{rootDir: tmpDir}
+- dbName := "vulndb.golang.org"
+-
+- _, _, err := cache.ReadIndex(dbName)
+- if err != nil {
+- t.Fatalf("ReadIndex failed for non-existent database: %v", err)
+- }
+-
+- if err = os.Mkdir(filepath.Join(tmpDir, dbName), 0777); err != nil {
+- t.Fatalf("os.Mkdir failed: %v", err)
+- }
+- _, _, err = cache.ReadIndex(dbName)
+- if err != nil {
+- t.Fatalf("ReadIndex failed for database without cached index: %v", err)
+- }
+-
+- now := time.Now()
+- expectedIdx := client.DBIndex{
+- "a.vuln.example.com": time.Time{}.Add(time.Hour),
+- "b.vuln.example.com": time.Time{}.Add(time.Hour * 2),
+- "c.vuln.example.com": time.Time{}.Add(time.Hour * 3),
+- }
+- if err = cache.WriteIndex(dbName, expectedIdx, now); err != nil {
+- t.Fatalf("WriteIndex failed to write index: %v", err)
+- }
+-
+- idx, retrieved, err := cache.ReadIndex(dbName)
+- if err != nil {
+- t.Fatalf("ReadIndex failed for database with cached index: %v", err)
+- }
+- if !reflect.DeepEqual(idx, expectedIdx) {
+- t.Errorf("ReadIndex returned unexpected index, got:\n%s\nwant:\n%s", idx, expectedIdx)
+- }
+- if !retrieved.Equal(now) {
+- t.Errorf("ReadIndex returned unexpected retrieved: got %s, want %s", retrieved, now)
+- }
+-
+- if _, err = cache.ReadEntries(dbName, "vuln.example.com"); err != nil {
+- t.Fatalf("ReadEntires failed for non-existent package: %v", err)
+- }
+-
+- expectedEntries := []*osv.Entry{
+- {ID: "001"},
+- {ID: "002"},
+- {ID: "003"},
+- }
+- if err := cache.WriteEntries(dbName, "vuln.example.com", expectedEntries); err != nil {
+- t.Fatalf("WriteEntries failed: %v", err)
+- }
+-
+- entries, err := cache.ReadEntries(dbName, "vuln.example.com")
+- if err != nil {
+- t.Fatalf("ReadEntries failed for cached package: %v", err)
+- }
+- if !reflect.DeepEqual(entries, expectedEntries) {
+- t.Errorf("ReadEntries returned unexpected entries, got:\n%v\nwant:\n%v", entries, expectedEntries)
+- }
+-}
+-
+-func TestConcurrency(t *testing.T) {
+- tmpDir := t.TempDir()
+-
+- cache := &FSCache{rootDir: tmpDir}
+- dbName := "vulndb.golang.org"
+-
+- g := new(errgroup.Group)
+- for i := 0; i < 1000; i++ {
+- i := i
+- g.Go(func() error {
+- id := i % 5
+- p := fmt.Sprintf("package%d", id)
+-
+- entries, err := cache.ReadEntries(dbName, p)
+- if err != nil {
+- return err
+- }
+-
+- err = cache.WriteEntries(dbName, p, append(entries, &osv.Entry{ID: fmt.Sprint(id)}))
+- if err != nil {
+- return err
+- }
+- return nil
+- })
+- }
+-
+- if err := g.Wait(); err != nil {
+- t.Errorf("error in parallel cache entries read/write: %v", err)
+- }
+-
+- // sanity checking
+- for i := 0; i < 5; i++ {
+- id := fmt.Sprint(i)
+- p := fmt.Sprintf("package%s", id)
+-
+- es, err := cache.ReadEntries(dbName, p)
+- if err != nil {
+- t.Fatalf("failed to read entries: %v", err)
+- }
+- for _, e := range es {
+- if e.ID != id {
+- t.Errorf("want %s ID for vuln entry; got %s", id, e.ID)
+- }
+- }
+- }
+-
+- // do similar for cache index
+- start := time.Now()
+- for i := 0; i < 1000; i++ {
+- i := i
+- g.Go(func() error {
+- id := i % 5
+- p := fmt.Sprintf("package%v", id)
+-
+- idx, _, err := cache.ReadIndex(dbName)
+- if err != nil {
+- return err
+- }
+-
+- if idx == nil {
+- idx = client.DBIndex{}
+- }
+-
+- // sanity checking
+- if rt, ok := idx[p]; ok && rt.Before(start) {
+- return fmt.Errorf("unexpected past time in index: %v before start %v", rt, start)
+- }
+-
+- now := time.Now()
+- idx[p] = now
+- if err := cache.WriteIndex(dbName, idx, now); err != nil {
+- return err
+- }
+- return nil
+- })
+- }
+-
+- if err := g.Wait(); err != nil {
+- t.Errorf("error in parallel cache index read/write: %v", err)
+- }
+-}
+diff -urN a/gopls/internal/govulncheck/copy.sh b/gopls/internal/govulncheck/copy.sh
+--- a/gopls/internal/govulncheck/copy.sh 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/copy.sh 1970-01-01 01:00:00.000000000 +0100
+@@ -1,13 +0,0 @@
+-#!/bin/bash -eu
+-
+-# Copyright 2020 The Go Authors. All rights reserved.
+-# Use of this source code is governed by a BSD-style
+-# license that can be found in the LICENSE file.
+-
+-set -o pipefail
+-
+-# Copy golang.org/x/vuln/cmd/govulncheck/internal/govulncheck into this directory.
+-# Assume the x/vuln repo is a sibling of the tools repo.
+-
+-rm -f *.go
+-cp ../../../../vuln/cmd/govulncheck/internal/govulncheck/*.go .
+diff -urN a/gopls/internal/govulncheck/source.go b/gopls/internal/govulncheck/source.go
+--- a/gopls/internal/govulncheck/source.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/source.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,129 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package govulncheck
+-
+-import (
+- "context"
+- "fmt"
+- "sort"
+- "strings"
+-
+- "golang.org/x/tools/go/packages"
+- "golang.org/x/vuln/client"
+- "golang.org/x/vuln/vulncheck"
+-)
+-
+-// A PackageError contains errors from loading a set of packages.
+-type PackageError struct {
+- Errors []packages.Error
+-}
+-
+-func (e *PackageError) Error() string {
+- var b strings.Builder
+- fmt.Fprintln(&b, "Packages contain errors:")
+- for _, e := range e.Errors {
+- fmt.Println(&b, e)
+- }
+- return b.String()
+-}
+-
+-// LoadPackages loads the packages matching patterns using cfg, after setting
+-// the cfg mode flags that vulncheck needs for analysis.
+-// If the packages contain errors, a PackageError is returned containing a list of the errors,
+-// along with the packages themselves.
+-func LoadPackages(cfg *packages.Config, patterns ...string) ([]*vulncheck.Package, error) {
+- cfg.Mode |= packages.NeedName | packages.NeedFiles | packages.NeedCompiledGoFiles |
+- packages.NeedImports | packages.NeedTypes | packages.NeedTypesSizes |
+- packages.NeedSyntax | packages.NeedTypesInfo | packages.NeedDeps |
+- packages.NeedModule
+-
+- pkgs, err := packages.Load(cfg, patterns...)
+- vpkgs := vulncheck.Convert(pkgs)
+- if err != nil {
+- return nil, err
+- }
+- var perrs []packages.Error
+- packages.Visit(pkgs, nil, func(p *packages.Package) {
+- perrs = append(perrs, p.Errors...)
+- })
+- if len(perrs) > 0 {
+- err = &PackageError{perrs}
+- }
+- return vpkgs, err
+-}
+-
+-// Source calls vulncheck.Source on the Go source in pkgs. It returns the result
+-// with Vulns trimmed to those that are actually called.
+-func Source(ctx context.Context, pkgs []*vulncheck.Package, c client.Client) (*vulncheck.Result, error) {
+- r, err := vulncheck.Source(ctx, pkgs, &vulncheck.Config{Client: c})
+- if err != nil {
+- return nil, err
+- }
+- // Keep only the vulns that are called.
+- var vulns []*vulncheck.Vuln
+- for _, v := range r.Vulns {
+- if v.CallSink != 0 {
+- vulns = append(vulns, v)
+- }
+- }
+- r.Vulns = vulns
+- return r, nil
+-}
+-
+-// CallInfo is information about calls to vulnerable functions.
+-type CallInfo struct {
+- CallStacks map[*vulncheck.Vuln][]vulncheck.CallStack // all call stacks
+- VulnGroups [][]*vulncheck.Vuln // vulns grouped by ID and package
+- ModuleVersions map[string]string // map from module paths to versions
+- TopPackages map[string]bool // top-level packages
+-}
+-
+-// GetCallInfo computes call stacks and related information from a vulncheck.Result.
+-// I also makes a set of top-level packages from pkgs.
+-func GetCallInfo(r *vulncheck.Result, pkgs []*vulncheck.Package) *CallInfo {
+- pset := map[string]bool{}
+- for _, p := range pkgs {
+- pset[p.PkgPath] = true
+- }
+- return &CallInfo{
+- CallStacks: vulncheck.CallStacks(r),
+- VulnGroups: groupByIDAndPackage(r.Vulns),
+- ModuleVersions: moduleVersionMap(r.Modules),
+- TopPackages: pset,
+- }
+-}
+-
+-func groupByIDAndPackage(vs []*vulncheck.Vuln) [][]*vulncheck.Vuln {
+- groups := map[[2]string][]*vulncheck.Vuln{}
+- for _, v := range vs {
+- key := [2]string{v.OSV.ID, v.PkgPath}
+- groups[key] = append(groups[key], v)
+- }
+-
+- var res [][]*vulncheck.Vuln
+- for _, g := range groups {
+- res = append(res, g)
+- }
+- sort.Slice(res, func(i, j int) bool {
+- return res[i][0].PkgPath < res[j][0].PkgPath
+- })
+- return res
+-}
+-
+-// moduleVersionMap builds a map from module paths to versions.
+-func moduleVersionMap(mods []*vulncheck.Module) map[string]string {
+- moduleVersions := map[string]string{}
+- for _, m := range mods {
+- v := m.Version
+- if m.Replace != nil {
+- v = m.Replace.Version
+- }
+- moduleVersions[m.Path] = v
+- }
+- return moduleVersions
+-}
+diff -urN a/gopls/internal/govulncheck/util.go b/gopls/internal/govulncheck/util.go
+--- a/gopls/internal/govulncheck/util.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/util.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,109 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package govulncheck
+-
+-import (
+- "fmt"
+- "strings"
+-
+- "golang.org/x/mod/semver"
+- "golang.org/x/vuln/osv"
+- "golang.org/x/vuln/vulncheck"
+-)
+-
+-// LatestFixed returns the latest fixed version in the list of affected ranges,
+-// or the empty string if there are no fixed versions.
+-func LatestFixed(as []osv.Affected) string {
+- v := ""
+- for _, a := range as {
+- for _, r := range a.Ranges {
+- if r.Type == osv.TypeSemver {
+- for _, e := range r.Events {
+- if e.Fixed != "" && (v == "" || semver.Compare(e.Fixed, v) > 0) {
+- v = e.Fixed
+- }
+- }
+- }
+- }
+- }
+- return v
+-}
+-
+-// SummarizeCallStack returns a short description of the call stack.
+-// It uses one of two forms, depending on what the lowest function F in topPkgs
+-// calls:
+-// - If it calls a function V from the vulnerable package, then summarizeCallStack
+-// returns "F calls V".
+-// - If it calls a function G in some other package, which eventually calls V,
+-// it returns "F calls G, which eventually calls V".
+-//
+-// If it can't find any of these functions, summarizeCallStack returns the empty string.
+-func SummarizeCallStack(cs vulncheck.CallStack, topPkgs map[string]bool, vulnPkg string) string {
+- // Find the lowest function in the top packages.
+- iTop := lowest(cs, func(e vulncheck.StackEntry) bool {
+- return topPkgs[PkgPath(e.Function)]
+- })
+- if iTop < 0 {
+- return ""
+- }
+- // Find the highest function in the vulnerable package that is below iTop.
+- iVuln := highest(cs[iTop+1:], func(e vulncheck.StackEntry) bool {
+- return PkgPath(e.Function) == vulnPkg
+- })
+- if iVuln < 0 {
+- return ""
+- }
+- iVuln += iTop + 1 // adjust for slice in call to highest.
+- topName := FuncName(cs[iTop].Function)
+- vulnName := FuncName(cs[iVuln].Function)
+- if iVuln == iTop+1 {
+- return fmt.Sprintf("%s calls %s", topName, vulnName)
+- }
+- return fmt.Sprintf("%s calls %s, which eventually calls %s",
+- topName, FuncName(cs[iTop+1].Function), vulnName)
+-}
+-
+-// highest returns the highest (one with the smallest index) entry in the call
+-// stack for which f returns true.
+-func highest(cs vulncheck.CallStack, f func(e vulncheck.StackEntry) bool) int {
+- for i := 0; i < len(cs); i++ {
+- if f(cs[i]) {
+- return i
+- }
+- }
+- return -1
+-}
+-
+-// lowest returns the lowest (one with the largets index) entry in the call
+-// stack for which f returns true.
+-func lowest(cs vulncheck.CallStack, f func(e vulncheck.StackEntry) bool) int {
+- for i := len(cs) - 1; i >= 0; i-- {
+- if f(cs[i]) {
+- return i
+- }
+- }
+- return -1
+-}
+-
+-// PkgPath returns the package path from fn.
+-func PkgPath(fn *vulncheck.FuncNode) string {
+- if fn.PkgPath != "" {
+- return fn.PkgPath
+- }
+- s := strings.TrimPrefix(fn.RecvType, "*")
+- if i := strings.LastIndexByte(s, '.'); i > 0 {
+- s = s[:i]
+- }
+- return s
+-}
+-
+-// FuncName returns the function name from fn, adjusted
+-// to remove pointer annotations.
+-func FuncName(fn *vulncheck.FuncNode) string {
+- return strings.TrimPrefix(fn.String(), "*")
+-}
+diff -urN a/gopls/internal/govulncheck/util_test.go b/gopls/internal/govulncheck/util_test.go
+--- a/gopls/internal/govulncheck/util_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/govulncheck/util_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,85 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package govulncheck
+-
+-import (
+- "strings"
+- "testing"
+-
+- "golang.org/x/vuln/vulncheck"
+-)
+-
+-func TestPkgPath(t *testing.T) {
+- for _, test := range []struct {
+- in vulncheck.FuncNode
+- want string
+- }{
+- {
+- vulncheck.FuncNode{PkgPath: "math", Name: "Floor"},
+- "math",
+- },
+- {
+- vulncheck.FuncNode{RecvType: "a.com/b.T", Name: "M"},
+- "a.com/b",
+- },
+- {
+- vulncheck.FuncNode{RecvType: "*a.com/b.T", Name: "M"},
+- "a.com/b",
+- },
+- } {
+- got := PkgPath(&test.in)
+- if got != test.want {
+- t.Errorf("%+v: got %q, want %q", test.in, got, test.want)
+- }
+- }
+-}
+-
+-func TestSummarizeCallStack(t *testing.T) {
+- topPkgs := map[string]bool{"t1": true, "t2": true}
+- vulnPkg := "v"
+-
+- for _, test := range []struct {
+- in, want string
+- }{
+- {"a.F", ""},
+- {"t1.F", ""},
+- {"v.V", ""},
+- {
+- "t1.F v.V",
+- "t1.F calls v.V",
+- },
+- {
+- "t1.F t2.G v.V1 v.v2",
+- "t2.G calls v.V1",
+- },
+- {
+- "t1.F x.Y t2.G a.H b.I c.J v.V",
+- "t2.G calls a.H, which eventually calls v.V",
+- },
+- } {
+- in := stringToCallStack(test.in)
+- got := SummarizeCallStack(in, topPkgs, vulnPkg)
+- if got != test.want {
+- t.Errorf("%s:\ngot %s\nwant %s", test.in, got, test.want)
+- }
+- }
+-}
+-
+-func stringToCallStack(s string) vulncheck.CallStack {
+- var cs vulncheck.CallStack
+- for _, e := range strings.Fields(s) {
+- parts := strings.Split(e, ".")
+- cs = append(cs, vulncheck.StackEntry{
+- Function: &vulncheck.FuncNode{
+- PkgPath: parts[0],
+- Name: parts[1],
+- },
+- })
+- }
+- return cs
+-}
diff -urN a/gopls/internal/hooks/analysis.go b/gopls/internal/hooks/analysis.go
---- a/gopls/internal/hooks/analysis.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/analysis.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,60 +0,0 @@
+--- a/gopls/internal/hooks/analysis.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/analysis.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,62 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
--//go:build go1.15
--// +build go1.15
+-//go:build go1.17
+-// +build go1.17
-
-package hooks
-
@@ -5169,6 +5989,8 @@
-)
-
-func updateAnalyzers(options *source.Options) {
+- options.StaticcheckSupported = true
+-
- mapSeverity := func(severity lint.Severity) protocol.DiagnosticSeverity {
- switch severity {
- case lint.SeverityError:
@@ -5209,25 +6031,27 @@
- add(stylecheck.Analyzers, nil)
- add(quickfix.Analyzers, nil)
-}
-diff -urN a/gopls/internal/hooks/analysis_115.go b/gopls/internal/hooks/analysis_115.go
---- a/gopls/internal/hooks/analysis_115.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/analysis_115.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,12 +0,0 @@
+diff -urN a/gopls/internal/hooks/analysis_117.go b/gopls/internal/hooks/analysis_117.go
+--- a/gopls/internal/hooks/analysis_117.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/analysis_117.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,14 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
--//go:build !go1.15
--// +build !go1.15
+-//go:build !go1.17
+-// +build !go1.17
-
-package hooks
-
-import "golang.org/x/tools/internal/lsp/source"
-
--func updateAnalyzers(_ *source.Options) {}
+-func updateAnalyzers(options *source.Options) {
+- options.StaticcheckSupported = false
+-}
diff -urN a/gopls/internal/hooks/diff.go b/gopls/internal/hooks/diff.go
---- a/gopls/internal/hooks/diff.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/diff.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/hooks/diff.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/diff.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -5271,8 +6095,8 @@
- return edits, nil
-}
diff -urN a/gopls/internal/hooks/diff_test.go b/gopls/internal/hooks/diff_test.go
---- a/gopls/internal/hooks/diff_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/diff_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/hooks/diff_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/diff_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -5291,8 +6115,8 @@
- difftest.DiffTest(t, hooks.ComputeEdits)
-}
diff -urN a/gopls/internal/hooks/gen-licenses.sh b/gopls/internal/hooks/gen-licenses.sh
---- a/gopls/internal/hooks/gen-licenses.sh 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/gen-licenses.sh 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/hooks/gen-licenses.sh 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/gen-licenses.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-#!/bin/bash -eu
-
@@ -5334,9 +6158,9 @@
-mv $tempfile $output
\ No newline at end of file
diff -urN a/gopls/internal/hooks/hooks.go b/gopls/internal/hooks/hooks.go
---- a/gopls/internal/hooks/hooks.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/hooks.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,37 +0,0 @@
+--- a/gopls/internal/hooks/hooks.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/hooks.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,34 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -5348,8 +6172,8 @@
-
-import (
- "context"
-- "regexp"
-
+- "golang.org/x/tools/gopls/internal/vulncheck"
- "golang.org/x/tools/internal/lsp/source"
- "mvdan.cc/gofumpt/format"
- "mvdan.cc/xurls/v2"
@@ -5360,23 +6184,20 @@
- if options.GoDiff {
- options.ComputeEdits = ComputeEdits
- }
-- options.URLRegexp = relaxedFullWord
-- options.GofumptFormat = func(ctx context.Context, src []byte) ([]byte, error) {
-- return format.Source(src, format.Options{})
+- options.URLRegexp = xurls.Relaxed()
+- options.GofumptFormat = func(ctx context.Context, langVersion, modulePath string, src []byte) ([]byte, error) {
+- return format.Source(src, format.Options{
+- LangVersion: langVersion,
+- ModulePath: modulePath,
+- })
- }
- updateAnalyzers(options)
--}
-
--var relaxedFullWord *regexp.Regexp
--
--// Ensure links are matched as full words, not anywhere.
--func init() {
-- relaxedFullWord = regexp.MustCompile(`\b(` + xurls.Relaxed().String() + `)\b`)
-- relaxedFullWord.Longest()
+- options.Govulncheck = vulncheck.Govulncheck
-}
diff -urN a/gopls/internal/hooks/licenses.go b/gopls/internal/hooks/licenses.go
---- a/gopls/internal/hooks/licenses.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/licenses.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/hooks/licenses.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/licenses.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,169 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -5548,8 +6369,8 @@
-
-`
diff -urN a/gopls/internal/hooks/licenses_test.go b/gopls/internal/hooks/licenses_test.go
---- a/gopls/internal/hooks/licenses_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/hooks/licenses_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/hooks/licenses_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/hooks/licenses_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -5570,7 +6391,7 @@
-func TestLicenses(t *testing.T) {
- // License text differs for older Go versions because staticcheck isn't
- // supported for those versions.
-- testenv.NeedsGo1Point(t, 15)
+- testenv.NeedsGo1Point(t, 17)
-
- if runtime.GOOS != "linux" && runtime.GOOS != "darwin" {
- t.Skip("generating licenses only works on Unixes")
@@ -5598,9 +6419,9 @@
- }
-}
diff -urN a/gopls/internal/regtest/bench/bench_test.go b/gopls/internal/regtest/bench/bench_test.go
---- a/gopls/internal/regtest/bench/bench_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/bench/bench_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,190 +0,0 @@
+--- a/gopls/internal/regtest/bench/bench_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/bench/bench_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,194 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -5615,6 +6436,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- "golang.org/x/tools/internal/lsp/fake"
- . "golang.org/x/tools/internal/lsp/regtest"
-
@@ -5622,6 +6444,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -5733,7 +6556,7 @@
-}
-
-var (
-- benchDir = flag.String("didchange_dir", "", "If set, run benchmarks in this dir. Must also set regtest_bench_file.")
+- benchDir = flag.String("didchange_dir", "", "If set, run benchmarks in this dir. Must also set didchange_file.")
- benchFile = flag.String("didchange_file", "", "The file to modify")
- benchProfile = flag.String("didchange_cpuprof", "", "file to write cpu profiling data to")
-)
@@ -5747,9 +6570,9 @@
-// is the path to a workspace root, and -didchange_file is the
-// workspace-relative path to a file to modify. e.g.:
-//
--// go test -run=TestBenchmarkDidChange \
--// -didchange_dir=path/to/kubernetes \
--// -didchange_file=pkg/util/hash/hash.go
+-// go test -run=TestBenchmarkDidChange \
+-// -didchange_dir=path/to/kubernetes \
+-// -didchange_file=pkg/util/hash/hash.go
-func TestBenchmarkDidChange(t *testing.T) {
- if *benchDir == "" {
- t.Skip("-didchange_dir is not set")
@@ -5764,19 +6587,22 @@
- env.Await(env.DoneWithOpen())
- // Insert the text we'll be modifying at the top of the file.
- env.EditBuffer(*benchFile, fake.Edit{Text: "// __REGTEST_PLACEHOLDER_0__\n"})
-- result := testing.Benchmark(func(b *testing.B) {
-- if *benchProfile != "" {
-- profile, err := os.Create(*benchProfile)
-- if err != nil {
-- t.Fatal(err)
-- }
-- defer profile.Close()
-- if err := pprof.StartCPUProfile(profile); err != nil {
-- t.Fatal(err)
-- }
-- defer pprof.StopCPUProfile()
+-
+- // Run the profiler after the initial load,
+- // across all benchmark iterations.
+- if *benchProfile != "" {
+- profile, err := os.Create(*benchProfile)
+- if err != nil {
+- t.Fatal(err)
- }
-- b.ResetTimer()
+- defer profile.Close()
+- if err := pprof.StartCPUProfile(profile); err != nil {
+- t.Fatal(err)
+- }
+- defer pprof.StopCPUProfile()
+- }
+-
+- result := testing.Benchmark(func(b *testing.B) {
- for i := 0; i < b.N; i++ {
- env.EditBuffer(*benchFile, fake.Edit{
- Start: fake.Pos{Line: 0, Column: 0},
@@ -5786,15 +6612,14 @@
- })
- env.Await(StartedChange(uint64(i + 1)))
- }
-- b.StopTimer()
- })
- printBenchmarkResults(result)
- })
-}
diff -urN a/gopls/internal/regtest/bench/completion_bench_test.go b/gopls/internal/regtest/bench/completion_bench_test.go
---- a/gopls/internal/regtest/bench/completion_bench_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/bench/completion_bench_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,186 +0,0 @@
+--- a/gopls/internal/regtest/bench/completion_bench_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/bench/completion_bench_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,187 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -5888,10 +6713,11 @@
-// Benchmark completion at a specified file and location. When no CLI options
-// are specified, this test is skipped.
-// To Run (from x/tools/gopls) against the dummy function above:
--// go test -v ./internal/regtest/bench -run=TestBenchmarkConfiguredCompletion
--// -completion_workdir="$HOME/Developer/tools"
--// -completion_file="gopls/internal/regtest/completion_bench_test.go"
--// -completion_regexp="dummyCompletionFunction.*fmt\.Printf\(\"%s\", s(\))"
+-//
+-// go test -v ./internal/regtest/bench -run=TestBenchmarkConfiguredCompletion
+-// -completion_workdir="$HOME/Developer/tools"
+-// -completion_file="gopls/internal/regtest/completion_bench_test.go"
+-// -completion_regexp="dummyCompletionFunction.*fmt\.Printf\(\"%s\", s(\))"
-func TestBenchmarkConfiguredCompletion(t *testing.T) {
- benchmarkCompletion(completionOptions, t)
-}
@@ -5982,8 +6808,8 @@
- }, t)
-}
diff -urN a/gopls/internal/regtest/bench/stress_test.go b/gopls/internal/regtest/bench/stress_test.go
---- a/gopls/internal/regtest/bench/stress_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/bench/stress_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/bench/stress_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/bench/stress_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,66 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -6052,9 +6878,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/codelens/codelens_test.go b/gopls/internal/regtest/codelens/codelens_test.go
---- a/gopls/internal/regtest/codelens/codelens_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/codelens/codelens_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,353 +0,0 @@
+--- a/gopls/internal/regtest/codelens/codelens_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/codelens/codelens_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,355 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -6068,6 +6894,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- . "golang.org/x/tools/internal/lsp/regtest"
-
- "golang.org/x/tools/internal/lsp/command"
@@ -6078,6 +6905,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -6408,10 +7236,137 @@
- )
- })
-}
+diff -urN a/gopls/internal/regtest/completion/completion18_test.go b/gopls/internal/regtest/completion/completion18_test.go
+--- a/gopls/internal/regtest/completion/completion18_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/completion/completion18_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,123 +0,0 @@
+-// Copyright 2021 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package completion
+-
+-import (
+- "testing"
+-
+- . "golang.org/x/tools/internal/lsp/regtest"
+-)
+-
+-// test generic receivers
+-func TestGenericReceiver(t *testing.T) {
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.18
+--- main.go --
+-package main
+-type SyncMap[K any, V comparable] struct {}
+-func (s *SyncMap[K,V]) f() {}
+-type XX[T any] struct {}
+-type UU[T any] struct {}
+-func (s SyncMap[XX,string]) g(v UU) {}
+-`
+-
+- tests := []struct {
+- pat string
+- want []string
+- }{
+- {"s .Syn", []string{"SyncMap[K, V]"}},
+- {"Map.X", []string{}}, // This is probably wrong, Maybe "XX"?
+- {"v U", []string{"UU", "uint", "uint16", "uint32", "uint64", "uint8", "uintptr"}}, // not U[T]
+- }
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("main.go")
+- env.Await(env.DoneWithOpen())
+- for _, tst := range tests {
+- pos := env.RegexpSearch("main.go", tst.pat)
+- pos.Column += len(tst.pat)
+- completions := env.Completion("main.go", pos)
+- result := compareCompletionResults(tst.want, completions.Items)
+- if result != "" {
+- t.Errorf("%s: wanted %v", result, tst.want)
+- for i, g := range completions.Items {
+- t.Errorf("got %d %s %s", i, g.Label, g.Detail)
+- }
+- }
+- }
+- })
+-}
+-func TestFuzzFunc(t *testing.T) {
+- // use the example from the package documentation
+- modfile := `
+--- go.mod --
+-module mod.com
+-
+-go 1.18
+-`
+- part0 := `package foo
+-import "testing"
+-func FuzzNone(f *testing.F) {
+- f.Add(12) // better not find this f.Add
+-}
+-func FuzzHex(f *testing.F) {
+- for _, seed := range [][]byte{{}, {0}, {9}, {0xa}, {0xf}, {1, 2, 3, 4}} {
+- f.Ad`
+- part1 := `d(seed)
+- }
+- f.F`
+- part2 := `uzz(func(t *testing.T, in []byte) {
+- enc := hex.EncodeToString(in)
+- out, err := hex.DecodeString(enc)
+- if err != nil {
+- f.Failed()
+- }
+- if !bytes.Equal(in, out) {
+- t.Fatalf("%v: round trip: %v, %s", in, out, f.Name())
+- }
+- })
+-}
+-`
+- data := modfile + `-- a_test.go --
+-` + part0 + `
+--- b_test.go --
+-` + part0 + part1 + `
+--- c_test.go --
+-` + part0 + part1 + part2
+-
+- tests := []struct {
+- file string
+- pat string
+- offset int // from the beginning of pat to what the user just typed
+- want []string
+- }{
+- {"a_test.go", "f.Ad", 3, []string{"Add"}},
+- {"c_test.go", " f.F", 4, []string{"Failed"}},
+- {"c_test.go", "f.N", 3, []string{"Name"}},
+- {"b_test.go", "f.F", 3, []string{"Fuzz(func(t *testing.T, a []byte)", "Fail", "FailNow",
+- "Failed", "Fatal", "Fatalf"}},
+- }
+- Run(t, data, func(t *testing.T, env *Env) {
+- for _, test := range tests {
+- env.OpenFile(test.file)
+- env.Await(env.DoneWithOpen())
+- pos := env.RegexpSearch(test.file, test.pat)
+- pos.Column += test.offset // character user just typed? will type?
+- completions := env.Completion(test.file, pos)
+- result := compareCompletionResults(test.want, completions.Items)
+- if result != "" {
+- t.Errorf("pat %q %q", test.pat, result)
+- for i, it := range completions.Items {
+- t.Errorf("%d got %q %q", i, it.Label, it.Detail)
+- }
+- }
+- }
+- })
+-}
diff -urN a/gopls/internal/regtest/completion/completion_test.go b/gopls/internal/regtest/completion/completion_test.go
---- a/gopls/internal/regtest/completion/completion_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/completion/completion_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,544 +0,0 @@
+--- a/gopls/internal/regtest/completion/completion_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/completion/completion_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,648 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -6424,6 +7379,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- . "golang.org/x/tools/internal/lsp/regtest"
-
- "golang.org/x/tools/internal/lsp/fake"
@@ -6432,6 +7388,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -6662,11 +7619,15 @@
- var got []string
- for _, item := range gotItems {
- got = append(got, item.Label)
+- if item.Label != item.InsertText && item.TextEdit == nil {
+- // Label should be the same as InsertText, if InsertText is to be used
+- return fmt.Sprintf("label not the same as InsertText %#v", item)
+- }
- }
-
- for i, v := range got {
- if v != want[i] {
-- return fmt.Sprintf("completion results are not the same: got %v, want %v", got, want)
+- return fmt.Sprintf("%d completion result not the same: got %q, want %q", i, v, want[i])
- }
- }
-
@@ -6956,9 +7917,107 @@
- }
- })
-}
+-
+-func TestDefinition(t *testing.T) {
+- stuff := `
+--- go.mod --
+-module mod.com
+-
+-go 1.18
+--- a_test.go --
+-package foo
+-func T()
+-func TestG()
+-func TestM()
+-func TestMi()
+-func Ben()
+-func Fuz()
+-func Testx()
+-func TestMe(t *testing.T)
+-func BenchmarkFoo()
+-`
+- // All those parentheses are needed for the completion code to see
+- // later lines as being definitions
+- tests := []struct {
+- pat string
+- want []string
+- }{
+- {"T", []string{"TestXxx(t *testing.T)", "TestMain(m *testing.M)"}},
+- {"TestM", []string{"TestMain(m *testing.M)", "TestM(t *testing.T)"}},
+- {"TestMi", []string{"TestMi(t *testing.T)"}},
+- {"TestG", []string{"TestG(t *testing.T)"}},
+- {"B", []string{"BenchmarkXxx(b *testing.B)"}},
+- {"BenchmarkFoo", []string{"BenchmarkFoo(b *testing.B)"}},
+- {"F", []string{"FuzzXxx(f *testing.F)"}},
+- {"Testx", nil},
+- {"TestMe", []string{"TestMe"}},
+- }
+- fname := "a_test.go"
+- Run(t, stuff, func(t *testing.T, env *Env) {
+- env.OpenFile(fname)
+- env.Await(env.DoneWithOpen())
+- for _, tst := range tests {
+- pos := env.RegexpSearch(fname, tst.pat)
+- pos.Column += len(tst.pat)
+- completions := env.Completion(fname, pos)
+- result := compareCompletionResults(tst.want, completions.Items)
+- if result != "" {
+- t.Errorf("%s failed: %s:%q", tst.pat, result, tst.want)
+- for i, it := range completions.Items {
+- t.Errorf("%d got %q %q", i, it.Label, it.Detail)
+- }
+- }
+- }
+- })
+-}
+-
+-func TestGoWorkCompletion(t *testing.T) {
+- const files = `
+--- go.work --
+-go 1.18
+-
+-use ./a
+-use ./a/ba
+-use ./a/b/
+-use ./dir/foo
+-use ./dir/foobar/
+--- a/go.mod --
+--- go.mod --
+--- a/bar/go.mod --
+--- a/b/c/d/e/f/go.mod --
+--- dir/bar --
+--- dir/foobar/go.mod --
+-`
+-
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("go.work")
+-
+- tests := []struct {
+- re string
+- want []string
+- }{
+- {`use ()\.`, []string{".", "./a", "./a/bar", "./dir/foobar"}},
+- {`use \.()`, []string{"", "/a", "/a/bar", "/dir/foobar"}},
+- {`use \./()`, []string{"a", "a/bar", "dir/foobar"}},
+- {`use ./a()`, []string{"", "/b/c/d/e/f", "/bar"}},
+- {`use ./a/b()`, []string{"/c/d/e/f", "ar"}},
+- {`use ./a/b/()`, []string{`c/d/e/f`}},
+- {`use ./a/ba()`, []string{"r"}},
+- {`use ./dir/foo()`, []string{"bar"}},
+- {`use ./dir/foobar/()`, []string{}},
+- }
+- for _, tt := range tests {
+- completions := env.Completion("go.work", env.RegexpSearch("go.work", tt.re))
+- diff := compareCompletionResults(tt.want, completions.Items)
+- if diff != "" {
+- t.Errorf("%s: %s", tt.re, diff)
+- }
+- }
+- })
+-}
diff -urN a/gopls/internal/regtest/completion/postfix_snippet_test.go b/gopls/internal/regtest/completion/postfix_snippet_test.go
---- a/gopls/internal/regtest/completion/postfix_snippet_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/completion/postfix_snippet_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/completion/postfix_snippet_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/completion/postfix_snippet_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,442 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -7402,9 +8461,47 @@
- }
- })
-}
+diff -urN a/gopls/internal/regtest/debug/debug_test.go b/gopls/internal/regtest/debug/debug_test.go
+--- a/gopls/internal/regtest/debug/debug_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/debug/debug_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,34 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package debug
+-
+-import (
+- "testing"
+-
+- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
+- . "golang.org/x/tools/internal/lsp/regtest"
+-)
+-
+-func TestMain(m *testing.M) {
+- Main(m, hooks.Options)
+-}
+-
+-func TestBugNotification(t *testing.T) {
+- // Verify that a properly configured session gets notified of a bug on the
+- // server.
+- WithOptions(
+- Modes(Singleton), // must be in-process to receive the bug report below
+- EditorConfig{
+- Settings: map[string]interface{}{
+- "showBugReports": true,
+- },
+- },
+- ).Run(t, "", func(t *testing.T, env *Env) {
+- const desc = "got a bug"
+- bug.Report(desc, nil)
+- env.Await(ShownMessage(desc))
+- })
+-}
diff -urN a/gopls/internal/regtest/diagnostics/builtin_test.go b/gopls/internal/regtest/diagnostics/builtin_test.go
---- a/gopls/internal/regtest/diagnostics/builtin_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/diagnostics/builtin_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/diagnostics/builtin_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/diagnostics/builtin_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -7445,9 +8542,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/diagnostics/diagnostics_test.go b/gopls/internal/regtest/diagnostics/diagnostics_test.go
---- a/gopls/internal/regtest/diagnostics/diagnostics_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/diagnostics/diagnostics_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,2140 +0,0 @@
+--- a/gopls/internal/regtest/diagnostics/diagnostics_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/diagnostics/diagnostics_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,2268 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -7461,6 +8558,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- . "golang.org/x/tools/internal/lsp/regtest"
-
- "golang.org/x/tools/internal/lsp"
@@ -7470,6 +8568,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -8715,7 +9814,11 @@
-`
-
- WithOptions(
-- EditorConfig{EnableStaticcheck: true},
+- EditorConfig{
+- Settings: map[string]interface{}{
+- "staticcheck": true,
+- },
+- },
- ).Run(t, files, func(t *testing.T, env *Env) {
- env.OpenFile("main.go")
- var d protocol.PublishDiagnosticsParams
@@ -8963,7 +10066,6 @@
-// TestProgressBarErrors confirms that critical workspace load errors are shown
-// and updated via progress reports.
-func TestProgressBarErrors(t *testing.T) {
-- t.Skip("too flaky: golang/go#46930")
- testenv.NeedsGo1Point(t, 14)
-
- const pkg = `
@@ -9096,7 +10198,19 @@
- Run(t, mod, func(t *testing.T, env *Env) {
- env.OpenFile("a/a.go")
- env.OpenFile("b/b.go")
-- env.Await(env.DiagnosticAtRegexp("a/a.go", `"mod.test/b"`))
+- env.Await(
+- OnceMet(
+- env.DoneWithOpen(),
+- // The Go command sometimes tells us about only one of the import cycle
+- // errors below. For robustness of this test, succeed if we get either.
+- //
+- // TODO(golang/go#52904): we should get *both* of these errors.
+- AnyOf(
+- env.DiagnosticAtRegexpWithMessage("a/a.go", `"mod.test/b"`, "import cycle"),
+- env.DiagnosticAtRegexpWithMessage("b/b.go", `"mod.test/a"`, "import cycle"),
+- ),
+- ),
+- )
- env.RegexpReplace("b/b.go", `const B = a\.B`, "")
- env.SaveBuffer("b/b.go")
- env.Await(
@@ -9588,9 +10702,120 @@
- )
- })
-}
+-
+-func TestLangVersion(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18) // Requires types.Config.GoVersion, new in 1.18.
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- main.go --
+-package main
+-
+-const C = 0b10
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.Await(env.DiagnosticAtRegexpWithMessage("main.go", `0b10`, "go1.13 or later"))
+- env.WriteWorkspaceFile("go.mod", "module mod.com \n\ngo 1.13\n")
+- env.Await(EmptyDiagnostics("main.go"))
+- })
+-}
+-
+-func TestNoQuickFixForUndeclaredConstraint(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18)
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.18
+--- main.go --
+-package main
+-
+-func F[T C](_ T) {
+-}
+-`
+-
+- Run(t, files, func(t *testing.T, env *Env) {
+- var d protocol.PublishDiagnosticsParams
+- env.Await(
+- OnceMet(
+- env.DiagnosticAtRegexpWithMessage("main.go", `C`, "undeclared name"),
+- ReadDiagnostics("main.go", &d),
+- ),
+- )
+- if fixes := env.GetQuickFixes("main.go", d.Diagnostics); len(fixes) != 0 {
+- t.Errorf("got quick fixes %v, wanted none", fixes)
+- }
+- })
+-}
+-
+-func TestEditGoDirective(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18)
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.16
+--- main.go --
+-package main
+-
+-func F[T any](_ T) {
+-}
+-`
+- Run(t, files, func(_ *testing.T, env *Env) { // Create a new workspace-level directory and empty file.
+- var d protocol.PublishDiagnosticsParams
+- env.Await(
+- OnceMet(
+- env.DiagnosticAtRegexpWithMessage("main.go", `T any`, "type parameters require"),
+- ReadDiagnostics("main.go", &d),
+- ),
+- )
+-
+- env.ApplyQuickFixes("main.go", d.Diagnostics)
+-
+- env.Await(
+- EmptyDiagnostics("main.go"),
+- )
+- })
+-}
+-
+-func TestEditGoDirectiveWorkspace(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18)
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.16
+--- go.work --
+-go 1.18
+-
+-use .
+--- main.go --
+-package main
+-
+-func F[T any](_ T) {
+-}
+-`
+- Run(t, files, func(_ *testing.T, env *Env) { // Create a new workspace-level directory and empty file.
+- var d protocol.PublishDiagnosticsParams
+- env.Await(
+- OnceMet(
+- env.DiagnosticAtRegexpWithMessage("main.go", `T any`, "type parameters require"),
+- ReadDiagnostics("main.go", &d),
+- ),
+- )
+-
+- env.ApplyQuickFixes("main.go", d.Diagnostics)
+-
+- env.Await(
+- EmptyDiagnostics("main.go"),
+- )
+- })
+-}
diff -urN a/gopls/internal/regtest/diagnostics/undeclared_test.go b/gopls/internal/regtest/diagnostics/undeclared_test.go
---- a/gopls/internal/regtest/diagnostics/undeclared_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/diagnostics/undeclared_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/diagnostics/undeclared_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/diagnostics/undeclared_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,67 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -9659,72 +10884,9 @@
- }
- })
-}
-diff -urN a/gopls/internal/regtest/misc/add_import_test.go b/gopls/internal/regtest/misc/add_import_test.go
---- a/gopls/internal/regtest/misc/add_import_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/add_import_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,59 +0,0 @@
--// Copyright 2021 The Go Authors. All rights reserved.
--// Use of this source code is governed by a BSD-style
--// license that can be found in the LICENSE file.
--
--package misc
--
--import (
-- "testing"
--
-- "golang.org/x/tools/internal/lsp/command"
-- "golang.org/x/tools/internal/lsp/protocol"
-- . "golang.org/x/tools/internal/lsp/regtest"
-- "golang.org/x/tools/internal/lsp/tests"
--)
--
--func TestAddImport(t *testing.T) {
-- const before = `package main
--
--import "fmt"
--
--func main() {
-- fmt.Println("hello world")
--}
--`
--
-- const want = `package main
--
--import (
-- "bytes"
-- "fmt"
--)
--
--func main() {
-- fmt.Println("hello world")
--}
--`
--
-- Run(t, "", func(t *testing.T, env *Env) {
-- env.CreateBuffer("main.go", before)
-- cmd, err := command.NewAddImportCommand("Add Import", command.AddImportArgs{
-- URI: protocol.URIFromSpanURI(env.Sandbox.Workdir.URI("main.go").SpanURI()),
-- ImportPath: "bytes",
-- })
-- if err != nil {
-- t.Fatal(err)
-- }
-- _, err = env.Editor.ExecuteCommand(env.Ctx, &protocol.ExecuteCommandParams{
-- Command: "gopls.add_import",
-- Arguments: cmd.Arguments,
-- })
-- if err != nil {
-- t.Fatal(err)
-- }
-- got := env.Editor.BufferText("main.go")
-- if got != want {
-- t.Fatalf("gopls.add_import failed\n%s", tests.Diff(t, want, got))
-- }
-- })
--}
diff -urN a/gopls/internal/regtest/misc/call_hierarchy_test.go b/gopls/internal/regtest/misc/call_hierarchy_test.go
---- a/gopls/internal/regtest/misc/call_hierarchy_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/call_hierarchy_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/call_hierarchy_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/call_hierarchy_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -9762,9 +10924,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/configuration_test.go b/gopls/internal/regtest/misc/configuration_test.go
---- a/gopls/internal/regtest/misc/configuration_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/configuration_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,49 +0,0 @@
+--- a/gopls/internal/regtest/misc/configuration_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/configuration_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,80 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -9783,8 +10945,10 @@
-// Test that enabling and disabling produces the expected results of showing
-// and hiding staticcheck analysis results.
-func TestChangeConfiguration(t *testing.T) {
-- // Staticcheck only supports Go versions > 1.14.
-- testenv.NeedsGo1Point(t, 15)
+- // Staticcheck only supports Go versions >= 1.17.
+- // Note: keep this in sync with TestStaticcheckWarning. Below this version we
+- // should get an error when setting staticcheck configuration.
+- testenv.NeedsGo1Point(t, 17)
-
- const files = `
--- go.mod --
@@ -9807,16 +10971,45 @@
- )
- cfg := &fake.EditorConfig{}
- *cfg = env.Editor.Config
-- cfg.EnableStaticcheck = true
+- cfg.Settings = map[string]interface{}{
+- "staticcheck": true,
+- }
- env.ChangeConfiguration(t, cfg)
- env.Await(
- DiagnosticAt("a/a.go", 5, 4),
- )
- })
-}
+-
+-func TestStaticcheckWarning(t *testing.T) {
+- // Note: keep this in sync with TestChangeConfiguration.
+- testenv.SkipAfterGo1Point(t, 16)
+-
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- a/a.go --
+-package a
+-
+-import "errors"
+-
+-// FooErr should be called ErrFoo (ST1012)
+-var FooErr = errors.New("foo")
+-`
+-
+- WithOptions(EditorConfig{
+- Settings: map[string]interface{}{
+- "staticcheck": true,
+- },
+- }).Run(t, files, func(t *testing.T, env *Env) {
+- env.Await(ShownMessage("staticcheck is not supported"))
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/debugserver_test.go b/gopls/internal/regtest/misc/debugserver_test.go
---- a/gopls/internal/regtest/misc/debugserver_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/debugserver_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/debugserver_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/debugserver_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -9865,8 +11058,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/definition_test.go b/gopls/internal/regtest/misc/definition_test.go
---- a/gopls/internal/regtest/misc/definition_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/definition_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/definition_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/definition_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,291 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10160,8 +11353,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/embed_test.go b/gopls/internal/regtest/misc/embed_test.go
---- a/gopls/internal/regtest/misc/embed_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/embed_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/embed_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/embed_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10201,8 +11394,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/failures_test.go b/gopls/internal/regtest/misc/failures_test.go
---- a/gopls/internal/regtest/misc/failures_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/failures_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/failures_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/failures_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,70 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10275,8 +11468,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/fix_test.go b/gopls/internal/regtest/misc/fix_test.go
---- a/gopls/internal/regtest/misc/fix_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/fix_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/fix_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/fix_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,107 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10386,9 +11579,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/formatting_test.go b/gopls/internal/regtest/misc/formatting_test.go
---- a/gopls/internal/regtest/misc/formatting_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/formatting_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,303 +0,0 @@
+--- a/gopls/internal/regtest/misc/formatting_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/formatting_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,369 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -10692,9 +11885,75 @@
- }
- })
-}
+-
+-func TestGofumptFormatting(t *testing.T) {
+-
+- // Exercise some gofumpt formatting rules:
+- // - No empty lines following an assignment operator
+- // - Octal integer literals should use the 0o prefix on modules using Go
+- // 1.13 and later. Requires LangVersion to be correctly resolved.
+- // - std imports must be in a separate group at the top. Requires ModulePath
+- // to be correctly resolved.
+- const input = `
+--- go.mod --
+-module foo
+-
+-go 1.17
+--- foo.go --
+-package foo
+-
+-import (
+- "foo/bar"
+- "fmt"
+-)
+-
+-const perm = 0755
+-
+-func foo() {
+- foo :=
+- "bar"
+- fmt.Println(foo, bar.Bar)
+-}
+--- foo.go.formatted --
+-package foo
+-
+-import (
+- "fmt"
+-
+- "foo/bar"
+-)
+-
+-const perm = 0o755
+-
+-func foo() {
+- foo := "bar"
+- fmt.Println(foo, bar.Bar)
+-}
+--- bar/bar.go --
+-package bar
+-
+-const Bar = 42
+-`
+-
+- WithOptions(
+- EditorConfig{
+- Settings: map[string]interface{}{
+- "gofumpt": true,
+- },
+- },
+- ).Run(t, input, func(t *testing.T, env *Env) {
+- env.OpenFile("foo.go")
+- env.FormatBuffer("foo.go")
+- got := env.Editor.BufferText("foo.go")
+- want := env.ReadWorkspaceFile("foo.go.formatted")
+- if got != want {
+- t.Errorf("unexpected formatting result:\n%s", tests.Diff(t, want, got))
+- }
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/generate_test.go b/gopls/internal/regtest/misc/generate_test.go
---- a/gopls/internal/regtest/misc/generate_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/generate_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/generate_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/generate_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,75 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10772,8 +12031,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/highlight_test.go b/gopls/internal/regtest/misc/highlight_test.go
---- a/gopls/internal/regtest/misc/highlight_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/highlight_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/highlight_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/highlight_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,151 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -10927,9 +12186,9 @@
- }
-}
diff -urN a/gopls/internal/regtest/misc/hover_test.go b/gopls/internal/regtest/misc/hover_test.go
---- a/gopls/internal/regtest/misc/hover_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/hover_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,132 +0,0 @@
+--- a/gopls/internal/regtest/misc/hover_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/hover_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,223 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -10937,6 +12196,7 @@
-package misc
-
-import (
+- "fmt"
- "strings"
- "testing"
-
@@ -10956,6 +12216,7 @@
-package structs
-
-type Mixed struct {
+- // Exported comment
- Exported int
- unexported string
-}
@@ -10972,7 +12233,7 @@
-
-require golang.org/x/structs v1.0.0
--- go.sum --
--golang.org/x/structs v1.0.0 h1:3DlrFfd3OsEen7FnCHfqtnJvjBZ8ZFKmrD/+HjpdJj0=
+-golang.org/x/structs v1.0.0 h1:Ito/a7hBYZaNKShFrZKjfBA/SIPvmBrcPCBWPx5QeKk=
-golang.org/x/structs v1.0.0/go.mod h1:47gkSIdo5AaQaWJS0upVORsxfEr1LL1MWv9dmYF3iq4=
--- main.go --
-package main
@@ -10980,9 +12241,11 @@
-import "golang.org/x/structs"
-
-func main() {
-- var _ structs.Mixed
+- var m structs.Mixed
+- _ = m.Exported
-}
-`
+-
- // TODO: use a nested workspace folder here.
- WithOptions(
- ProxyFiles(proxy),
@@ -10993,12 +12256,19 @@
- if !strings.Contains(got.Value, "unexported") {
- t.Errorf("Workspace hover: missing expected field 'unexported'. Got:\n%q", got.Value)
- }
+-
- cacheFile, _ := env.GoToDefinition("main.go", mixedPos)
- argPos := env.RegexpSearch(cacheFile, "printMixed.*(Mixed)")
- got, _ = env.Hover(cacheFile, argPos)
- if !strings.Contains(got.Value, "unexported") {
- t.Errorf("Non-workspace hover: missing expected field 'unexported'. Got:\n%q", got.Value)
- }
+-
+- exportedFieldPos := env.RegexpSearch("main.go", "Exported")
+- got, _ = env.Hover("main.go", exportedFieldPos)
+- if !strings.Contains(got.Value, "comment") {
+- t.Errorf("Workspace hover: missing comment for field 'Exported'. Got:\n%q", got.Value)
+- }
- })
-}
-
@@ -11062,9 +12332,226 @@
- env.Editor.Hover(env.Ctx, "main.go", env.RegexpSearch("main.go", "foo"))
- })
-}
+-
+-func TestHoverImport(t *testing.T) {
+- // For Go.13 and earlier versions, Go will try to download imported but missing packages. This behavior breaks the
+- // workspace as Go fails to download non-existent package "mod.com/lib4"
+- testenv.NeedsGo1Point(t, 14)
+- const packageDoc1 = "Package lib1 hover documentation"
+- const packageDoc2 = "Package lib2 hover documentation"
+- tests := []struct {
+- hoverPackage string
+- want string
+- }{
+- {
+- "mod.com/lib1",
+- packageDoc1,
+- },
+- {
+- "mod.com/lib2",
+- packageDoc2,
+- },
+- {
+- "mod.com/lib3",
+- "",
+- },
+- }
+- source := fmt.Sprintf(`
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- lib1/a.go --
+-// %s
+-package lib1
+-
+-const C = 1
+-
+--- lib1/b.go --
+-package lib1
+-
+-const D = 1
+-
+--- lib2/a.go --
+-// %s
+-package lib2
+-
+-const E = 1
+-
+--- lib3/a.go --
+-package lib3
+-
+-const F = 1
+-
+--- main.go --
+-package main
+-
+-import (
+- "mod.com/lib1"
+- "mod.com/lib2"
+- "mod.com/lib3"
+- "mod.com/lib4"
+-)
+-
+-func main() {
+- println("Hello")
+-}
+- `, packageDoc1, packageDoc2)
+- Run(t, source, func(t *testing.T, env *Env) {
+- env.OpenFile("main.go")
+- for _, test := range tests {
+- got, _ := env.Hover("main.go", env.RegexpSearch("main.go", test.hoverPackage))
+- if !strings.Contains(got.Value, test.want) {
+- t.Errorf("Hover: got:\n%q\nwant:\n%q", got.Value, test.want)
+- }
+- }
+-
+- got, _ := env.Hover("main.go", env.RegexpSearch("main.go", "mod.com/lib4"))
+- if got != nil {
+- t.Errorf("Hover: got:\n%q\nwant:\n%v", got.Value, nil)
+- }
+- })
+-}
+diff -urN a/gopls/internal/regtest/misc/import_test.go b/gopls/internal/regtest/misc/import_test.go
+--- a/gopls/internal/regtest/misc/import_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/import_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,133 +0,0 @@
+-// Copyright 2021 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package misc
+-
+-import (
+- "testing"
+-
+- "github.com/google/go-cmp/cmp"
+- "golang.org/x/tools/internal/lsp/command"
+- "golang.org/x/tools/internal/lsp/protocol"
+- . "golang.org/x/tools/internal/lsp/regtest"
+- "golang.org/x/tools/internal/lsp/tests"
+-)
+-
+-func TestAddImport(t *testing.T) {
+- const before = `package main
+-
+-import "fmt"
+-
+-func main() {
+- fmt.Println("hello world")
+-}
+-`
+-
+- const want = `package main
+-
+-import (
+- "bytes"
+- "fmt"
+-)
+-
+-func main() {
+- fmt.Println("hello world")
+-}
+-`
+-
+- Run(t, "", func(t *testing.T, env *Env) {
+- env.CreateBuffer("main.go", before)
+- cmd, err := command.NewAddImportCommand("Add Import", command.AddImportArgs{
+- URI: env.Sandbox.Workdir.URI("main.go"),
+- ImportPath: "bytes",
+- })
+- if err != nil {
+- t.Fatal(err)
+- }
+- env.ExecuteCommand(&protocol.ExecuteCommandParams{
+- Command: "gopls.add_import",
+- Arguments: cmd.Arguments,
+- }, nil)
+- got := env.Editor.BufferText("main.go")
+- if got != want {
+- t.Fatalf("gopls.add_import failed\n%s", tests.Diff(t, want, got))
+- }
+- })
+-}
+-
+-func TestListImports(t *testing.T) {
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- foo.go --
+-package foo
+-const C = 1
+--- import_strings_test.go --
+-package foo
+-import (
+- x "strings"
+- "testing"
+-)
+-
+-func TestFoo(t *testing.T) {}
+--- import_testing_test.go --
+-package foo
+-
+-import "testing"
+-
+-func TestFoo2(t *testing.T) {}
+-`
+- tests := []struct {
+- filename string
+- want command.ListImportsResult
+- }{
+- {
+- filename: "import_strings_test.go",
+- want: command.ListImportsResult{
+- Imports: []command.FileImport{
+- {Name: "x", Path: "strings"},
+- {Path: "testing"},
+- },
+- PackageImports: []command.PackageImport{
+- {Path: "strings"},
+- {Path: "testing"},
+- },
+- },
+- },
+- {
+- filename: "import_testing_test.go",
+- want: command.ListImportsResult{
+- Imports: []command.FileImport{
+- {Path: "testing"},
+- },
+- PackageImports: []command.PackageImport{
+- {Path: "strings"},
+- {Path: "testing"},
+- },
+- },
+- },
+- }
+-
+- Run(t, files, func(t *testing.T, env *Env) {
+- for _, tt := range tests {
+- cmd, err := command.NewListImportsCommand("List Imports", command.URIArg{
+- URI: env.Sandbox.Workdir.URI(tt.filename),
+- })
+- if err != nil {
+- t.Fatal(err)
+- }
+- var result command.ListImportsResult
+- env.ExecuteCommand(&protocol.ExecuteCommandParams{
+- Command: command.ListImports.ID(),
+- Arguments: cmd.Arguments,
+- }, &result)
+- if diff := cmp.Diff(tt.want, result); diff != "" {
+- t.Errorf("unexpected list imports result for %q (-want +got):\n%s", tt.filename, diff)
+- }
+- }
+-
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/imports_test.go b/gopls/internal/regtest/misc/imports_test.go
---- a/gopls/internal/regtest/misc/imports_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/imports_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/imports_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/imports_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,216 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11283,9 +12770,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/link_test.go b/gopls/internal/regtest/misc/link_test.go
---- a/gopls/internal/regtest/misc/link_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/link_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,95 +0,0 @@
+--- a/gopls/internal/regtest/misc/link_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/link_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,98 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -11303,6 +12790,7 @@
-
-func TestHoverAndDocumentLink(t *testing.T) {
- testenv.NeedsGo1Point(t, 13)
+-
- const program = `
--- go.mod --
-module mod.test
@@ -11319,6 +12807,8 @@
-import "import.test/pkg"
-
-func main() {
+- // Issue 43990: this is not a link that most users can open from an LSP
+- // client: mongodb://not.a.link.com
- println(pkg.Hello)
-}`
-
@@ -11382,9 +12872,9 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/misc_test.go b/gopls/internal/regtest/misc/misc_test.go
---- a/gopls/internal/regtest/misc/misc_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/misc_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,16 +0,0 @@
+--- a/gopls/internal/regtest/misc/misc_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/misc_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,18 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -11395,15 +12885,17 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- "golang.org/x/tools/internal/lsp/regtest"
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- regtest.Main(m, hooks.Options)
-}
diff -urN a/gopls/internal/regtest/misc/multiple_adhoc_test.go b/gopls/internal/regtest/misc/multiple_adhoc_test.go
---- a/gopls/internal/regtest/misc/multiple_adhoc_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/multiple_adhoc_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/multiple_adhoc_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/multiple_adhoc_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11450,8 +12942,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/references_test.go b/gopls/internal/regtest/misc/references_test.go
---- a/gopls/internal/regtest/misc/references_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/references_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/references_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/references_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,83 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11537,8 +13029,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/rename_test.go b/gopls/internal/regtest/misc/rename_test.go
---- a/gopls/internal/regtest/misc/rename_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/rename_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/rename_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/rename_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11599,8 +13091,8 @@
- })
-}
diff -urN a/gopls/internal/regtest/misc/semantictokens_test.go b/gopls/internal/regtest/misc/semantictokens_test.go
---- a/gopls/internal/regtest/misc/semantictokens_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/semantictokens_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/semantictokens_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/semantictokens_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11646,9 +13138,49 @@
- }
- })
-}
+diff -urN a/gopls/internal/regtest/misc/settings_test.go b/gopls/internal/regtest/misc/settings_test.go
+--- a/gopls/internal/regtest/misc/settings_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/settings_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,36 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package misc
+-
+-import (
+- "testing"
+-
+- . "golang.org/x/tools/internal/lsp/regtest"
+-)
+-
+-func TestEmptyDirectoryFilters_Issue51843(t *testing.T) {
+- const src = `
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- main.go --
+-package main
+-
+-func main() {
+-}
+-`
+-
+- WithOptions(
+- EditorConfig{
+- Settings: map[string]interface{}{
+- "directoryFilters": []string{""},
+- },
+- },
+- ).Run(t, src, func(t *testing.T, env *Env) {
+- // No need to do anything. Issue golang/go#51843 is triggered by the empty
+- // directory filter above.
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/shared_test.go b/gopls/internal/regtest/misc/shared_test.go
---- a/gopls/internal/regtest/misc/shared_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/shared_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/shared_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/shared_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11714,10 +13246,92 @@
- env2.Await(env2.DiagnosticAtRegexp("main.go", "$"))
- })
-}
+diff -urN a/gopls/internal/regtest/misc/staticcheck_test.go b/gopls/internal/regtest/misc/staticcheck_test.go
+--- a/gopls/internal/regtest/misc/staticcheck_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/staticcheck_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,78 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package misc
+-
+-import (
+- "testing"
+-
+- "golang.org/x/tools/internal/testenv"
+-
+- . "golang.org/x/tools/internal/lsp/regtest"
+-)
+-
+-func TestStaticcheckGenerics(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18) // generics were introduced in Go 1.18
+-
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.18
+--- a/a.go --
+-package a
+-
+-import (
+- "errors"
+- "sort"
+- "strings"
+-)
+-
+-func Zero[P any]() P {
+- var p P
+- return p
+-}
+-
+-type Inst[P any] struct {
+- Field P
+-}
+-
+-func testGenerics[P *T, T any](p P) {
+- // Calls to instantiated functions should not break checks.
+- slice := Zero[string]()
+- sort.Slice(slice, func(i, j int) bool {
+- return slice[i] < slice[j]
+- })
+-
+- // Usage of instantiated fields should not break checks.
+- g := Inst[string]{"hello"}
+- g.Field = strings.TrimLeft(g.Field, "12234")
+-
+- // Use of type parameters should not break checks.
+- var q P
+- p = q // SA4009: p is overwritten before its first use
+- q = &*p // SA4001: &* will be simplified
+-}
+-
+-
+-// FooErr should be called ErrFoo (ST1012)
+-var FooErr error = errors.New("foo")
+-`
+-
+- WithOptions(EditorConfig{
+- Settings: map[string]interface{}{
+- "staticcheck": true,
+- },
+- }).Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("a/a.go")
+- env.Await(
+- env.DiagnosticAtRegexpFromSource("a/a.go", "sort.Slice", "sortslice"),
+- env.DiagnosticAtRegexpFromSource("a/a.go", "sort.Slice.(slice)", "SA1028"),
+- env.DiagnosticAtRegexpFromSource("a/a.go", "var (FooErr)", "ST1012"),
+- env.DiagnosticAtRegexpFromSource("a/a.go", `"12234"`, "SA1024"),
+- env.DiagnosticAtRegexpFromSource("a/a.go", "testGenerics.*(p P)", "SA4009"),
+- env.DiagnosticAtRegexpFromSource("a/a.go", "q = (&\\*p)", "SA4001"),
+- )
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/vendor_test.go b/gopls/internal/regtest/misc/vendor_test.go
---- a/gopls/internal/regtest/misc/vendor_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/vendor_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,73 +0,0 @@
+--- a/gopls/internal/regtest/misc/vendor_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/vendor_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,79 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -11725,7 +13339,6 @@
-package misc
-
-import (
-- "runtime"
- "testing"
-
- . "golang.org/x/tools/internal/lsp/regtest"
@@ -11747,9 +13360,16 @@
-
-func TestInconsistentVendoring(t *testing.T) {
- testenv.NeedsGo1Point(t, 14)
-- if runtime.GOOS == "windows" {
-- t.Skipf("skipping test due to flakiness on Windows: https://golang.org/issue/49646")
-- }
+-
+- // TODO(golang/go#49646): delete this comment once this test is stable.
+- //
+- // In golang/go#49646, this test is reported as flaky on Windows. We believe
+- // this is due to file contention from go mod vendor that should be resolved.
+- // If this test proves to still be flaky, skip it.
+- //
+- // if runtime.GOOS == "windows" {
+- // t.Skipf("skipping test due to flakiness on Windows: https://golang.org/issue/49646")
+- // }
-
- const pkgThatUsesVendoring = `
--- go.mod --
@@ -11791,9 +13411,56 @@
- )
- })
-}
+diff -urN a/gopls/internal/regtest/misc/vuln_test.go b/gopls/internal/regtest/misc/vuln_test.go
+--- a/gopls/internal/regtest/misc/vuln_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/vuln_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,43 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package misc
+-
+-import (
+- "testing"
+-
+- "golang.org/x/tools/internal/lsp/command"
+- "golang.org/x/tools/internal/lsp/protocol"
+- . "golang.org/x/tools/internal/lsp/regtest"
+-)
+-
+-func TestRunVulncheckExpError(t *testing.T) {
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.12
+--- foo.go --
+-package foo
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- cmd, err := command.NewRunVulncheckExpCommand("Run Vulncheck Exp", command.VulncheckArgs{
+- Dir: "/invalid/file/url", // invalid arg
+- })
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- params := &protocol.ExecuteCommandParams{
+- Command: command.RunVulncheckExp.ID(),
+- Arguments: cmd.Arguments,
+- }
+-
+- response, err := env.Editor.ExecuteCommand(env.Ctx, params)
+- // We want an error!
+- if err == nil {
+- t.Errorf("got success, want invalid file URL error: %v", response)
+- }
+- })
+-}
diff -urN a/gopls/internal/regtest/misc/workspace_symbol_test.go b/gopls/internal/regtest/misc/workspace_symbol_test.go
---- a/gopls/internal/regtest/misc/workspace_symbol_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/misc/workspace_symbol_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/internal/regtest/misc/workspace_symbol_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/misc/workspace_symbol_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,131 +0,0 @@
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -11927,9 +13594,9 @@
- }
-}
diff -urN a/gopls/internal/regtest/modfile/modfile_test.go b/gopls/internal/regtest/modfile/modfile_test.go
---- a/gopls/internal/regtest/modfile/modfile_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/modfile/modfile_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,1122 +0,0 @@
+--- a/gopls/internal/regtest/modfile/modfile_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/modfile/modfile_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,1199 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -11943,6 +13610,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- . "golang.org/x/tools/internal/lsp/regtest"
-
- "golang.org/x/tools/internal/lsp/protocol"
@@ -11951,6 +13619,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -12171,6 +13840,62 @@
- })
-}
-
+-// Tests that multiple missing dependencies gives good single fixes.
+-func TestMissingDependencyFixesWithGoWork(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18)
+- const mod = `
+--- go.work --
+-go 1.18
+-
+-use (
+- ./a
+-)
+--- a/go.mod --
+-module mod.com
+-
+-go 1.12
+-
+--- a/main.go --
+-package main
+-
+-import "example.com/blah"
+-import "random.org/blah"
+-
+-var _, _ = blah.Name, hello.Name
+-`
+-
+- const want = `module mod.com
+-
+-go 1.12
+-
+-require random.org v1.2.3
+-`
+-
+- RunMultiple{
+- {"default", WithOptions(ProxyFiles(proxy), WorkspaceFolders("a"))},
+- {"nested", WithOptions(ProxyFiles(proxy))},
+- }.Run(t, mod, func(t *testing.T, env *Env) {
+- env.OpenFile("a/main.go")
+- var d protocol.PublishDiagnosticsParams
+- env.Await(
+- OnceMet(
+- env.DiagnosticAtRegexp("a/main.go", `"random.org/blah"`),
+- ReadDiagnostics("a/main.go", &d),
+- ),
+- )
+- var randomDiag protocol.Diagnostic
+- for _, diag := range d.Diagnostics {
+- if strings.Contains(diag.Message, "random.org") {
+- randomDiag = diag
+- }
+- }
+- env.ApplyQuickFixes("a/main.go", []protocol.Diagnostic{randomDiag})
+- if got := env.ReadWorkspaceFile("a/go.mod"); got != want {
+- t.Fatalf("unexpected go.mod content:\n%s", tests.Diff(t, want, got))
+- }
+- })
+-}
+-
-func TestIndirectDependencyFix(t *testing.T) {
- testenv.NeedsGo1Point(t, 14)
-
@@ -12735,6 +14460,8 @@
-}
-
-func TestSumUpdateFixesDiagnostics(t *testing.T) {
+- t.Skipf("Skipping known-flaky test; see https://go.dev/issue/51352.")
+-
- testenv.NeedsGo1Point(t, 14)
-
- const mod = `
@@ -13052,10 +14779,27 @@
- )
- })
-}
+-
+-func TestInvalidGoVersion(t *testing.T) {
+- testenv.NeedsGo1Point(t, 14) // Times out on 1.13 for reasons unclear. Not worth worrying about.
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go foo
+--- main.go --
+-package main
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.Await(env.DiagnosticAtRegexpWithMessage("go.mod", `go foo`, "invalid go version"))
+- env.WriteWorkspaceFile("go.mod", "module mod.com \n\ngo 1.12\n")
+- env.Await(EmptyDiagnostics("go.mod"))
+- })
+-}
diff -urN a/gopls/internal/regtest/template/template_test.go b/gopls/internal/regtest/template/template_test.go
---- a/gopls/internal/regtest/template/template_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/template/template_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,177 +0,0 @@
+--- a/gopls/internal/regtest/template/template_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/template/template_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,232 +0,0 @@
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -13067,14 +14811,51 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- "golang.org/x/tools/internal/lsp/protocol"
- . "golang.org/x/tools/internal/lsp/regtest"
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
+-func TestMultilineTokens(t *testing.T) {
+- // 51731: panic: runtime error: slice bounds out of range [38:3]
+- const files = `
+--- go.mod --
+-module mod.com
+-
+-go 1.17
+--- hi.tmpl --
+-{{if (foÜx .X.Y)}}😀{{$A :=
+- "hi"
+- }}{{.Z $A}}{{else}}
+-{{$A.X 12}}
+-{{foo (.X.Y) 23 ($A.Z)}}
+-{{end}}
+-`
+- WithOptions(
+- EditorConfig{
+- Settings: map[string]interface{}{
+- "templateExtensions": []string{"tmpl"},
+- "semanticTokens": true,
+- },
+- },
+- ).Run(t, files, func(t *testing.T, env *Env) {
+- var p protocol.SemanticTokensParams
+- p.TextDocument.URI = env.Sandbox.Workdir.URI("hi.tmpl")
+- toks, err := env.Editor.Server.SemanticTokensFull(env.Ctx, &p)
+- if err != nil {
+- t.Errorf("semantic token failed: %v", err)
+- }
+- if toks == nil || len(toks.Data) == 0 {
+- t.Errorf("got no semantic tokens")
+- }
+- })
+-}
+-
-func TestTemplatesFromExtensions(t *testing.T) {
- const files = `
--- go.mod --
@@ -13086,16 +14867,35 @@
-Hello {{}} <-- missing body
-{{end}}
-`
--
- WithOptions(
- EditorConfig{
- Settings: map[string]interface{}{
- "templateExtensions": []string{"tmpl"},
+- "semanticTokens": true,
- },
- },
- ).Run(t, files, func(t *testing.T, env *Env) {
- // TODO: can we move this diagnostic onto {{}}?
- env.Await(env.DiagnosticAtRegexp("hello.tmpl", "()Hello {{}}"))
+- d := env.DiagnosticsFor("hello.tmpl").Diagnostics // issue 50786: check for Source
+- if len(d) != 1 {
+- t.Errorf("expected 1 diagnostic, got %d", len(d))
+- return
+- }
+- if d[0].Source != "template" {
+- t.Errorf("expected Source 'template', got %q", d[0].Source)
+- }
+- // issue 50801 (even broken templates could return some semantic tokens)
+- var p protocol.SemanticTokensParams
+- p.TextDocument.URI = env.Sandbox.Workdir.URI("hello.tmpl")
+- toks, err := env.Editor.Server.SemanticTokensFull(env.Ctx, &p)
+- if err != nil {
+- t.Errorf("semantic token failed: %v", err)
+- }
+- if toks == nil || len(toks.Data) == 0 {
+- t.Errorf("got no semantic tokens")
+- }
+-
- env.WriteWorkspaceFile("hello.tmpl", "{{range .Planets}}\nHello {{.}}\n{{end}}")
- env.Await(EmptyDiagnostics("hello.tmpl"))
- })
@@ -13231,12 +15031,11 @@
- return pieces[j-2] + "/" + pieces[j-1]
-}
-
--// Hover, SemTok, Diagnose with errors
--// and better coverage
+-// Hover needs tests
diff -urN a/gopls/internal/regtest/watch/watch_test.go b/gopls/internal/regtest/watch/watch_test.go
---- a/gopls/internal/regtest/watch/watch_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/watch/watch_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,766 +0,0 @@
+--- a/gopls/internal/regtest/watch/watch_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/watch/watch_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,768 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -13247,6 +15046,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- . "golang.org/x/tools/internal/lsp/regtest"
-
- "golang.org/x/tools/internal/lsp/fake"
@@ -13255,6 +15055,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -14003,10 +15804,57 @@
- )
- })
-}
+diff -urN a/gopls/internal/regtest/workspace/metadata_test.go b/gopls/internal/regtest/workspace/metadata_test.go
+--- a/gopls/internal/regtest/workspace/metadata_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/workspace/metadata_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,43 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package workspace
+-
+-import (
+- "testing"
+-
+- . "golang.org/x/tools/internal/lsp/regtest"
+- "golang.org/x/tools/internal/testenv"
+-)
+-
+-// TODO(rfindley): move workspace tests related to metadata bugs into this
+-// file.
+-
+-func TestFixImportDecl(t *testing.T) {
+- // It appears that older Go versions don't even see p.go from the initial
+- // workspace load.
+- testenv.NeedsGo1Point(t, 15)
+- const src = `
+--- go.mod --
+-module mod.test
+-
+-go 1.12
+--- p.go --
+-package p
+-
+-import (
+- _ "fmt"
+-
+-const C = 42
+-`
+-
+- Run(t, src, func(t *testing.T, env *Env) {
+- env.OpenFile("p.go")
+- env.RegexpReplace("p.go", "\"fmt\"", "\"fmt\"\n)")
+- env.Await(OnceMet(
+- env.DoneWithChange(),
+- EmptyDiagnostics("p.go"),
+- ))
+- })
+-}
diff -urN a/gopls/internal/regtest/workspace/workspace_test.go b/gopls/internal/regtest/workspace/workspace_test.go
---- a/gopls/internal/regtest/workspace/workspace_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/internal/regtest/workspace/workspace_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,1163 +0,0 @@
+--- a/gopls/internal/regtest/workspace/workspace_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/regtest/workspace/workspace_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,1307 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -14014,25 +15862,24 @@
-package workspace
-
-import (
-- "encoding/json"
- "fmt"
-- "io/ioutil"
- "path/filepath"
- "sort"
- "strings"
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
-- . "golang.org/x/tools/internal/lsp/regtest"
-- "golang.org/x/tools/internal/lsp/source"
--
-- "golang.org/x/tools/internal/lsp/command"
+- "golang.org/x/tools/internal/lsp/bug"
- "golang.org/x/tools/internal/lsp/fake"
- "golang.org/x/tools/internal/lsp/protocol"
+- "golang.org/x/tools/internal/lsp/source"
- "golang.org/x/tools/internal/testenv"
+-
+- . "golang.org/x/tools/internal/lsp/regtest"
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- Main(m, hooks.Options)
-}
-
@@ -14656,6 +16503,19 @@
- })
-}
-
+-// TestBadGoWork exercises the panic from golang/vscode-go#2121.
+-func TestBadGoWork(t *testing.T) {
+- const files = `
+--- go.work --
+-use ./bar
+--- bar/go.mod --
+-module example.com/bar
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("go.work")
+- })
+-}
+-
-func TestUseGoWork(t *testing.T) {
- // This test validates certain functionality related to using a go.work
- // file to specify workspace modules.
@@ -14695,14 +16555,14 @@
--- go.work --
-go 1.17
-
--directory (
+-use (
- ./moda/a
-)
-`
- WithOptions(
- ProxyFiles(workspaceModuleProxy),
- ).Run(t, multiModule, func(t *testing.T, env *Env) {
-- // Initially, the gopls.mod should cause only the a.com module to be
+- // Initially, the go.work should cause only the a.com module to be
- // loaded. Validate this by jumping to a definition in b.com and ensuring
- // that we go to the module cache.
- env.OpenFile("moda/a/a.go")
@@ -14723,12 +16583,12 @@
- t.Fatal(err)
- }
-
-- // Now, modify the gopls.mod file on disk to activate the b.com module in
+- // Now, modify the go.work file on disk to activate the b.com module in
- // the workspace.
- env.WriteWorkspaceFile("go.work", `
-go 1.17
-
--directory (
+-use (
- ./moda/a
- ./modb
-)
@@ -14748,36 +16608,196 @@
- )
- env.ApplyQuickFixes("modb/go.mod", d.Diagnostics)
- env.Await(env.DiagnosticAtRegexp("modb/b/b.go", "x"))
+-
- // Jumping to definition should now go to b.com in the workspace.
- if err := checkHelloLocation("modb/b/b.go"); err != nil {
- t.Fatal(err)
- }
-
-- // Now, let's modify the gopls.mod *overlay* (not on disk), and verify that
+- // Now, let's modify the go.work *overlay* (not on disk), and verify that
- // this change is only picked up once it is saved.
- env.OpenFile("go.work")
- env.Await(env.DoneWithOpen())
- env.SetBufferContent("go.work", `go 1.17
-
--directory (
+-use (
- ./moda/a
-)`)
-
-- // Editing the gopls.mod removes modb from the workspace modules, and so
-- // should clear outstanding diagnostics...
-- env.Await(OnceMet(
-- env.DoneWithChange(),
-- EmptyDiagnostics("modb/go.mod"),
-- ))
-- // ...but does not yet cause a workspace reload, so we should still jump to modb.
+- // Simply modifying the go.work file does not cause a reload, so we should
+- // still jump within the workspace.
+- //
+- // TODO: should editing the go.work above cause modb diagnostics to be
+- // suppressed?
+- env.Await(env.DoneWithChange())
- if err := checkHelloLocation("modb/b/b.go"); err != nil {
- t.Fatal(err)
- }
+-
- // Saving should reload the workspace.
- env.SaveBufferWithoutActions("go.work")
- if err := checkHelloLocation("b.com@v1.2.3/b/b.go"); err != nil {
- t.Fatal(err)
- }
+-
+- // This fails if guarded with a OnceMet(DoneWithSave(), ...), because it is
+- // debounced (and therefore not synchronous with the change).
+- env.Await(EmptyOrNoDiagnostics("modb/go.mod"))
+-
+- // Test Formatting.
+- env.SetBufferContent("go.work", `go 1.18
+- use (
+-
+-
+-
+- ./moda/a
+-)
+-`) // TODO(matloob): For some reason there's a "start position 7:0 is out of bounds" error when the ")" is on the last character/line in the file. Rob probably knows what's going on.
+- env.SaveBuffer("go.work")
+- env.Await(env.DoneWithSave())
+- gotWorkContents := env.ReadWorkspaceFile("go.work")
+- wantWorkContents := `go 1.18
+-
+-use (
+- ./moda/a
+-)
+-`
+- if gotWorkContents != wantWorkContents {
+- t.Fatalf("formatted contents of workspace: got %q; want %q", gotWorkContents, wantWorkContents)
+- }
+- })
+-}
+-
+-func TestUseGoWorkDiagnosticMissingModule(t *testing.T) {
+- const files = `
+--- go.work --
+-go 1.18
+-
+-use ./foo
+--- bar/go.mod --
+-module example.com/bar
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("go.work")
+- env.Await(
+- env.DiagnosticAtRegexpWithMessage("go.work", "use", "directory ./foo does not contain a module"),
+- )
+- // The following tests is a regression test against an issue where we weren't
+- // copying the workFile struct field on workspace when a new one was created in
+- // (*workspace).invalidate. Set the buffer content to a working file so that
+- // invalidate recognizes the workspace to be change and copies over the workspace
+- // struct, and then set the content back to the old contents to make sure
+- // the diagnostic still shows up.
+- env.SetBufferContent("go.work", "go 1.18 \n\n use ./bar\n")
+- env.Await(
+- env.NoDiagnosticAtRegexp("go.work", "use"),
+- )
+- env.SetBufferContent("go.work", "go 1.18 \n\n use ./foo\n")
+- env.Await(
+- env.DiagnosticAtRegexpWithMessage("go.work", "use", "directory ./foo does not contain a module"),
+- )
+- })
+-}
+-
+-func TestUseGoWorkDiagnosticSyntaxError(t *testing.T) {
+- const files = `
+--- go.work --
+-go 1.18
+-
+-usa ./foo
+-replace
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("go.work")
+- env.Await(
+- env.DiagnosticAtRegexpWithMessage("go.work", "usa", "unknown directive: usa"),
+- env.DiagnosticAtRegexpWithMessage("go.work", "replace", "usage: replace"),
+- )
+- })
+-}
+-
+-func TestUseGoWorkHover(t *testing.T) {
+- const files = `
+--- go.work --
+-go 1.18
+-
+-use ./foo
+-use (
+- ./bar
+- ./bar/baz
+-)
+--- foo/go.mod --
+-module example.com/foo
+--- bar/go.mod --
+-module example.com/bar
+--- bar/baz/go.mod --
+-module example.com/bar/baz
+-`
+- Run(t, files, func(t *testing.T, env *Env) {
+- env.OpenFile("go.work")
+-
+- tcs := map[string]string{
+- `\./foo`: "example.com/foo",
+- `(?m)\./bar$`: "example.com/bar",
+- `\./bar/baz`: "example.com/bar/baz",
+- }
+-
+- for hoverRE, want := range tcs {
+- pos := env.RegexpSearch("go.work", hoverRE)
+- got, _ := env.Hover("go.work", pos)
+- if got.Value != want {
+- t.Errorf(`hover on %q: got %q, want %q`, hoverRE, got, want)
+- }
+- }
+- })
+-}
+-
+-func TestExpandToGoWork(t *testing.T) {
+- testenv.NeedsGo1Point(t, 18)
+- const workspace = `
+--- moda/a/go.mod --
+-module a.com
+-
+-require b.com v1.2.3
+--- moda/a/a.go --
+-package a
+-
+-import (
+- "b.com/b"
+-)
+-
+-func main() {
+- var x int
+- _ = b.Hello()
+-}
+--- modb/go.mod --
+-module b.com
+-
+-require example.com v1.2.3
+--- modb/b/b.go --
+-package b
+-
+-func Hello() int {
+- var x int
+-}
+--- go.work --
+-go 1.17
+-
+-use (
+- ./moda/a
+- ./modb
+-)
+-`
+- WithOptions(
+- WorkspaceFolders("moda/a"),
+- ).Run(t, workspace, func(t *testing.T, env *Env) {
+- env.OpenFile("moda/a/a.go")
+- env.Await(env.DoneWithOpen())
+- location, _ := env.GoToDefinition("moda/a/a.go", env.RegexpSearch("moda/a/a.go", "Hello"))
+- want := "modb/b/b.go"
+- if !strings.HasSuffix(location, want) {
+- t.Errorf("expected %s, got %v", want, location)
+- }
- })
-}
-
@@ -14861,80 +16881,6 @@
- })
-}
-
--func TestWorkspaceDirAccess(t *testing.T) {
-- const multiModule = `
---- moda/a/go.mod --
--module a.com
--
--go 1.15
---- moda/a/a.go --
--package main
--
--func main() {
-- fmt.Println("Hello")
--}
---- modb/go.mod --
--module b.com
--
--go 1.16
---- modb/b/b.go --
--package main
--
--func main() {
-- fmt.Println("World")
--}
--`
-- WithOptions(
-- Modes(Experimental),
-- SendPID(),
-- ).Run(t, multiModule, func(t *testing.T, env *Env) {
-- params := &protocol.ExecuteCommandParams{
-- Command: command.WorkspaceMetadata.ID(),
-- Arguments: []json.RawMessage{json.RawMessage("{}")},
-- }
-- var result command.WorkspaceMetadataResult
-- env.ExecuteCommand(params, &result)
--
-- if n := len(result.Workspaces); n != 1 {
-- env.T.Fatalf("got %d workspaces, want 1", n)
-- }
-- // Don't factor this out of Server.addFolders. vscode-go expects this
-- // directory.
-- modPath := filepath.Join(result.Workspaces[0].ModuleDir, "go.mod")
-- gotb, err := ioutil.ReadFile(modPath)
-- if err != nil {
-- t.Fatalf("reading expected workspace modfile: %v", err)
-- }
-- got := string(gotb)
-- for _, want := range []string{"go 1.16", "a.com v1.9999999.0-goplsworkspace", "b.com v1.9999999.0-goplsworkspace"} {
-- if !strings.Contains(got, want) {
-- // want before got here, since the go.mod is multi-line
-- t.Fatalf("workspace go.mod missing %q. got:\n%s", want, got)
-- }
-- }
-- workdir := env.Sandbox.Workdir.RootURI().SpanURI().Filename()
-- env.WriteWorkspaceFile("gopls.mod", fmt.Sprintf(`
-- module gopls-workspace
--
-- require (
-- a.com v1.9999999.0-goplsworkspace
-- )
--
-- replace a.com => %s/moda/a
-- `, workdir))
-- env.Await(env.DoneWithChangeWatchedFiles())
-- gotb, err = ioutil.ReadFile(modPath)
-- if err != nil {
-- t.Fatalf("reading expected workspace modfile: %v", err)
-- }
-- got = string(gotb)
-- want := "b.com v1.9999999.0-goplsworkspace"
-- if strings.Contains(got, want) {
-- t.Fatalf("workspace go.mod contains unexpected %q. got:\n%s", want, got)
-- }
-- })
--}
--
-func TestDirectoryFiltersLoads(t *testing.T) {
- // exclude, and its error, should be excluded from the workspace.
- const files = `
@@ -15159,21 +17105,621 @@
- )
- env.WriteWorkspaceFile("go.work", `go 1.16
-
--directory (
+-use (
- a
- b
-)
-`)
-- env.Await(
-- EmptyDiagnostics("a/main.go"),
-- EmptyDiagnostics("b/main.go"),
-- )
+- env.Await(NoOutstandingDiagnostics())
- })
-}
+-
+-// Tests the fix for golang/go#52500.
+-func TestChangeTestVariant_Issue52500(t *testing.T) {
+- // This test fails for unknown reasons at Go <= 15. Presumably the loading of
+- // test variants behaves differently, possibly due to lack of support for
+- // native overlays.
+- testenv.NeedsGo1Point(t, 16)
+- const src = `
+--- go.mod --
+-module mod.test
+-
+-go 1.12
+--- main_test.go --
+-package main_test
+-
+-type Server struct{}
+-
+-const mainConst = otherConst
+--- other_test.go --
+-package main_test
+-
+-const otherConst = 0
+-
+-func (Server) Foo() {}
+-`
+-
+- Run(t, src, func(t *testing.T, env *Env) {
+- env.OpenFile("other_test.go")
+- env.RegexpReplace("other_test.go", "main_test", "main")
+-
+- // For this test to function, it is necessary to wait on both of the
+- // expectations below: the bug is that when switching the package name in
+- // other_test.go from main->main_test, metadata for main_test is not marked
+- // as invalid. So we need to wait for the metadata of main_test.go to be
+- // updated before moving other_test.go back to the main_test package.
+- env.Await(
+- env.DiagnosticAtRegexpWithMessage("other_test.go", "Server", "undeclared"),
+- env.DiagnosticAtRegexpWithMessage("main_test.go", "otherConst", "undeclared"),
+- )
+- env.RegexpReplace("other_test.go", "main", "main_test")
+- env.Await(
+- EmptyDiagnostics("other_test.go"),
+- EmptyDiagnostics("main_test.go"),
+- )
+-
+- // This will cause a test failure if other_test.go is not in any package.
+- _, _ = env.GoToDefinition("other_test.go", env.RegexpSearch("other_test.go", "Server"))
+- })
+-}
+diff -urN a/gopls/internal/vulncheck/command.go b/gopls/internal/vulncheck/command.go
+--- a/gopls/internal/vulncheck/command.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/vulncheck/command.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,123 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package vulncheck
+-
+-import (
+- "context"
+- "log"
+- "os"
+- "strings"
+-
+- "golang.org/x/tools/go/packages"
+- gvc "golang.org/x/tools/gopls/internal/govulncheck"
+- "golang.org/x/tools/internal/lsp/command"
+- "golang.org/x/vuln/client"
+-)
+-
+-func init() {
+- Govulncheck = govulncheck
+-}
+-
+-func govulncheck(ctx context.Context, cfg *packages.Config, args command.VulncheckArgs) (res command.VulncheckResult, _ error) {
+- if args.Pattern == "" {
+- args.Pattern = "."
+- }
+-
+- dbClient, err := client.NewClient(findGOVULNDB(cfg), client.Options{HTTPCache: gvc.DefaultCache()})
+- if err != nil {
+- return res, err
+- }
+-
+- c := cmd{Client: dbClient}
+- vulns, err := c.Run(ctx, cfg, args.Pattern)
+- if err != nil {
+- return res, err
+- }
+-
+- res.Vuln = vulns
+- return res, err
+-}
+-
+-func findGOVULNDB(cfg *packages.Config) []string {
+- for _, kv := range cfg.Env {
+- if strings.HasPrefix(kv, "GOVULNDB=") {
+- return strings.Split(kv[len("GOVULNDB="):], ",")
+- }
+- }
+- if GOVULNDB := os.Getenv("GOVULNDB"); GOVULNDB != "" {
+- return strings.Split(GOVULNDB, ",")
+- }
+- return []string{"https://vuln.go.dev"}
+-}
+-
+-type Vuln = command.Vuln
+-type CallStack = command.CallStack
+-type StackEntry = command.StackEntry
+-
+-// cmd is an in-process govulncheck command runner
+-// that uses the provided client.Client.
+-type cmd struct {
+- Client client.Client
+-}
+-
+-// Run runs the govulncheck after loading packages using the provided packages.Config.
+-func (c *cmd) Run(ctx context.Context, cfg *packages.Config, patterns ...string) (_ []Vuln, err error) {
+- cfg.Mode |= packages.NeedModule | packages.NeedName | packages.NeedFiles |
+- packages.NeedCompiledGoFiles | packages.NeedImports | packages.NeedTypes |
+- packages.NeedTypesSizes | packages.NeedSyntax | packages.NeedTypesInfo | packages.NeedDeps
+-
+- log.Println("loading packages...")
+- loadedPkgs, err := gvc.LoadPackages(cfg, patterns...)
+- if err != nil {
+- log.Printf("package load failed: %v", err)
+- return nil, err
+- }
+- log.Printf("loaded %d packages\n", len(loadedPkgs))
+-
+- r, err := gvc.Source(ctx, loadedPkgs, c.Client)
+- if err != nil {
+- return nil, err
+- }
+- callInfo := gvc.GetCallInfo(r, loadedPkgs)
+- return toVulns(callInfo)
+- // TODO: add import graphs.
+-}
+-
+-func toVulns(ci *gvc.CallInfo) ([]Vuln, error) {
+- var vulns []Vuln
+-
+- for _, vg := range ci.VulnGroups {
+- v0 := vg[0]
+- lf := gvc.LatestFixed(v0.OSV.Affected)
+- if lf != "" && lf[0] != 'v' {
+- lf = "v" + lf
+- }
+- vuln := Vuln{
+- ID: v0.OSV.ID,
+- PkgPath: v0.PkgPath,
+- CurrentVersion: ci.ModuleVersions[v0.ModPath],
+- FixedVersion: lf,
+- Details: v0.OSV.Details,
+-
+- Aliases: v0.OSV.Aliases,
+- Symbol: v0.Symbol,
+- ModPath: v0.ModPath,
+- URL: href(v0.OSV),
+- }
+-
+- // Keep first call stack for each vuln.
+- for _, v := range vg {
+- if css := ci.CallStacks[v]; len(css) > 0 {
+- vuln.CallStacks = append(vuln.CallStacks, toCallStack(css[0]))
+- vuln.CallStackSummaries = append(vuln.CallStackSummaries, gvc.SummarizeCallStack(css[0], ci.TopPackages, v.PkgPath))
+- }
+- }
+- vulns = append(vulns, vuln)
+- }
+- return vulns, nil
+-}
+diff -urN a/gopls/internal/vulncheck/command_test.go b/gopls/internal/vulncheck/command_test.go
+--- a/gopls/internal/vulncheck/command_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/vulncheck/command_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,310 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package vulncheck
+-
+-import (
+- "bytes"
+- "context"
+- "fmt"
+- "os"
+- "path/filepath"
+- "sort"
+- "testing"
+-
+- "github.com/google/go-cmp/cmp"
+- "github.com/google/go-cmp/cmp/cmpopts"
+- "golang.org/x/tools/go/packages"
+- "golang.org/x/tools/internal/lsp/cache"
+- "golang.org/x/tools/internal/lsp/fake"
+- "golang.org/x/tools/internal/lsp/source"
+- "golang.org/x/tools/internal/lsp/tests"
+- "golang.org/x/vuln/client"
+- "golang.org/x/vuln/osv"
+-)
+-
+-func TestCmd_Run(t *testing.T) {
+- runTest(t, workspace1, proxy1, func(ctx context.Context, snapshot source.Snapshot) {
+- cmd := &cmd{Client: testClient1}
+- cfg := packagesCfg(ctx, snapshot)
+- result, err := cmd.Run(ctx, cfg, "./...")
+- if err != nil {
+- t.Fatal(err)
+- }
+- // Check that we find the right number of vulnerabilities.
+- // There should be three entries as there are three vulnerable
+- // symbols in the two import-reachable OSVs.
+- var got []report
+- for _, v := range result {
+- got = append(got, toReport(v))
+- }
+-
+- var want = []report{
+- {
+- Vuln: Vuln{
+- ID: "GO-2022-01",
+- Symbol: "VulnData.Vuln1",
+- PkgPath: "golang.org/amod/avuln",
+- ModPath: "golang.org/amod",
+- URL: "https://pkg.go.dev/vuln/GO-2022-01",
+- CurrentVersion: "v1.1.3",
+- FixedVersion: "v1.0.4",
+- CallStackSummaries: []string{
+- "golang.org/entry/x.X calls golang.org/amod/avuln.VulnData.Vuln1",
+- "golang.org/entry/x.X calls golang.org/cmod/c.C1, which eventually calls golang.org/amod/avuln.VulnData.Vuln2",
+- },
+- },
+- CallStacksStr: []string{
+- "golang.org/entry/x.X [approx.] (x.go:8)\n" +
+- "golang.org/amod/avuln.VulnData.Vuln1 (avuln.go:3)\n",
+- "golang.org/entry/x.X (x.go:8)\n" +
+- "golang.org/cmod/c.C1 (c.go:13)\n" +
+- "golang.org/amod/avuln.VulnData.Vuln2 (avuln.go:4)\n",
+- },
+- },
+- {
+- Vuln: Vuln{
+- ID: "GO-2022-02",
+- Symbol: "Vuln",
+- PkgPath: "golang.org/bmod/bvuln",
+- ModPath: "golang.org/bmod",
+- URL: "https://pkg.go.dev/vuln/GO-2022-02",
+- CurrentVersion: "v0.5.0",
+- CallStackSummaries: []string{"golang.org/entry/y.Y calls golang.org/bmod/bvuln.Vuln"},
+- },
+- CallStacksStr: []string{
+- "golang.org/entry/y.Y [approx.] (y.go:5)\n" +
+- "golang.org/bmod/bvuln.Vuln (bvuln.go:2)\n",
+- },
+- },
+- }
+- // sort reports for stability before comparison.
+- for _, rpts := range [][]report{got, want} {
+- sort.Slice(rpts, func(i, j int) bool {
+- a, b := rpts[i], rpts[j]
+- if a.ID != b.ID {
+- return a.ID < b.ID
+- }
+- if a.PkgPath != b.PkgPath {
+- return a.PkgPath < b.PkgPath
+- }
+- return a.Symbol < b.Symbol
+- })
+- }
+- if diff := cmp.Diff(want, got, cmpopts.IgnoreFields(report{}, "Vuln.CallStacks")); diff != "" {
+- t.Error(diff)
+- }
+-
+- })
+-}
+-
+-type report struct {
+- Vuln
+- // Trace is stringified Vuln.CallStacks
+- CallStacksStr []string
+-}
+-
+-func toReport(v Vuln) report {
+- var r = report{Vuln: v}
+- for _, s := range v.CallStacks {
+- r.CallStacksStr = append(r.CallStacksStr, CallStackString(s))
+- }
+- return r
+-}
+-
+-func CallStackString(callstack CallStack) string {
+- var b bytes.Buffer
+- for _, entry := range callstack {
+- fname := filepath.Base(entry.URI.SpanURI().Filename())
+- fmt.Fprintf(&b, "%v (%v:%d)\n", entry.Name, fname, entry.Pos.Line)
+- }
+- return b.String()
+-}
+-
+-const workspace1 = `
+--- go.mod --
+-module golang.org/entry
+-
+-require (
+- golang.org/cmod v1.1.3
+-)
+-go 1.18
+--- x/x.go --
+-package x
+-
+-import (
+- "golang.org/cmod/c"
+- "golang.org/entry/y"
+-)
+-
+-func X() {
+- c.C1().Vuln1() // vuln use: X -> Vuln1
+-}
+-
+-func CallY() {
+- y.Y() // vuln use: CallY -> y.Y -> bvuln.Vuln
+-}
+-
+--- y/y.go --
+-package y
+-
+-import "golang.org/cmod/c"
+-
+-func Y() {
+- c.C2()() // vuln use: Y -> bvuln.Vuln
+-}
+-`
+-
+-const proxy1 = `
+--- golang.org/cmod@v1.1.3/go.mod --
+-module golang.org/cmod
+-
+-go 1.12
+--- golang.org/cmod@v1.1.3/c/c.go --
+-package c
+-
+-import (
+- "golang.org/amod/avuln"
+- "golang.org/bmod/bvuln"
+-)
+-
+-type I interface {
+- Vuln1()
+-}
+-
+-func C1() I {
+- v := avuln.VulnData{}
+- v.Vuln2() // vuln use
+- return v
+-}
+-
+-func C2() func() {
+- return bvuln.Vuln
+-}
+--- golang.org/amod@v1.1.3/go.mod --
+-module golang.org/amod
+-
+-go 1.14
+--- golang.org/amod@v1.1.3/avuln/avuln.go --
+-package avuln
+-
+-type VulnData struct {}
+-func (v VulnData) Vuln1() {}
+-func (v VulnData) Vuln2() {}
+--- golang.org/bmod@v0.5.0/go.mod --
+-module golang.org/bmod
+-
+-go 1.14
+--- golang.org/bmod@v0.5.0/bvuln/bvuln.go --
+-package bvuln
+-
+-func Vuln() {
+- // something evil
+-}
+-`
+-
+-// testClient contains the following test vulnerabilities
+-//
+-// golang.org/amod/avuln.{VulnData.Vuln1, vulnData.Vuln2}
+-// golang.org/bmod/bvuln.{Vuln}
+-var testClient1 = &mockClient{
+- ret: map[string][]*osv.Entry{
+- "golang.org/amod": {
+- {
+- ID: "GO-2022-01",
+- References: []osv.Reference{
+- {
+- Type: "href",
+- URL: "pkg.go.dev/vuln/GO-2022-01",
+- },
+- },
+- Affected: []osv.Affected{{
+- Package: osv.Package{Name: "golang.org/amod/avuln"},
+- Ranges: osv.Affects{{Type: osv.TypeSemver, Events: []osv.RangeEvent{{Introduced: "1.0.0"}, {Fixed: "1.0.4"}, {Introduced: "1.1.2"}}}},
+- EcosystemSpecific: osv.EcosystemSpecific{Symbols: []string{"VulnData.Vuln1", "VulnData.Vuln2"}},
+- }},
+- },
+- },
+- "golang.org/bmod": {
+- {
+- ID: "GO-2022-02",
+- Affected: []osv.Affected{{
+- Package: osv.Package{Name: "golang.org/bmod/bvuln"},
+- Ranges: osv.Affects{{Type: osv.TypeSemver}},
+- EcosystemSpecific: osv.EcosystemSpecific{Symbols: []string{"Vuln"}},
+- }},
+- },
+- },
+- },
+-}
+-
+-type mockClient struct {
+- client.Client
+- ret map[string][]*osv.Entry
+-}
+-
+-func (mc *mockClient) GetByModule(ctx context.Context, a string) ([]*osv.Entry, error) {
+- return mc.ret[a], nil
+-}
+-
+-func runTest(t *testing.T, workspaceData, proxyData string, test func(context.Context, source.Snapshot)) {
+- ws, err := fake.NewSandbox(&fake.SandboxConfig{
+- Files: fake.UnpackTxt(workspaceData),
+- ProxyFiles: fake.UnpackTxt(proxyData),
+- })
+- if err != nil {
+- t.Fatal(err)
+- }
+- defer ws.Close()
+-
+- ctx := tests.Context(t)
+-
+- // get the module cache populated and the go.sum file at the root auto-generated.
+- dir := ws.Workdir.RootURI().SpanURI().Filename()
+- if err := ws.RunGoCommand(ctx, dir, "list", []string{"-mod=mod", "..."}, true); err != nil {
+- t.Fatal(err)
+- }
+-
+- cache := cache.New(nil)
+- session := cache.NewSession(ctx)
+- options := source.DefaultOptions().Clone()
+- tests.DefaultOptions(options)
+- session.SetOptions(options)
+- envs := []string{}
+- for k, v := range ws.GoEnv() {
+- envs = append(envs, k+"="+v)
+- }
+- options.SetEnvSlice(envs)
+- name := ws.RootDir()
+- folder := ws.Workdir.RootURI().SpanURI()
+- view, snapshot, release, err := session.NewView(ctx, name, folder, options)
+- if err != nil {
+- t.Fatal(err)
+- }
+- defer release()
+- defer view.Shutdown(ctx)
+-
+- test(ctx, snapshot)
+-}
+-
+-// TODO: expose this as a method of Snapshot.
+-func packagesCfg(ctx context.Context, snapshot source.Snapshot) *packages.Config {
+- view := snapshot.View()
+- viewBuildFlags := view.Options().BuildFlags
+- var viewEnv []string
+- if e := view.Options().EnvSlice(); e != nil {
+- viewEnv = append(os.Environ(), e...)
+- }
+- return &packages.Config{
+- // Mode will be set by cmd.Run.
+- Context: ctx,
+- Tests: true,
+- BuildFlags: viewBuildFlags,
+- Env: viewEnv,
+- Dir: view.Folder().Filename(),
+- }
+-}
+diff -urN a/gopls/internal/vulncheck/util.go b/gopls/internal/vulncheck/util.go
+--- a/gopls/internal/vulncheck/util.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/vulncheck/util.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,82 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-//go:build go1.18
+-// +build go1.18
+-
+-package vulncheck
+-
+-import (
+- "fmt"
+- "go/token"
+-
+- gvc "golang.org/x/tools/gopls/internal/govulncheck"
+- "golang.org/x/tools/internal/lsp/protocol"
+- "golang.org/x/vuln/osv"
+- "golang.org/x/vuln/vulncheck"
+-)
+-
+-func toCallStack(src vulncheck.CallStack) CallStack {
+- var dest []StackEntry
+- for _, e := range src {
+- dest = append(dest, toStackEntry(e))
+- }
+- return dest
+-}
+-
+-func toStackEntry(src vulncheck.StackEntry) StackEntry {
+- f, call := src.Function, src.Call
+- pos := f.Pos
+- desc := gvc.FuncName(f)
+- if src.Call != nil {
+- pos = src.Call.Pos // Exact call site position is helpful.
+- if !call.Resolved {
+- // In case of a statically unresolved call site, communicate to the client
+- // that this was approximately resolved to f
+-
+- desc += " [approx.]"
+- }
+- }
+- return StackEntry{
+- Name: desc,
+- URI: filenameToURI(pos),
+- Pos: posToPosition(pos),
+- }
+-}
+-
+-// href returns a URL embedded in the entry if any.
+-// If no suitable URL is found, it returns a default entry in
+-// pkg.go.dev/vuln.
+-func href(vuln *osv.Entry) string {
+- for _, affected := range vuln.Affected {
+- if url := affected.DatabaseSpecific.URL; url != "" {
+- return url
+- }
+- }
+- for _, r := range vuln.References {
+- if r.Type == "WEB" {
+- return r.URL
+- }
+- }
+- return fmt.Sprintf("https://pkg.go.dev/vuln/%s", vuln.ID)
+-}
+-
+-func filenameToURI(pos *token.Position) protocol.DocumentURI {
+- if pos == nil || pos.Filename == "" {
+- return ""
+- }
+- return protocol.URIFromPath(pos.Filename)
+-}
+-
+-func posToPosition(pos *token.Position) (p protocol.Position) {
+- // token.Position.Line starts from 1, and
+- // LSP protocol's position line is 0-based.
+- if pos != nil {
+- p.Line = uint32(pos.Line - 1)
+- // TODO(hyangah): LSP uses UTF16 column.
+- // We need utility like span.ToUTF16Column,
+- // but somthing that does not require file contents.
+- }
+- return p
+-}
+diff -urN a/gopls/internal/vulncheck/vulncheck.go b/gopls/internal/vulncheck/vulncheck.go
+--- a/gopls/internal/vulncheck/vulncheck.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/internal/vulncheck/vulncheck.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,23 +0,0 @@
+-// Copyright 2022 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// Package vulncheck provides an analysis command
+-// that runs vulnerability analysis using data from
+-// golang.org/x/vuln/vulncheck.
+-// This package requires go1.18 or newer.
+-package vulncheck
+-
+-import (
+- "context"
+- "errors"
+-
+- "golang.org/x/tools/go/packages"
+- "golang.org/x/tools/internal/lsp/command"
+-)
+-
+-// Govulncheck runs the in-process govulncheck implementation.
+-// With go1.18+, this is swapped with the real implementation.
+-var Govulncheck = func(ctx context.Context, cfg *packages.Config, args command.VulncheckArgs) (res command.VulncheckResult, _ error) {
+- return res, errors.New("not implemented")
+-}
diff -urN a/gopls/main.go b/gopls/main.go
---- a/gopls/main.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/main.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,26 +0,0 @@
+--- a/gopls/main.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/main.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,31 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -15189,6 +17735,7 @@
-
-import (
- "context"
+- "golang.org/x/tools/internal/analysisinternal"
- "os"
-
- "golang.org/x/tools/gopls/internal/hooks"
@@ -15197,12 +17744,16 @@
-)
-
-func main() {
+- // In 1.18, diagnostics for Fuzz tests must not be used by cmd/vet.
+- // So the code for Fuzz tests diagnostics is guarded behind flag analysisinternal.DiagnoseFuzzTests
+- // Turn on analysisinternal.DiagnoseFuzzTests for gopls
+- analysisinternal.DiagnoseFuzzTests = true
- ctx := context.Background()
- tool.Main(ctx, cmd.New("gopls", "", nil, hooks.Options), os.Args[1:])
-}
diff -urN a/gopls/release/release.go b/gopls/release/release.go
---- a/gopls/release/release.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/release/release.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/release/release.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/release/release.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,213 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -15418,8 +17969,8 @@
- return nil
-}
diff -urN a/gopls/test/debug/debug_test.go b/gopls/test/debug/debug_test.go
---- a/gopls/test/debug/debug_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/test/debug/debug_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/test/debug/debug_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/test/debug/debug_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,181 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
@@ -15603,9 +18154,9 @@
- return nil
-}
diff -urN a/gopls/test/gopls_test.go b/gopls/test/gopls_test.go
---- a/gopls/test/gopls_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/test/gopls_test.go 1969-12-31 16:00:00.000000000 -0800
-@@ -1,32 +0,0 @@
+--- a/gopls/test/gopls_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/test/gopls_test.go 1970-01-01 01:00:00.000000000 +0100
+@@ -1,34 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
@@ -15617,6 +18168,7 @@
- "testing"
-
- "golang.org/x/tools/gopls/internal/hooks"
+- "golang.org/x/tools/internal/lsp/bug"
- cmdtest "golang.org/x/tools/internal/lsp/cmd/test"
- "golang.org/x/tools/internal/lsp/source"
- "golang.org/x/tools/internal/lsp/tests"
@@ -15624,6 +18176,7 @@
-)
-
-func TestMain(m *testing.M) {
+- bug.PanicOnBugs = true
- testenv.ExitIfSmallMachine()
- os.Exit(m.Run())
-}
@@ -15639,8 +18192,8 @@
- hooks.Options(options)
-}
diff -urN a/gopls/test/json_test.go b/gopls/test/json_test.go
---- a/gopls/test/json_test.go 2022-03-14 16:31:30.000000000 -0700
-+++ b/gopls/test/json_test.go 1969-12-31 16:00:00.000000000 -0800
+--- a/gopls/test/json_test.go 2000-01-01 00:00:00.000000000 -0000
++++ b/gopls/test/json_test.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,134 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
diff --git a/third_party/org_golang_x_tools-gazelle.patch b/third_party/org_golang_x_tools-gazelle.patch
index 0a7a4f8..6fe5cbd 100644
--- a/third_party/org_golang_x_tools-gazelle.patch
+++ b/third_party/org_golang_x_tools-gazelle.patch
@@ -1,5 +1,5 @@
diff -urN b/benchmark/parse/BUILD.bazel c/benchmark/parse/BUILD.bazel
---- b/benchmark/parse/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/benchmark/parse/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/benchmark/parse/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -23,7 +23,7 @@
+ embed = [":parse"],
+)
diff -urN b/blog/BUILD.bazel c/blog/BUILD.bazel
---- b/blog/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/blog/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/blog/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -51,7 +51,7 @@
+ embed = [":blog"],
+)
diff -urN b/blog/atom/BUILD.bazel c/blog/atom/BUILD.bazel
---- b/blog/atom/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/blog/atom/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/blog/atom/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -69,7 +69,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/auth/authtest/BUILD.bazel c/cmd/auth/authtest/BUILD.bazel
---- b/cmd/auth/authtest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/auth/authtest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/auth/authtest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -88,7 +88,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/auth/cookieauth/BUILD.bazel c/cmd/auth/cookieauth/BUILD.bazel
---- b/cmd/auth/cookieauth/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/auth/cookieauth/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/auth/cookieauth/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -106,7 +106,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/auth/gitauth/BUILD.bazel c/cmd/auth/gitauth/BUILD.bazel
---- b/cmd/auth/gitauth/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/auth/gitauth/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/auth/gitauth/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -125,7 +125,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/auth/netrcauth/BUILD.bazel c/cmd/auth/netrcauth/BUILD.bazel
---- b/cmd/auth/netrcauth/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/auth/netrcauth/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/auth/netrcauth/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -143,7 +143,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/benchcmp/BUILD.bazel c/cmd/benchcmp/BUILD.bazel
---- b/cmd/benchcmp/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/benchcmp/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/benchcmp/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -176,9 +176,9 @@
+ deps = ["//benchmark/parse"],
+)
diff -urN b/cmd/bundle/BUILD.bazel c/cmd/bundle/BUILD.bazel
---- b/cmd/bundle/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/bundle/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/bundle/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,22 @@
+@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
@@ -198,11 +198,12 @@
+go_test(
+ name = "bundle_test",
+ srcs = ["main_test.go"],
++ data = glob(["testdata/**"]),
+ embed = [":bundle_lib"],
+ deps = ["//go/packages/packagestest"],
+)
diff -urN b/cmd/bundle/testdata/src/domain.name/importdecl/BUILD.bazel c/cmd/bundle/testdata/src/domain.name/importdecl/BUILD.bazel
---- b/cmd/bundle/testdata/src/domain.name/importdecl/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/bundle/testdata/src/domain.name/importdecl/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/bundle/testdata/src/domain.name/importdecl/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -220,7 +221,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/bundle/testdata/src/initial/BUILD.bazel c/cmd/bundle/testdata/src/initial/BUILD.bazel
---- b/cmd/bundle/testdata/src/initial/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/bundle/testdata/src/initial/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/bundle/testdata/src/initial/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -242,9 +243,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/callgraph/BUILD.bazel c/cmd/callgraph/BUILD.bazel
---- b/cmd/callgraph/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/callgraph/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/callgraph/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,73 @@
+@@ -0,0 +1,75 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
@@ -258,6 +259,7 @@
+ "//go/callgraph/cha",
+ "//go/callgraph/rta",
+ "//go/callgraph/static",
++ "//go/callgraph/vta",
+ "//go/packages",
+ "//go/pointer",
+ "//go/ssa",
@@ -274,6 +276,7 @@
+go_test(
+ name = "callgraph_test",
+ srcs = ["main_test.go"],
++ data = glob(["testdata/**"]),
+ embed = [":callgraph_lib"],
+ deps = select({
+ "@io_bazel_rules_go//go/platform:aix": [
@@ -319,7 +322,7 @@
+ }),
+)
diff -urN b/cmd/callgraph/testdata/src/pkg/BUILD.bazel c/cmd/callgraph/testdata/src/pkg/BUILD.bazel
---- b/cmd/callgraph/testdata/src/pkg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/callgraph/testdata/src/pkg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/callgraph/testdata/src/pkg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -343,7 +346,7 @@
+ embed = [":pkg_lib"],
+)
diff -urN b/cmd/compilebench/BUILD.bazel c/cmd/compilebench/BUILD.bazel
---- b/cmd/compilebench/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/compilebench/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/compilebench/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -362,7 +365,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/cover/BUILD.bazel c/cmd/cover/BUILD.bazel
---- b/cmd/cover/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/cover/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/cover/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,70 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -436,7 +439,7 @@
+ }),
+)
diff -urN b/cmd/cover/testdata/BUILD.bazel c/cmd/cover/testdata/BUILD.bazel
---- b/cmd/cover/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/cover/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/cover/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -457,7 +460,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/digraph/BUILD.bazel c/cmd/digraph/BUILD.bazel
---- b/cmd/digraph/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/digraph/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/digraph/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -481,7 +484,7 @@
+ embed = [":digraph_lib"],
+)
diff -urN b/cmd/eg/BUILD.bazel c/cmd/eg/BUILD.bazel
---- b/cmd/eg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/eg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/eg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -504,7 +507,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/file2fuzz/BUILD.bazel c/cmd/file2fuzz/BUILD.bazel
---- b/cmd/file2fuzz/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/file2fuzz/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/file2fuzz/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -528,9 +531,9 @@
+ embed = [":file2fuzz_lib"],
+)
diff -urN b/cmd/fiximports/BUILD.bazel c/cmd/fiximports/BUILD.bazel
---- b/cmd/fiximports/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,63 @@
+@@ -0,0 +1,64 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
@@ -550,6 +553,7 @@
+go_test(
+ name = "fiximports_test",
+ srcs = ["main_test.go"],
++ data = glob(["testdata/**"]),
+ embed = [":fiximports_lib"],
+ deps = select({
+ "@io_bazel_rules_go//go/platform:aix": [
@@ -595,7 +599,7 @@
+ }),
+)
diff -urN b/cmd/fiximports/testdata/src/fruit.io/banana/BUILD.bazel c/cmd/fiximports/testdata/src/fruit.io/banana/BUILD.bazel
---- b/cmd/fiximports/testdata/src/fruit.io/banana/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/fruit.io/banana/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/fruit.io/banana/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -613,7 +617,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/fruit.io/orange/BUILD.bazel c/cmd/fiximports/testdata/src/fruit.io/orange/BUILD.bazel
---- b/cmd/fiximports/testdata/src/fruit.io/orange/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/fruit.io/orange/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/fruit.io/orange/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -631,7 +635,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/fruit.io/pear/BUILD.bazel c/cmd/fiximports/testdata/src/fruit.io/pear/BUILD.bazel
---- b/cmd/fiximports/testdata/src/fruit.io/pear/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/fruit.io/pear/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/fruit.io/pear/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -649,7 +653,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/new.com/one/BUILD.bazel c/cmd/fiximports/testdata/src/new.com/one/BUILD.bazel
---- b/cmd/fiximports/testdata/src/new.com/one/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/new.com/one/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/new.com/one/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -667,7 +671,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/old.com/bad/BUILD.bazel c/cmd/fiximports/testdata/src/old.com/bad/BUILD.bazel
---- b/cmd/fiximports/testdata/src/old.com/bad/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/old.com/bad/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/old.com/bad/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -685,7 +689,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/old.com/one/BUILD.bazel c/cmd/fiximports/testdata/src/old.com/one/BUILD.bazel
---- b/cmd/fiximports/testdata/src/old.com/one/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/old.com/one/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/old.com/one/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -703,7 +707,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/titanic.biz/bar/BUILD.bazel c/cmd/fiximports/testdata/src/titanic.biz/bar/BUILD.bazel
---- b/cmd/fiximports/testdata/src/titanic.biz/bar/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/titanic.biz/bar/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/titanic.biz/bar/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -721,7 +725,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/fiximports/testdata/src/titanic.biz/foo/BUILD.bazel c/cmd/fiximports/testdata/src/titanic.biz/foo/BUILD.bazel
---- b/cmd/fiximports/testdata/src/titanic.biz/foo/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/fiximports/testdata/src/titanic.biz/foo/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/fiximports/testdata/src/titanic.biz/foo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -739,7 +743,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/getgo/BUILD.bazel c/cmd/getgo/BUILD.bazel
---- b/cmd/getgo/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/getgo/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/getgo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,74 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -817,7 +821,7 @@
+ embed = [":getgo_lib"],
+)
diff -urN b/cmd/getgo/server/BUILD.bazel c/cmd/getgo/server/BUILD.bazel
---- b/cmd/getgo/server/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/getgo/server/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/getgo/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -835,7 +839,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/go-contrib-init/BUILD.bazel c/cmd/go-contrib-init/BUILD.bazel
---- b/cmd/go-contrib-init/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/go-contrib-init/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/go-contrib-init/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -860,7 +864,7 @@
+ embed = [":go-contrib-init_lib"],
+)
diff -urN b/cmd/godex/BUILD.bazel c/cmd/godex/BUILD.bazel
---- b/cmd/godex/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/godex/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/godex/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -888,9 +892,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/godoc/BUILD.bazel c/cmd/godoc/BUILD.bazel
---- b/cmd/godoc/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/godoc/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/godoc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,41 @@
+@@ -0,0 +1,40 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
@@ -914,7 +918,6 @@
+ "//internal/gocommand",
+ "//playground",
+ "@org_golang_x_sys//execabs:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -933,7 +936,7 @@
+ ],
+)
diff -urN b/cmd/goimports/BUILD.bazel c/cmd/goimports/BUILD.bazel
---- b/cmd/goimports/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/goimports/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/goimports/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -960,7 +963,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/gomvpkg/BUILD.bazel c/cmd/gomvpkg/BUILD.bazel
---- b/cmd/gomvpkg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/gomvpkg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/gomvpkg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -982,7 +985,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/gorename/BUILD.bazel c/cmd/gorename/BUILD.bazel
---- b/cmd/gorename/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/gorename/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/gorename/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -1010,7 +1013,7 @@
+ deps = ["//internal/testenv"],
+)
diff -urN b/cmd/gotype/BUILD.bazel c/cmd/gotype/BUILD.bazel
---- b/cmd/gotype/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/gotype/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/gotype/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1032,7 +1035,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/goyacc/BUILD.bazel c/cmd/goyacc/BUILD.bazel
---- b/cmd/goyacc/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/goyacc/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/goyacc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1053,7 +1056,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/goyacc/testdata/expr/BUILD.bazel c/cmd/goyacc/testdata/expr/BUILD.bazel
---- b/cmd/goyacc/testdata/expr/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/goyacc/testdata/expr/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/goyacc/testdata/expr/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1071,9 +1074,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/BUILD.bazel c/cmd/guru/BUILD.bazel
---- b/cmd/guru/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,56 @@
+@@ -0,0 +1,57 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
@@ -1127,11 +1130,12 @@
+ "guru_test.go",
+ "unit_test.go",
+ ],
++ data = glob(["testdata/**"]),
+ embed = [":guru_lib"],
+ deps = ["//internal/testenv"],
+)
diff -urN b/cmd/guru/serial/BUILD.bazel c/cmd/guru/serial/BUILD.bazel
---- b/cmd/guru/serial/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/serial/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/serial/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1149,7 +1153,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/alias/BUILD.bazel c/cmd/guru/testdata/src/alias/BUILD.bazel
---- b/cmd/guru/testdata/src/alias/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/alias/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/alias/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1167,7 +1171,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/calls/BUILD.bazel c/cmd/guru/testdata/src/calls/BUILD.bazel
---- b/cmd/guru/testdata/src/calls/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/calls/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/calls/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1185,7 +1189,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/calls-json/BUILD.bazel c/cmd/guru/testdata/src/calls-json/BUILD.bazel
---- b/cmd/guru/testdata/src/calls-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/calls-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/calls-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1203,7 +1207,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/definition-json/BUILD.bazel c/cmd/guru/testdata/src/definition-json/BUILD.bazel
---- b/cmd/guru/testdata/src/definition-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/definition-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/definition-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1224,7 +1228,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/describe/BUILD.bazel c/cmd/guru/testdata/src/describe/BUILD.bazel
---- b/cmd/guru/testdata/src/describe/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/describe/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/describe/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1242,7 +1246,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/describe-json/BUILD.bazel c/cmd/guru/testdata/src/describe-json/BUILD.bazel
---- b/cmd/guru/testdata/src/describe-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/describe-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/describe-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1260,7 +1264,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/freevars/BUILD.bazel c/cmd/guru/testdata/src/freevars/BUILD.bazel
---- b/cmd/guru/testdata/src/freevars/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/freevars/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/freevars/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1278,7 +1282,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/implements/BUILD.bazel c/cmd/guru/testdata/src/implements/BUILD.bazel
---- b/cmd/guru/testdata/src/implements/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/implements/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/implements/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1296,7 +1300,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/implements-json/BUILD.bazel c/cmd/guru/testdata/src/implements-json/BUILD.bazel
---- b/cmd/guru/testdata/src/implements-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/implements-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/implements-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1314,7 +1318,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/implements-methods/BUILD.bazel c/cmd/guru/testdata/src/implements-methods/BUILD.bazel
---- b/cmd/guru/testdata/src/implements-methods/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/implements-methods/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/implements-methods/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1332,7 +1336,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/implements-methods-json/BUILD.bazel c/cmd/guru/testdata/src/implements-methods-json/BUILD.bazel
---- b/cmd/guru/testdata/src/implements-methods-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/implements-methods-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/implements-methods-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1350,7 +1354,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/imports/BUILD.bazel c/cmd/guru/testdata/src/imports/BUILD.bazel
---- b/cmd/guru/testdata/src/imports/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/imports/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/imports/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1368,7 +1372,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/lib/BUILD.bazel c/cmd/guru/testdata/src/lib/BUILD.bazel
---- b/cmd/guru/testdata/src/lib/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/lib/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/lib/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1386,7 +1390,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/lib/sublib/BUILD.bazel c/cmd/guru/testdata/src/lib/sublib/BUILD.bazel
---- b/cmd/guru/testdata/src/lib/sublib/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/lib/sublib/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/lib/sublib/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -1404,7 +1408,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/main/BUILD.bazel c/cmd/guru/testdata/src/main/BUILD.bazel
---- b/cmd/guru/testdata/src/main/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/main/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/main/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1422,7 +1426,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/peers/BUILD.bazel c/cmd/guru/testdata/src/peers/BUILD.bazel
---- b/cmd/guru/testdata/src/peers/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/peers/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/peers/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1440,7 +1444,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/peers-json/BUILD.bazel c/cmd/guru/testdata/src/peers-json/BUILD.bazel
---- b/cmd/guru/testdata/src/peers-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/peers-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/peers-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1458,7 +1462,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/pointsto/BUILD.bazel c/cmd/guru/testdata/src/pointsto/BUILD.bazel
---- b/cmd/guru/testdata/src/pointsto/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/pointsto/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/pointsto/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1476,7 +1480,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/pointsto-json/BUILD.bazel c/cmd/guru/testdata/src/pointsto-json/BUILD.bazel
---- b/cmd/guru/testdata/src/pointsto-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/pointsto-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/pointsto-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1494,7 +1498,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/referrers/BUILD.bazel c/cmd/guru/testdata/src/referrers/BUILD.bazel
---- b/cmd/guru/testdata/src/referrers/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/referrers/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/referrers/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -1521,7 +1525,7 @@
+ embed = [":referrers_lib"],
+)
diff -urN b/cmd/guru/testdata/src/referrers-json/BUILD.bazel c/cmd/guru/testdata/src/referrers-json/BUILD.bazel
---- b/cmd/guru/testdata/src/referrers-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/referrers-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/referrers-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1539,7 +1543,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/reflection/BUILD.bazel c/cmd/guru/testdata/src/reflection/BUILD.bazel
---- b/cmd/guru/testdata/src/reflection/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/reflection/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/reflection/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1557,7 +1561,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/softerrs/BUILD.bazel c/cmd/guru/testdata/src/softerrs/BUILD.bazel
---- b/cmd/guru/testdata/src/softerrs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/softerrs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/softerrs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1575,7 +1579,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/what/BUILD.bazel c/cmd/guru/testdata/src/what/BUILD.bazel
---- b/cmd/guru/testdata/src/what/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/what/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/what/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1593,7 +1597,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/what-json/BUILD.bazel c/cmd/guru/testdata/src/what-json/BUILD.bazel
---- b/cmd/guru/testdata/src/what-json/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/what-json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/what-json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1611,7 +1615,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/guru/testdata/src/whicherrs/BUILD.bazel c/cmd/guru/testdata/src/whicherrs/BUILD.bazel
---- b/cmd/guru/testdata/src/whicherrs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/guru/testdata/src/whicherrs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/guru/testdata/src/whicherrs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1629,7 +1633,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/html2article/BUILD.bazel c/cmd/html2article/BUILD.bazel
---- b/cmd/html2article/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/html2article/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/html2article/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1651,7 +1655,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/present/BUILD.bazel c/cmd/present/BUILD.bazel
---- b/cmd/present/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/present/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/present/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1680,7 +1684,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/present2md/BUILD.bazel c/cmd/present2md/BUILD.bazel
---- b/cmd/present2md/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/present2md/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/present2md/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1698,8 +1702,114 @@
+ embed = [":present2md_lib"],
+ visibility = ["//visibility:public"],
+)
+diff -urN b/cmd/signature-fuzzer/fuzz-driver/BUILD.bazel c/cmd/signature-fuzzer/fuzz-driver/BUILD.bazel
+--- b/cmd/signature-fuzzer/fuzz-driver/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/cmd/signature-fuzzer/fuzz-driver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,22 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
++
++go_library(
++ name = "fuzz-driver_lib",
++ srcs = ["driver.go"],
++ importpath = "golang.org/x/tools/cmd/signature-fuzzer/fuzz-driver",
++ visibility = ["//visibility:private"],
++ deps = ["//cmd/signature-fuzzer/internal/fuzz-generator"],
++)
++
++go_binary(
++ name = "fuzz-driver",
++ embed = [":fuzz-driver_lib"],
++ visibility = ["//visibility:public"],
++)
++
++go_test(
++ name = "fuzz-driver_test",
++ srcs = ["drv_test.go"],
++ embed = [":fuzz-driver_lib"],
++ deps = ["//internal/testenv"],
++)
+diff -urN b/cmd/signature-fuzzer/fuzz-runner/BUILD.bazel c/cmd/signature-fuzzer/fuzz-runner/BUILD.bazel
+--- b/cmd/signature-fuzzer/fuzz-runner/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/cmd/signature-fuzzer/fuzz-runner/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,22 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
++
++go_library(
++ name = "fuzz-runner_lib",
++ srcs = ["runner.go"],
++ importpath = "golang.org/x/tools/cmd/signature-fuzzer/fuzz-runner",
++ visibility = ["//visibility:private"],
++ deps = ["//cmd/signature-fuzzer/internal/fuzz-generator"],
++)
++
++go_binary(
++ name = "fuzz-runner",
++ embed = [":fuzz-runner_lib"],
++ visibility = ["//visibility:public"],
++)
++
++go_test(
++ name = "fuzz-runner_test",
++ srcs = ["rnr_test.go"],
++ embed = [":fuzz-runner_lib"],
++ deps = ["//internal/testenv"],
++)
+diff -urN b/cmd/signature-fuzzer/fuzz-runner/testdata/BUILD.bazel c/cmd/signature-fuzzer/fuzz-runner/testdata/BUILD.bazel
+--- b/cmd/signature-fuzzer/fuzz-runner/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/cmd/signature-fuzzer/fuzz-runner/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
++
++go_library(
++ name = "testdata_lib",
++ srcs = ["himom.go"],
++ importpath = "golang.org/x/tools/cmd/signature-fuzzer/fuzz-runner/testdata",
++ visibility = ["//visibility:private"],
++)
++
++go_binary(
++ name = "testdata",
++ embed = [":testdata_lib"],
++ visibility = ["//visibility:public"],
++)
+diff -urN b/cmd/signature-fuzzer/internal/fuzz-generator/BUILD.bazel c/cmd/signature-fuzzer/internal/fuzz-generator/BUILD.bazel
+--- b/cmd/signature-fuzzer/internal/fuzz-generator/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/cmd/signature-fuzzer/internal/fuzz-generator/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,32 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
++
++go_library(
++ name = "fuzz-generator",
++ srcs = [
++ "arrayparm.go",
++ "generator.go",
++ "mapparm.go",
++ "numparm.go",
++ "parm.go",
++ "pointerparm.go",
++ "stringparm.go",
++ "structparm.go",
++ "typedefparm.go",
++ "wraprand.go",
++ ],
++ importpath = "golang.org/x/tools/cmd/signature-fuzzer/internal/fuzz-generator",
++ visibility = ["//cmd/signature-fuzzer:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":fuzz-generator",
++ visibility = ["//cmd/signature-fuzzer:__subpackages__"],
++)
++
++go_test(
++ name = "fuzz-generator_test",
++ srcs = ["gen_test.go"],
++ embed = [":fuzz-generator"],
++ deps = ["//internal/testenv"],
++)
diff -urN b/cmd/splitdwarf/BUILD.bazel c/cmd/splitdwarf/BUILD.bazel
---- b/cmd/splitdwarf/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/splitdwarf/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/splitdwarf/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,47 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1750,7 +1860,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/splitdwarf/internal/macho/BUILD.bazel c/cmd/splitdwarf/internal/macho/BUILD.bazel
---- b/cmd/splitdwarf/internal/macho/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/splitdwarf/internal/macho/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/splitdwarf/internal/macho/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -1781,7 +1891,7 @@
+ embed = [":macho"],
+)
diff -urN b/cmd/ssadump/BUILD.bazel c/cmd/ssadump/BUILD.bazel
---- b/cmd/ssadump/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/ssadump/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/ssadump/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1806,7 +1916,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/stress/BUILD.bazel c/cmd/stress/BUILD.bazel
---- b/cmd/stress/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/stress/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/stress/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,56 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1866,7 +1976,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/stringer/BUILD.bazel c/cmd/stringer/BUILD.bazel
---- b/cmd/stringer/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/stringer/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/stringer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,69 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
@@ -1939,7 +2049,7 @@
+ }),
+)
diff -urN b/cmd/stringer/testdata/BUILD.bazel c/cmd/stringer/testdata/BUILD.bazel
---- b/cmd/stringer/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/stringer/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/stringer/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1970,7 +2080,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/stringer/testdata/typeparams/BUILD.bazel c/cmd/stringer/testdata/typeparams/BUILD.bazel
---- b/cmd/stringer/testdata/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/stringer/testdata/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/stringer/testdata/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -1991,7 +2101,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/cmd/toolstash/BUILD.bazel c/cmd/toolstash/BUILD.bazel
---- b/cmd/toolstash/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cmd/toolstash/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cmd/toolstash/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -2013,7 +2123,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/container/intsets/BUILD.bazel c/container/intsets/BUILD.bazel
---- b/container/intsets/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/container/intsets/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/container/intsets/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2040,7 +2150,7 @@
+ embed = [":intsets"],
+)
diff -urN b/copyright/BUILD.bazel c/copyright/BUILD.bazel
---- b/copyright/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/copyright/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/copyright/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2064,7 +2174,7 @@
+ embed = [":copyright"],
+)
diff -urN b/cover/BUILD.bazel c/cover/BUILD.bazel
---- b/cover/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/cover/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/cover/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2088,7 +2198,7 @@
+ embed = [":cover"],
+)
diff -urN b/go/analysis/BUILD.bazel c/go/analysis/BUILD.bazel
---- b/go/analysis/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,26 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2118,7 +2228,7 @@
+ embed = [":analysis"],
+)
diff -urN b/go/analysis/analysistest/BUILD.bazel c/go/analysis/analysistest/BUILD.bazel
---- b/go/analysis/analysistest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/analysistest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/analysistest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2156,7 +2266,7 @@
+ ],
+)
diff -urN b/go/analysis/internal/analysisflags/BUILD.bazel c/go/analysis/internal/analysisflags/BUILD.bazel
---- b/go/analysis/internal/analysisflags/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/internal/analysisflags/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/internal/analysisflags/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2187,7 +2297,7 @@
+ ],
+)
diff -urN b/go/analysis/internal/checker/BUILD.bazel c/go/analysis/internal/checker/BUILD.bazel
---- b/go/analysis/internal/checker/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/internal/checker/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/internal/checker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2225,7 +2335,7 @@
+ ],
+)
diff -urN b/go/analysis/internal/facts/BUILD.bazel c/go/analysis/internal/facts/BUILD.bazel
---- b/go/analysis/internal/facts/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/internal/facts/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/internal/facts/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2263,7 +2373,7 @@
+ ],
+)
diff -urN b/go/analysis/multichecker/BUILD.bazel c/go/analysis/multichecker/BUILD.bazel
---- b/go/analysis/multichecker/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/multichecker/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/multichecker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -2298,14 +2408,18 @@
+ ],
+)
diff -urN b/go/analysis/passes/asmdecl/BUILD.bazel c/go/analysis/passes/asmdecl/BUILD.bazel
---- b/go/analysis/passes/asmdecl/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/asmdecl/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/asmdecl/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,27 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "asmdecl",
-+ srcs = ["asmdecl.go"],
++ srcs = [
++ "arches_go118.go",
++ "arches_go119.go",
++ "asmdecl.go",
++ ],
+ importpath = "golang.org/x/tools/go/analysis/passes/asmdecl",
+ visibility = ["//visibility:public"],
+ deps = [
@@ -2323,15 +2437,16 @@
+go_test(
+ name = "asmdecl_test",
+ srcs = ["asmdecl_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":asmdecl",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/asmdecl/testdata/src/a/BUILD.bazel c/go/analysis/passes/asmdecl/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/asmdecl/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/asmdecl/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/asmdecl/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,25 @@
+@@ -0,0 +1,26 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
@@ -2339,6 +2454,7 @@
+ srcs = [
+ "asm.go",
+ "asm1.s",
++ "asm10.s",
+ "asm2.s",
+ "asm3.s",
+ "asm4.s",
@@ -2358,9 +2474,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/assign/BUILD.bazel c/go/analysis/passes/assign/BUILD.bazel
---- b/go/analysis/passes/assign/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/assign/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/assign/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2385,6 +2501,7 @@
+go_test(
+ name = "assign_test",
+ srcs = ["assign_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":assign",
+ "//go/analysis/analysistest",
@@ -2392,7 +2509,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/assign/testdata/src/a/BUILD.bazel c/go/analysis/passes/assign/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/assign/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/assign/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/assign/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2410,7 +2527,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/assign/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/assign/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/assign/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/assign/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/assign/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2428,9 +2545,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/atomic/BUILD.bazel c/go/analysis/passes/atomic/BUILD.bazel
---- b/go/analysis/passes/atomic/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomic/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomic/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2455,6 +2572,7 @@
+go_test(
+ name = "atomic_test",
+ srcs = ["atomic_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":atomic",
+ "//go/analysis/analysistest",
@@ -2462,7 +2580,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/atomic/testdata/src/a/BUILD.bazel c/go/analysis/passes/atomic/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/atomic/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomic/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomic/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2480,7 +2598,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/atomic/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/atomic/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/atomic/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomic/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomic/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2498,9 +2616,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/atomicalign/BUILD.bazel c/go/analysis/passes/atomicalign/BUILD.bazel
---- b/go/analysis/passes/atomicalign/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomicalign/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomicalign/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2525,13 +2643,14 @@
+go_test(
+ name = "atomicalign_test",
+ srcs = ["atomicalign_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":atomicalign",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/atomicalign/testdata/src/a/BUILD.bazel c/go/analysis/passes/atomicalign/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/atomicalign/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomicalign/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomicalign/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2552,7 +2671,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/atomicalign/testdata/src/b/BUILD.bazel c/go/analysis/passes/atomicalign/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/atomicalign/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/atomicalign/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/atomicalign/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2573,9 +2692,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/bools/BUILD.bazel c/go/analysis/passes/bools/BUILD.bazel
---- b/go/analysis/passes/bools/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/bools/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/bools/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2600,6 +2719,7 @@
+go_test(
+ name = "bools_test",
+ srcs = ["bools_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":bools",
+ "//go/analysis/analysistest",
@@ -2607,7 +2727,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/bools/testdata/src/a/BUILD.bazel c/go/analysis/passes/bools/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/bools/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/bools/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/bools/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2625,7 +2745,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/bools/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/bools/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/bools/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/bools/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/bools/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2643,9 +2763,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/buildssa/BUILD.bazel c/go/analysis/passes/buildssa/BUILD.bazel
---- b/go/analysis/passes/buildssa/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/buildssa/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/buildssa/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,27 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2668,13 +2788,15 @@
+go_test(
+ name = "buildssa_test",
+ srcs = ["buildssa_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":buildssa",
+ "//go/analysis/analysistest",
++ "//internal/typeparams",
+ ],
+)
diff -urN b/go/analysis/passes/buildssa/testdata/src/a/BUILD.bazel c/go/analysis/passes/buildssa/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/buildssa/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/buildssa/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/buildssa/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2691,10 +2813,46 @@
+ actual = ":a",
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/analysis/passes/buildssa/testdata/src/b/BUILD.bazel c/go/analysis/passes/buildssa/testdata/src/b/BUILD.bazel
+--- b/go/analysis/passes/buildssa/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/analysis/passes/buildssa/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "b",
++ srcs = ["b.go"],
++ importpath = "golang.org/x/tools/go/analysis/passes/buildssa/testdata/src/b",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":b",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/analysis/passes/buildssa/testdata/src/c/BUILD.bazel c/go/analysis/passes/buildssa/testdata/src/c/BUILD.bazel
+--- b/go/analysis/passes/buildssa/testdata/src/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/analysis/passes/buildssa/testdata/src/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "c",
++ srcs = ["c.go"],
++ importpath = "golang.org/x/tools/go/analysis/passes/buildssa/testdata/src/c",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":c",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/analysis/passes/buildtag/BUILD.bazel c/go/analysis/passes/buildtag/BUILD.bazel
---- b/go/analysis/passes/buildtag/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/buildtag/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/buildtag/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2720,6 +2878,7 @@
+go_test(
+ name = "buildtag_test",
+ srcs = ["buildtag_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":buildtag",
+ "//go/analysis",
@@ -2727,7 +2886,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/buildtag/testdata/src/a/BUILD.bazel c/go/analysis/passes/buildtag/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/buildtag/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/buildtag/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/buildtag/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2749,9 +2908,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/cgocall/BUILD.bazel c/go/analysis/passes/cgocall/BUILD.bazel
---- b/go/analysis/passes/cgocall/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/cgocall/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/cgocall/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2774,6 +2933,7 @@
+go_test(
+ name = "cgocall_test",
+ srcs = ["cgocall_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":cgocall",
+ "//go/analysis/analysistest",
@@ -2781,7 +2941,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/cgocall/testdata/src/a/BUILD.bazel c/go/analysis/passes/cgocall/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/cgocall/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/cgocall/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/cgocall/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2803,7 +2963,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/cgocall/testdata/src/b/BUILD.bazel c/go/analysis/passes/cgocall/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/cgocall/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/cgocall/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/cgocall/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2821,7 +2981,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/cgocall/testdata/src/c/BUILD.bazel c/go/analysis/passes/cgocall/testdata/src/c/BUILD.bazel
---- b/go/analysis/passes/cgocall/testdata/src/c/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/cgocall/testdata/src/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/cgocall/testdata/src/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2839,7 +2999,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/cgocall/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/cgocall/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/cgocall/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/cgocall/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/cgocall/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2858,9 +3018,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/composite/BUILD.bazel c/go/analysis/passes/composite/BUILD.bazel
---- b/go/analysis/passes/composite/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/composite/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/composite/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2888,6 +3048,7 @@
+go_test(
+ name = "composite_test",
+ srcs = ["composite_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":composite",
+ "//go/analysis/analysistest",
@@ -2895,10 +3056,10 @@
+ ],
+)
diff -urN b/go/analysis/passes/composite/testdata/src/a/BUILD.bazel c/go/analysis/passes/composite/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/composite/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/composite/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/composite/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,14 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+@@ -0,0 +1,20 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "a",
@@ -2912,8 +3073,14 @@
+ actual = ":a",
+ visibility = ["//visibility:public"],
+)
++
++go_test(
++ name = "a_test",
++ srcs = ["a_fuzz_test.go"],
++ embed = [":a"],
++)
diff -urN b/go/analysis/passes/composite/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/composite/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/composite/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/composite/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/composite/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2931,7 +3098,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/composite/testdata/src/typeparams/lib/BUILD.bazel c/go/analysis/passes/composite/testdata/src/typeparams/lib/BUILD.bazel
---- b/go/analysis/passes/composite/testdata/src/typeparams/lib/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/composite/testdata/src/typeparams/lib/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/composite/testdata/src/typeparams/lib/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -2949,9 +3116,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/copylock/BUILD.bazel c/go/analysis/passes/copylock/BUILD.bazel
---- b/go/analysis/passes/copylock/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/copylock/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/copylock/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -2977,6 +3144,7 @@
+go_test(
+ name = "copylock_test",
+ srcs = ["copylock_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":copylock",
+ "//go/analysis/analysistest",
@@ -2984,7 +3152,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/copylock/testdata/src/a/BUILD.bazel c/go/analysis/passes/copylock/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/copylock/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/copylock/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/copylock/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3006,7 +3174,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/copylock/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/copylock/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/copylock/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/copylock/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/copylock/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3024,9 +3192,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ctrlflow/BUILD.bazel c/go/analysis/passes/ctrlflow/BUILD.bazel
---- b/go/analysis/passes/ctrlflow/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ctrlflow/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ctrlflow/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3052,6 +3220,7 @@
+go_test(
+ name = "ctrlflow_test",
+ srcs = ["ctrlflow_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":ctrlflow",
+ "//go/analysis/analysistest",
@@ -3059,7 +3228,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/ctrlflow/testdata/src/a/BUILD.bazel c/go/analysis/passes/ctrlflow/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/ctrlflow/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ctrlflow/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ctrlflow/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3077,7 +3246,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ctrlflow/testdata/src/lib/BUILD.bazel c/go/analysis/passes/ctrlflow/testdata/src/lib/BUILD.bazel
---- b/go/analysis/passes/ctrlflow/testdata/src/lib/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ctrlflow/testdata/src/lib/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ctrlflow/testdata/src/lib/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3095,7 +3264,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ctrlflow/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/ctrlflow/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/ctrlflow/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ctrlflow/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ctrlflow/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3113,9 +3282,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/deepequalerrors/BUILD.bazel c/go/analysis/passes/deepequalerrors/BUILD.bazel
---- b/go/analysis/passes/deepequalerrors/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/deepequalerrors/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/deepequalerrors/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3140,6 +3309,7 @@
+go_test(
+ name = "deepequalerrors_test",
+ srcs = ["deepequalerrors_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":deepequalerrors",
+ "//go/analysis/analysistest",
@@ -3147,7 +3317,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/deepequalerrors/testdata/src/a/BUILD.bazel c/go/analysis/passes/deepequalerrors/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/deepequalerrors/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/deepequalerrors/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/deepequalerrors/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3165,7 +3335,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/deepequalerrors/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/deepequalerrors/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/deepequalerrors/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/deepequalerrors/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/deepequalerrors/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3183,9 +3353,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/errorsas/BUILD.bazel c/go/analysis/passes/errorsas/BUILD.bazel
---- b/go/analysis/passes/errorsas/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/errorsas/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/errorsas/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3210,6 +3380,7 @@
+go_test(
+ name = "errorsas_test",
+ srcs = ["errorsas_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":errorsas",
+ "//go/analysis/analysistest",
@@ -3217,7 +3388,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/errorsas/testdata/src/a/BUILD.bazel c/go/analysis/passes/errorsas/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/errorsas/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/errorsas/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/errorsas/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3235,7 +3406,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/errorsas/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/errorsas/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/errorsas/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/errorsas/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/errorsas/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3253,9 +3424,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/fieldalignment/BUILD.bazel c/go/analysis/passes/fieldalignment/BUILD.bazel
---- b/go/analysis/passes/fieldalignment/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/fieldalignment/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/fieldalignment/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3279,13 +3450,14 @@
+go_test(
+ name = "fieldalignment_test",
+ srcs = ["fieldalignment_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":fieldalignment",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/fieldalignment/cmd/fieldalignment/BUILD.bazel c/go/analysis/passes/fieldalignment/cmd/fieldalignment/BUILD.bazel
---- b/go/analysis/passes/fieldalignment/cmd/fieldalignment/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/fieldalignment/cmd/fieldalignment/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/fieldalignment/cmd/fieldalignment/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3307,7 +3479,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/fieldalignment/testdata/src/a/BUILD.bazel c/go/analysis/passes/fieldalignment/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/fieldalignment/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/fieldalignment/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/fieldalignment/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3329,9 +3501,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/findcall/BUILD.bazel c/go/analysis/passes/findcall/BUILD.bazel
---- b/go/analysis/passes/findcall/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/findcall/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/findcall/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,24 @@
+@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3351,13 +3523,14 @@
+go_test(
+ name = "findcall_test",
+ srcs = ["findcall_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":findcall",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/findcall/cmd/findcall/BUILD.bazel c/go/analysis/passes/findcall/cmd/findcall/BUILD.bazel
---- b/go/analysis/passes/findcall/cmd/findcall/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/findcall/cmd/findcall/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/findcall/cmd/findcall/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3379,7 +3552,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/findcall/testdata/src/a/BUILD.bazel c/go/analysis/passes/findcall/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/findcall/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/findcall/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/findcall/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3397,9 +3570,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/framepointer/BUILD.bazel c/go/analysis/passes/framepointer/BUILD.bazel
---- b/go/analysis/passes/framepointer/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/framepointer/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/framepointer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,27 @@
+@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3422,13 +3595,14 @@
+go_test(
+ name = "framepointer_test",
+ srcs = ["framepointer_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":framepointer",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/framepointer/testdata/src/a/BUILD.bazel c/go/analysis/passes/framepointer/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/framepointer/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/framepointer/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/framepointer/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3452,9 +3626,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/httpresponse/BUILD.bazel c/go/analysis/passes/httpresponse/BUILD.bazel
---- b/go/analysis/passes/httpresponse/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/httpresponse/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/httpresponse/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3479,6 +3653,7 @@
+go_test(
+ name = "httpresponse_test",
+ srcs = ["httpresponse_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":httpresponse",
+ "//go/analysis/analysistest",
@@ -3486,7 +3661,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/httpresponse/testdata/src/a/BUILD.bazel c/go/analysis/passes/httpresponse/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/httpresponse/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/httpresponse/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/httpresponse/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3504,7 +3679,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/httpresponse/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/httpresponse/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/httpresponse/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/httpresponse/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/httpresponse/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3522,9 +3697,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ifaceassert/BUILD.bazel c/go/analysis/passes/ifaceassert/BUILD.bazel
---- b/go/analysis/passes/ifaceassert/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ifaceassert/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ifaceassert/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3552,6 +3727,7 @@
+go_test(
+ name = "ifaceassert_test",
+ srcs = ["ifaceassert_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":ifaceassert",
+ "//go/analysis/analysistest",
@@ -3559,7 +3735,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/ifaceassert/cmd/ifaceassert/BUILD.bazel c/go/analysis/passes/ifaceassert/cmd/ifaceassert/BUILD.bazel
---- b/go/analysis/passes/ifaceassert/cmd/ifaceassert/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ifaceassert/cmd/ifaceassert/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ifaceassert/cmd/ifaceassert/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3581,7 +3757,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ifaceassert/testdata/src/a/BUILD.bazel c/go/analysis/passes/ifaceassert/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/ifaceassert/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ifaceassert/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ifaceassert/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3599,7 +3775,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/ifaceassert/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/ifaceassert/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/ifaceassert/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/ifaceassert/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/ifaceassert/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3617,7 +3793,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/inspect/BUILD.bazel c/go/analysis/passes/inspect/BUILD.bazel
---- b/go/analysis/passes/inspect/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/inspect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/inspect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3639,7 +3815,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/internal/analysisutil/BUILD.bazel c/go/analysis/passes/internal/analysisutil/BUILD.bazel
---- b/go/analysis/passes/internal/analysisutil/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/internal/analysisutil/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/internal/analysisutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -3666,9 +3842,9 @@
+ ],
+)
diff -urN b/go/analysis/passes/loopclosure/BUILD.bazel c/go/analysis/passes/loopclosure/BUILD.bazel
---- b/go/analysis/passes/loopclosure/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/loopclosure/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/loopclosure/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3693,6 +3869,7 @@
+go_test(
+ name = "loopclosure_test",
+ srcs = ["loopclosure_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":loopclosure",
+ "//go/analysis/analysistest",
@@ -3700,7 +3877,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/loopclosure/testdata/src/a/BUILD.bazel c/go/analysis/passes/loopclosure/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/loopclosure/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/loopclosure/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/loopclosure/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3719,7 +3896,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/loopclosure/testdata/src/golang.org/x/sync/errgroup/BUILD.bazel c/go/analysis/passes/loopclosure/testdata/src/golang.org/x/sync/errgroup/BUILD.bazel
---- b/go/analysis/passes/loopclosure/testdata/src/golang.org/x/sync/errgroup/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/loopclosure/testdata/src/golang.org/x/sync/errgroup/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/loopclosure/testdata/src/golang.org/x/sync/errgroup/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3737,7 +3914,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/loopclosure/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/loopclosure/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/loopclosure/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/loopclosure/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/loopclosure/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3756,9 +3933,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/lostcancel/BUILD.bazel c/go/analysis/passes/lostcancel/BUILD.bazel
---- b/go/analysis/passes/lostcancel/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/lostcancel/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/lostcancel/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3784,6 +3961,7 @@
+go_test(
+ name = "lostcancel_test",
+ srcs = ["lostcancel_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":lostcancel",
+ "//go/analysis/analysistest",
@@ -3791,7 +3969,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/lostcancel/cmd/lostcancel/BUILD.bazel c/go/analysis/passes/lostcancel/cmd/lostcancel/BUILD.bazel
---- b/go/analysis/passes/lostcancel/cmd/lostcancel/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/lostcancel/cmd/lostcancel/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/lostcancel/cmd/lostcancel/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3813,7 +3991,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/lostcancel/testdata/src/a/BUILD.bazel c/go/analysis/passes/lostcancel/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/lostcancel/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/lostcancel/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/lostcancel/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3831,7 +4009,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/lostcancel/testdata/src/b/BUILD.bazel c/go/analysis/passes/lostcancel/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/lostcancel/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/lostcancel/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/lostcancel/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3849,7 +4027,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/lostcancel/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/lostcancel/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/lostcancel/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/lostcancel/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/lostcancel/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3867,9 +4045,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/nilfunc/BUILD.bazel c/go/analysis/passes/nilfunc/BUILD.bazel
---- b/go/analysis/passes/nilfunc/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilfunc/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilfunc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3894,6 +4072,7 @@
+go_test(
+ name = "nilfunc_test",
+ srcs = ["nilfunc_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":nilfunc",
+ "//go/analysis/analysistest",
@@ -3901,7 +4080,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/nilfunc/testdata/src/a/BUILD.bazel c/go/analysis/passes/nilfunc/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/nilfunc/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilfunc/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilfunc/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3919,7 +4098,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/nilfunc/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/nilfunc/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/nilfunc/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilfunc/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilfunc/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -3937,9 +4116,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/nilness/BUILD.bazel c/go/analysis/passes/nilness/BUILD.bazel
---- b/go/analysis/passes/nilness/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilness/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilness/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,33 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -3966,13 +4145,15 @@
+ "nilness_go117_test.go",
+ "nilness_test.go",
+ ],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":nilness",
+ "//go/analysis/analysistest",
++ "//internal/typeparams",
+ ],
+)
diff -urN b/go/analysis/passes/nilness/cmd/nilness/BUILD.bazel c/go/analysis/passes/nilness/cmd/nilness/BUILD.bazel
---- b/go/analysis/passes/nilness/cmd/nilness/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilness/cmd/nilness/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilness/cmd/nilness/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -3994,7 +4175,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/nilness/testdata/src/a/BUILD.bazel c/go/analysis/passes/nilness/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/nilness/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilness/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilness/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4012,7 +4193,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/nilness/testdata/src/b/BUILD.bazel c/go/analysis/passes/nilness/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/nilness/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/nilness/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/nilness/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4029,10 +4210,28 @@
+ actual = ":b",
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/analysis/passes/nilness/testdata/src/c/BUILD.bazel c/go/analysis/passes/nilness/testdata/src/c/BUILD.bazel
+--- b/go/analysis/passes/nilness/testdata/src/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/analysis/passes/nilness/testdata/src/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "c",
++ srcs = ["c.go"],
++ importpath = "golang.org/x/tools/go/analysis/passes/nilness/testdata/src/c",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":c",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/analysis/passes/pkgfact/BUILD.bazel c/go/analysis/passes/pkgfact/BUILD.bazel
---- b/go/analysis/passes/pkgfact/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/pkgfact/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/pkgfact/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,24 @@
+@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4052,13 +4251,14 @@
+go_test(
+ name = "pkgfact_test",
+ srcs = ["pkgfact_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":pkgfact",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/pkgfact/testdata/src/a/BUILD.bazel c/go/analysis/passes/pkgfact/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/pkgfact/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/pkgfact/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/pkgfact/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4076,7 +4276,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/pkgfact/testdata/src/b/BUILD.bazel c/go/analysis/passes/pkgfact/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/pkgfact/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/pkgfact/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/pkgfact/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4094,7 +4294,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/pkgfact/testdata/src/c/BUILD.bazel c/go/analysis/passes/pkgfact/testdata/src/c/BUILD.bazel
---- b/go/analysis/passes/pkgfact/testdata/src/c/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/pkgfact/testdata/src/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/pkgfact/testdata/src/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4112,9 +4312,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/printf/BUILD.bazel c/go/analysis/passes/printf/BUILD.bazel
---- b/go/analysis/passes/printf/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/printf/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/printf/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,35 @@
+@@ -0,0 +1,36 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4144,6 +4344,7 @@
+go_test(
+ name = "printf_test",
+ srcs = ["printf_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":printf",
+ "//go/analysis/analysistest",
@@ -4151,7 +4352,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/printf/testdata/src/a/BUILD.bazel c/go/analysis/passes/printf/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/printf/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/printf/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/printf/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4169,7 +4370,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/printf/testdata/src/b/BUILD.bazel c/go/analysis/passes/printf/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/printf/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/printf/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/printf/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4187,7 +4388,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/printf/testdata/src/nofmt/BUILD.bazel c/go/analysis/passes/printf/testdata/src/nofmt/BUILD.bazel
---- b/go/analysis/passes/printf/testdata/src/nofmt/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/printf/testdata/src/nofmt/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/printf/testdata/src/nofmt/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4205,7 +4406,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/printf/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/printf/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/printf/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/printf/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/printf/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4226,9 +4427,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/reflectvaluecompare/BUILD.bazel c/go/analysis/passes/reflectvaluecompare/BUILD.bazel
---- b/go/analysis/passes/reflectvaluecompare/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/reflectvaluecompare/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/reflectvaluecompare/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4253,13 +4454,14 @@
+go_test(
+ name = "reflectvaluecompare_test",
+ srcs = ["reflectvaluecompare_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":reflectvaluecompare",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/reflectvaluecompare/testdata/src/a/BUILD.bazel c/go/analysis/passes/reflectvaluecompare/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/reflectvaluecompare/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/reflectvaluecompare/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/reflectvaluecompare/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4277,9 +4479,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/shadow/BUILD.bazel c/go/analysis/passes/shadow/BUILD.bazel
---- b/go/analysis/passes/shadow/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shadow/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shadow/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4303,13 +4505,14 @@
+go_test(
+ name = "shadow_test",
+ srcs = ["shadow_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":shadow",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/shadow/cmd/shadow/BUILD.bazel c/go/analysis/passes/shadow/cmd/shadow/BUILD.bazel
---- b/go/analysis/passes/shadow/cmd/shadow/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shadow/cmd/shadow/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shadow/cmd/shadow/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -4331,7 +4534,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/shadow/testdata/src/a/BUILD.bazel c/go/analysis/passes/shadow/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/shadow/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shadow/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shadow/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4349,9 +4552,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/shift/BUILD.bazel c/go/analysis/passes/shift/BUILD.bazel
---- b/go/analysis/passes/shift/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shift/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shift/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,34 @@
+@@ -0,0 +1,35 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4380,6 +4583,7 @@
+go_test(
+ name = "shift_test",
+ srcs = ["shift_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":shift",
+ "//go/analysis/analysistest",
@@ -4387,7 +4591,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/shift/testdata/src/a/BUILD.bazel c/go/analysis/passes/shift/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/shift/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shift/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shift/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4405,7 +4609,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/shift/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/shift/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/shift/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/shift/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/shift/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4423,9 +4627,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/sigchanyzer/BUILD.bazel c/go/analysis/passes/sigchanyzer/BUILD.bazel
---- b/go/analysis/passes/sigchanyzer/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/sigchanyzer/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/sigchanyzer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4449,13 +4653,14 @@
+go_test(
+ name = "sigchanyzer_test",
+ srcs = ["sigchanyzer_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":sigchanyzer",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/sigchanyzer/testdata/src/a/BUILD.bazel c/go/analysis/passes/sigchanyzer/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/sigchanyzer/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/sigchanyzer/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/sigchanyzer/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4473,9 +4678,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/sortslice/BUILD.bazel c/go/analysis/passes/sortslice/BUILD.bazel
---- b/go/analysis/passes/sortslice/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/sortslice/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/sortslice/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4500,13 +4705,14 @@
+go_test(
+ name = "sortslice_test",
+ srcs = ["analyzer_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":sortslice",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/sortslice/testdata/src/a/BUILD.bazel c/go/analysis/passes/sortslice/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/sortslice/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/sortslice/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/sortslice/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4524,9 +4730,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/stdmethods/BUILD.bazel c/go/analysis/passes/stdmethods/BUILD.bazel
---- b/go/analysis/passes/stdmethods/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stdmethods/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stdmethods/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4550,6 +4756,7 @@
+go_test(
+ name = "stdmethods_test",
+ srcs = ["stdmethods_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":stdmethods",
+ "//go/analysis/analysistest",
@@ -4557,7 +4764,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/stdmethods/testdata/src/a/BUILD.bazel c/go/analysis/passes/stdmethods/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/stdmethods/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stdmethods/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stdmethods/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4578,7 +4785,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/stdmethods/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/stdmethods/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/stdmethods/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stdmethods/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stdmethods/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4596,9 +4803,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/stringintconv/BUILD.bazel c/go/analysis/passes/stringintconv/BUILD.bazel
---- b/go/analysis/passes/stringintconv/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stringintconv/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stringintconv/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4623,6 +4830,7 @@
+go_test(
+ name = "stringintconv_test",
+ srcs = ["string_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":stringintconv",
+ "//go/analysis/analysistest",
@@ -4630,7 +4838,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/stringintconv/cmd/stringintconv/BUILD.bazel c/go/analysis/passes/stringintconv/cmd/stringintconv/BUILD.bazel
---- b/go/analysis/passes/stringintconv/cmd/stringintconv/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stringintconv/cmd/stringintconv/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stringintconv/cmd/stringintconv/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -4652,7 +4860,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/stringintconv/testdata/src/a/BUILD.bazel c/go/analysis/passes/stringintconv/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/stringintconv/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stringintconv/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stringintconv/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4670,7 +4878,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/stringintconv/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/stringintconv/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/stringintconv/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/stringintconv/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/stringintconv/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4688,9 +4896,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/structtag/BUILD.bazel c/go/analysis/passes/structtag/BUILD.bazel
---- b/go/analysis/passes/structtag/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/structtag/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/structtag/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4714,13 +4922,14 @@
+go_test(
+ name = "structtag_test",
+ srcs = ["structtag_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":structtag",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/structtag/testdata/src/a/BUILD.bazel c/go/analysis/passes/structtag/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/structtag/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/structtag/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/structtag/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4738,7 +4947,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/structtag/testdata/src/a/b/BUILD.bazel c/go/analysis/passes/structtag/testdata/src/a/b/BUILD.bazel
---- b/go/analysis/passes/structtag/testdata/src/a/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/structtag/testdata/src/a/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/structtag/testdata/src/a/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4756,9 +4965,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/testinggoroutine/BUILD.bazel c/go/analysis/passes/testinggoroutine/BUILD.bazel
---- b/go/analysis/passes/testinggoroutine/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/testinggoroutine/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/testinggoroutine/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4784,6 +4993,7 @@
+go_test(
+ name = "testinggoroutine_test",
+ srcs = ["testinggoroutine_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":testinggoroutine",
+ "//go/analysis/analysistest",
@@ -4791,7 +5001,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/testinggoroutine/testdata/src/a/BUILD.bazel c/go/analysis/passes/testinggoroutine/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/testinggoroutine/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/testinggoroutine/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/testinggoroutine/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4812,7 +5022,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/testinggoroutine/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/testinggoroutine/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/testinggoroutine/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/testinggoroutine/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/testinggoroutine/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4830,9 +5040,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/tests/BUILD.bazel c/go/analysis/passes/tests/BUILD.bazel
---- b/go/analysis/passes/tests/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4842,6 +5052,7 @@
+ visibility = ["//visibility:public"],
+ deps = [
+ "//go/analysis",
++ "//internal/analysisinternal",
+ "//internal/typeparams",
+ ],
+)
@@ -4855,16 +5066,18 @@
+go_test(
+ name = "tests_test",
+ srcs = ["tests_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":tests",
+ "//go/analysis/analysistest",
++ "//internal/analysisinternal",
+ "//internal/typeparams",
+ ],
+)
diff -urN b/go/analysis/passes/tests/testdata/src/a/BUILD.bazel c/go/analysis/passes/tests/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/tests/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,23 @@
+@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4885,11 +5098,12 @@
+ srcs = [
+ "a_test.go",
+ "ax_test.go",
++ "go118_test.go",
+ ],
+ embed = [":a"],
+)
diff -urN b/go/analysis/passes/tests/testdata/src/b/BUILD.bazel c/go/analysis/passes/tests/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/tests/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -4907,7 +5121,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/tests/testdata/src/b_x_test/BUILD.bazel c/go/analysis/passes/tests/testdata/src/b_x_test/BUILD.bazel
---- b/go/analysis/passes/tests/testdata/src/b_x_test/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/testdata/src/b_x_test/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/testdata/src/b_x_test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,6 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_test")
@@ -4917,7 +5131,7 @@
+ srcs = ["b_test.go"],
+)
diff -urN b/go/analysis/passes/tests/testdata/src/divergent/BUILD.bazel c/go/analysis/passes/tests/testdata/src/divergent/BUILD.bazel
---- b/go/analysis/passes/tests/testdata/src/divergent/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/testdata/src/divergent/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/testdata/src/divergent/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -4941,7 +5155,7 @@
+ embed = [":divergent"],
+)
diff -urN b/go/analysis/passes/tests/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/tests/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/tests/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/tests/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/tests/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -4965,9 +5179,9 @@
+ embed = [":typeparams"],
+)
diff -urN b/go/analysis/passes/unmarshal/BUILD.bazel c/go/analysis/passes/unmarshal/BUILD.bazel
---- b/go/analysis/passes/unmarshal/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unmarshal/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unmarshal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -4993,6 +5207,7 @@
+go_test(
+ name = "unmarshal_test",
+ srcs = ["unmarshal_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unmarshal",
+ "//go/analysis/analysistest",
@@ -5000,7 +5215,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/unmarshal/cmd/unmarshal/BUILD.bazel c/go/analysis/passes/unmarshal/cmd/unmarshal/BUILD.bazel
---- b/go/analysis/passes/unmarshal/cmd/unmarshal/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unmarshal/cmd/unmarshal/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unmarshal/cmd/unmarshal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -5022,7 +5237,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unmarshal/testdata/src/a/BUILD.bazel c/go/analysis/passes/unmarshal/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/unmarshal/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unmarshal/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unmarshal/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5040,7 +5255,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unmarshal/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/unmarshal/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/unmarshal/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unmarshal/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unmarshal/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5058,9 +5273,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unreachable/BUILD.bazel c/go/analysis/passes/unreachable/BUILD.bazel
---- b/go/analysis/passes/unreachable/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unreachable/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unreachable/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5084,13 +5299,14 @@
+go_test(
+ name = "unreachable_test",
+ srcs = ["unreachable_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unreachable",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/unreachable/testdata/src/a/BUILD.bazel c/go/analysis/passes/unreachable/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/unreachable/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unreachable/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unreachable/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5108,9 +5324,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unsafeptr/BUILD.bazel c/go/analysis/passes/unsafeptr/BUILD.bazel
---- b/go/analysis/passes/unsafeptr/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unsafeptr/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unsafeptr/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5135,6 +5351,7 @@
+go_test(
+ name = "unsafeptr_test",
+ srcs = ["unsafeptr_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unsafeptr",
+ "//go/analysis/analysistest",
@@ -5142,7 +5359,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/unsafeptr/testdata/src/a/BUILD.bazel c/go/analysis/passes/unsafeptr/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/unsafeptr/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unsafeptr/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unsafeptr/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5163,7 +5380,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unsafeptr/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/unsafeptr/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/unsafeptr/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unsafeptr/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unsafeptr/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5181,9 +5398,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unusedresult/BUILD.bazel c/go/analysis/passes/unusedresult/BUILD.bazel
---- b/go/analysis/passes/unusedresult/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedresult/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedresult/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5209,6 +5426,7 @@
+go_test(
+ name = "unusedresult_test",
+ srcs = ["unusedresult_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unusedresult",
+ "//go/analysis/analysistest",
@@ -5216,7 +5434,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/unusedresult/testdata/src/a/BUILD.bazel c/go/analysis/passes/unusedresult/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/unusedresult/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedresult/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedresult/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5234,7 +5452,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unusedresult/testdata/src/typeparams/BUILD.bazel c/go/analysis/passes/unusedresult/testdata/src/typeparams/BUILD.bazel
---- b/go/analysis/passes/unusedresult/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedresult/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedresult/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5252,7 +5470,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unusedresult/testdata/src/typeparams/userdefs/BUILD.bazel c/go/analysis/passes/unusedresult/testdata/src/typeparams/userdefs/BUILD.bazel
---- b/go/analysis/passes/unusedresult/testdata/src/typeparams/userdefs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedresult/testdata/src/typeparams/userdefs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedresult/testdata/src/typeparams/userdefs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5270,9 +5488,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/unusedwrite/BUILD.bazel c/go/analysis/passes/unusedwrite/BUILD.bazel
---- b/go/analysis/passes/unusedwrite/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedwrite/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedwrite/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5296,13 +5514,14 @@
+go_test(
+ name = "unusedwrite_test",
+ srcs = ["unusedwrite_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unusedwrite",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/go/analysis/passes/unusedwrite/testdata/src/a/BUILD.bazel c/go/analysis/passes/unusedwrite/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/unusedwrite/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/unusedwrite/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/unusedwrite/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5320,9 +5539,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/usesgenerics/BUILD.bazel c/go/analysis/passes/usesgenerics/BUILD.bazel
---- b/go/analysis/passes/usesgenerics/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/usesgenerics/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/usesgenerics/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5347,6 +5566,7 @@
+go_test(
+ name = "usesgenerics_test",
+ srcs = ["usesgenerics_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":usesgenerics",
+ "//go/analysis/analysistest",
@@ -5354,7 +5574,7 @@
+ ],
+)
diff -urN b/go/analysis/passes/usesgenerics/testdata/src/a/BUILD.bazel c/go/analysis/passes/usesgenerics/testdata/src/a/BUILD.bazel
---- b/go/analysis/passes/usesgenerics/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/usesgenerics/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/usesgenerics/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5372,7 +5592,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/usesgenerics/testdata/src/b/BUILD.bazel c/go/analysis/passes/usesgenerics/testdata/src/b/BUILD.bazel
---- b/go/analysis/passes/usesgenerics/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/usesgenerics/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/usesgenerics/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5390,7 +5610,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/usesgenerics/testdata/src/c/BUILD.bazel c/go/analysis/passes/usesgenerics/testdata/src/c/BUILD.bazel
---- b/go/analysis/passes/usesgenerics/testdata/src/c/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/usesgenerics/testdata/src/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/usesgenerics/testdata/src/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5408,7 +5628,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/passes/usesgenerics/testdata/src/d/BUILD.bazel c/go/analysis/passes/usesgenerics/testdata/src/d/BUILD.bazel
---- b/go/analysis/passes/usesgenerics/testdata/src/d/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/passes/usesgenerics/testdata/src/d/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/passes/usesgenerics/testdata/src/d/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5426,7 +5646,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/singlechecker/BUILD.bazel c/go/analysis/singlechecker/BUILD.bazel
---- b/go/analysis/singlechecker/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/singlechecker/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/singlechecker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5450,7 +5670,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/analysis/unitchecker/BUILD.bazel c/go/analysis/unitchecker/BUILD.bazel
---- b/go/analysis/unitchecker/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/analysis/unitchecker/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/analysis/unitchecker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -5488,7 +5708,7 @@
+ ],
+)
diff -urN b/go/ast/astutil/BUILD.bazel c/go/ast/astutil/BUILD.bazel
---- b/go/ast/astutil/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ast/astutil/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ast/astutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -5523,7 +5743,7 @@
+ deps = ["//internal/typeparams"],
+)
diff -urN b/go/ast/inspector/BUILD.bazel c/go/ast/inspector/BUILD.bazel
---- b/go/ast/inspector/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ast/inspector/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ast/inspector/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -5554,7 +5774,7 @@
+ ],
+)
diff -urN b/go/buildutil/BUILD.bazel c/go/buildutil/BUILD.bazel
---- b/go/buildutil/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/buildutil/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/buildutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,35 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -5593,7 +5813,7 @@
+ ],
+)
diff -urN b/go/callgraph/BUILD.bazel c/go/callgraph/BUILD.bazel
---- b/go/callgraph/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -5615,9 +5835,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/callgraph/cha/BUILD.bazel c/go/callgraph/cha/BUILD.bazel
---- b/go/callgraph/cha/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/cha/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/cha/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,106 @@
+@@ -0,0 +1,132 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5647,85 +5867,111 @@
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:darwin": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:dragonfly": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:freebsd": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:illumos": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:ios": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:js": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:netbsd": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:openbsd": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:plan9": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:solaris": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:windows": [
+ ":cha",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "//conditions:default": [],
+ }),
+)
diff -urN b/go/callgraph/cha/testdata/BUILD.bazel c/go/callgraph/cha/testdata/BUILD.bazel
---- b/go/callgraph/cha/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/cha/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/cha/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -5743,9 +5989,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/callgraph/rta/BUILD.bazel c/go/callgraph/rta/BUILD.bazel
---- b/go/callgraph/rta/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/rta/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/rta/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,119 @@
+@@ -0,0 +1,132 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5777,6 +6023,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:darwin": [
+ ":rta",
@@ -5784,6 +6031,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:dragonfly": [
+ ":rta",
@@ -5791,6 +6039,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:freebsd": [
+ ":rta",
@@ -5798,6 +6047,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:illumos": [
+ ":rta",
@@ -5805,6 +6055,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:ios": [
+ ":rta",
@@ -5812,6 +6063,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:js": [
+ ":rta",
@@ -5819,6 +6071,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ ":rta",
@@ -5826,6 +6079,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:netbsd": [
+ ":rta",
@@ -5833,6 +6087,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:openbsd": [
+ ":rta",
@@ -5840,6 +6095,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:plan9": [
+ ":rta",
@@ -5847,6 +6103,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:solaris": [
+ ":rta",
@@ -5854,6 +6111,7 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:windows": [
+ ":rta",
@@ -5861,14 +6119,15 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+ "//conditions:default": [],
+ }),
+)
diff -urN b/go/callgraph/static/BUILD.bazel c/go/callgraph/static/BUILD.bazel
---- b/go/callgraph/static/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/static/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/static/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5896,13 +6155,15 @@
+ ":static",
+ "//go/callgraph",
+ "//go/loader",
++ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+)
diff -urN b/go/callgraph/vta/BUILD.bazel c/go/callgraph/vta/BUILD.bazel
---- b/go/callgraph/vta/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/vta/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/vta/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,45 @@
+@@ -0,0 +1,49 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -5940,16 +6201,20 @@
+ ],
+ embed = [":vta"],
+ deps = [
++ "//go/analysis",
++ "//go/analysis/analysistest",
++ "//go/analysis/passes/buildssa",
+ "//go/callgraph",
+ "//go/callgraph/cha",
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+)
diff -urN b/go/callgraph/vta/internal/trie/BUILD.bazel c/go/callgraph/vta/internal/trie/BUILD.bazel
---- b/go/callgraph/vta/internal/trie/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/callgraph/vta/internal/trie/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/callgraph/vta/internal/trie/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -5981,22 +6246,24 @@
+ ],
+ embed = [":trie"],
+)
-diff -urN b/go/callgraph/vta/testdata/BUILD.bazel c/go/callgraph/vta/testdata/BUILD.bazel
---- b/go/callgraph/vta/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
-+++ c/go/callgraph/vta/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,44 @@
+diff -urN b/go/callgraph/vta/testdata/src/BUILD.bazel c/go/callgraph/vta/testdata/src/BUILD.bazel
+--- b/go/callgraph/vta/testdata/src/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/callgraph/vta/testdata/src/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,46 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
-+ name = "testdata",
++ name = "src",
+ srcs = [
+ "callgraph_collections.go",
+ "callgraph_field_funcs.go",
+ "callgraph_fields.go",
++ "callgraph_generics.go",
+ "callgraph_ho.go",
+ "callgraph_interfaces.go",
+ "callgraph_nested_ptr.go",
+ "callgraph_pointers.go",
++ "callgraph_recursive_types.go",
+ "callgraph_static.go",
+ "channels.go",
+ "closures.go",
@@ -6020,17 +6287,53 @@
+ "type_assertions.go",
+ "type_conversions.go",
+ ],
-+ importpath = "golang.org/x/tools/go/callgraph/vta/testdata",
++ importpath = "golang.org/x/tools/go/callgraph/vta/testdata/src",
+ visibility = ["//visibility:public"],
+)
+
+alias(
+ name = "go_default_library",
-+ actual = ":testdata",
++ actual = ":src",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/callgraph/vta/testdata/src/d/BUILD.bazel c/go/callgraph/vta/testdata/src/d/BUILD.bazel
+--- b/go/callgraph/vta/testdata/src/d/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/callgraph/vta/testdata/src/d/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "d",
++ srcs = ["d.go"],
++ importpath = "golang.org/x/tools/go/callgraph/vta/testdata/src/d",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":d",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/callgraph/vta/testdata/src/t/BUILD.bazel c/go/callgraph/vta/testdata/src/t/BUILD.bazel
+--- b/go/callgraph/vta/testdata/src/t/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/callgraph/vta/testdata/src/t/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "t",
++ srcs = ["t.go"],
++ importpath = "golang.org/x/tools/go/callgraph/vta/testdata/src/t",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":t",
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/cfg/BUILD.bazel c/go/cfg/BUILD.bazel
---- b/go/cfg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/cfg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/cfg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6057,7 +6360,7 @@
+ embed = [":cfg"],
+)
diff -urN b/go/expect/BUILD.bazel c/go/expect/BUILD.bazel
---- b/go/expect/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/expect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/expect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6085,7 +6388,7 @@
+ deps = [":expect"],
+)
diff -urN b/go/expect/testdata/BUILD.bazel c/go/expect/testdata/BUILD.bazel
---- b/go/expect/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/expect/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/expect/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6103,7 +6406,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/gccgoexportdata/BUILD.bazel c/go/gccgoexportdata/BUILD.bazel
---- b/go/gccgoexportdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/gccgoexportdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/gccgoexportdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,22 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6129,7 +6432,7 @@
+ deps = [":gccgoexportdata"],
+)
diff -urN b/go/gcexportdata/BUILD.bazel c/go/gcexportdata/BUILD.bazel
---- b/go/gcexportdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/gcexportdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/gcexportdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6161,7 +6464,7 @@
+ deps = [":gcexportdata"],
+)
diff -urN b/go/internal/cgo/BUILD.bazel c/go/internal/cgo/BUILD.bazel
---- b/go/internal/cgo/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/internal/cgo/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/internal/cgo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6183,7 +6486,7 @@
+ visibility = ["//go:__subpackages__"],
+)
diff -urN b/go/internal/gccgoimporter/BUILD.bazel c/go/internal/gccgoimporter/BUILD.bazel
---- b/go/internal/gccgoimporter/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/internal/gccgoimporter/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/internal/gccgoimporter/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,35 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6222,7 +6525,7 @@
+ embed = [":gccgoimporter"],
+)
diff -urN b/go/internal/gcimporter/BUILD.bazel c/go/internal/gcimporter/BUILD.bazel
---- b/go/internal/gcimporter/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/internal/gcimporter/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/internal/gcimporter/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,47 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6272,8 +6575,29 @@
+ "//internal/typeparams/genericfeatures",
+ ],
+)
+diff -urN b/go/internal/gcimporter/testdata/issue51836/BUILD.bazel c/go/internal/gcimporter/testdata/issue51836/BUILD.bazel
+--- b/go/internal/gcimporter/testdata/issue51836/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/internal/gcimporter/testdata/issue51836/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,17 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "issue51836",
++ srcs = [
++ "a.go",
++ "aa.go",
++ ],
++ importpath = "golang.org/x/tools/go/internal/gcimporter/testdata/issue51836",
++ visibility = ["//go:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":issue51836",
++ visibility = ["//go:__subpackages__"],
++)
diff -urN b/go/internal/gcimporter/testdata/versions/BUILD.bazel c/go/internal/gcimporter/testdata/versions/BUILD.bazel
---- b/go/internal/gcimporter/testdata/versions/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/internal/gcimporter/testdata/versions/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/internal/gcimporter/testdata/versions/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6291,7 +6615,7 @@
+ visibility = ["//go:__subpackages__"],
+)
diff -urN b/go/internal/packagesdriver/BUILD.bazel c/go/internal/packagesdriver/BUILD.bazel
---- b/go/internal/packagesdriver/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/internal/packagesdriver/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/internal/packagesdriver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6310,9 +6634,9 @@
+ visibility = ["//go:__subpackages__"],
+)
diff -urN b/go/loader/BUILD.bazel c/go/loader/BUILD.bazel
---- b/go/loader/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/loader/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/loader/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,36 @@
+@@ -0,0 +1,37 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -6328,6 +6652,7 @@
+ "//go/ast/astutil",
+ "//go/buildutil",
+ "//go/internal/cgo",
++ "//internal/typeparams",
+ ],
+)
+
@@ -6350,7 +6675,7 @@
+ ],
+)
diff -urN b/go/loader/testdata/BUILD.bazel c/go/loader/testdata/BUILD.bazel
---- b/go/loader/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/loader/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/loader/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6372,7 +6697,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/loader/testdata/issue46877/BUILD.bazel c/go/loader/testdata/issue46877/BUILD.bazel
---- b/go/loader/testdata/issue46877/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/loader/testdata/issue46877/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/loader/testdata/issue46877/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6394,9 +6719,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/BUILD.bazel c/go/packages/BUILD.bazel
---- b/go/packages/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,48 @@
+@@ -0,0 +1,47 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -6420,7 +6745,6 @@
+ "//internal/typeparams",
+ "//internal/typesinternal",
+ "@org_golang_x_sys//execabs:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -6446,7 +6770,7 @@
+ ],
+)
diff -urN b/go/packages/gopackages/BUILD.bazel c/go/packages/gopackages/BUILD.bazel
---- b/go/packages/gopackages/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/gopackages/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/gopackages/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -6469,9 +6793,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/BUILD.bazel c/go/packages/packagestest/BUILD.bazel
---- b/go/packages/packagestest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,46 @@
+@@ -0,0 +1,45 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -6493,7 +6817,6 @@
+ "//internal/proxydir",
+ "//internal/span",
+ "//internal/testenv",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -6519,7 +6842,7 @@
+ ],
+)
diff -urN b/go/packages/packagestest/testdata/BUILD.bazel c/go/packages/packagestest/testdata/BUILD.bazel
---- b/go/packages/packagestest/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6546,7 +6869,7 @@
+ embed = [":testdata"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/one/modules/example.com/extra/BUILD.bazel c/go/packages/packagestest/testdata/groups/one/modules/example.com/extra/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/one/modules/example.com/extra/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/one/modules/example.com/extra/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/one/modules/example.com/extra/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6564,7 +6887,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/one/primarymod/BUILD.bazel c/go/packages/packagestest/testdata/groups/one/primarymod/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/one/primarymod/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/one/primarymod/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/one/primarymod/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6582,7 +6905,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6600,7 +6923,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/geez/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/geez/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/geez/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/geez/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/geez/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6618,7 +6941,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6636,7 +6959,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/geez/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/geez/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/geez/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/geez/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/extra/v2/geez/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6654,7 +6977,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/tempmod/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/tempmod/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/tempmod/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/tempmod/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/tempmod/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6672,7 +6995,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.0.0/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.0.0/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.0.0/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.0.0/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.0.0/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6690,7 +7013,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.1.0/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.1.0/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.1.0/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.1.0/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/modules/example.com/what@v1.1.0/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6708,7 +7031,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/primarymod/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/primarymod/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/primarymod/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/primarymod/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/primarymod/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -6726,7 +7049,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/packages/packagestest/testdata/groups/two/primarymod/expect/BUILD.bazel c/go/packages/packagestest/testdata/groups/two/primarymod/expect/BUILD.bazel
---- b/go/packages/packagestest/testdata/groups/two/primarymod/expect/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/packages/packagestest/testdata/groups/two/primarymod/expect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/packages/packagestest/testdata/groups/two/primarymod/expect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -6749,9 +7072,9 @@
+ srcs = ["yo_test.go"],
+)
diff -urN b/go/pointer/BUILD.bazel c/go/pointer/BUILD.bazel
---- b/go/pointer/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/pointer/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/pointer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,109 @@
+@@ -0,0 +1,122 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -6809,60 +7132,73 @@
+ "@io_bazel_rules_go//go/platform:aix": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:darwin": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:dragonfly": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:freebsd": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:illumos": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:ios": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:js": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:netbsd": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:openbsd": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:plan9": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:solaris": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "@io_bazel_rules_go//go/platform:windows": [
+ "//go/packages",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+ "//conditions:default": [],
+ }),
+)
diff -urN b/go/pointer/testdata/BUILD.bazel c/go/pointer/testdata/BUILD.bazel
---- b/go/pointer/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/pointer/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/pointer/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -6884,14 +7220,15 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/BUILD.bazel c/go/ssa/BUILD.bazel
---- b/go/ssa/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,128 @@
+@@ -0,0 +1,139 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "ssa",
+ srcs = [
++ "block.go",
+ "blockopt.go",
+ "builder.go",
+ "const.go",
@@ -6902,14 +7239,17 @@
+ "func.go",
+ "identical.go",
+ "identical_17.go",
++ "instantiate.go",
+ "lift.go",
+ "lvalue.go",
+ "methods.go",
+ "mode.go",
++ "parameterized.go",
+ "print.go",
+ "sanity.go",
+ "source.go",
+ "ssa.go",
++ "subst.go",
+ "util.go",
+ "wrappers.go",
+ ],
@@ -6918,6 +7258,7 @@
+ deps = [
+ "//go/ast/astutil",
+ "//go/types/typeutil",
++ "//internal/typeparams",
+ ],
+)
+
@@ -6934,18 +7275,24 @@
+ "builder_test.go",
+ "example_test.go",
+ "identical_test.go",
++ "instantiate_test.go",
++ "methods_test.go",
++ "parameterized_test.go",
+ "source_test.go",
+ "stdlib_test.go",
++ "subst_test.go",
+ "testhelper_test.go",
+ ],
+ data = glob(["testdata/**"]),
+ embed = [":ssa"],
+ deps = [
+ "//go/ast/astutil",
++ "//go/buildutil",
+ "//go/expect",
+ "//go/loader",
+ "//go/packages",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ] + select({
+ "@io_bazel_rules_go//go/platform:aix": [
+ "//go/ast/inspector",
@@ -7016,9 +7363,9 @@
+ }),
+)
diff -urN b/go/ssa/interp/BUILD.bazel c/go/ssa/interp/BUILD.bazel
---- b/go/ssa/interp/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,39 @@
+@@ -0,0 +1,40 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -7056,12 +7403,13 @@
+ "//go/loader",
+ "//go/ssa",
+ "//go/ssa/ssautil",
++ "//internal/typeparams",
+ ],
+)
diff -urN b/go/ssa/interp/testdata/BUILD.bazel c/go/ssa/interp/testdata/BUILD.bazel
---- b/go/ssa/interp/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,33 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
@@ -7069,7 +7417,9 @@
+ srcs = [
+ "boundmeth.go",
+ "complit.go",
++ "convert.go",
+ "coverage.go",
++ "deepequal.go",
+ "defer.go",
+ "fieldprom.go",
+ "ifaceconv.go",
@@ -7082,6 +7432,7 @@
+ "reflect.go",
+ "slice2arrayptr.go",
+ "static.go",
++ "width32.go",
+ ],
+ importpath = "golang.org/x/tools/go/ssa/interp/testdata",
+ visibility = ["//visibility:private"],
@@ -7092,8 +7443,47 @@
+ embed = [":testdata_lib"],
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/ssa/interp/testdata/fixedbugs/BUILD.bazel c/go/ssa/interp/testdata/fixedbugs/BUILD.bazel
+--- b/go/ssa/interp/testdata/fixedbugs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/fixedbugs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,17 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
++
++go_library(
++ name = "fixedbugs_lib",
++ srcs = [
++ "issue52342.go",
++ "issue52835.go",
++ ],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/fixedbugs",
++ visibility = ["//visibility:private"],
++)
++
++go_binary(
++ name = "fixedbugs",
++ embed = [":fixedbugs_lib"],
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/interp/testdata/src/encoding/BUILD.bazel c/go/ssa/interp/testdata/src/encoding/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/encoding/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/encoding/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "encoding",
++ srcs = ["encoding.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/encoding",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":encoding",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/ssa/interp/testdata/src/errors/BUILD.bazel c/go/ssa/interp/testdata/src/errors/BUILD.bazel
---- b/go/ssa/interp/testdata/src/errors/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/errors/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/errors/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7111,7 +7501,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/fmt/BUILD.bazel c/go/ssa/interp/testdata/src/fmt/BUILD.bazel
---- b/go/ssa/interp/testdata/src/fmt/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/fmt/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/fmt/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7128,8 +7518,44 @@
+ actual = ":fmt",
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/ssa/interp/testdata/src/io/BUILD.bazel c/go/ssa/interp/testdata/src/io/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/io/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/io/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "io",
++ srcs = ["io.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/io",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":io",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/interp/testdata/src/log/BUILD.bazel c/go/ssa/interp/testdata/src/log/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/log/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/log/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "log",
++ srcs = ["log.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/log",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":log",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/ssa/interp/testdata/src/math/BUILD.bazel c/go/ssa/interp/testdata/src/math/BUILD.bazel
---- b/go/ssa/interp/testdata/src/math/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/math/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/math/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7147,7 +7573,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/os/BUILD.bazel c/go/ssa/interp/testdata/src/os/BUILD.bazel
---- b/go/ssa/interp/testdata/src/os/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/os/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/os/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7165,14 +7591,17 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/reflect/BUILD.bazel c/go/ssa/interp/testdata/src/reflect/BUILD.bazel
---- b/go/ssa/interp/testdata/src/reflect/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/reflect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/reflect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,14 @@
+@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "reflect",
-+ srcs = ["reflect.go"],
++ srcs = [
++ "deepequal.go",
++ "reflect.go",
++ ],
+ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/reflect",
+ visibility = ["//visibility:public"],
+)
@@ -7183,7 +7612,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/runtime/BUILD.bazel c/go/ssa/interp/testdata/src/runtime/BUILD.bazel
---- b/go/ssa/interp/testdata/src/runtime/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/runtime/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/runtime/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7200,8 +7629,44 @@
+ actual = ":runtime",
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/ssa/interp/testdata/src/sort/BUILD.bazel c/go/ssa/interp/testdata/src/sort/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/sort/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/sort/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "sort",
++ srcs = ["sort.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/sort",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":sort",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/interp/testdata/src/strconv/BUILD.bazel c/go/ssa/interp/testdata/src/strconv/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/strconv/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/strconv/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "strconv",
++ srcs = ["strconv.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/strconv",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":strconv",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/ssa/interp/testdata/src/strings/BUILD.bazel c/go/ssa/interp/testdata/src/strings/BUILD.bazel
---- b/go/ssa/interp/testdata/src/strings/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/strings/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/strings/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7218,8 +7683,26 @@
+ actual = ":strings",
+ visibility = ["//visibility:public"],
+)
+diff -urN b/go/ssa/interp/testdata/src/sync/BUILD.bazel c/go/ssa/interp/testdata/src/sync/BUILD.bazel
+--- b/go/ssa/interp/testdata/src/sync/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/interp/testdata/src/sync/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "sync",
++ srcs = ["sync.go"],
++ importpath = "golang.org/x/tools/go/ssa/interp/testdata/src/sync",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":sync",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/ssa/interp/testdata/src/time/BUILD.bazel c/go/ssa/interp/testdata/src/time/BUILD.bazel
---- b/go/ssa/interp/testdata/src/time/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/time/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/time/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7237,7 +7720,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/unicode/utf8/BUILD.bazel c/go/ssa/interp/testdata/src/unicode/utf8/BUILD.bazel
---- b/go/ssa/interp/testdata/src/unicode/utf8/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/unicode/utf8/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/unicode/utf8/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7255,7 +7738,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/interp/testdata/src/unsafe/BUILD.bazel c/go/ssa/interp/testdata/src/unsafe/BUILD.bazel
---- b/go/ssa/interp/testdata/src/unsafe/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/interp/testdata/src/unsafe/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/interp/testdata/src/unsafe/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7273,9 +7756,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/go/ssa/ssautil/BUILD.bazel c/go/ssa/ssautil/BUILD.bazel
---- b/go/ssa/ssautil/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/ssa/ssautil/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/ssa/ssautil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,91 @@
+@@ -0,0 +1,80 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -7291,6 +7774,7 @@
+ "//go/loader",
+ "//go/packages",
+ "//go/ssa",
++ "//internal/typeparams",
+ ],
+)
+
@@ -7310,65 +7794,413 @@
+ deps = [
+ ":ssautil",
+ "//go/packages",
++ "//go/ssa",
+ "//internal/testenv",
+ ] + select({
+ "@io_bazel_rules_go//go/platform:aix": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:darwin": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:dragonfly": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:freebsd": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:illumos": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:ios": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:js": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:netbsd": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:openbsd": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:plan9": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:solaris": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "@io_bazel_rules_go//go/platform:windows": [
+ "//go/loader",
-+ "//go/ssa",
+ ],
+ "//conditions:default": [],
+ }),
+)
+diff -urN b/go/ssa/testdata/src/bytes/BUILD.bazel c/go/ssa/testdata/src/bytes/BUILD.bazel
+--- b/go/ssa/testdata/src/bytes/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/bytes/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "bytes",
++ srcs = ["bytes.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/bytes",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":bytes",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/context/BUILD.bazel c/go/ssa/testdata/src/context/BUILD.bazel
+--- b/go/ssa/testdata/src/context/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/context/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "context",
++ srcs = ["context.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/context",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":context",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/encoding/BUILD.bazel c/go/ssa/testdata/src/encoding/BUILD.bazel
+--- b/go/ssa/testdata/src/encoding/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/encoding/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "encoding",
++ srcs = ["encoding.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/encoding",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":encoding",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/encoding/json/BUILD.bazel c/go/ssa/testdata/src/encoding/json/BUILD.bazel
+--- b/go/ssa/testdata/src/encoding/json/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/encoding/json/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "json",
++ srcs = ["json.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/encoding/json",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":json",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/encoding/xml/BUILD.bazel c/go/ssa/testdata/src/encoding/xml/BUILD.bazel
+--- b/go/ssa/testdata/src/encoding/xml/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/encoding/xml/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "xml",
++ srcs = ["xml.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/encoding/xml",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":xml",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/errors/BUILD.bazel c/go/ssa/testdata/src/errors/BUILD.bazel
+--- b/go/ssa/testdata/src/errors/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/errors/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "errors",
++ srcs = ["errors.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/errors",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":errors",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/fmt/BUILD.bazel c/go/ssa/testdata/src/fmt/BUILD.bazel
+--- b/go/ssa/testdata/src/fmt/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/fmt/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "fmt",
++ srcs = ["fmt.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/fmt",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":fmt",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/io/BUILD.bazel c/go/ssa/testdata/src/io/BUILD.bazel
+--- b/go/ssa/testdata/src/io/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/io/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "io",
++ srcs = ["io.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/io",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":io",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/log/BUILD.bazel c/go/ssa/testdata/src/log/BUILD.bazel
+--- b/go/ssa/testdata/src/log/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/log/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "log",
++ srcs = ["log.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/log",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":log",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/math/BUILD.bazel c/go/ssa/testdata/src/math/BUILD.bazel
+--- b/go/ssa/testdata/src/math/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/math/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "math",
++ srcs = ["math.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/math",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":math",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/os/BUILD.bazel c/go/ssa/testdata/src/os/BUILD.bazel
+--- b/go/ssa/testdata/src/os/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/os/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "os",
++ srcs = ["os.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/os",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":os",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/reflect/BUILD.bazel c/go/ssa/testdata/src/reflect/BUILD.bazel
+--- b/go/ssa/testdata/src/reflect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/reflect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "reflect",
++ srcs = ["reflect.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/reflect",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":reflect",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/runtime/BUILD.bazel c/go/ssa/testdata/src/runtime/BUILD.bazel
+--- b/go/ssa/testdata/src/runtime/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/runtime/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "runtime",
++ srcs = ["runtime.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/runtime",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":runtime",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/sort/BUILD.bazel c/go/ssa/testdata/src/sort/BUILD.bazel
+--- b/go/ssa/testdata/src/sort/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/sort/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "sort",
++ srcs = ["sort.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/sort",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":sort",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/strconv/BUILD.bazel c/go/ssa/testdata/src/strconv/BUILD.bazel
+--- b/go/ssa/testdata/src/strconv/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/strconv/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "strconv",
++ srcs = ["strconv.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/strconv",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":strconv",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/strings/BUILD.bazel c/go/ssa/testdata/src/strings/BUILD.bazel
+--- b/go/ssa/testdata/src/strings/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/strings/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "strings",
++ srcs = ["strings.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/strings",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":strings",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/sync/BUILD.bazel c/go/ssa/testdata/src/sync/BUILD.bazel
+--- b/go/ssa/testdata/src/sync/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/sync/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "sync",
++ srcs = ["sync.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/sync",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":sync",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/sync/atomic/BUILD.bazel c/go/ssa/testdata/src/sync/atomic/BUILD.bazel
+--- b/go/ssa/testdata/src/sync/atomic/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/sync/atomic/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "atomic",
++ srcs = ["atomic.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/sync/atomic",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":atomic",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/time/BUILD.bazel c/go/ssa/testdata/src/time/BUILD.bazel
+--- b/go/ssa/testdata/src/time/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/time/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "time",
++ srcs = ["time.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/time",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":time",
++ visibility = ["//visibility:public"],
++)
+diff -urN b/go/ssa/testdata/src/unsafe/BUILD.bazel c/go/ssa/testdata/src/unsafe/BUILD.bazel
+--- b/go/ssa/testdata/src/unsafe/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/go/ssa/testdata/src/unsafe/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "unsafe",
++ srcs = ["unsafe.go"],
++ importpath = "golang.org/x/tools/go/ssa/testdata/src/unsafe",
++ visibility = ["//visibility:public"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":unsafe",
++ visibility = ["//visibility:public"],
++)
diff -urN b/go/types/objectpath/BUILD.bazel c/go/types/objectpath/BUILD.bazel
---- b/go/types/objectpath/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/types/objectpath/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/types/objectpath/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7401,7 +8233,7 @@
+ ],
+)
diff -urN b/go/types/typeutil/BUILD.bazel c/go/types/typeutil/BUILD.bazel
---- b/go/types/typeutil/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/types/typeutil/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/types/typeutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,39 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7444,7 +8276,7 @@
+ ],
+)
diff -urN b/go/vcs/BUILD.bazel c/go/vcs/BUILD.bazel
---- b/go/vcs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/go/vcs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/go/vcs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,26 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7474,7 +8306,7 @@
+ embed = [":vcs"],
+)
diff -urN b/godoc/BUILD.bazel c/godoc/BUILD.bazel
---- b/godoc/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,64 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7542,7 +8374,7 @@
+ ],
+)
diff -urN b/godoc/analysis/BUILD.bazel c/godoc/analysis/BUILD.bazel
---- b/godoc/analysis/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/analysis/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/analysis/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7563,7 +8395,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/godoc/redirect/BUILD.bazel c/godoc/redirect/BUILD.bazel
---- b/godoc/redirect/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/redirect/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/redirect/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7592,7 +8424,7 @@
+ embed = [":redirect"],
+)
diff -urN b/godoc/static/BUILD.bazel c/godoc/static/BUILD.bazel
---- b/godoc/static/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/static/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/static/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7620,7 +8452,7 @@
+ embed = [":static"],
+)
diff -urN b/godoc/util/BUILD.bazel c/godoc/util/BUILD.bazel
---- b/godoc/util/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/util/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/util/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7642,7 +8474,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/godoc/vfs/BUILD.bazel c/godoc/vfs/BUILD.bazel
---- b/godoc/vfs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/vfs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/vfs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7678,7 +8510,7 @@
+ ],
+)
diff -urN b/godoc/vfs/gatefs/BUILD.bazel c/godoc/vfs/gatefs/BUILD.bazel
---- b/godoc/vfs/gatefs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/vfs/gatefs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/vfs/gatefs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7706,7 +8538,7 @@
+ ],
+)
diff -urN b/godoc/vfs/httpfs/BUILD.bazel c/godoc/vfs/httpfs/BUILD.bazel
---- b/godoc/vfs/httpfs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/vfs/httpfs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/vfs/httpfs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7725,7 +8557,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/godoc/vfs/mapfs/BUILD.bazel c/godoc/vfs/mapfs/BUILD.bazel
---- b/godoc/vfs/mapfs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/vfs/mapfs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/vfs/mapfs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7750,7 +8582,7 @@
+ embed = [":mapfs"],
+)
diff -urN b/godoc/vfs/zipfs/BUILD.bazel c/godoc/vfs/zipfs/BUILD.bazel
---- b/godoc/vfs/zipfs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/godoc/vfs/zipfs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/godoc/vfs/zipfs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,22 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7776,7 +8608,7 @@
+ deps = ["//godoc/vfs"],
+)
diff -urN b/imports/BUILD.bazel c/imports/BUILD.bazel
---- b/imports/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/imports/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/imports/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7798,9 +8630,9 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/internal/analysisinternal/BUILD.bazel c/internal/analysisinternal/BUILD.bazel
---- b/internal/analysisinternal/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/analysisinternal/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/analysisinternal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,18 @@
+@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
@@ -7808,10 +8640,7 @@
+ srcs = ["analysis.go"],
+ importpath = "golang.org/x/tools/internal/analysisinternal",
+ visibility = ["//:__subpackages__"],
-+ deps = [
-+ "//go/ast/astutil",
-+ "//internal/lsp/fuzzy",
-+ ],
++ deps = ["//internal/lsp/fuzzy"],
+)
+
+alias(
@@ -7820,7 +8649,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/apidiff/BUILD.bazel c/internal/apidiff/BUILD.bazel
---- b/internal/apidiff/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/apidiff/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/apidiff/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7854,7 +8683,7 @@
+ ],
+)
diff -urN b/internal/apidiff/testdata/BUILD.bazel c/internal/apidiff/testdata/BUILD.bazel
---- b/internal/apidiff/testdata/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/apidiff/testdata/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/apidiff/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7872,7 +8701,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/apidiff/testdata/exported_fields/BUILD.bazel c/internal/apidiff/testdata/exported_fields/BUILD.bazel
---- b/internal/apidiff/testdata/exported_fields/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/apidiff/testdata/exported_fields/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/apidiff/testdata/exported_fields/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7890,7 +8719,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/BUILD.bazel c/internal/event/BUILD.bazel
---- b/internal/event/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7928,7 +8757,7 @@
+ ],
+)
diff -urN b/internal/event/core/BUILD.bazel c/internal/event/core/BUILD.bazel
---- b/internal/event/core/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/core/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/core/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,22 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -7954,7 +8783,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/export/BUILD.bazel c/internal/event/export/BUILD.bazel
---- b/internal/event/export/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,38 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -7996,7 +8825,7 @@
+ ],
+)
diff -urN b/internal/event/export/eventtest/BUILD.bazel c/internal/event/export/eventtest/BUILD.bazel
---- b/internal/event/export/eventtest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/eventtest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/eventtest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8020,7 +8849,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/export/metric/BUILD.bazel c/internal/event/export/metric/BUILD.bazel
---- b/internal/event/export/metric/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/metric/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/metric/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8048,7 +8877,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/export/ocagent/BUILD.bazel c/internal/event/export/ocagent/BUILD.bazel
---- b/internal/event/export/ocagent/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/ocagent/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/ocagent/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,44 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8096,7 +8925,7 @@
+ ],
+)
diff -urN b/internal/event/export/ocagent/wire/BUILD.bazel c/internal/event/export/ocagent/wire/BUILD.bazel
---- b/internal/event/export/ocagent/wire/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/ocagent/wire/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/ocagent/wire/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8125,7 +8954,7 @@
+ embed = [":wire"],
+)
diff -urN b/internal/event/export/prometheus/BUILD.bazel c/internal/event/export/prometheus/BUILD.bazel
---- b/internal/event/export/prometheus/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/export/prometheus/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/export/prometheus/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8149,7 +8978,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/keys/BUILD.bazel c/internal/event/keys/BUILD.bazel
---- b/internal/event/keys/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/keys/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/keys/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8171,7 +9000,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/event/label/BUILD.bazel c/internal/event/label/BUILD.bazel
---- b/internal/event/label/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/event/label/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/event/label/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8198,7 +9027,7 @@
+ ],
+)
diff -urN b/internal/fakenet/BUILD.bazel c/internal/fakenet/BUILD.bazel
---- b/internal/fakenet/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/fakenet/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/fakenet/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8216,7 +9045,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/fastwalk/BUILD.bazel c/internal/fastwalk/BUILD.bazel
---- b/internal/fastwalk/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/fastwalk/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/fastwalk/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8248,7 +9077,7 @@
+ deps = [":fastwalk"],
+)
diff -urN b/internal/gocommand/BUILD.bazel c/internal/gocommand/BUILD.bazel
---- b/internal/gocommand/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/gocommand/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/gocommand/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8281,7 +9110,7 @@
+ deps = [":gocommand"],
+)
diff -urN b/internal/gopathwalk/BUILD.bazel c/internal/gopathwalk/BUILD.bazel
---- b/internal/gopathwalk/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/gopathwalk/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/gopathwalk/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8306,7 +9135,7 @@
+ embed = [":gopathwalk"],
+)
diff -urN b/internal/imports/BUILD.bazel c/internal/imports/BUILD.bazel
---- b/internal/imports/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/imports/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/imports/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,48 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8358,9 +9187,9 @@
+ ],
+)
diff -urN b/internal/jsonrpc2/BUILD.bazel c/internal/jsonrpc2/BUILD.bazel
---- b/internal/jsonrpc2/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/jsonrpc2/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/jsonrpc2/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,41 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8380,7 +9209,6 @@
+ "//internal/event",
+ "//internal/event/label",
+ "//internal/lsp/debug/tag",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -8404,7 +9232,7 @@
+ ],
+)
diff -urN b/internal/jsonrpc2/servertest/BUILD.bazel c/internal/jsonrpc2/servertest/BUILD.bazel
---- b/internal/jsonrpc2/servertest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/jsonrpc2/servertest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/jsonrpc2/servertest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,22 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -8430,9 +9258,9 @@
+ deps = ["//internal/jsonrpc2"],
+)
diff -urN b/internal/jsonrpc2_v2/BUILD.bazel c/internal/jsonrpc2_v2/BUILD.bazel
---- b/internal/jsonrpc2_v2/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/jsonrpc2_v2/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/jsonrpc2_v2/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,41 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8452,7 +9280,6 @@
+ "//internal/event",
+ "//internal/event/label",
+ "//internal/lsp/debug/tag",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -8473,13 +9300,12 @@
+ ":jsonrpc2_v2",
+ "//internal/event/export/eventtest",
+ "//internal/stack/stacktest",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
diff -urN b/internal/lsp/BUILD.bazel c/internal/lsp/BUILD.bazel
---- b/internal/lsp/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,82 @@
+@@ -0,0 +1,88 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8514,25 +9340,30 @@
+ importpath = "golang.org/x/tools/internal/lsp",
+ visibility = ["//:__subpackages__"],
+ deps = [
++ "//go/ast/astutil",
++ "//go/packages",
+ "//internal/event",
+ "//internal/gocommand",
+ "//internal/imports",
+ "//internal/jsonrpc2",
++ "//internal/lsp/bug",
+ "//internal/lsp/command",
+ "//internal/lsp/debug",
+ "//internal/lsp/debug/log",
+ "//internal/lsp/debug/tag",
++ "//internal/lsp/lsppos",
+ "//internal/lsp/mod",
+ "//internal/lsp/progress",
+ "//internal/lsp/protocol",
++ "//internal/lsp/safetoken",
+ "//internal/lsp/source",
+ "//internal/lsp/source/completion",
+ "//internal/lsp/template",
++ "//internal/lsp/work",
+ "//internal/span",
+ "//internal/typeparams",
+ "//internal/xcontext",
+ "@org_golang_x_mod//modfile:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -8551,6 +9382,7 @@
+ ],
+ embed = [":lsp"],
+ deps = [
++ "//internal/lsp/bug",
+ "//internal/lsp/cache",
+ "//internal/lsp/command",
+ "//internal/lsp/diff",
@@ -8562,10 +9394,62 @@
+ "//internal/testenv",
+ ],
+)
+diff -urN b/internal/lsp/analysis/embeddirective/BUILD.bazel c/internal/lsp/analysis/embeddirective/BUILD.bazel
+--- b/internal/lsp/analysis/embeddirective/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/analysis/embeddirective/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,26 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
++
++go_library(
++ name = "embeddirective",
++ srcs = ["embeddirective.go"],
++ importpath = "golang.org/x/tools/internal/lsp/analysis/embeddirective",
++ visibility = ["//:__subpackages__"],
++ deps = ["//go/analysis"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":embeddirective",
++ visibility = ["//:__subpackages__"],
++)
++
++go_test(
++ name = "embeddirective_test",
++ srcs = ["embeddirective_test.go"],
++ data = glob(["testdata/**"]),
++ embed = [":embeddirective"],
++ deps = [
++ "//go/analysis/analysistest",
++ "//internal/typeparams",
++ ],
++)
+diff -urN b/internal/lsp/analysis/embeddirective/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/embeddirective/testdata/src/a/BUILD.bazel
+--- b/internal/lsp/analysis/embeddirective/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/analysis/embeddirective/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,18 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "a",
++ srcs = [
++ "a.go",
++ "b.go",
++ ],
++ embedsrcs = ["embedText"],
++ importpath = "golang.org/x/tools/internal/lsp/analysis/embeddirective/testdata/src/a",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":a",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/analysis/fillreturns/BUILD.bazel c/internal/lsp/analysis/fillreturns/BUILD.bazel
---- b/internal/lsp/analysis/fillreturns/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillreturns/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillreturns/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8590,6 +9474,7 @@
+go_test(
+ name = "fillreturns_test",
+ srcs = ["fillreturns_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":fillreturns",
+ "//go/analysis/analysistest",
@@ -8597,7 +9482,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/fillreturns/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/fillreturns/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/fillreturns/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillreturns/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillreturns/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8615,7 +9500,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/fillreturns/testdata/src/a/typeparams/BUILD.bazel c/internal/lsp/analysis/fillreturns/testdata/src/a/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/fillreturns/testdata/src/a/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillreturns/testdata/src/a/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillreturns/testdata/src/a/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8633,9 +9518,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/fillstruct/BUILD.bazel c/internal/lsp/analysis/fillstruct/BUILD.bazel
---- b/internal/lsp/analysis/fillstruct/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillstruct/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillstruct/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8663,6 +9548,7 @@
+go_test(
+ name = "fillstruct_test",
+ srcs = ["fillstruct_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":fillstruct",
+ "//go/analysis/analysistest",
@@ -8670,7 +9556,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/fillstruct/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/fillstruct/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/fillstruct/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillstruct/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillstruct/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8688,7 +9574,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/fillstruct/testdata/src/b/BUILD.bazel c/internal/lsp/analysis/fillstruct/testdata/src/b/BUILD.bazel
---- b/internal/lsp/analysis/fillstruct/testdata/src/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillstruct/testdata/src/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillstruct/testdata/src/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8706,7 +9592,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/fillstruct/testdata/src/typeparams/BUILD.bazel c/internal/lsp/analysis/fillstruct/testdata/src/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/fillstruct/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/fillstruct/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/fillstruct/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8724,9 +9610,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/infertypeargs/BUILD.bazel c/internal/lsp/analysis/infertypeargs/BUILD.bazel
---- b/internal/lsp/analysis/infertypeargs/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/infertypeargs/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/infertypeargs/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,35 @@
+@@ -0,0 +1,36 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8755,6 +9641,7 @@
+go_test(
+ name = "infertypeargs_test",
+ srcs = ["infertypeargs_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":infertypeargs",
+ "//go/analysis/analysistest",
@@ -8763,7 +9650,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/infertypeargs/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/infertypeargs/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/infertypeargs/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/infertypeargs/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/infertypeargs/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8785,7 +9672,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/infertypeargs/testdata/src/a/imported/BUILD.bazel c/internal/lsp/analysis/infertypeargs/testdata/src/a/imported/BUILD.bazel
---- b/internal/lsp/analysis/infertypeargs/testdata/src/a/imported/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/infertypeargs/testdata/src/a/imported/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/infertypeargs/testdata/src/a/imported/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8803,9 +9690,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/nonewvars/BUILD.bazel c/internal/lsp/analysis/nonewvars/BUILD.bazel
---- b/internal/lsp/analysis/nonewvars/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/nonewvars/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/nonewvars/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8830,6 +9717,7 @@
+go_test(
+ name = "nonewvars_test",
+ srcs = ["nonewvars_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":nonewvars",
+ "//go/analysis/analysistest",
@@ -8837,7 +9725,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/nonewvars/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/nonewvars/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/nonewvars/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/nonewvars/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/nonewvars/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8855,7 +9743,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/nonewvars/testdata/src/typeparams/BUILD.bazel c/internal/lsp/analysis/nonewvars/testdata/src/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/nonewvars/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/nonewvars/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/nonewvars/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8873,9 +9761,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/noresultvalues/BUILD.bazel c/internal/lsp/analysis/noresultvalues/BUILD.bazel
---- b/internal/lsp/analysis/noresultvalues/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/noresultvalues/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/noresultvalues/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8900,6 +9788,7 @@
+go_test(
+ name = "noresultvalues_test",
+ srcs = ["noresultvalues_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":noresultvalues",
+ "//go/analysis/analysistest",
@@ -8907,7 +9796,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/noresultvalues/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/noresultvalues/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/noresultvalues/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/noresultvalues/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/noresultvalues/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8925,7 +9814,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/BUILD.bazel c/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8943,9 +9832,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/simplifycompositelit/BUILD.bazel c/internal/lsp/analysis/simplifycompositelit/BUILD.bazel
---- b/internal/lsp/analysis/simplifycompositelit/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifycompositelit/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifycompositelit/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -8969,13 +9858,14 @@
+go_test(
+ name = "simplifycompositelit_test",
+ srcs = ["simplifycompositelit_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":simplifycompositelit",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/internal/lsp/analysis/simplifycompositelit/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/simplifycompositelit/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/simplifycompositelit/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifycompositelit/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifycompositelit/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -8993,9 +9883,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/simplifyrange/BUILD.bazel c/internal/lsp/analysis/simplifyrange/BUILD.bazel
---- b/internal/lsp/analysis/simplifyrange/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifyrange/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifyrange/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9019,13 +9909,14 @@
+go_test(
+ name = "simplifyrange_test",
+ srcs = ["simplifyrange_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":simplifyrange",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/internal/lsp/analysis/simplifyrange/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/simplifyrange/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/simplifyrange/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifyrange/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifyrange/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9043,9 +9934,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/simplifyslice/BUILD.bazel c/internal/lsp/analysis/simplifyslice/BUILD.bazel
---- b/internal/lsp/analysis/simplifyslice/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifyslice/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifyslice/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9069,6 +9960,7 @@
+go_test(
+ name = "simplifyslice_test",
+ srcs = ["simplifyslice_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":simplifyslice",
+ "//go/analysis/analysistest",
@@ -9076,7 +9968,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/simplifyslice/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/simplifyslice/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/simplifyslice/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifyslice/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifyslice/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9094,7 +9986,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/simplifyslice/testdata/src/typeparams/BUILD.bazel c/internal/lsp/analysis/simplifyslice/testdata/src/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/simplifyslice/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/simplifyslice/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/simplifyslice/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9111,10 +10003,35 @@
+ actual = ":typeparams",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/analysis/stubmethods/BUILD.bazel c/internal/lsp/analysis/stubmethods/BUILD.bazel
+--- b/internal/lsp/analysis/stubmethods/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/analysis/stubmethods/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,21 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "stubmethods",
++ srcs = ["stubmethods.go"],
++ importpath = "golang.org/x/tools/internal/lsp/analysis/stubmethods",
++ visibility = ["//:__subpackages__"],
++ deps = [
++ "//go/analysis",
++ "//go/analysis/passes/inspect",
++ "//go/ast/astutil",
++ "//internal/analysisinternal",
++ "//internal/typesinternal",
++ ],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":stubmethods",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/analysis/undeclaredname/BUILD.bazel c/internal/lsp/analysis/undeclaredname/BUILD.bazel
---- b/internal/lsp/analysis/undeclaredname/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/undeclaredname/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/undeclaredname/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9139,13 +10056,14 @@
+go_test(
+ name = "undeclaredname_test",
+ srcs = ["undeclared_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":undeclaredname",
+ "//go/analysis/analysistest",
+ ],
+)
diff -urN b/internal/lsp/analysis/undeclaredname/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/undeclaredname/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/undeclaredname/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/undeclaredname/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/undeclaredname/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9174,9 +10092,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/unusedparams/BUILD.bazel c/internal/lsp/analysis/unusedparams/BUILD.bazel
---- b/internal/lsp/analysis/unusedparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/unusedparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/unusedparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9200,6 +10118,7 @@
+go_test(
+ name = "unusedparams_test",
+ srcs = ["unusedparams_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":unusedparams",
+ "//go/analysis/analysistest",
@@ -9207,7 +10126,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/unusedparams/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/unusedparams/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/unusedparams/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/unusedparams/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/unusedparams/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9225,7 +10144,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/unusedparams/testdata/src/typeparams/BUILD.bazel c/internal/lsp/analysis/unusedparams/testdata/src/typeparams/BUILD.bazel
---- b/internal/lsp/analysis/unusedparams/testdata/src/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/unusedparams/testdata/src/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/unusedparams/testdata/src/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9243,9 +10162,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/analysis/useany/BUILD.bazel c/internal/lsp/analysis/useany/BUILD.bazel
---- b/internal/lsp/analysis/useany/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/useany/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/useany/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9270,6 +10189,7 @@
+go_test(
+ name = "useany_test",
+ srcs = ["useany_test.go"],
++ data = glob(["testdata/**"]),
+ deps = [
+ ":useany",
+ "//go/analysis/analysistest",
@@ -9277,7 +10197,7 @@
+ ],
+)
diff -urN b/internal/lsp/analysis/useany/testdata/src/a/BUILD.bazel c/internal/lsp/analysis/useany/testdata/src/a/BUILD.bazel
---- b/internal/lsp/analysis/useany/testdata/src/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/analysis/useany/testdata/src/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/analysis/useany/testdata/src/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9295,7 +10215,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/browser/BUILD.bazel c/internal/lsp/browser/BUILD.bazel
---- b/internal/lsp/browser/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/browser/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/browser/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9313,10 +10233,34 @@
+ actual = ":browser",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/bug/BUILD.bazel c/internal/lsp/bug/BUILD.bazel
+--- b/internal/lsp/bug/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/bug/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,20 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
++
++go_library(
++ name = "bug",
++ srcs = ["bug.go"],
++ importpath = "golang.org/x/tools/internal/lsp/bug",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":bug",
++ visibility = ["//:__subpackages__"],
++)
++
++go_test(
++ name = "bug_test",
++ srcs = ["bug_test.go"],
++ embed = [":bug"],
++)
diff -urN b/internal/lsp/cache/BUILD.bazel c/internal/lsp/cache/BUILD.bazel
---- b/internal/lsp/cache/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/cache/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/cache/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,83 @@
+@@ -0,0 +1,88 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9326,6 +10270,7 @@
+ "cache.go",
+ "check.go",
+ "errors.go",
++ "graph.go",
+ "imports.go",
+ "keys.go",
+ "load.go",
@@ -9335,6 +10280,8 @@
+ "os_darwin.go",
+ "os_windows.go",
+ "parse.go",
++ "parsemode_go116.go",
++ "parsemode_go117.go",
+ "pkg.go",
+ "session.go",
+ "snapshot.go",
@@ -9354,16 +10301,18 @@
+ "//internal/event/label",
+ "//internal/gocommand",
+ "//internal/imports",
++ "//internal/lsp/bug",
+ "//internal/lsp/command",
+ "//internal/lsp/debug/log",
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/diff",
+ "//internal/lsp/diff/myers",
++ "//internal/lsp/lsppos",
+ "//internal/lsp/progress",
+ "//internal/lsp/protocol",
++ "//internal/lsp/safetoken",
+ "//internal/lsp/source",
+ "//internal/memoize",
-+ "//internal/mod/modfile",
+ "//internal/packagesinternal",
+ "//internal/span",
+ "//internal/typeparams",
@@ -9374,7 +10323,6 @@
+ "@org_golang_x_mod//semver:go_default_library",
+ "@org_golang_x_sync//errgroup:go_default_library",
+ "@org_golang_x_sys//execabs:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -9398,12 +10346,13 @@
+ "//internal/lsp/fake",
+ "//internal/lsp/source",
+ "//internal/span",
++ "@org_golang_x_mod//modfile:go_default_library",
+ ],
+)
diff -urN b/internal/lsp/cmd/BUILD.bazel c/internal/lsp/cmd/BUILD.bazel
---- b/internal/lsp/cmd/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/cmd/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/cmd/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,74 @@
+@@ -0,0 +1,77 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9430,12 +10379,14 @@
+ "subcommands.go",
+ "suggested_fix.go",
+ "symbols.go",
++ "vulncheck.go",
+ "workspace.go",
+ "workspace_symbol.go",
+ ],
+ importpath = "golang.org/x/tools/internal/lsp/cmd",
+ visibility = ["//:__subpackages__"],
+ deps = [
++ "//go/packages",
+ "//internal/fakenet",
+ "//internal/jsonrpc2",
+ "//internal/lsp",
@@ -9450,7 +10401,6 @@
+ "//internal/span",
+ "//internal/tool",
+ "//internal/xcontext",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -9466,20 +10416,22 @@
+ "capabilities_test.go",
+ "cmd_test.go",
+ "export_test.go",
++ "help_test.go",
+ ],
+ embed = [":cmd"],
+ deps = [
+ "//internal/lsp",
++ "//internal/lsp/bug",
+ "//internal/lsp/cache",
+ "//internal/lsp/cmd/test",
+ "//internal/lsp/protocol",
+ "//internal/lsp/tests",
+ "//internal/testenv",
-+ "@org_golang_x_xerrors//:go_default_library",
++ "//internal/tool",
+ ],
+)
diff -urN b/internal/lsp/cmd/test/BUILD.bazel c/internal/lsp/cmd/test/BUILD.bazel
---- b/internal/lsp/cmd/test/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/cmd/test/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/cmd/test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,49 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9532,7 +10484,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/command/BUILD.bazel c/internal/lsp/command/BUILD.bazel
---- b/internal/lsp/command/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/command/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/command/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9564,7 +10516,7 @@
+ ],
+)
diff -urN b/internal/lsp/command/commandmeta/BUILD.bazel c/internal/lsp/command/commandmeta/BUILD.bazel
---- b/internal/lsp/command/commandmeta/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/command/commandmeta/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/command/commandmeta/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9587,7 +10539,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/command/gen/BUILD.bazel c/internal/lsp/command/gen/BUILD.bazel
---- b/internal/lsp/command/gen/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/command/gen/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/command/gen/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9609,14 +10561,16 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/debug/BUILD.bazel c/internal/lsp/debug/BUILD.bazel
---- b/internal/lsp/debug/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/debug/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/debug/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,36 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+@@ -0,0 +1,44 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "debug",
+ srcs = [
++ "buildinfo_go1.12.go",
++ "buildinfo_go1.18.go",
+ "info.go",
+ "metrics.go",
+ "rpc.go",
@@ -9634,12 +10588,12 @@
+ "//internal/event/export/prometheus",
+ "//internal/event/keys",
+ "//internal/event/label",
++ "//internal/lsp/bug",
+ "//internal/lsp/cache",
+ "//internal/lsp/debug/log",
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/protocol",
+ "//internal/lsp/source",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -9648,8 +10602,14 @@
+ actual = ":debug",
+ visibility = ["//:__subpackages__"],
+)
++
++go_test(
++ name = "debug_test",
++ srcs = ["info_test.go"],
++ embed = [":debug"],
++)
diff -urN b/internal/lsp/debug/log/BUILD.bazel c/internal/lsp/debug/log/BUILD.bazel
---- b/internal/lsp/debug/log/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/debug/log/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/debug/log/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9672,7 +10632,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/debug/tag/BUILD.bazel c/internal/lsp/debug/tag/BUILD.bazel
---- b/internal/lsp/debug/tag/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/debug/tag/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/debug/tag/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -9691,7 +10651,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/diff/BUILD.bazel c/internal/lsp/diff/BUILD.bazel
---- b/internal/lsp/diff/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/diff/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/diff/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9723,7 +10683,7 @@
+ ],
+)
diff -urN b/internal/lsp/diff/difftest/BUILD.bazel c/internal/lsp/diff/difftest/BUILD.bazel
---- b/internal/lsp/diff/difftest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/diff/difftest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/diff/difftest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9754,7 +10714,7 @@
+ ],
+)
diff -urN b/internal/lsp/diff/myers/BUILD.bazel c/internal/lsp/diff/myers/BUILD.bazel
---- b/internal/lsp/diff/myers/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/diff/myers/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/diff/myers/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9785,7 +10745,7 @@
+ ],
+)
diff -urN b/internal/lsp/fake/BUILD.bazel c/internal/lsp/fake/BUILD.bazel
---- b/internal/lsp/fake/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/fake/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/fake/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,44 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9800,6 +10760,7 @@
+ "proxy.go",
+ "sandbox.go",
+ "workdir.go",
++ "workdir_windows.go",
+ ],
+ importpath = "golang.org/x/tools/internal/lsp/fake",
+ visibility = ["//:__subpackages__"],
@@ -9812,7 +10773,6 @@
+ "//internal/span",
+ "//internal/testenv",
+ "//txtar",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -9833,7 +10793,7 @@
+ deps = ["//internal/lsp/protocol"],
+)
diff -urN b/internal/lsp/fuzzy/BUILD.bazel c/internal/lsp/fuzzy/BUILD.bazel
---- b/internal/lsp/fuzzy/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/fuzzy/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/fuzzy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -9865,7 +10825,7 @@
+ deps = [":fuzzy"],
+)
diff -urN b/internal/lsp/helper/BUILD.bazel c/internal/lsp/helper/BUILD.bazel
---- b/internal/lsp/helper/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/helper/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/helper/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -9883,16 +10843,23 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/lsppos/BUILD.bazel c/internal/lsp/lsppos/BUILD.bazel
---- b/internal/lsp/lsppos/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/lsppos/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/lsppos/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,14 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+@@ -0,0 +1,33 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "lsppos",
-+ srcs = ["lsppos.go"],
++ srcs = [
++ "lsppos.go",
++ "token.go",
++ ],
+ importpath = "golang.org/x/tools/internal/lsp/lsppos",
+ visibility = ["//:__subpackages__"],
++ deps = [
++ "//internal/lsp/protocol",
++ "//internal/lsp/safetoken",
++ ],
+)
+
+alias(
@@ -9900,10 +10867,22 @@
+ actual = ":lsppos",
+ visibility = ["//:__subpackages__"],
+)
++
++go_test(
++ name = "lsppos_test",
++ srcs = [
++ "lsppos_test.go",
++ "token_test.go",
++ ],
++ deps = [
++ ":lsppos",
++ "//internal/lsp/protocol",
++ ],
++)
diff -urN b/internal/lsp/lsprpc/BUILD.bazel c/internal/lsp/lsprpc/BUILD.bazel
---- b/internal/lsp/lsprpc/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/lsprpc/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/lsprpc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,61 @@
+@@ -0,0 +1,60 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9933,7 +10912,6 @@
+ "//internal/lsp/protocol",
+ "//internal/xcontext",
+ "@org_golang_x_sys//execabs:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -9966,9 +10944,9 @@
+ ],
+)
diff -urN b/internal/lsp/mod/BUILD.bazel c/internal/lsp/mod/BUILD.bazel
---- b/internal/lsp/mod/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/mod/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/mod/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,40 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -9987,9 +10965,7 @@
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/protocol",
+ "//internal/lsp/source",
-+ "//internal/span",
+ "@org_golang_x_mod//modfile:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -10012,7 +10988,7 @@
+ ],
+)
diff -urN b/internal/lsp/mod/testdata/unchanged/BUILD.bazel c/internal/lsp/mod/testdata/unchanged/BUILD.bazel
---- b/internal/lsp/mod/testdata/unchanged/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/mod/testdata/unchanged/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/mod/testdata/unchanged/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10030,9 +11006,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/progress/BUILD.bazel c/internal/lsp/progress/BUILD.bazel
---- b/internal/lsp/progress/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/progress/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/progress/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -10045,7 +11021,6 @@
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/protocol",
+ "//internal/xcontext",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -10062,9 +11037,9 @@
+ deps = ["//internal/lsp/protocol"],
+)
diff -urN b/internal/lsp/protocol/BUILD.bazel c/internal/lsp/protocol/BUILD.bazel
---- b/internal/lsp/protocol/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/protocol/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/protocol/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,36 @@
+@@ -0,0 +1,35 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
@@ -10092,7 +11067,6 @@
+ "//internal/jsonrpc2_v2",
+ "//internal/span",
+ "//internal/xcontext",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -10102,7 +11076,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/regtest/BUILD.bazel c/internal/lsp/regtest/BUILD.bazel
---- b/internal/lsp/regtest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/regtest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/regtest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,45 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -10150,8 +11124,32 @@
+ embed = [":regtest"],
+ deps = ["//internal/lsp/protocol"],
+)
+diff -urN b/internal/lsp/safetoken/BUILD.bazel c/internal/lsp/safetoken/BUILD.bazel
+--- b/internal/lsp/safetoken/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/safetoken/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,20 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
++
++go_library(
++ name = "safetoken",
++ srcs = ["safetoken.go"],
++ importpath = "golang.org/x/tools/internal/lsp/safetoken",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":safetoken",
++ visibility = ["//:__subpackages__"],
++)
++
++go_test(
++ name = "safetoken_test",
++ srcs = ["safetoken_test.go"],
++ deps = ["//go/packages"],
++)
diff -urN b/internal/lsp/snippet/BUILD.bazel c/internal/lsp/snippet/BUILD.bazel
---- b/internal/lsp/snippet/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/snippet/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/snippet/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -10175,9 +11173,9 @@
+ embed = [":snippet"],
+)
diff -urN b/internal/lsp/source/BUILD.bazel c/internal/lsp/source/BUILD.bazel
---- b/internal/lsp/source/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/source/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/source/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,135 @@
+@@ -0,0 +1,139 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -10204,6 +11202,7 @@
+ "rename.go",
+ "rename_check.go",
+ "signature_help.go",
++ "stub.go",
+ "symbols.go",
+ "types_format.go",
+ "util.go",
@@ -10247,11 +11246,13 @@
+ "//go/analysis/passes/unusedresult",
+ "//go/analysis/passes/unusedwrite",
+ "//go/ast/astutil",
++ "//go/packages",
+ "//go/types/typeutil",
+ "//internal/analysisinternal",
+ "//internal/event",
+ "//internal/gocommand",
+ "//internal/imports",
++ "//internal/lsp/analysis/embeddirective",
+ "//internal/lsp/analysis/fillreturns",
+ "//internal/lsp/analysis/fillstruct",
+ "//internal/lsp/analysis/infertypeargs",
@@ -10260,9 +11261,11 @@
+ "//internal/lsp/analysis/simplifycompositelit",
+ "//internal/lsp/analysis/simplifyrange",
+ "//internal/lsp/analysis/simplifyslice",
++ "//internal/lsp/analysis/stubmethods",
+ "//internal/lsp/analysis/undeclaredname",
+ "//internal/lsp/analysis/unusedparams",
+ "//internal/lsp/analysis/useany",
++ "//internal/lsp/bug",
+ "//internal/lsp/command",
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/diff",
@@ -10271,13 +11274,13 @@
+ "//internal/lsp/lsppos",
+ "//internal/lsp/progress",
+ "//internal/lsp/protocol",
++ "//internal/lsp/safetoken",
+ "//internal/span",
+ "//internal/typeparams",
+ "//refactor/satisfy",
+ "@org_golang_x_mod//modfile:go_default_library",
+ "@org_golang_x_mod//module:go_default_library",
+ "@org_golang_x_text//unicode/runenames:go_default_library",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
+
@@ -10293,14 +11296,14 @@
+ "comment_test.go",
+ "format_test.go",
+ "identifier_test.go",
-+ "offset_test.go",
+ "options_test.go",
+ "source_test.go",
++ "util_test.go",
+ "workspace_symbol_test.go",
+ ],
+ embed = [":source"],
+ deps = [
-+ "//go/packages",
++ "//internal/lsp/bug",
+ "//internal/lsp/cache",
+ "//internal/lsp/diff",
+ "//internal/lsp/diff/myers",
@@ -10310,13 +11313,12 @@
+ "//internal/lsp/tests",
+ "//internal/span",
+ "//internal/testenv",
-+ "@org_golang_x_xerrors//:go_default_library",
+ ],
+)
diff -urN b/internal/lsp/source/completion/BUILD.bazel c/internal/lsp/source/completion/BUILD.bazel
---- b/internal/lsp/source/completion/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/source/completion/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/source/completion/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,53 @@
+@@ -0,0 +1,57 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -10325,7 +11327,9 @@
+ "builtin.go",
+ "completion.go",
+ "deep_completion.go",
++ "definition.go",
+ "format.go",
++ "fuzz.go",
+ "keywords.go",
+ "labels.go",
+ "literal.go",
@@ -10340,17 +11344,19 @@
+ visibility = ["//:__subpackages__"],
+ deps = [
+ "//go/ast/astutil",
++ "//go/types/typeutil",
+ "//internal/event",
+ "//internal/imports",
-+ "//internal/lsp/debug",
++ "//internal/lsp/bug",
+ "//internal/lsp/debug/tag",
+ "//internal/lsp/diff",
+ "//internal/lsp/fuzzy",
+ "//internal/lsp/protocol",
++ "//internal/lsp/safetoken",
+ "//internal/lsp/snippet",
+ "//internal/lsp/source",
+ "//internal/span",
-+ "@org_golang_x_xerrors//:go_default_library",
++ "//internal/typeparams",
+ ],
+)
+
@@ -10371,7 +11377,7 @@
+ embed = [":completion"],
+)
diff -urN b/internal/lsp/template/BUILD.bazel c/internal/lsp/template/BUILD.bazel
---- b/internal/lsp/template/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/template/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/template/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,36 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -10411,7 +11417,7 @@
+ deps = ["//internal/lsp/protocol"],
+)
diff -urN b/internal/lsp/testdata/%percent/BUILD.bazel c/internal/lsp/testdata/%percent/BUILD.bazel
---- b/internal/lsp/testdata/%percent/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/%percent/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/%percent/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10429,7 +11435,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/address/BUILD.bazel c/internal/lsp/testdata/address/BUILD.bazel
---- b/internal/lsp/testdata/address/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/address/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/address/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10447,7 +11453,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/analyzer/BUILD.bazel c/internal/lsp/testdata/analyzer/BUILD.bazel
---- b/internal/lsp/testdata/analyzer/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/analyzer/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/analyzer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,6 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_test")
@@ -10457,7 +11463,7 @@
+ srcs = ["bad_test.go"],
+)
diff -urN b/internal/lsp/testdata/append/BUILD.bazel c/internal/lsp/testdata/append/BUILD.bazel
---- b/internal/lsp/testdata/append/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/append/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/append/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10475,7 +11481,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/assign/internal/secret/BUILD.bazel c/internal/lsp/testdata/assign/internal/secret/BUILD.bazel
---- b/internal/lsp/testdata/assign/internal/secret/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/assign/internal/secret/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/assign/internal/secret/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10493,7 +11499,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/bad/BUILD.bazel c/internal/lsp/testdata/bad/BUILD.bazel
---- b/internal/lsp/testdata/bad/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/bad/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/bad/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10514,7 +11520,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/basiclit/BUILD.bazel c/internal/lsp/testdata/basiclit/BUILD.bazel
---- b/internal/lsp/testdata/basiclit/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/basiclit/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/basiclit/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10532,7 +11538,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/builtins/BUILD.bazel c/internal/lsp/testdata/builtins/BUILD.bazel
---- b/internal/lsp/testdata/builtins/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/builtins/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/builtins/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10555,7 +11561,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/callhierarchy/BUILD.bazel c/internal/lsp/testdata/callhierarchy/BUILD.bazel
---- b/internal/lsp/testdata/callhierarchy/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/callhierarchy/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/callhierarchy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10573,7 +11579,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/callhierarchy/incoming/BUILD.bazel c/internal/lsp/testdata/callhierarchy/incoming/BUILD.bazel
---- b/internal/lsp/testdata/callhierarchy/incoming/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/callhierarchy/incoming/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/callhierarchy/incoming/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10591,7 +11597,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/callhierarchy/outgoing/BUILD.bazel c/internal/lsp/testdata/callhierarchy/outgoing/BUILD.bazel
---- b/internal/lsp/testdata/callhierarchy/outgoing/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/callhierarchy/outgoing/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/callhierarchy/outgoing/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10609,7 +11615,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/casesensitive/BUILD.bazel c/internal/lsp/testdata/casesensitive/BUILD.bazel
---- b/internal/lsp/testdata/casesensitive/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/casesensitive/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/casesensitive/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10627,7 +11633,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/cgo/BUILD.bazel c/internal/lsp/testdata/cgo/BUILD.bazel
---- b/internal/lsp/testdata/cgo/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/cgo/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/cgo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10649,7 +11655,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/channel/BUILD.bazel c/internal/lsp/testdata/channel/BUILD.bazel
---- b/internal/lsp/testdata/channel/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/channel/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/channel/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10667,7 +11673,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/codelens/BUILD.bazel c/internal/lsp/testdata/codelens/BUILD.bazel
---- b/internal/lsp/testdata/codelens/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/codelens/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/codelens/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,6 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_test")
@@ -10677,7 +11683,7 @@
+ srcs = ["codelens_test.go"],
+)
diff -urN b/internal/lsp/testdata/constant/BUILD.bazel c/internal/lsp/testdata/constant/BUILD.bazel
---- b/internal/lsp/testdata/constant/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/constant/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/constant/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10695,7 +11701,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/danglingstmt/BUILD.bazel c/internal/lsp/testdata/danglingstmt/BUILD.bazel
---- b/internal/lsp/testdata/danglingstmt/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/danglingstmt/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/danglingstmt/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,28 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10727,7 +11733,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/deep/BUILD.bazel c/internal/lsp/testdata/deep/BUILD.bazel
---- b/internal/lsp/testdata/deep/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/deep/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/deep/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10745,7 +11751,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/errors/BUILD.bazel c/internal/lsp/testdata/errors/BUILD.bazel
---- b/internal/lsp/testdata/errors/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/errors/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/errors/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10763,7 +11769,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/extract/extract_function/BUILD.bazel c/internal/lsp/testdata/extract/extract_function/BUILD.bazel
---- b/internal/lsp/testdata/extract/extract_function/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/extract/extract_function/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/extract/extract_function/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,32 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10799,7 +11805,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/extract/extract_method/BUILD.bazel c/internal/lsp/testdata/extract/extract_method/BUILD.bazel
---- b/internal/lsp/testdata/extract/extract_method/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/extract/extract_method/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/extract/extract_method/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10817,7 +11823,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/extract/extract_variable/BUILD.bazel c/internal/lsp/testdata/extract/extract_variable/BUILD.bazel
---- b/internal/lsp/testdata/extract/extract_variable/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/extract/extract_variable/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/extract/extract_variable/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10839,7 +11845,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/fieldlist/BUILD.bazel c/internal/lsp/testdata/fieldlist/BUILD.bazel
---- b/internal/lsp/testdata/fieldlist/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/fieldlist/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/fieldlist/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10857,9 +11863,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/fillstruct/BUILD.bazel c/internal/lsp/testdata/fillstruct/BUILD.bazel
---- b/internal/lsp/testdata/fillstruct/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/fillstruct/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/fillstruct/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,25 @@
+@@ -0,0 +1,26 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
@@ -10875,6 +11881,7 @@
+ "fill_struct_package.go",
+ "fill_struct_partial.go",
+ "fill_struct_spaces.go",
++ "fill_struct_unsafe.go",
+ ],
+ importpath = "golang.org/x/tools/internal/lsp/testdata/fillstruct",
+ visibility = ["//:__subpackages__"],
@@ -10886,7 +11893,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/fillstruct/data/BUILD.bazel c/internal/lsp/testdata/fillstruct/data/BUILD.bazel
---- b/internal/lsp/testdata/fillstruct/data/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/fillstruct/data/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/fillstruct/data/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10904,7 +11911,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/folding/BUILD.bazel c/internal/lsp/testdata/folding/BUILD.bazel
---- b/internal/lsp/testdata/folding/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/folding/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/folding/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10922,7 +11929,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/foo/BUILD.bazel c/internal/lsp/testdata/foo/BUILD.bazel
---- b/internal/lsp/testdata/foo/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/foo/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/foo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10940,7 +11947,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/format/BUILD.bazel c/internal/lsp/testdata/format/BUILD.bazel
---- b/internal/lsp/testdata/format/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/format/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/format/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10958,7 +11965,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/funcsig/BUILD.bazel c/internal/lsp/testdata/funcsig/BUILD.bazel
---- b/internal/lsp/testdata/funcsig/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/funcsig/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/funcsig/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10976,7 +11983,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/funcvalue/BUILD.bazel c/internal/lsp/testdata/funcvalue/BUILD.bazel
---- b/internal/lsp/testdata/funcvalue/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/funcvalue/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/funcvalue/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -10994,7 +12001,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/fuzzymatch/BUILD.bazel c/internal/lsp/testdata/fuzzymatch/BUILD.bazel
---- b/internal/lsp/testdata/fuzzymatch/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/fuzzymatch/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/fuzzymatch/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11012,7 +12019,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/generate/BUILD.bazel c/internal/lsp/testdata/generate/BUILD.bazel
---- b/internal/lsp/testdata/generate/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/generate/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/generate/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11030,7 +12037,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/generated/BUILD.bazel c/internal/lsp/testdata/generated/BUILD.bazel
---- b/internal/lsp/testdata/generated/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/generated/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/generated/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11051,7 +12058,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/godef/a/BUILD.bazel c/internal/lsp/testdata/godef/a/BUILD.bazel
---- b/internal/lsp/testdata/godef/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/godef/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/godef/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,30 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11085,7 +12092,7 @@
+ embed = [":a"],
+)
diff -urN b/internal/lsp/testdata/godef/b/BUILD.bazel c/internal/lsp/testdata/godef/b/BUILD.bazel
---- b/internal/lsp/testdata/godef/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/godef/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/godef/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11107,8 +12114,26 @@
+ actual = ":b",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/testdata/godef/hover_generics/BUILD.bazel c/internal/lsp/testdata/godef/hover_generics/BUILD.bazel
+--- b/internal/lsp/testdata/godef/hover_generics/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/testdata/godef/hover_generics/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "hover_generics",
++ srcs = ["hover.go"],
++ importpath = "golang.org/x/tools/internal/lsp/testdata/godef/hover_generics",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":hover_generics",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/testdata/godef/infer_generics/BUILD.bazel c/internal/lsp/testdata/godef/infer_generics/BUILD.bazel
---- b/internal/lsp/testdata/godef/infer_generics/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/godef/infer_generics/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/godef/infer_generics/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11126,7 +12151,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/good/BUILD.bazel c/internal/lsp/testdata/good/BUILD.bazel
---- b/internal/lsp/testdata/good/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/good/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/good/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11147,7 +12172,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/highlights/BUILD.bazel c/internal/lsp/testdata/highlights/BUILD.bazel
---- b/internal/lsp/testdata/highlights/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/highlights/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/highlights/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11165,7 +12190,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/implementation/BUILD.bazel c/internal/lsp/testdata/implementation/BUILD.bazel
---- b/internal/lsp/testdata/implementation/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/implementation/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/implementation/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11183,7 +12208,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/implementation/other/BUILD.bazel c/internal/lsp/testdata/implementation/other/BUILD.bazel
---- b/internal/lsp/testdata/implementation/other/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/implementation/other/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/implementation/other/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11207,7 +12232,7 @@
+ embed = [":other"],
+)
diff -urN b/internal/lsp/testdata/index/BUILD.bazel c/internal/lsp/testdata/index/BUILD.bazel
---- b/internal/lsp/testdata/index/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/index/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/index/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11225,7 +12250,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/interfacerank/BUILD.bazel c/internal/lsp/testdata/interfacerank/BUILD.bazel
---- b/internal/lsp/testdata/interfacerank/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/interfacerank/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/interfacerank/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11243,7 +12268,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/keywords/BUILD.bazel c/internal/lsp/testdata/keywords/BUILD.bazel
---- b/internal/lsp/testdata/keywords/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/keywords/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/keywords/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11265,7 +12290,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/labels/BUILD.bazel c/internal/lsp/testdata/labels/BUILD.bazel
---- b/internal/lsp/testdata/labels/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/labels/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/labels/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11283,7 +12308,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/links/BUILD.bazel c/internal/lsp/testdata/links/BUILD.bazel
---- b/internal/lsp/testdata/links/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/links/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/links/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11301,7 +12326,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/missingfunction/BUILD.bazel c/internal/lsp/testdata/missingfunction/BUILD.bazel
---- b/internal/lsp/testdata/missingfunction/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/missingfunction/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/missingfunction/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11329,7 +12354,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/nodisk/BUILD.bazel c/internal/lsp/testdata/nodisk/BUILD.bazel
---- b/internal/lsp/testdata/nodisk/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/nodisk/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/nodisk/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11347,7 +12372,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/printf/BUILD.bazel c/internal/lsp/testdata/printf/BUILD.bazel
---- b/internal/lsp/testdata/printf/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/printf/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/printf/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11365,7 +12390,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rank/BUILD.bazel c/internal/lsp/testdata/rank/BUILD.bazel
---- b/internal/lsp/testdata/rank/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rank/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rank/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11383,7 +12408,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rank/struct/BUILD.bazel c/internal/lsp/testdata/rank/struct/BUILD.bazel
---- b/internal/lsp/testdata/rank/struct/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rank/struct/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rank/struct/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11401,7 +12426,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/references/BUILD.bazel c/internal/lsp/testdata/references/BUILD.bazel
---- b/internal/lsp/testdata/references/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/references/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/references/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,6 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_test")
@@ -11411,7 +12436,7 @@
+ srcs = ["refs_test.go"],
+)
diff -urN b/internal/lsp/testdata/references/another/BUILD.bazel c/internal/lsp/testdata/references/another/BUILD.bazel
---- b/internal/lsp/testdata/references/another/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/references/another/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/references/another/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11429,7 +12454,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/references/interfaces/BUILD.bazel c/internal/lsp/testdata/references/interfaces/BUILD.bazel
---- b/internal/lsp/testdata/references/interfaces/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/references/interfaces/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/references/interfaces/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11447,7 +12472,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/references/other/BUILD.bazel c/internal/lsp/testdata/references/other/BUILD.bazel
---- b/internal/lsp/testdata/references/other/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/references/other/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/references/other/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11465,7 +12490,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/b/BUILD.bazel c/internal/lsp/testdata/rename/b/BUILD.bazel
---- b/internal/lsp/testdata/rename/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11483,7 +12508,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/c/BUILD.bazel c/internal/lsp/testdata/rename/c/BUILD.bazel
---- b/internal/lsp/testdata/rename/c/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/c/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/c/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11504,7 +12529,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/crosspkg/BUILD.bazel c/internal/lsp/testdata/rename/crosspkg/BUILD.bazel
---- b/internal/lsp/testdata/rename/crosspkg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/crosspkg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/crosspkg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11522,7 +12547,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/crosspkg/another/BUILD.bazel c/internal/lsp/testdata/rename/crosspkg/another/BUILD.bazel
---- b/internal/lsp/testdata/rename/crosspkg/another/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/crosspkg/another/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/crosspkg/another/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11540,7 +12565,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/crosspkg/other/BUILD.bazel c/internal/lsp/testdata/rename/crosspkg/other/BUILD.bazel
---- b/internal/lsp/testdata/rename/crosspkg/other/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/crosspkg/other/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/crosspkg/other/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11557,8 +12582,30 @@
+ actual = ":other",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/testdata/rename/generics/BUILD.bazel c/internal/lsp/testdata/rename/generics/BUILD.bazel
+--- b/internal/lsp/testdata/rename/generics/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/testdata/rename/generics/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,18 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "generics",
++ srcs = [
++ "embedded.go",
++ "generics.go",
++ "unions.go",
++ ],
++ importpath = "golang.org/x/tools/internal/lsp/testdata/rename/generics",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":generics",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/testdata/rename/issue42134/BUILD.bazel c/internal/lsp/testdata/rename/issue42134/BUILD.bazel
---- b/internal/lsp/testdata/rename/issue42134/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/issue42134/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/issue42134/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11581,7 +12628,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/shadow/BUILD.bazel c/internal/lsp/testdata/rename/shadow/BUILD.bazel
---- b/internal/lsp/testdata/rename/shadow/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/shadow/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/shadow/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11599,7 +12646,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/rename/testy/BUILD.bazel c/internal/lsp/testdata/rename/testy/BUILD.bazel
---- b/internal/lsp/testdata/rename/testy/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/rename/testy/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/rename/testy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11623,7 +12670,7 @@
+ embed = [":testy"],
+)
diff -urN b/internal/lsp/testdata/semantic/BUILD.bazel c/internal/lsp/testdata/semantic/BUILD.bazel
---- b/internal/lsp/testdata/semantic/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/semantic/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/semantic/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11650,7 +12697,7 @@
+ embed = [":semantic"],
+)
diff -urN b/internal/lsp/testdata/signature/BUILD.bazel c/internal/lsp/testdata/signature/BUILD.bazel
---- b/internal/lsp/testdata/signature/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/signature/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/signature/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11673,7 +12720,7 @@
+ srcs = ["signature_test.go"],
+)
diff -urN b/internal/lsp/testdata/snippets/BUILD.bazel c/internal/lsp/testdata/snippets/BUILD.bazel
---- b/internal/lsp/testdata/snippets/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/snippets/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/snippets/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,17 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11694,7 +12741,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/statements/BUILD.bazel c/internal/lsp/testdata/statements/BUILD.bazel
---- b/internal/lsp/testdata/statements/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/statements/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/statements/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11721,8 +12768,59 @@
+ srcs = ["if_err_check_test.go"],
+ embed = [":statements"],
+)
+diff -urN b/internal/lsp/testdata/stub/BUILD.bazel c/internal/lsp/testdata/stub/BUILD.bazel
+--- b/internal/lsp/testdata/stub/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/testdata/stub/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,29 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "stub",
++ srcs = [
++ "stub_add_selector.go",
++ "stub_assign.go",
++ "stub_assign_multivars.go",
++ "stub_call_expr.go",
++ "stub_embedded.go",
++ "stub_err.go",
++ "stub_function_return.go",
++ "stub_generic_receiver.go",
++ "stub_ignored_imports.go",
++ "stub_multi_var.go",
++ "stub_pointer.go",
++ "stub_renamed_import.go",
++ "stub_renamed_import_iface.go",
++ "stub_stdlib.go",
++ ],
++ importpath = "golang.org/x/tools/internal/lsp/testdata/stub",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":stub",
++ visibility = ["//:__subpackages__"],
++)
+diff -urN b/internal/lsp/testdata/stub/other/BUILD.bazel c/internal/lsp/testdata/stub/other/BUILD.bazel
+--- b/internal/lsp/testdata/stub/other/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/testdata/stub/other/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "other",
++ srcs = ["other.go"],
++ importpath = "golang.org/x/tools/internal/lsp/testdata/stub/other",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":other",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/testdata/suggestedfix/BUILD.bazel c/internal/lsp/testdata/suggestedfix/BUILD.bazel
---- b/internal/lsp/testdata/suggestedfix/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/suggestedfix/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/suggestedfix/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11740,7 +12838,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/symbols/BUILD.bazel c/internal/lsp/testdata/symbols/BUILD.bazel
---- b/internal/lsp/testdata/symbols/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/symbols/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/symbols/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -11758,7 +12856,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/testy/BUILD.bazel c/internal/lsp/testdata/testy/BUILD.bazel
---- b/internal/lsp/testdata/testy/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/testy/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/testy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11782,7 +12880,7 @@
+ embed = [":testy"],
+)
diff -urN b/internal/lsp/testdata/typdef/BUILD.bazel c/internal/lsp/testdata/typdef/BUILD.bazel
---- b/internal/lsp/testdata/typdef/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/typdef/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/typdef/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11800,7 +12898,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/typeassert/BUILD.bazel c/internal/lsp/testdata/typeassert/BUILD.bazel
---- b/internal/lsp/testdata/typeassert/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/typeassert/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/typeassert/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11818,7 +12916,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/typeerrors/BUILD.bazel c/internal/lsp/testdata/typeerrors/BUILD.bazel
---- b/internal/lsp/testdata/typeerrors/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/typeerrors/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/typeerrors/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11836,7 +12934,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/typemods/BUILD.bazel c/internal/lsp/testdata/typemods/BUILD.bazel
---- b/internal/lsp/testdata/typemods/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/typemods/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/typemods/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11853,8 +12951,26 @@
+ actual = ":typemods",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/testdata/typeparams/BUILD.bazel c/internal/lsp/testdata/typeparams/BUILD.bazel
+--- b/internal/lsp/testdata/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/testdata/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,14 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "typeparams",
++ srcs = ["type_params.go"],
++ importpath = "golang.org/x/tools/internal/lsp/testdata/typeparams",
++ visibility = ["//:__subpackages__"],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":typeparams",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/lsp/testdata/types/BUILD.bazel c/internal/lsp/testdata/types/BUILD.bazel
---- b/internal/lsp/testdata/types/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/types/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/types/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11872,7 +12988,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/undeclared/BUILD.bazel c/internal/lsp/testdata/undeclared/BUILD.bazel
---- b/internal/lsp/testdata/undeclared/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/undeclared/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/undeclared/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11890,7 +13006,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/unimported/BUILD.bazel c/internal/lsp/testdata/unimported/BUILD.bazel
---- b/internal/lsp/testdata/unimported/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/unimported/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/unimported/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -11917,7 +13033,7 @@
+ embed = [":unimported"],
+)
diff -urN b/internal/lsp/testdata/unsafe/BUILD.bazel c/internal/lsp/testdata/unsafe/BUILD.bazel
---- b/internal/lsp/testdata/unsafe/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/unsafe/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/unsafe/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11935,7 +13051,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/variadic/BUILD.bazel c/internal/lsp/testdata/variadic/BUILD.bazel
---- b/internal/lsp/testdata/variadic/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/variadic/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/variadic/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -11953,7 +13069,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/workspacesymbol/BUILD.bazel c/internal/lsp/testdata/workspacesymbol/BUILD.bazel
---- b/internal/lsp/testdata/workspacesymbol/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/workspacesymbol/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/workspacesymbol/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -11975,7 +13091,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/workspacesymbol/a/BUILD.bazel c/internal/lsp/testdata/workspacesymbol/a/BUILD.bazel
---- b/internal/lsp/testdata/workspacesymbol/a/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/workspacesymbol/a/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/workspacesymbol/a/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12002,7 +13118,7 @@
+ embed = [":a"],
+)
diff -urN b/internal/lsp/testdata/workspacesymbol/b/BUILD.bazel c/internal/lsp/testdata/workspacesymbol/b/BUILD.bazel
---- b/internal/lsp/testdata/workspacesymbol/b/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/workspacesymbol/b/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/workspacesymbol/b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12020,7 +13136,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/testdata/workspacesymbol/p/BUILD.bazel c/internal/lsp/testdata/workspacesymbol/p/BUILD.bazel
---- b/internal/lsp/testdata/workspacesymbol/p/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/testdata/workspacesymbol/p/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/testdata/workspacesymbol/p/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12038,7 +13154,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/lsp/tests/BUILD.bazel c/internal/lsp/tests/BUILD.bazel
---- b/internal/lsp/tests/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/lsp/tests/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/lsp/tests/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,33 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12074,8 +13190,39 @@
+ actual = ":tests",
+ visibility = ["//:__subpackages__"],
+)
+diff -urN b/internal/lsp/work/BUILD.bazel c/internal/lsp/work/BUILD.bazel
+--- b/internal/lsp/work/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
++++ c/internal/lsp/work/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
+@@ -0,0 +1,27 @@
++load("@io_bazel_rules_go//go:def.bzl", "go_library")
++
++go_library(
++ name = "work",
++ srcs = [
++ "completion.go",
++ "diagnostics.go",
++ "format.go",
++ "hover.go",
++ ],
++ importpath = "golang.org/x/tools/internal/lsp/work",
++ visibility = ["//:__subpackages__"],
++ deps = [
++ "//internal/event",
++ "//internal/lsp/debug/tag",
++ "//internal/lsp/protocol",
++ "//internal/lsp/source",
++ "//internal/span",
++ "@org_golang_x_mod//modfile:go_default_library",
++ ],
++)
++
++alias(
++ name = "go_default_library",
++ actual = ":work",
++ visibility = ["//:__subpackages__"],
++)
diff -urN b/internal/memoize/BUILD.bazel c/internal/memoize/BUILD.bazel
---- b/internal/memoize/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/memoize/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/memoize/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12099,52 +13246,8 @@
+ srcs = ["memoize_test.go"],
+ deps = [":memoize"],
+)
-diff -urN b/internal/mod/lazyregexp/BUILD.bazel c/internal/mod/lazyregexp/BUILD.bazel
---- b/internal/mod/lazyregexp/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
-+++ c/internal/mod/lazyregexp/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,14 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_library")
-+
-+go_library(
-+ name = "lazyregexp",
-+ srcs = ["lazyre.go"],
-+ importpath = "golang.org/x/tools/internal/mod/lazyregexp",
-+ visibility = ["//:__subpackages__"],
-+)
-+
-+alias(
-+ name = "go_default_library",
-+ actual = ":lazyregexp",
-+ visibility = ["//:__subpackages__"],
-+)
-diff -urN b/internal/mod/modfile/BUILD.bazel c/internal/mod/modfile/BUILD.bazel
---- b/internal/mod/modfile/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
-+++ c/internal/mod/modfile/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,22 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_library")
-+
-+go_library(
-+ name = "modfile",
-+ srcs = [
-+ "read.go",
-+ "rule.go",
-+ ],
-+ importpath = "golang.org/x/tools/internal/mod/modfile",
-+ visibility = ["//:__subpackages__"],
-+ deps = [
-+ "//internal/mod/lazyregexp",
-+ "@org_golang_x_mod//modfile:go_default_library",
-+ "@org_golang_x_mod//module:go_default_library",
-+ ],
-+)
-+
-+alias(
-+ name = "go_default_library",
-+ actual = ":modfile",
-+ visibility = ["//:__subpackages__"],
-+)
diff -urN b/internal/packagesinternal/BUILD.bazel c/internal/packagesinternal/BUILD.bazel
---- b/internal/packagesinternal/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/packagesinternal/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/packagesinternal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12163,7 +13266,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/proxydir/BUILD.bazel c/internal/proxydir/BUILD.bazel
---- b/internal/proxydir/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/proxydir/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/proxydir/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12188,9 +13291,9 @@
+ embed = [":proxydir"],
+)
diff -urN b/internal/span/BUILD.bazel c/internal/span/BUILD.bazel
---- b/internal/span/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/span/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/span/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,34 @@
+@@ -0,0 +1,33 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
@@ -12199,13 +13302,12 @@
+ "parse.go",
+ "span.go",
+ "token.go",
-+ "token111.go",
-+ "token112.go",
+ "uri.go",
+ "utf16.go",
+ ],
+ importpath = "golang.org/x/tools/internal/span",
+ visibility = ["//:__subpackages__"],
++ deps = ["//internal/lsp/bug"],
+)
+
+alias(
@@ -12226,7 +13328,7 @@
+ deps = [":span"],
+)
diff -urN b/internal/stack/BUILD.bazel c/internal/stack/BUILD.bazel
---- b/internal/stack/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/stack/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/stack/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12254,7 +13356,7 @@
+ deps = [":stack"],
+)
diff -urN b/internal/stack/gostacks/BUILD.bazel c/internal/stack/gostacks/BUILD.bazel
---- b/internal/stack/gostacks/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/stack/gostacks/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/stack/gostacks/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
@@ -12273,7 +13375,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/stack/stacktest/BUILD.bazel c/internal/stack/stacktest/BUILD.bazel
---- b/internal/stack/stacktest/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/stack/stacktest/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/stack/stacktest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12292,17 +13394,14 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/testenv/BUILD.bazel c/internal/testenv/BUILD.bazel
---- b/internal/testenv/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/testenv/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/testenv/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,18 @@
+@@ -0,0 +1,15 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "testenv",
-+ srcs = [
-+ "testenv.go",
-+ "testenv_112.go",
-+ ],
++ srcs = ["testenv.go"],
+ importpath = "golang.org/x/tools/internal/testenv",
+ visibility = ["//:__subpackages__"],
+ deps = ["@org_golang_x_sys//execabs:go_default_library"],
@@ -12314,7 +13413,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/tool/BUILD.bazel c/internal/tool/BUILD.bazel
---- b/internal/tool/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/tool/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/tool/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12332,15 +13431,16 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/typeparams/BUILD.bazel c/internal/typeparams/BUILD.bazel
---- b/internal/typeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/typeparams/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/typeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,37 @@
+@@ -0,0 +1,39 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "typeparams",
+ srcs = [
+ "common.go",
++ "coretype.go",
+ "enabled_go117.go",
+ "enabled_go118.go",
+ "normalize.go",
@@ -12363,6 +13463,7 @@
+ name = "typeparams_test",
+ srcs = [
+ "common_test.go",
++ "coretype_test.go",
+ "normalize_test.go",
+ "typeparams_test.go",
+ ],
@@ -12372,26 +13473,8 @@
+ "//internal/testenv",
+ ],
+)
-diff -urN b/internal/typeparams/example/findtypeparams/BUILD.bazel c/internal/typeparams/example/findtypeparams/BUILD.bazel
---- b/internal/typeparams/example/findtypeparams/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
-+++ c/internal/typeparams/example/findtypeparams/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,14 @@
-+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-+
-+go_library(
-+ name = "findtypeparams_lib",
-+ srcs = ["main.go"],
-+ importpath = "golang.org/x/tools/internal/typeparams/example/findtypeparams",
-+ visibility = ["//visibility:private"],
-+)
-+
-+go_binary(
-+ name = "findtypeparams",
-+ embed = [":findtypeparams_lib"],
-+ visibility = ["//:__subpackages__"],
-+)
diff -urN b/internal/typeparams/genericfeatures/BUILD.bazel c/internal/typeparams/genericfeatures/BUILD.bazel
---- b/internal/typeparams/genericfeatures/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/typeparams/genericfeatures/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/typeparams/genericfeatures/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12413,9 +13496,9 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/typesinternal/BUILD.bazel c/internal/typesinternal/BUILD.bazel
---- b/internal/typesinternal/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/typesinternal/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/typesinternal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
-@@ -0,0 +1,18 @@
+@@ -0,0 +1,19 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
@@ -12424,6 +13507,7 @@
+ "errorcode.go",
+ "errorcode_string.go",
+ "types.go",
++ "types_118.go",
+ ],
+ importpath = "golang.org/x/tools/internal/typesinternal",
+ visibility = ["//:__subpackages__"],
@@ -12435,7 +13519,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/internal/xcontext/BUILD.bazel c/internal/xcontext/BUILD.bazel
---- b/internal/xcontext/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/internal/xcontext/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/internal/xcontext/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12453,7 +13537,7 @@
+ visibility = ["//:__subpackages__"],
+)
diff -urN b/playground/BUILD.bazel c/playground/BUILD.bazel
---- b/playground/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/playground/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/playground/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12471,7 +13555,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/playground/socket/BUILD.bazel c/playground/socket/BUILD.bazel
---- b/playground/socket/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/playground/socket/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/playground/socket/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,25 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12500,7 +13584,7 @@
+ embed = [":socket"],
+)
diff -urN b/present/BUILD.bazel c/present/BUILD.bazel
---- b/present/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/present/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/present/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,44 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12548,7 +13632,7 @@
+ embed = [":present"],
+)
diff -urN b/refactor/eg/BUILD.bazel c/refactor/eg/BUILD.bazel
---- b/refactor/eg/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/refactor/eg/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/refactor/eg/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,93 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12645,7 +13729,7 @@
+ }),
+)
diff -urN b/refactor/importgraph/BUILD.bazel c/refactor/importgraph/BUILD.bazel
---- b/refactor/importgraph/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/refactor/importgraph/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/refactor/importgraph/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,75 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12724,7 +13808,7 @@
+ }),
+)
diff -urN b/refactor/rename/BUILD.bazel c/refactor/rename/BUILD.bazel
---- b/refactor/rename/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/refactor/rename/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/refactor/rename/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,42 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
@@ -12770,7 +13854,7 @@
+ ],
+)
diff -urN b/refactor/satisfy/BUILD.bazel c/refactor/satisfy/BUILD.bazel
---- b/refactor/satisfy/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/refactor/satisfy/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/refactor/satisfy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
@@ -12792,7 +13876,7 @@
+ visibility = ["//visibility:public"],
+)
diff -urN b/txtar/BUILD.bazel c/txtar/BUILD.bazel
---- b/txtar/BUILD.bazel 1969-12-31 16:00:00.000000000 -0800
+--- b/txtar/BUILD.bazel 1970-01-01 01:00:00.000000000 +0100
+++ c/txtar/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")