For me it is too intelligent now because it is tried to create new version of accessors instead of existing one. But simple logic should just analyze method name and if accessor already exists it should skip it

That isn’t a refactoring. The existing methods aren’t accessors. The refactoring will find accessors for the variables if they exist (even if they have a different names).

We all know what is refactoring. Usually we don't care about safe aspect of it (and we have tests). We just want simple code transformation. I think it is exactly such case.

+ 1

Often I get a popup telling me something that I do not understand and I ended doing all the changes.
So if the situation is
    refactoring or doit by hand
I prefer automatic transformations under my responsibilities because else I have to do it by hand.

I like the idea of the radio buttons to control the behavior.

Also after applying override browser shows it with special icon. And user could see it.


New accessors can’t override an existing method, for example #name, since that would change the behavior of the #name method for that object. If you are suggesting not creating the accessor >>method for the “myInstVar ^myInstVar ifNil: [#someValue]” method, then you’ll need to change the abstract variable refactorings so that they no longer use the modified create accessors >>refactoring.

We could make it configurable. "Manually" accessors will be generated in simplified mode and related refactorings will use intelligent mode



--
Using Opera's mail client: http://www.opera.com/mail/

Reply via email to