3 ms·
The arguments in your linked article are inaccurate. For example: the Refactoring Browser described in "A Refactoring Tool for Smalltalk"(at http://st-www.cs.ui
by ekiru 16y ago
The arguments in your linked article are inaccurate. For example: the Refactoring Browser described in "A Refactoring Tool for Smalltalk"(at http://st-www.cs.uiuc.edu/users/droberts/tapos.pdf http://st-www.cs.uiuc.edu/users/droberts/tapos.pdf ), was capable of determining which sends of a renamed message were to the class on which it is to be renamed by analysis of the program's dynamic behavior.
There's of course a limitation on this. To quote the paper: "The major drawback to this style of refac-
toring is that the analysis is only as good as your
test suite. If there are pieces of code that are not
executed, they will never be analyzed, and the
refactoring will not be completed for that par-
ticular section of code. "
- billmcneale 16y agoThe impracticality of this technique notwithstanding, the article is perfectly accurate based on your own summary: in a dynamically typed languages, automatic refactorings are never 100% safe.