Refactoring using type constraints

TitleRefactoring using type constraints
Publication TypeMiscellaneous
Year of Publication2009
AuthorsTip F, Fuhrer RM, Kiezun A, Ernst MD, Balaban I, Sutter B D
Abstract<p>Type constraints express subtype relationships between the types of program expressions, for example those relationships that are required for type correctness. Type constraints were originally proposed as a convenient framework for solving type checking and type inference problems. This paper shows how type constraints can be used as the basis for practical refactoring tools. In our approach, a set of type constraints is derived from a type-correct program $P$. The main insight behind our work is the fact that $P$ constitutes just one solution to this constraint system, and that alternative solutions may exist that correspond to refactored versions of $P$. We show how a number of refactorings for manipulating types and class hierarchies can be expressed naturally using type constraints. Several refactorings in the standard distribution of Eclipse are based on our work.</p>
DownloadsPDF
Citation KeyTipFKEBDS2009
Last changed Mon, 2013-06-03 10:27