Jump to: navigation, search

Difference between revisions of "Extract method revival"

(Primary goals)
(Primary goals)
 
(19 intermediate revisions by 2 users not shown)
Line 9: Line 9:
  
 
==Primary goals==
 
==Primary goals==
[[Image:Ok_green.gif]] {{bug|101233}}: [extract method] remember selected access modifier
 
  
[[Image:Progress.gif]] {{bug|273537}}: [extract method] Extract method fails when there is exception-throwing in the area
 
 
[[Image:Progress.gif]] {{bug|160853}}: [extract method] Does not replace similar code in parent class of anonymous class
 
 
[[Image:Glass.gif]] {{bug|213519}}: [extract method] Missing return value, while extractiong code out of a loop
 
 
[[Image:Glass.gif]] {{bug|97413}}: [extract method] missing return type when code can throw exception
 
 
[[Image:Glass.gif]] {{bug|50607}}: [extract method] Name ambigous return value in error message
 
 
[[Image:Glass.gif]] {{bug|48056}}: [extract method] Extract method and continue
 
  
 
<div style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; float: right;">
 
<div style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; float: right;">
Line 32: Line 20:
 
[[Image:Ok_green.gif]] Bug fixed (JDT 3.6 I-Builds)
 
[[Image:Ok_green.gif]] Bug fixed (JDT 3.6 I-Builds)
 
</div>
 
</div>
 +
 +
 +
[[Image:Glass.gif]] {{bug|79994}}: [extract method] add parameter if extracted out of inner class
 +
 +
[[Image:Glass.gif]] {{bug|183189}}: [extract method] Extract Method's occurrence finder can't handle constants in signature
 +
 +
[[Image:Progress.gif]] {{bug|58648}}: [extract method] disregard 'this.' when finding duplicates (was: find simple aliasing)
 +
 +
[[Image:Progress.gif]] {{bug|179281}}: [extract method] from constructor doesn't handle final members of class
 +
 +
[[Image:Progress.gif]] {{bug|143616}}: [extract method] problem with shadowed subclass methods
 +
 +
[[Image:Progress.gif]] {{bug|64245}}: [extract method] creates un-needed code
 +
 +
[[Image:Progress.gif]] {{bug|48056}}: [extract method] Extract method and continue
 +
 +
[[Image:Progress.gif]] {{bug|264606}}: [extract method] extracting return value results in compile error
 +
 +
[[Image:Progress.gif]] {{bug|273537}}: [extract method] Extract method fails when there is exception-throwing in the area
 +
 +
[[Image:Ok_green.gif]] {{bug|50607}}: [extract method] Name ambigous return value in error message
 +
 +
[[Image:Ok_green.gif]] {{bug|231568}}: [extract method] Ambiguous return value, but only one local variable is used after block
 +
 +
[[Image:Ok_green.gif]] {{bug|152004}}: [extract method] should declare method static if extracted from anonymous in static method
 +
 +
[[Image:Ok_green.gif]] {{bug|160853}}: [extract method] Does not replace similar code in parent class of anonymous class
 +
 +
[[Image:Ok_green.gif]] {{bug|213519}}: [extract method] Missing return value, while extractiong code out of a loop
 +
 +
[[Image:Ok_green.gif]] {{bug|97413}}: [extract method] missing return type when code can throw exception
 +
 +
[[Image:Ok_green.gif]] {{bug|101233}}: [extract method] remember selected access modifier
  
 
== Timeline ==
 
== Timeline ==

Latest revision as of 18:39, 3 August 2009

Project Lead: Benjamin Muskalla (IRC: benny`work)

Mentor: Markus Keller

This project is part of the Google Summer of Code 2009

Abstract

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.

Primary goals

Legend

Glass.gif Needs some investigation/research

Progress.gif Work in progress

Ok green.gif Bug fixed (JDT 3.6 I-Builds)


Glass.gif bug 79994: [extract method] add parameter if extracted out of inner class

Glass.gif bug 183189: [extract method] Extract Method's occurrence finder can't handle constants in signature

Progress.gif bug 58648: [extract method] disregard 'this.' when finding duplicates (was: find simple aliasing)

Progress.gif bug 179281: [extract method] from constructor doesn't handle final members of class

Progress.gif bug 143616: [extract method] problem with shadowed subclass methods

Progress.gif bug 64245: [extract method] creates un-needed code

Progress.gif bug 48056: [extract method] Extract method and continue

Progress.gif bug 264606: [extract method] extracting return value results in compile error

Progress.gif bug 273537: [extract method] Extract method fails when there is exception-throwing in the area

Ok green.gif bug 50607: [extract method] Name ambigous return value in error message

Ok green.gif bug 231568: [extract method] Ambiguous return value, but only one local variable is used after block

Ok green.gif bug 152004: [extract method] should declare method static if extracted from anonymous in static method

Ok green.gif bug 160853: [extract method] Does not replace similar code in parent class of anonymous class

Ok green.gif bug 213519: [extract method] Missing return value, while extractiong code out of a loop

Ok green.gif bug 97413: [extract method] missing return type when code can throw exception

Ok green.gif bug 101233: [extract method] remember selected access modifier

Timeline

Here is a complete list of the milestones and release candidates planned for this plugin.

Milestone Date Planned items
M1 April 30 TBD
M2 May 26 TBD
M3 June 21 TBD
M4 July 3 TBD
M5 July 17 TBD
RC1 August 2 TBD
Pencils down August 10 -

Community Involvement

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).

Open issues

To see all the open issues and feature requests of this project, take a look at this query.

New ideas

Do you have a great idea for the refactoring? Just open a new feature request.