Files
codeql/ruby/ql/test/library-tests/ast/control/Loop.ql
2021-12-14 15:04:40 +01:00

48 lines
1.4 KiB
Plaintext

import ruby
query predicate loops(Loop l, string lClass, Expr body, string bodyClass) {
l.getBody() = body and lClass = l.getAPrimaryQlClass() and bodyClass = body.getAPrimaryQlClass()
}
query predicate conditionalLoops(
ConditionalLoop l, string lClass, Expr cond, Expr body, string bodyClass
) {
l.getBody() = body and
lClass = l.getAPrimaryQlClass() and
bodyClass = body.getAPrimaryQlClass() and
cond = l.getCondition()
}
query predicate forExprs(ForExpr f, LhsExpr p, StmtSequence body, int i, Stmt bodyChild) {
p = f.getPattern() and
body = f.getBody() and
bodyChild = body.getStmt(i)
}
query predicate forExprsTuplePatterns(ForExpr f, DestructuredLhsExpr tp, int i, Expr cp) {
tp = f.getPattern() and
cp = tp.getElement(i)
}
query predicate whileExprs(WhileExpr e, Expr cond, StmtSequence body, int i, Stmt bodyChild) {
cond = e.getCondition() and
body = e.getBody() and
bodyChild = body.getStmt(i)
}
query predicate whileModifierExprs(WhileModifierExpr e, Expr cond, Expr body) {
cond = e.getCondition() and
body = e.getBody()
}
query predicate untilExprs(UntilExpr e, Expr cond, StmtSequence body, int i, Stmt bodyChild) {
cond = e.getCondition() and
body = e.getBody() and
bodyChild = body.getStmt(i)
}
query predicate untilModifierExprs(UntilModifierExpr e, Expr cond, Expr body) {
cond = e.getCondition() and
body = e.getBody()
}