go-lang-plugin-org/go-lang-idea-plugin

Renaming an interface method does not rename implementations

glyn opened this issue · 1 comments

glyn commented
  • Plugin version (or commit hash): n/a

  • IDE name and version: GoLand-EAP #GO-173.3531.21

  • Java version: Java(TM) SE Runtime Environment (build 1.8.0_144-b01)

  • OS name and version: macOS 10.13.1

  • What are you trying to do?
    Rename a method in an interface.

  • What would you expect to happen?
    I would expect implementing methods to be renamed too.

  • What happens?
    Implementing methods are not renamed and so they no longer implement the interface.

To reproduce the problem, take the Go code below, place the caret on the name of the interface method, and invoke Refactor->Rename. Enter another name. Observe that the implementation's method name is unchanged.

type X interface {
	x() // rename this method
}

type A struct {}

func (a A) x() { // and this implementation is not renamed
	
}

I've opened https://youtrack.jetbrains.com/issue/GO-4897 for this to be tracked in GoLand, as that's the official tracker for it. Please follow that for further updates. Thank you!