Unwrap and remove statements
For C++, this refactoring safely unwraps if...else
, for
, while
, do...while
and try...catch
control statements, or accurately removes enclosing parts of the nested statements.
Besides C++, the Unwrap/Remove action is available for:
Objective-C/C++
Python
JavaScript: if ...else, for, while, and do...while control structures.
XML and HTML tags.
Unwrap or remove a statement
Place the caret at the expression you want to unwrap or remove.
Choose
from the main menu or press Ctrl+Shift+Delete. CLion shows a popup with all the actions that are available in the current context. Statements to be kept after unwrapping are displayed on the blue background, statements to be removed are displayed on the grey background.Click the desired action or select it using the up and down arrow keys and press Enter.
Examples in different languages showing statements unwrapping:
Before | After |
---|---|
@implementation SClass
- (int)sqrV {
if (v != 0)
return v * v;
else // this 'else' statement will be removed
return 0;
}
@end
|
@implementation SClass
- (int)sqrV {
if (v != 0)
return v * v;
}
@end
|
Before | After |
---|---|
count = 0
# This 'while' statement will be unwrapped
while True:
print(count)
count += 1
if count >= 5:
break
|
count = 0
print(count)
count += 1
if count >= 5:
break
|
Before | After |
---|---|
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var i = 0;
// This 'while' statement will be unwrapped
while (i != document.cookie.length) {
var j = i + document.cookie.length;
i++;
}
}
|
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var i = 0;
var j = i + document.cookie.length;
i++;
}
|
Last modified: 21 July 2022