Skip to content

x/tools/gopls: incorrect code generated by "Extract function" #73972

Closed
@XNxa

Description

@XNxa

gopls version

Build info
----------
golang.org/x/tools/gopls v0.18.1
    golang.org/x/tools/[email protected] h1:2xJBNzdImS5u/kV/ZzqDLSvlBSeZX+pWY9uKVP7Pask=
    github.com/BurntSushi/[email protected] h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=
    github.com/google/[email protected] h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
    golang.org/x/exp/[email protected] h1:1xaZTydL5Gsg78QharTwKfA9FY9CZ1VQj6D/AZEvHR0=
    golang.org/x/[email protected] h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
    golang.org/x/[email protected] h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
    golang.org/x/[email protected] h1:L2k9GUV2TpQKVRGMjN94qfUMgUwOFimSQ6gipyJIjKw=
    golang.org/x/[email protected] h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
    golang.org/x/[email protected] h1:Ja/5gV5a9Vvho3p2NC/T2TtxhHjrWS/2DvCKMvA0a+Y=
    golang.org/x/[email protected] h1:NPGnvPOTgnjBc9HTaUx+nj+EaUYxl5SJOWqaDYGaFYw=
    honnef.co/go/[email protected] h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=
    mvdan.cc/[email protected] h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=
    mvdan.cc/xurls/[email protected] h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8=
go: go1.24.1

go env

AR='ar'
CC='gcc'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='1'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='g++'
GCCGO='gccgo'
GO111MODULE=''
GOAMD64='v1'
GOARCH='amd64'
GOAUTH='netrc'
GOBIN=''
GOCACHE='/home/x_naxara/.cache/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/home/x_naxara/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2473410955=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMOD='/dev/null'
GOMODCACHE='/home/x_naxara/.go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/x_naxara/.go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTELEMETRY='off'
GOTELEMETRYDIR='/home/x_naxara/.config/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.24.1'
GOWORK=''
PKG_CONFIG='pkg-config'

What did you do?

I'm trying to use the "Extract function" feature on this dummy example

func main() {

        // Begin extraction here
	b := strings.ContainsFunc("a", func(_ rune) bool {
		return false
	})
	if b {
		return
	}
        // End extraction here

	fmt.Println(b)
}

What did you see happen?

The generated code is this :

func main() {

	b, shouldReturn := newFunction()
	if shouldReturn {
		return
	}

	fmt.Println(b)
}

func newFunction() (bool, bool) {
	b := strings.ContainsFunc("a", func(_ rune) bool {
		return false, true, false // This is wrong ...
	})
	if b {
		return false, true
	}
	return b, false
}

What did you expect to see?

The return false in the anonymous function should not be altered.

func main() {

	b, shouldReturn := newFunction()
	if shouldReturn {
		return
	}

	fmt.Println(b)
}

func newFunction() (bool, bool) {
	b := strings.ContainsFunc("a", func(_ rune) bool {
		return false
	})
	if b {
		return false, true
	}
	return b, false
}

Editor and settings

I'm using VSCode with these settings :

{
  "telemetry.telemetryLevel": "off",
  "files.trimTrailingWhitespace": true,
  "editor.minimap.enabled": false,
  "editor.formatOnSave": true,
}

Logs

