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. © 2011 ACM.
CITATION STYLE
Tip, F., Fuhrer, R. M., Kiezun, A., Ernst, M. D., Balaban, I., & De Sutter, B. (2011). Refactoring using type constraints. ACM Transactions on Programming Languages and Systems, 33(3). https://doi.org/10.1145/1961204.1961205
Mendeley helps you to discover research relevant for your work.