The Wire · Showcase
GOPLS SPRING CLEANING REMOVES DEAD CODE, FIXES GENERIC METHOD BUGS
By RepoJournal · Filed · About Go
The tools team is shipping a lean gopls release that kills unused commands and fixes a critical bug in SSA generic method handling that was breaking analysis across the entire ecosystem.
gopls/internal/cmd is dumping the 'gopls bug' subcommand [1], a feature nobody has ever actually used. Meanwhile, the real work is happening in go/ssa [2], where a fix for RuntimeTypes now correctly rejects generic methods that shouldn't appear in MethodSet, closing two long-standing bugs that were corrupting analysis pipelines. The filewatcher is getting lighter too [3], with an orphaned interval field finally removed after it became non-configurable months ago. Over in golang/net, HTTP/3 is gaining gzip support to match HTTP/1 and HTTP/2 parity [4], while SVCB/HTTPS record validation is being fixed to properly enforce parameter ordering [5]. The crypto/x509 package is getting smarter about IPv6 zone-scoped addresses [6], using netip.ParseAddr instead of the older net.ParseIP that was silently failing on zone IDs. VS Code's Go extension is pinning format-on-save mode to 'file' [7] because gopls doesn't support range-based formatting, preventing silent incompatibility headaches for developers using other editors' defaults.
Action items
- → Pull tools repo and update gopls in your workspace - the generic method fix [ref:3] fixes analysis bugs in real code golang/tools [immediate]
- → If you use zone-scoped IPv6 addresses in certificate validation, test crypto/x509 changes [ref:9] in staging golang/go [plan]
- → Monitor HTTP/3 implementations for gzip behavior changes [ref:11] golang/net [monitor]
References
- [1] gopls/internal/cmd: remove 'gopls bug' subcommand golang/tools
- [2] go/ssa: reject generic methods from RuntimeTypes golang/tools
- [3] gopls/internal/filewatcher: remove unused interval field golang/tools
- [4] internal/http3: add gzip support to transport golang/net
- [5] dns/dnsmessage: correctly validate SVCB record parameter order golang/net
- [6] crypto/x509: use netip.ParseAddr in VerifyHostname for IPv6 zones golang/go
- [7] extension/package.json: set format on save mode to file golang/vscode-go
FAQ
- What changed in Go on June 8, 2026?
- The tools team is shipping a lean gopls release that kills unused commands and fixes a critical bug in SSA generic method handling that was breaking analysis across the entire ecosystem.
- What should Go teams do about it?
- Pull tools repo and update gopls in your workspace - the generic method fix [ref:3] fixes analysis bugs in real code • If you use zone-scoped IPv6 addresses in certificate validation, test crypto/x509 changes [ref:9] in staging • Monitor HTTP/3 implementations for gzip behavior changes [ref:11]
- Which Go repositories shipped on June 8, 2026?
- golang/tools, golang/net, golang/go, golang/vscode-go