Given that only Refactoring and not Inspection was in the thread
subject, I wanted to emphasize Inspect Code so that it also received
proper consideration. I'm up for both, but if I could only have one...
it be code inspection, and depending on how much refactoring I discover
was warranted, I'd change my mind to Refactoring.
;-)
Jon
Thomas Singer wrote:
> Hello Jon,
>
> I believe, both, an option in Inspect Code and a separate Refactoring
> would be very useful. What do you think?
>
> Tom
>
>
> On Wed, 14 Aug 2002 11:38:21 -0400, Jon Steelman
> <[EMAIL PROTECTED]> wrote:
>
>
>>Hi Tom,
>>
>>Just because something is reported by code inspection doesn't mean you
>>should implement the observation. The edge case you are talking about
>>can't be anticipated by code inspection. One must always use judgement.
>>However, code inspection can report that the declaration type of a
>>member can be narrowed or widened, and that information can be useful
>>for those with proper judgement. I do think that these advanced code
>>inspection options should be off by default. I think that the widening
>>can encompass both interface and subclass. I agree that given the
>>importance of interfaces, an option to show interface-only declaration
>>type alternatives is useful.
>>
>>Jon
>>
>>Thomas Singer wrote:
>>
>>>Hello Jon,
>>>
>>>please read my comments in a previous post on this thread, why I
>>>believe, this isn't very useful.
>>>
>>>Tom
>>>
>>>
>>>On Wed, 14 Aug 2002 10:54:59 -0400, Jon Steelman
>>><[EMAIL PROTECTED]> wrote:
>>>
>>>
>>>
>>>>I would like this to be part of code inspection.
>>>>
>>>>Jon
>>>>
>>>>Erik Hanson wrote:
>>>>
>>>>
>>>>>I might have the wrong terminology here, but I think it would be useful to
>>>>>have IDEA figure out how specific or generic a variable, parameter or return
>>>>>type can be and make the change.
>>>>>
>>>>>For example, if I have:
>>>>>
>>>>> public void addFooAndBar( ArrayList list )
>>>>> {
>>>>> list.add( "foo" );
>>>>> list.add( "bar" );
>>>>> }
>>>>>
>>>>>and I select "list" and choose "make variable less specific", it would
>>>>>change the type of "list" to "Collection", since only methods from
>>>>>Collection are being used.
>>>>>
>>>>>Likewise, if I have:
>>>>>
>>>>> public Collection createFooAndBar()
>>>>> {
>>>>> ArrayList list = new ArrayList();
>>>>> list.add( "foo" );
>>>>> list.add( "bar" );
>>>>> return list;
>>>>> }
>>>>>
>>>>>and I select "createFooAndBar" and choose "make return type more specific",
>>>>>it would change the return type to "ArrayList".
>>>>>
>>>>>
>>>>>Finding return types that can be more specific and finding variables and
>>>>>parameters that can be more generic would be a good addition to the code
>>>>>inspection.
_______________________________________________
Eap-features mailing list
[EMAIL PROTECTED]
http://lists.jetbrains.com/mailman/listinfo/eap-features