Refactoring using type constraints

Abstract

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.

Document Details

Document Type
Pub Defense Publication
Publication Date
Apr 01, 2011
Source ID
10.1145/1961204.1961205

Entities

People

  • Adam Kieżun
  • Bjorn De Sutter
  • Frank Tip
  • Ittai Balaban
  • Michael D. Ernst
  • Robert M. Fuhrer

Organizations

  • Defense Advanced Research Projects Agency
  • Ghent University
  • Harvard Medical School
  • International Business Machines Corporation (Armonk, NY)
  • University of Washington

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Database Systems and Applications
  • Electrochemical Surface Science

Technology Areas

  • AI & ML
  • AI & ML - Machine Learning Algorithms