Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/tools/gopls: rename fails with "no object found" when the old identifier is missing a declaration #41851

bcmills opened this issue Oct 7, 2020 · 0 comments


Copy link

@bcmills bcmills commented Oct 7, 2020

What version are you using?

~$ go version -m $(which gopls)
/usr/local/google/home/bcmills/bin/gopls: devel +186f0220d0 Mon Oct 5 11:12:24 2020 -0400
        mod        v0.5.1  h1:AF3Uh7HF08SZpKFfgJO6zfF3bbxyDXWqdkK4kMXiQ1o=
        dep      v0.3.1  h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
        dep        v0.5.1  h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
        dep        v1.1.0  h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
        dep        v0.3.0  h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
        dep       v0.0.0-20200625203802-6e8e738ad208      h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=
        dep      v0.0.0-20200930165741-f1523d29dbb9      h1:1R38tQp22dcHpTKJPjgVa16FhlDy/kHEaCM/ndi/FIc=
        dep    v0.0.0-20200804184101-5ec99f83aff1      h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
        dep      v0.0.1-2020.1.5 h1:nI5egYTGJakVyOryqLs1cQO5dO0ksin5XXs2pspk75k=
        dep        v0.0.0-20200802201014-ab5a8192947d      h1:t8TAw9WgTLghti7RYkpPmqk4JtQ3+wcP5GgZqgWeWLQ=
        dep       v2.2.0  h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=

Does this issue reproduce with the latest release?


What did you do?


  1. Using emacs with gopls via eglot, start with a program with an existing undeclared identifier used in several places.
    (For this example, errNo.)
  2. Add a declaration for a new identifier in local scope, but choose a better name for it (errno).
  3. Remember that you also need to rename the existing uses of that identifier.
  4. Place the point at an occurrence of the old identifier and execute M-x eglot-rename.
  5. Type in the name of the identifier from step (2).

What did you expect to see?

References to the (now-undeclared) variable at the point should be renamed so that they now refer to the identifier in step (2).

What did you see instead?

gopls returns a no object found error.

As reported by M-x eglot-events-buffer:

[client-request] (id:9) Wed Oct  7 14:42:34 2020:
(:jsonrpc "2.0" :id 9 :method "textDocument/rename" :params
					 (:uri "file:///tmp/tmp.Ih8P4GysfM/")
					 (:line 13 :character 23)
					 :newName "errno"))
[server-reply] (id:9) ERROR Wed Oct  7 14:42:34 2020:
(:jsonrpc "2.0" :error
					(:code 0 :message "no object found for \"errNo\": no object found")
					:id 9)
@gopherbot gopherbot added this to the Unreleased milestone Oct 7, 2020
@bcmills bcmills changed the title x/tools/gopls: rename fails when the old identifier is missing a declaration x/tools/gopls: rename fails with "no object found" when the old identifier is missing a declaration Oct 7, 2020
@stamblerre stamblerre removed this from the Unreleased milestone Oct 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.