我正在为 CodeNarc Groovy Linter 编写一些自定义规则。
我想创建/扩展一个类似于 ConstantIfExpressionRule 的规则,但涵盖了可以推断常量的情况。
例如:
def final b = false;
// later
if (b) {
doSomething()
}
我想制定一个规则来检测 if 语句的代码块永远不可访问。
可以说,这可能不是静态分析,但也相差不远,因为它只涉及对已定义变量的查找。我在 Java 代码的 IDE 中看到过类似的 linting,所以我认为它不需要动态运行代码。
作为 CodeNarc 和 Groovy AST 的新手,我不知道这两个库是否有任何现有支持来在检查
b
语句时确定 if
的值。这可能吗?