Thanks to visit codestin.com Credit goes to github.com
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
LogNotExpr
1 parent 8ea9fd4 commit 15123daCopy full SHA for 15123da
1 file changed
javascript/ql/src/Statements/UselessConditional.ql
@@ -73,16 +73,18 @@ predicate isConstantBooleanReturnValue(Expr e) {
73
isConstantBooleanReturnValue(e.(LogNotExpr).getOperand())
74
}
75
76
+private Expr maybeStripLogNot(Expr e) {
77
+ result = maybeStripLogNot(e.(LogNotExpr).getOperand()) or
78
+ result = e
79
+}
80
+
81
/**
82
* Holds if `e` is a defensive expression with a fixed outcome.
83
*/
84
predicate isConstantDefensive(Expr e) {
- exists(Expr defensive |
- defensive = e or
- // traverse negations
- defensive.(LogNotExpr).getOperand+() = e
- |
85
- exists(defensive.flow().(DefensiveExpressionTest).getTheTestResult())
+ exists(DefensiveExpressionTest defensive |
86
+ maybeStripLogNot(defensive.asExpr()) = e and
87
+ exists(defensive.getTheTestResult())
88
)
89
90
0 commit comments