Some horrible things the refactoring browser is doing (or not doing)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Some horrible things the refactoring browser is doing (or not doing)

Nicolas Cellier
Hi all,
I've noted two of them, but there's probably more:

1) it does not know how to push-up a class side method
2) when pushing up a method, if a sibling has a method of same name (generally same method, that's why we push up) which invokes super, then the refactoring override the sibling method with super method!

Example I have class hierarchy A > B > C1, B > C2.
A implements m A>>#m, C1 and C2 also implements m, which ends with a ^super m.
When I push-up C1>>m into B, I'm told it's impossible to move C1>>m up... Why not, it's my responsibility, so warning me is good, preventing me is bad.
But I observed that C2>>m ends-up overwritten with A>>m, and that sucks.


Reply | Threaded
Open this post in threaded view
|

Re: Some horrible things the refactoring browser is doing (or not doing)

marcel.taeumel
Hi Nicolas.

Hmm... also one bigger issue is that a preview is still missing.

Do you suspect the bugs to reside in the Squeak integration via RefactoringTools [1] or is it deeper in Refactoring-Core [2]?

I just added you as a dev to [1] but could not find your user handle on [2]. What is it?

Best,
Marcel

Am 02.05.2020 19:55:45 schrieb Nicolas Cellier <[hidden email]>:

Hi all,
I've noted two of them, but there's probably more:

1) it does not know how to push-up a class side method
2) when pushing up a method, if a sibling has a method of same name (generally same method, that's why we push up) which invokes super, then the refactoring override the sibling method with super method!

Example I have class hierarchy A > B > C1, B > C2.
A implements m A>>#m, C1 and C2 also implements m, which ends with a ^super m.
When I push-up C1>>m into B, I'm told it's impossible to move C1>>m up... Why not, it's my responsibility, so warning me is good, preventing me is bad.
But I observed that C2>>m ends-up overwritten with A>>m, and that sucks.