A system and methodology for asynchronous code refactoring with symbol
injection is described. In one embodiment, for example, a method is
described for refactoring a plurality of interdependent software modules
that reside in separate projects, the method comprises steps of: in
response to a change that affects a particular symbol of a software
module that resides in a first project, refactoring the software module
of the first project to propagate the change to all instances of the
particular symbol in the software module; during the refactoring of the
software module of the first project, recording meta data about the
refactoring that is required to effect the change; and automatically
propagating the change to a dependent software module residing in a
second project, by refactoring the dependent software module based on the
recorded meta data about the refactoring that occurred to the software
module of the first project.