不应存在完全相同的 if...else-if 分枝
9.1.5 ID_if_identicalElseIfBlock
完全相同的分枝是没有意义的,也可能是由复制粘贴造成的错误。
示例:
if (condition1) {
branch1
}
else if (condition2) {
branch2
}
else {
branch1 // Non-compliant
}
例中 condition1 对应分枝和 else 分枝完全相同,应该合并成一个分枝,或修正本应存在的差异:
if (condition2) {
branch2
}
else {
branch1 // Compliant
}
例外:
如果分枝的代码量较少,为了使代码更清晰可以接受适当的重复,但如果代码量很多就不应重复了,审计工具不妨指定一个数量限制,当重复分枝的符号数量超过这个限制时算作违规,否则放过。
配置
blockTokenCountThreshold: 分枝符号数量阈值,不检查符号数量小于该值的分枝