[Trace - 16:20:12.677 PM] Sending request 'initialize - (0)'.
Params: {"processId":204779,"clientInfo":{"name":"Visual Studio Code","version":"1.98.1"},"locale":"en","rootPath":"/<path>/frontend","rootUri":"file:///<path>/frontend","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"changeAnnotationSupport":{"groupsOnLabel":true}},"configuration":true,"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]},"resolveSupport":{"properties":["location.range"]}},"codeLens":{"refreshSupport":true},"executeCommand":{"dynamicRegistration":true},"didChangeConfiguration":{"dynamicRegistration":true},"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"fileOperations":{"dynamicRegistration":true,"didCreate":true,"didRename":true,"didDelete":true,"willCreate":true,"willRename":true,"willDelete":true},"inlineValue":{"refreshSupport":true},"inlayHint":{"refreshSupport":true},"diagnostics":{"refreshSupport":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"insertTextModeSupport":{"valueSet":[1,2]},"labelDetailsSupport":true},"insertTextMode":2,"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"completionList":{"itemDefaults":["commitCharacters","editRange","insertTextFormat","insertTextMode"]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"honorsChangeAnnotations":false},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1,"honorsChangeAnnotations":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true,"foldingRangeKind":{"valueSet":["comment","imports","region"]},"foldingRange":{"collapsedText":false}},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}},"multilineTokenSupport":false,"overlappingTokenSupport":false,"serverCancelSupport":true,"augmentsSyntaxTokens":true},"linkedEditingRange":{"dynamicRegistration":true},"typeHierarchy":{"dynamicRegistration":true},"inlineValue":{"dynamicRegistration":true},"inlayHint":{"dynamicRegistration":true,"resolveSupport":{"properties":["tooltip","textEdits","label.tooltip","label.location","label.command"]}},"diagnostic":{"dynamicRegistration":true,"relatedDocumentSupport":false}},"window":{"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"showDocument":{"support":true},"workDoneProgress":true},"general":{"staleRequestSupport":{"cancel":true,"retryOnContentModified":["textDocument/semanticTokens/full","textDocument/semanticTokens/range","textDocument/semanticTokens/full/delta"]},"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"markdown":{"parser":"marked","version":"1.1.0"},"positionEncodings":["utf-16"]},"notebookDocument":{"synchronization":{"dynamicRegistration":true,"executionSummarySupport":true}},"experimental":{"progressMessageStyles":["log"]}},"initializationOptions":{"ui.inlayhint.hints":{"assignVariableTypes":false,"compositeLiteralFields":false,"compositeLiteralTypes":false,"constantValues":false,"functionTypeParameters":false,"parameterNames":false,"rangeVariableTypes":false},"ui.vulncheck":"Off","linkifyShowMessage":true,"allExperiments":true},"trace":"off","workspaceFolders":[{"uri":"file:///<path>/frontend","name":"frontend"}]}


