Formalizing and Automating Fine-Grained Move Refactorings Across Methods
This work formalizes five variants of Move Statement refactoring as preconditions and steps grounded in four basic conditions covering data reachability, execution count, side effects, and syntactic constraints required for compilation, of which all but the side-effect condition are checked statically.