Five Move-Statement Refactorings Formalized to Four Static Preconditions Compile Cleanly 93-97% of the Time Across Ten Java Projects
arXiv 2608.23377 (submitted 2026-08-24) tackles the refactoring gap IDEs left open: class- and method-level moves are automated, statement- and expression-level moves that adjust method boundaries are not. The authors formalize five Move Statement variants over four basic conditions covering data reachability, execution count, side effects, and syntactic compilation constraints, all checked statically except side effects, then iterate against a real project to add twenty more preconditions handling Java's syntactic diversity. Evaluated on ten projects, results compile in 93.3% to 97.0% of applicable cases, and the behavioral changes found in a case study trace to side-effect reordering left to developer judgment rather than to defects in the static checks.
↳ Follow the thread