[Trace - 16:20:12.679 PM] Received response 'initialize - (0)' in 2ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["gopls.doc.features","quickfix","refactor.extract.constant","refactor.extract.constant-all","refactor.extract.function","refactor.extract.method","refactor.extract.toNewFile","refactor.extract.variable","refactor.extract.variable-all","refactor.inline.call","refactor.rewrite.changeQuote","refactor.rewrite.fillStruct","refactor.rewrite.fillSwitch","refactor.rewrite.invertIf","refactor.rewrite.joinLines","refactor.rewrite.removeUnusedParam","refactor.rewrite.splitLines","source.assembly","source.doc","source.fixAll","source.freesymbols","source.organizeImports"],"resolveProvider":true},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"selectionRangeProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.add_telemetry_counters","gopls.add_test","gopls.apply_fix","gopls.assembly","gopls.change_signature","gopls.check_upgrades","gopls.client_open_url","gopls.diagnose_files","gopls.doc","gopls.edit_go_directive","gopls.extract_to_new_file","gopls.fetch_vulncheck_result","gopls.free_symbols","gopls.gc_details","gopls.generate","gopls.go_get_package","gopls.list_imports","gopls.list_known_packages","gopls.maybe_prompt_for_telemetry","gopls.mem_stats","gopls.modules","gopls.package_symbols","gopls.packages","gopls.regenerate_cgo","gopls.remove_dependency","gopls.reset_go_mod_diagnostics","gopls.run_go_work_command","gopls.run_govulncheck","gopls.run_tests","gopls.scan_imports","gopls.start_debugging","gopls.start_profile","gopls.stop_profile","gopls.tidy","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.views","gopls.vulncheck","gopls.workspace_stats"]},"callHierarchyProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["namespace","type","typeParameter","parameter","variable","function","method","macro","keyword","comment","string","number","operator","label"],"tokenModifiers":["definition","readonly","defaultLibrary","array","bool","chan","format","interface","map","number","pointer","signature","slice","string","struct"]},"range":true,"full":true},"inlayHintProvider":{},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"GoVersion\":\"go1.24.1\",\"Path\":\"golang.org/x/tools/gopls\",\"Main\":{\"Path\":\"golang.org/x/tools/gopls\",\"Version\":\"v0.18.1\",\"Sum\":\"h1:2xJBNzdImS5u/kV/ZzqDLSvlBSeZX+pWY9uKVP7Pask=\",\"Replace\":null},\"Deps\":[{\"Path\":\"github.com/BurntSushi/toml\",\"Version\":\"v1.4.1-0.20240526193622-a339e1f7089c\",\"Sum\":\"h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=\",\"Replace\":null},{\"Path\":\"github.com/google/go-cmp\",\"Version\":\"v0.6.0\",\"Sum\":\"h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\",\"Replace\":null},{\"Path\":\"golang.org/x/exp/typeparams\",\"Version\":\"v0.0.0-20241210194714-1829a127f884\",\"Sum\":\"h1:1xaZTydL5Gsg78QharTwKfA9FY9CZ1VQj6D/AZEvHR0=\",\"Replace\":null},{\"Path\":\"golang.org/x/mod\",\"Version\":\"v0.23.0\",\"Sum\":\"h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=\",\"Replace\":null},{\"Path\":\"golang.org/x/sync\",\"Version\":\"v0.11.0\",\"Sum\":\"h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=\",\"Replace\":null},{\"Path\":\"golang.org/x/telemetry\",\"Version\":\"v0.0.0-20241220003058-cc96b6e0d3d9\",\"Sum\":\"h1:L2k9GUV2TpQKVRGMjN94qfUMgUwOFimSQ6gipyJIjKw=\",\"Replace\":null},{\"Path\":\"golang.org/x/text\",\"Version\":\"v0.22.0\",\"Sum\":\"h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=\",\"Replace\":null},{\"Path\":\"golang.org/x/tools\",\"Version\":\"v0.30.1-0.20250221230316-5055f70f240c\",\"Sum\":\"h1:Ja/5gV5a9Vvho3p2NC/T2TtxhHjrWS/2DvCKMvA0a+Y=\",\"Replace\":null},{\"Path\":\"golang.org/x/vuln\",\"Version\":\"v1.1.3\",\"Sum\":\"h1:NPGnvPOTgnjBc9HTaUx+nj+EaUYxl5SJOWqaDYGaFYw=\",\"Replace\":null},{\"Path\":\"honnef.co/go/tools\",\"Version\":\"v0.5.1\",\"Sum\":\"h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=\",\"Replace\":null},{\"Path\":\"mvdan.cc/gofumpt\",\"Version\":\"v0.7.0\",\"Sum\":\"h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=\",\"Replace\":null},{\"Path\":\"mvdan.cc/xurls/v2\",\"Version\":\"v2.5.0\",\"Sum\":\"h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8=\",\"Replace\":null}],\"Settings\":[{\"Key\":\"-buildmode\",\"Value\":\"exe\"},{\"Key\":\"-compiler\",\"Value\":\"gc\"},{\"Key\":\"DefaultGODEBUG\",\"Value\":\"gotestjsonbuildtext=1,multipathtcp=0,randseednop=0,rsa1024min=0,tlsmlkem=0,x509rsacrt=0,x509usepolicies=0\"},{\"Key\":\"CGO_ENABLED\",\"Value\":\"1\"},{\"Key\":\"CGO_CFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CPPFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CXXFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_LDFLAGS\",\"Value\":\"\"},{\"Key\":\"GOARCH\",\"Value\":\"amd64\"},{\"Key\":\"GOOS\",\"Value\":\"linux\"},{\"Key\":\"GOAMD64\",\"Value\":\"v1\"}],\"Version\":\"v0.18.1\"}"}}


[Trace - 16:20:12.681 PM] Sending notification 'initialized'.
Params: {}


[Trace - 16:20:12.682 PM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"1311166420828961857"}


