Add support for `go_binary` to gopackagesdriver. (#3271)
As discussed in #3270, The current implementation of `bazel_json_builder`
does not handle `go_binary` build rules. This means that when
`gopackagesdriver` attempts to be used on a file that is apart of a
`go_binary`, no build target is produced as the output of `bazel query`.
This prevents downstream utilities (`gopls`) from being able to provide
functionality such as autocompletion support.
This PR simply adds `go_binary` as a supported rule type, fixing #3270.
diff --git a/go/tools/gopackagesdriver/bazel_json_builder.go b/go/tools/gopackagesdriver/bazel_json_builder.go
index 14f0018..6a8d46c 100644
--- a/go/tools/gopackagesdriver/bazel_json_builder.go
+++ b/go/tools/gopackagesdriver/bazel_json_builder.go
@@ -35,7 +35,7 @@
fp, _ := filepath.Rel(b.bazel.WorkspaceRoot(), filename)
filename = fp
}
- return fmt.Sprintf(`kind("go_library|go_test", same_pkg_direct_rdeps("%s"))`, filename)
+ return fmt.Sprintf(`kind("go_library|go_test|go_binary", same_pkg_direct_rdeps("%s"))`, filename)
}
func (b *BazelJSONBuilder) packageQuery(importPath string) string {