-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Closed
Copy link
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.help wanted
Milestone
Description
What version of Go are you using (go version
)?
$ go version go version devel +869e2957b9 Mon Nov 16 22:24:14 2020 +0000 linux/amd64 $ go list -m golang.org/x/tools golang.org/x/tools v0.0.0-20201111213328-5794f8bd7a57 $ go list -m golang.org/x/tools/gopls golang.org/x/tools/gopls v0.0.0-20201111213328-5794f8bd7a57
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/myitcv/.cache/go-build" GOENV="/home/myitcv/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/myitcv/gostuff/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/myitcv/gostuff" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/myitcv/gos" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64" GOVCS="" GOVERSION="devel +869e2957b9 Mon Nov 16 22:24:14 2020 +0000" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/myitcv/.vim/plugged/govim/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build353352024=/tmp/go-build -gno-record-gcc-switches"
What did you do?
Consider:
package main
import (
"fmt"
)
type S struct {
vals []string
}
func (s S) Vals() []string {
return s.vals
}
func X(vs ...string) {
fmt.Println(vs)
}
func main() {
var s S
X(s._)
}
with the cursor at the _
position. Attempt completion and you get the following candidates:
&protocol.CompletionList{
IsIncomplete: true,
Items: {
{
Label: "vals",
Kind: 5,
Tags: nil,
Detail: "[]string",
Documentation: "",
Deprecated: false,
Preselect: true,
SortText: "00000",
FilterText: "vals...",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:20, Character:5},
End: protocol.Position{Line:20, Character:5},
},
NewText: "vals...",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "Vals",
Kind: 2,
Tags: nil,
Detail: "func() []string",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00001",
FilterText: "Vals...",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:20, Character:5},
End: protocol.Position{Line:20, Character:5},
},
NewText: "Vals...",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
},
}
Note that the new text for the Vals
candidate is wrong: it applies the ...
without the parentheses required to first call the method.
What did you expect to see?
The candidate Vals()...
What did you see instead?
As above.
FYI @leitzler
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.help wanted