[Trace - 16:20:12.757 PM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///<path>/a.go","languageId":"go","version":1,"text":"package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\nfunc main() {\n\n\tb := strings.ContainsFunc(\"a\", func(_ rune) bool {\n\t\treturn false\n\t})\n\tif b {\n\t\treturn\n\t}\n\n\tfmt.Println(b)\n}\n"}}


[Trace - 16:20:12.758 PM] Sending request 'workspace/executeCommand - (1)'.
Params: {"command":"gopls.package_symbols","arguments":[{"URI":"file:///<path>/a.go"}]}


[Trace - 16:20:12.939 PM] Sending response 'window/workDoneProgress/create - (1)' in 257ms.
Result:


[Trace - 16:20:12.940 PM] Sending request 'textDocument/documentSymbol - (2)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:12.940 PM] Received notification '$/progress'.
Params: {"token":"1311166420828961857","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}


[Trace - 16:20:12.940 PM] Sending request 'textDocument/documentLink - (3)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:12.940 PM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///<path>/frontend","section":"gopls"}]}


[Trace - 16:20:12.940 PM] Sending request 'textDocument/inlayHint - (4)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":0,"character":0},"end":{"line":18,"character":0}}}


[Trace - 16:20:12.959 PM] Sending response 'workspace/configuration - (2)' in 19ms.
Result: [{"ui.inlayhint.hints":{"assignVariableTypes":false,"compositeLiteralFields":false,"compositeLiteralTypes":false,"constantValues":false,"functionTypeParameters":false,"parameterNames":false,"rangeVariableTypes":false},"ui.vulncheck":"Off","linkifyShowMessage":true,"allExperiments":true}]


[Trace - 16:20:13.066 PM] Sending request 'textDocument/foldingRange - (5)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:13.105 PM] Sending notification '$/cancelRequest'.
Params: {"id":3}


[Trace - 16:20:13.107 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2025/06/04 16:20:13 Created View (#1)\n\tdirectory=/<path>/frontend\n\tview_type=\"AdHoc\"\n\troot_dir=\"file:///<path>/frontend\"\n\tgo_version=\"go version go1.24.1 linux/amd64\"\n\tbuild_flags=[]\n\tenv={GOOS:linux GOARCH:amd64 GOCACHE:/home/x_naxara/.cache/go-build GOMODCACHE:/home/x_naxara/.go/pkg/mod GOPATH:/home/x_naxara/.go GOPRIVATE: GOFLAGS: GO111MODULE: GOTOOLCHAIN:auto GOROOT:/usr/local/go GoVersion:24 GoVersionOutput:go version go1.24.1 linux/amd64\n ExplicitGOWORK: EffectiveGOPACKAGESDRIVER:}\n\tenv_overlay=[]\n"}


[Trace - 16:20:13.109 PM] Sending request 'textDocument/documentLink - (6)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:13.110 PM] Sending request 'textDocument/documentSymbol - (7)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:13.212 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2025/06/04 16:20:13 go/packages.Load #1\n\tview_id=\"1\"\n\tsnapshot=0\n\tdirectory=/<path>/frontend\n\tquery=[./ builtin]\n\tpackages=2\n\tduration=104.205446ms\n"}


[Trace - 16:20:13.212 PM] Received notification '$/progress'.
Params: {"token":"1311166420828961857","value":{"kind":"end","message":"Finished loading packages."}}


[Trace - 16:20:13.212 PM] Received request 'client/registerCapability - (3)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{mod,work}","kind":7},{"globPattern":"**/*.{go,mod,sum,work}","kind":7}]}}]}


[Trace - 16:20:13.229 PM] Sending response 'client/registerCapability - (3)' in 17ms.
Result:


[Trace - 16:20:13.230 PM] Received request 'client/registerCapability - (4)'.
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"}]}


[Trace - 16:20:13.233 PM] Sending response 'client/registerCapability - (4)' in 3ms.
Result:


[Trace - 16:20:13.288 PM] Sending request 'textDocument/semanticTokens/full - (8)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:13.288 PM] Sending request 'textDocument/semanticTokens/range - (9)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":0,"character":0},"end":{"line":18,"character":0}}}


[Trace - 16:20:13.472 PM] Sending request 'textDocument/codeLens - (10)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:13.654 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2025/06/04 16:20:13 go/packages.Load #2\n\tview_id=\"1\"\n\tsnapshot=1\n\tdirectory=/<path>/frontend\n\tquery=[file=/<path>/a.go]\n\tpackages=1\n\tduration=419.200064ms\n"}


[Trace - 16:20:13.661 PM] Received response 'workspace/executeCommand - (1)' in 903ms.
Result: {"PackageName":"main","Files":["file:///<path>/a.go"],"Symbols":[{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}}]}


[Trace - 16:20:13.661 PM] Received response 'textDocument/documentSymbol - (2)' in 721ms.
Result: [{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}}]


[Error - Received] 16:20:13.662 PM #3 JSON RPC cancelled


[Trace - 16:20:13.668 PM] Received response 'textDocument/inlayHint - (4)' in 728ms.
Result: null


[Trace - 16:20:13.669 PM] Received response 'textDocument/foldingRange - (5)' in 602ms.
Result: [{"startLine":2,"startCharacter":8,"endLine":4,"endCharacter":10,"kind":"imports"},{"startLine":7,"startCharacter":13,"endLine":16,"endCharacter":15},{"startLine":9,"startCharacter":51,"endLine":10,"endCharacter":14},{"startLine":12,"startCharacter":7,"endLine":13,"endCharacter":8}]


[Trace - 16:20:13.676 PM] Received response 'textDocument/documentLink - (6)' in 566ms.
Result: [{"range":{"start":{"line":3,"character":2},"end":{"line":3,"character":5}},"target":"https://pkg.go.dev/fmt"},{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":9}},"target":"https://pkg.go.dev/strings"}]


[Trace - 16:20:13.677 PM] Received response 'textDocument/documentSymbol - (7)' in 567ms.
Result: [{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":17,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}}]


[Trace - 16:20:13.677 PM] Received response 'textDocument/semanticTokens/full - (8)' in 388ms.
Result: {"data":[]}


[Trace - 16:20:13.677 PM] Received response 'textDocument/semanticTokens/range - (9)' in 388ms.
Result: {"data":[]}


[Trace - 16:20:13.678 PM] Received response 'textDocument/codeLens - (10)' in 205ms.
Result: null


[Trace - 16:20:13.926 PM] Sending notification '$/setTrace'.
Params: {"value":"off"}


[Trace - 16:20:13.926 PM] Sending notification 'workspace/didChangeConfiguration'.
Params: {"settings":null}


[Trace - 16:20:13.927 PM] Received request 'workspace/configuration - (5)'.
Params: {"items":[{"section":"gopls"}]}


[Trace - 16:20:13.933 PM] Sending response 'workspace/configuration - (5)' in 6ms.
Result: [{"ui.inlayhint.hints":{"assignVariableTypes":false,"compositeLiteralFields":false,"compositeLiteralTypes":false,"constantValues":false,"functionTypeParameters":false,"parameterNames":false,"rangeVariableTypes":false},"ui.vulncheck":"Off","linkifyShowMessage":true,"allExperiments":true}]


[Trace - 16:20:13.933 PM] Received request 'workspace/configuration - (6)'.
Params: {"items":[{"scopeUri":"file:///<path>/frontend","section":"gopls"}]}


[Trace - 16:20:13.935 PM] Sending response 'workspace/configuration - (6)' in 1ms.
Result: [{"ui.inlayhint.hints":{"assignVariableTypes":false,"compositeLiteralFields":false,"compositeLiteralTypes":false,"constantValues":false,"functionTypeParameters":false,"parameterNames":false,"rangeVariableTypes":false},"ui.vulncheck":"Off","linkifyShowMessage":true,"allExperiments":true}]


[Trace - 16:20:13.975 PM] Sending request 'textDocument/codeAction - (11)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":10,"character":0},"end":{"line":14,"character":2}},"context":{"diagnostics":[],"triggerKind":2}}


[Trace - 16:20:13.976 PM] Received response 'textDocument/codeAction - (11)' in 0ms.
Result: null


[Trace - 16:20:14.236 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///<path>/a.go","version":1,"diagnostics":[]}


[Trace - 16:20:14.236 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///<path>/a.go","version":1,"diagnostics":[{"range":{"start":{"line":0,"character":8},"end":{"line":0,"character":12}},"severity":2,"source":"go list","message":"No packages found for open file /<path>/a.go."}]}


[Trace - 16:20:14.503 PM] Sending request 'textDocument/codeAction - (12)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}},"context":{"diagnostics":[],"triggerKind":2}}


[Trace - 16:20:14.503 PM] Received response 'textDocument/codeAction - (12)' in 0ms.
Result: null


[Trace - 16:20:15.322 PM] Sending request 'textDocument/codeAction - (13)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}},"context":{"diagnostics":[],"triggerKind":1}}


[Trace - 16:20:15.323 PM] Received response 'textDocument/codeAction - (13)' in 1ms.
Result: [{"title":"Browse gopls feature documentation","kind":"gopls.doc.features","command":{"title":"Browse gopls feature documentation","command":"gopls.client_open_url","arguments":["https://github.com/golang/tools/blob/master/gopls/doc/features/README.md"]}},{"title":"Extract function","kind":"refactor.extract.function","data":{"title":"Extract function","command":"gopls.apply_fix","arguments":[{"Fix":"extract_function","Location":{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}},"ResolveEdits":true}]}},{"title":"Add test for main","kind":"source.addTest","command":{"title":"Add test for main","command":"gopls.add_test","arguments":[{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}}]}},{"title":"Browse amd64 assembly for main","kind":"source.assembly","command":{"title":"Browse amd64 assembly for main","command":"gopls.assembly","arguments":["1","command-line-arguments/<path>/a.go","main.main"]}},{"title":"Browse documentation for package main","kind":"source.doc","command":{"title":"Browse documentation for package main","command":"gopls.doc","arguments":[{"Location":{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}},"ShowDocument":true}]}},{"title":"Browse free symbols","kind":"source.freesymbols","command":{"title":"Browse free symbols","command":"gopls.free_symbols","arguments":["1",{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}}]}},{"title":"Show compiler optimization details for \"arcstack\"","kind":"source.toggleCompilerOptDetails","command":{"title":"Show compiler optimization details for \"arcstack\"","command":"gopls.gc_details","arguments":["file:///<path>/a.go"]}}]


[Trace - 16:20:15.927 PM] Sending request 'codeAction/resolve - (14)'.
Params: {"title":"Extract function","data":{"title":"Extract function","command":"gopls.apply_fix","arguments":[{"Fix":"extract_function","Location":{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}},"ResolveEdits":true}]},"kind":"refactor.extract.function"}


[Trace - 16:20:15.928 PM] Received response 'codeAction/resolve - (14)' in 1ms.
Result: {"title":"Extract function","kind":"refactor.extract.function","edit":{"documentChanges":[{"textDocument":{"version":1,"uri":"file:///<path>/a.go"},"edits":[{"range":{"start":{"line":7,"character":0},"end":{"line":17,"character":1}},"newText":"func main() {\n\n\tb, shouldReturn := newFunction()\n\tif shouldReturn {\n\t\treturn\n\t}\n\n\tfmt.Println(b)\n}\n\nfunc newFunction() (bool, bool) {\n\tb := strings.ContainsFunc(\"a\", func(_ rune) bool {\n\t\treturn false, true, false\n\t})\n\tif b {\n\t\treturn false, true\n\t}\n\treturn b, false\n}"}]}]},"data":{"title":"Extract function","command":"gopls.apply_fix","arguments":[{"Fix":"extract_function","Location":{"uri":"file:///<path>/a.go","range":{"start":{"line":9,"character":0},"end":{"line":14,"character":2}}},"ResolveEdits":true}]}}


[Trace - 16:20:15.975 PM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///<path>/a.go","version":2},"contentChanges":[{"range":{"start":{"line":16,"character":14},"end":{"line":16,"character":15}},"rangeLength":1,"text":", false"},{"range":{"start":{"line":16,"character":12},"end":{"line":16,"character":13}},"rangeLength":1,"text":" "},{"range":{"start":{"line":16,"character":7},"end":{"line":16,"character":11}},"rangeLength":4,"text":""},{"range":{"start":{"line":16,"character":4},"end":{"line":16,"character":6}},"rangeLength":2,"text":"u"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":3}},"rangeLength":2,"text":"re"},{"range":{"start":{"line":15,"character":0},"end":{"line":16,"character":0}},"rangeLength":1,"text":""},{"range":{"start":{"line":13,"character":8},"end":{"line":13,"character":8}},"rangeLength":0,"text":" false, true"},{"range":{"start":{"line":10,"character":14},"end":{"line":10,"character":14}},"rangeLength":0,"text":", false"},{"range":{"start":{"line":10,"character":13},"end":{"line":10,"character":13}},"rangeLength":0,"text":"e, tru"},{"range":{"start":{"line":9,"character":3},"end":{"line":9,"character":3}},"rangeLength":0,"text":"bool) {\n\tb "},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":2}},"rangeLength":0,"text":", shouldReturn := newFunction()\n\tif shouldReturn {\n\t\treturn\n\t}\n\n\tfmt.Println(b)\n}\n\nfunc newFunction() (bool,"}]}


[Trace - 16:20:15.975 PM] Sending request 'textDocument/codeAction - (15)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":23,"character":2}},"context":{"diagnostics":[],"triggerKind":2}}


[Trace - 16:20:15.980 PM] Received response 'textDocument/codeAction - (15)' in 4ms.
Result: null


[Trace - 16:20:16.218 PM] Sending request 'textDocument/codeLens - (16)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.219 PM] Sending request 'textDocument/codeAction - (17)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":23,"character":2}},"context":{"diagnostics":[],"triggerKind":2}}


[Trace - 16:20:16.220 PM] Received response 'textDocument/codeLens - (16)' in 1ms.
Result: null


[Trace - 16:20:16.220 PM] Received response 'textDocument/codeAction - (17)' in 1ms.
Result: null


[Trace - 16:20:16.323 PM] Sending request 'textDocument/documentSymbol - (18)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.323 PM] Received response 'textDocument/documentSymbol - (18)' in 0ms.
Result: [{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}},{"name":"newFunction","detail":"func() (bool, bool)","kind":12,"range":{"start":{"line":17,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":17,"character":5},"end":{"line":17,"character":16}}}]


[Trace - 16:20:16.389 PM] Sending request 'textDocument/semanticTokens/full - (19)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.390 PM] Received response 'textDocument/semanticTokens/full - (19)' in 0ms.
Result: {"data":[]}


[Trace - 16:20:16.605 PM] Sending request 'textDocument/inlayHint - (20)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":0,"character":0},"end":{"line":26,"character":0}}}


[Trace - 16:20:16.606 PM] Received response 'textDocument/inlayHint - (20)' in 0ms.
Result: null


[Trace - 16:20:16.663 PM] Sending request 'textDocument/foldingRange - (21)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.663 PM] Received response 'textDocument/foldingRange - (21)' in 0ms.
Result: [{"startLine":2,"startCharacter":8,"endLine":4,"endCharacter":10,"kind":"imports"},{"startLine":7,"startCharacter":13,"endLine":14,"endCharacter":15},{"startLine":10,"startCharacter":18,"endLine":11,"endCharacter":8},{"startLine":17,"startCharacter":33,"endLine":24,"endCharacter":16},{"startLine":18,"startCharacter":51,"endLine":19,"endCharacter":27},{"startLine":21,"startCharacter":7,"endLine":22,"endCharacter":20}]


[Trace - 16:20:16.762 PM] Sending request 'textDocument/codeAction - (22)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":0,"character":0},"end":{"line":26,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":0,"character":8},"end":{"line":0,"character":12}},"message":"No packages found for open file /<path>/a.go.","severity":2,"source":"go list"}],"only":["source.organizeImports"],"triggerKind":2}}


[Trace - 16:20:16.763 PM] Received response 'textDocument/codeAction - (22)' in 1ms.
Result: null


[Trace - 16:20:16.768 PM] Sending request 'textDocument/inlayHint - (23)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":0,"character":0},"end":{"line":26,"character":0}}}


[Trace - 16:20:16.770 PM] Received response 'textDocument/inlayHint - (23)' in 1ms.
Result: null


[Trace - 16:20:16.778 PM] Sending request 'textDocument/formatting - (24)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"options":{"tabSize":4,"insertSpaces":false,"trimTrailingWhitespace":true}}


[Trace - 16:20:16.779 PM] Received response 'textDocument/formatting - (24)' in 1ms.
Result: []


[Trace - 16:20:16.857 PM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.858 PM] Sending request 'workspace/executeCommand - (25)'.
Params: {"command":"gopls.package_symbols","arguments":[{"URI":"file:///<path>/a.go"}]}


[Trace - 16:20:16.859 PM] Received response 'workspace/executeCommand - (25)' in 1ms.
Result: {"PackageName":"main","Files":["file:///<path>/a.go"],"Symbols":[{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}},{"name":"newFunction","detail":"func() (bool, bool)","kind":12,"range":{"start":{"line":17,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":17,"character":5},"end":{"line":17,"character":16}}}]}


[Trace - 16:20:16.876 PM] Sending request 'textDocument/documentSymbol - (26)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.878 PM] Received response 'textDocument/documentSymbol - (26)' in 1ms.
Result: [{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}},{"name":"newFunction","detail":"func() (bool, bool)","kind":12,"range":{"start":{"line":17,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":17,"character":5},"end":{"line":17,"character":16}}}]


[Trace - 16:20:16.968 PM] Sending request 'textDocument/documentLink - (27)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:16.971 PM] Received response 'textDocument/documentLink - (27)' in 2ms.
Result: [{"range":{"start":{"line":3,"character":2},"end":{"line":3,"character":5}},"target":"https://pkg.go.dev/fmt"},{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":9}},"target":"https://pkg.go.dev/strings"}]


[Trace - 16:20:17.857 PM] Sending request 'textDocument/definition - (28)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"position":{"line":11,"character":3}}


[Trace - 16:20:17.857 PM] Received response 'textDocument/definition - (28)' in 0ms.
Result: null


[Trace - 16:20:17.859 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///<path>/a.go","version":2,"diagnostics":[{"range":{"start":{"line":0,"character":8},"end":{"line":0,"character":12}},"severity":2,"source":"go list","message":"No packages found for open file /<path>/a.go."}]}


[Trace - 16:20:17.860 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {"uri":"file:///<path>/a.go","version":2,"diagnostics":[{"range":{"start":{"line":0,"character":8},"end":{"line":0,"character":12}},"severity":2,"source":"go list","message":"No packages found for open file /<path>/a.go."},{"range":{"start":{"line":19,"character":16},"end":{"line":19,"character":20}},"severity":1,"code":"WrongResultCount","codeDescription":{"href":"https://pkg.go.dev/golang.org/x/tools/internal/typesinternal#WrongResultCount"},"source":"compiler","message":"too many return values\n\thave (bool, bool, bool)\n\twant (bool)"}]}


[Trace - 16:20:18.195 PM] Sending request 'textDocument/codeAction - (29)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":23,"character":2}},"context":{"diagnostics":[{"range":{"start":{"line":19,"character":16},"end":{"line":19,"character":20}},"message":"too many return values\n\thave (bool, bool, bool)\n\twant (bool)","code":"WrongResultCount","codeDescription":{"href":"https://pkg.go.dev/golang.org/x/tools/internal/typesinternal#WrongResultCount"},"severity":1,"source":"compiler"}],"triggerKind":2}}


[Trace - 16:20:18.196 PM] Received response 'textDocument/codeAction - (29)' in 0ms.
Result: null


[Trace - 16:20:18.247 PM] Sending request 'textDocument/codeAction - (30)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":23,"character":2}},"context":{"diagnostics":[{"range":{"start":{"line":19,"character":16},"end":{"line":19,"character":20}},"message":"too many return values\n\thave (bool, bool, bool)\n\twant (bool)","code":"WrongResultCount","codeDescription":{"href":"https://pkg.go.dev/golang.org/x/tools/internal/typesinternal#WrongResultCount"},"severity":1,"source":"compiler"}],"triggerKind":2}}


[Trace - 16:20:18.248 PM] Received response 'textDocument/codeAction - (30)' in 0ms.
Result: null


[Trace - 16:20:18.319 PM] Sending request 'textDocument/codeAction - (31)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"},"range":{"start":{"line":9,"character":0},"end":{"line":23,"character":2}},"context":{"diagnostics":[{"range":{"start":{"line":19,"character":16},"end":{"line":19,"character":20}},"message":"too many return values\n\thave (bool, bool, bool)\n\twant (bool)","code":"WrongResultCount","codeDescription":{"href":"https://pkg.go.dev/golang.org/x/tools/internal/typesinternal#WrongResultCount"},"severity":1,"source":"compiler"}],"triggerKind":2}}


[Trace - 16:20:18.321 PM] Received response 'textDocument/codeAction - (31)' in 1ms.
Result: null


[Trace - 16:20:18.322 PM] Sending request 'textDocument/documentLink - (32)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:18.323 PM] Received response 'textDocument/documentLink - (32)' in 1ms.
Result: [{"range":{"start":{"line":3,"character":2},"end":{"line":3,"character":5}},"target":"https://pkg.go.dev/fmt"},{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":9}},"target":"https://pkg.go.dev/strings"}]


[Trace - 16:20:18.657 PM] Sending request 'textDocument/documentSymbol - (33)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:18.658 PM] Received response 'textDocument/documentSymbol - (33)' in 0ms.
Result: [{"name":"main","detail":"func()","kind":12,"range":{"start":{"line":7,"character":0},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":7,"character":5},"end":{"line":7,"character":9}}},{"name":"newFunction","detail":"func() (bool, bool)","kind":12,"range":{"start":{"line":17,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":17,"character":5},"end":{"line":17,"character":16}}}]


[Trace - 16:20:18.708 PM] Sending request 'textDocument/foldingRange - (34)'.
Params: {"textDocument":{"uri":"file:///<path>/a.go"}}


[Trace - 16:20:18.710 PM] Received response 'textDocument/foldingRange - (34)' in 1ms.
Result: [{"startLine":2,"startCharacter":8,"endLine":4,"endCharacter":10,"kind":"imports"},{"startLine":7,"startCharacter":13,"endLine":14,"endCharacter":15},{"startLine":10,"startCharacter":18,"endLine":11,"endCharacter":8},{"startLine":17,"startCharacter":33,"endLine":24,"endCharacter":16},{"startLine":18,"startCharacter":51,"endLine":19,"endCharacter":27},{"startLine":21,"startCharacter":7,"endLine":22,"endCharacter":20}]

Metadata

Metadata

Assignees

No one assigned

    Labels

    ToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions