Extract method revival
Project Lead: Benjamin Muskalla (IRC: benny`work)
Mentor: Markus Keller
This project is part of the Google Summer of Code 2009
JDT already provides several very good refactorings like Extract method. Despite the fact they are behave very good there are still some unresolved bugs and open enhancement requests. The project will take the "Extract method" refactoring to the next step by resolving all (possible) bugs and trying to enhance the current functionality. As it is one of the most used refactorings in day-to-day development it really deserves some work to get all details and edge cases fixed.
bug 179281: [extract method] from constructor doesn't handle final members of class
bug 143616: [extract method] problem with shadowed subclass methods
bug 64245: [extract method] creates un-needed code
bug 48056: [extract method] Extract method and continue
bug 50607: [extract method] Name ambigous return value in error message
bug 152004: [extract method] should declare method static if extracted from anonymous in static method
bug 264606: [extract method] extracting return value results in compile error
bug 273537: [extract method] Extract method fails when there is exception-throwing in the area
bug 283871: [extract method] unnecessarily includes Exception subclasses in throws clause
bug 160853: [extract method] Does not replace similar code in parent class of anonymous class
bug 213519: [extract method] Missing return value, while extractiong code out of a loop
bug 97413: [extract method] missing return type when code can throw exception
bug 101233: [extract method] remember selected access modifier
Here is a complete list of the milestones and release candidates planned for this plugin.
|Pencils down||August 10||-|
Getting the source
As all the changes made to the Extract method refactoring are done by patching the existing JDT bundles there is no seperate source repository. Either you wait that JDT includes the patches in one of the next I builds or you can checkout the JDT bundles yourself and apply the patches. All changes will be contributed trough the corresponding bugs in bugzilla (see above).
To see all the open issues and feature requests of this project, take a look at this query.
Do you have a great idea for the refactoring? Just open a new feature request.