readability-else-after-return¶
LLVM 编码规范 建议尽可能减少缩进,以及在简化代码理解方面有帮助的地方。提前退出是对此建议的一项强制执行措施。请勿在中断控制流(例如 return
、break
、continue
、throw
)之后使用 else
或 else if
。
以下代码片段说明了该检查的工作原理。这段代码
void foo(int Value) {
int Local = 0;
for (int i = 0; i < 42; i++) {
if (Value == 1) {
return;
} else {
Local++;
}
if (Value == 2)
continue;
else
Local++;
if (Value == 3) {
throw 42;
} else {
Local++;
}
}
}
将被转换为
void foo(int Value) {
int Local = 0;
for (int i = 0; i < 42; i++) {
if (Value == 1) {
return;
}
Local++;
if (Value == 2)
continue;
Local++;
if (Value == 3) {
throw 42;
}
Local++;
}
}
选项¶
- WarnOnUnfixable¶
当为 true 时,对于检查无法输出修复建议的情况,将发出警告。这些情况可能发生在
else
分支内的声明中,如果删除else
分支,这些声明将具有更长的生存期。默认值为 true。
- WarnOnConditionVariables¶
当为 true 时,检查将尝试重构在
if
语句的条件内定义的变量,该变量在else
分支中使用,并在if
语句之前定义。只有在if
语句是其父作用域中的最后一条语句时,才能执行此操作。默认值为 true。
LLVM 别名¶
此检查有一个别名,名为 llvm-else-after-return。在这个版本中,选项 WarnOnUnfixable
和 WarnOnConditionVariables
的默认值都为 false。
此检查有助于强制执行此 LLVM 编码规范建议。