tools/refactor
Alan Donovan 74021b4175 cmd/gorename: a precise, type-aware renaming tool for Go identifiers.
See the usage message in main.go for orientation.

To the best of my knowledge, the tool implements all required
soundness checks, except:
- the dynamic behaviour of reflection is obviously undecidable.
- it rejects method renamings that change the "implements" relation.
  It should probably be more aggressive.
- actually it only checks the part of the "implements" relation
  needed for compilation.  Understanding the dynamic behaviour
  of interfaces is obviously undecidable.
- a couple of minor gaps are indicated by TODO comments.

Also:
- Emacs integration.
- tests of all safety checks and (some) successful rewrites.

LGTM=dominik.honnef, sameer
R=gri, sameer, dominik.honnef
CC=golang-codereviews
https://golang.org/cl/139150044
2014-09-23 10:23:04 -04:00
..
eg go.tools/go/types: LookupFieldOrMethod checks method set 2014-08-28 13:03:13 -07:00
importgraph refactor/importgraph: add test of cycles 2014-09-18 10:05:26 -04:00
lexical refactor/lexical: understand the structure of the lexical environment. 2014-09-19 13:11:01 -04:00
rename cmd/gorename: a precise, type-aware renaming tool for Go identifiers. 2014-09-23 10:23:04 -04:00
satisfy refactor/satisfy: enumerate interface satisfaction constraints induced by Go syntax. 2014-09-22 16:19:29 -04:00
README go.tools/refactor/eg: an example-based refactoring tool. 2014-04-02 12:24:55 -04:00

README

code.google.com/p/go.tools/refactor: libraries for refactoring tools.