Skip to Main Content
In generalization refactoring, preconditions and allowable source code modifications depend on type constraints of the refactored program. Type constraints of parameterized types should be considered when applying the refactoring to generic programs, otherwise type errors may be brought into the refactored program. Some type constraint rules for Java generic programs are presented to verify the preconditions in the refactoring. The type constraints can be solved by traversing a type constraint graph. Based on the type constraint graph, a refactoring algorithm for extract interface is proposed.