CLion 2017.1 Help

Push Members Down

The Push Members Down refactoring helps clean up the class hierarchy by moving class members to a subclass. The members are then relocated into the direct subclasses only.

Example

BeforeAfter
/help/img/idea/2017.1/cl_PushMemebrsDownBefore.png
/help/img/idea/2017.1/cl_PushMemebrsDownAfter.png

Pushing members down

  1. In the editor, open the class whose members you need to push down.
  2. On the main menu or on the context menu, choose Refactor | Push Members Down. Push Members Down dialog box displays the list of members to be pushed down.
  3. In the Members to be pushed down area, select the members you want to move. Note that the member at caret is already selected.

    If pushing a member might cause problems, you will be notified with red highlighting. It means that, if the situation is unattended, an error will emerge after refactoring. CLion prompts you with a Problems Detected dialog, where you can opt to ignore or fix the problem.

  4. Preview and apply changes.

Pushing down the dependant members

Let's consider the following sample of code:
/help/img/idea/2017.1/cl_PushMemebrsDownError1.png
As you can see, variable d2 here depends on array a. If you apply Push Members Down refactoring to the above class and try to select a to be moved, and leave d2 in the base class class, CLion highlights the problem member in Pull Members Down dialog, as following:
/help/img/idea/2017.1/cl_PushMemebrsDownError2.png

Trying to proceed with extract, you will get the following warning message:

/help/img/idea/2017.1/cl_PushMemebrsDownError3.png

Choose Continue to ignore the problem and proceed with refactoring, or Cancel to return back and resolve it. Also you can observe the conflict in Find Tool Window.

See Also

Last modified: 19 July 2017