readability-else-after-return

LLVM 编码规范 建议尽可能减少缩进,以及在简化代码理解方面有帮助的地方。提前退出是对此建议的一项强制执行措施。请勿在中断控制流(例如 returnbreakcontinuethrow)之后使用 elseelse 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。在这个版本中,选项 WarnOnUnfixableWarnOnConditionVariables 的默认值都为 false

此检查有助于强制执行此 LLVM 编码规范建议