Safe Delete
On this page:
- Introduction
- Performing the refactoring
- Safe Delete Parameter refactoring for a call hierarchy
- Safe Delete refactoring for a method in a call hierarchy
Introduction
The Safe Delete refactoring lets you safely remove files and symbols from the source code.
To make sure that deletion is safe, IntelliJ IDEA looks for the usages of the or symbol being deleted. If such usages are found, you can explore them and make the necessary corrections in your code before the symbol is actually deleted.
Performing the refactoring
- Select the item to be deleted.
- Do one of the following:
- In the Safe Delete dialog, select the necessary options and click OK.
-
If the refactoring is potentially unsafe,
the Usages Detected dialog opens.
- View Usages. Click this button to see where in your code the item you are
about to delete is used. As a result, the Find tool window opens.
Analyze your code and make the necessary corrections. Then click Do Refactor. (If you want to rerun the refactoring from its start, click Rerun Safe Delete. IntelliJ IDEA will check if the refactoring is safe once more.)
- Delete Anyway. Click this button to delete the item without looking at its usages.
- View Usages. Click this button to see where in your code the item you are
about to delete is used. As a result, the Find tool window opens.
Safe Delete Parameter refactoring for a call hierarchy
If a parameter is only passed through a call hierarchy and isn't used anywhere outside of that hierarchy, the Safe Delete refactoring lets you propagate the parameter deletion all along the hierarchy.
Example
In this example, the refactoring was performed on the i
parameter within baz(int i)
.
This change was propagated to all the caller methods.
When performing the refactoring, the Select Methods to Propagate Parameter Deletion dialog is shown. This dialog lets you select the caller methods in which the parameter should be deleted.
Safe Delete refactoring for a method in a call hierarchy
When you perform the Safe Delete refactoring for a method, IntelliJ IDEA analyzes the corresponding call hierarchy, finds the methods that may become unused and suggests that you delete those methods too.
Example
Before | After |
---|---|
class CallHierarchySample {
private void foo(int i) { bar(i);}
private void bar(int i) { baz(i);}
private void baz(int i) { }
} |
class CallHierarchySample {
} |
In this example, the refactoring was performed on the foo(int i)
method.
All the methods lower down in the call hierarchy were selected for deletion.
When performing the refactoring, the Select Methods to Cascade Safe Delete dialog is shown. This dialog lets you select the methods to be deleted.