Skip to content

Commit 0cef887

Browse files
committed
Ruby: address comments
1 parent 5df1f7a commit 0cef887

File tree

8 files changed

+166
-162
lines changed

8 files changed

+166
-162
lines changed

ruby/ql/lib/codeql/ruby/ast/Pattern.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class FindPattern extends CasePattern, TFindPattern {
210210
CasePattern getAnElement() { result = this.getElement(_) }
211211

212212
/**
213-
* Gets the variable for the prefix of this list pattern, if any. For example `init` in:
213+
* Gets the variable for the prefix of this find pattern, if any. For example `init` in:
214214
* ```rb
215215
* in List[*init, "a", Integer => x, *tail]
216216
* ```
@@ -220,7 +220,7 @@ class FindPattern extends CasePattern, TFindPattern {
220220
}
221221

222222
/**
223-
* Gets the variable for the suffix of this list pattern, if any. For example `tail` in:
223+
* Gets the variable for the suffix of this find pattern, if any. For example `tail` in:
224224
* ```rb
225225
* in List[*init, "a", Integer => x, *tail]
226226
* ```

ruby/ql/lib/codeql/ruby/controlflow/CfgNodes.qll

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -412,9 +412,7 @@ module ExprNodes {
412412
class InClauseCfgNode extends AstCfgNode {
413413
override InClauseChildMapping e;
414414

415-
/**
416-
* Gets the pattern in this `in`-clause.
417-
*/
415+
/** Gets the pattern in this `in`-clause. */
418416
final AstCfgNode getPattern() { e.hasCfgChild(e.getPattern(), this, result) }
419417

420418
/** Gets the pattern guard condition in this `in` clause, if any. */
@@ -449,7 +447,7 @@ module ExprNodes {
449447
}
450448
}
451449

452-
/** A control-flow node that wraps a `ArrayPattern` node. */
450+
/** A control-flow node that wraps an `ArrayPattern` node. */
453451
class ArrayPatternCfgNode extends CasePatternCfgNode {
454452
override ArrayPatternChildMapping e;
455453

@@ -484,12 +482,12 @@ module ExprNodes {
484482
/** Gets the `n`th element of this find pattern. */
485483
final CasePatternCfgNode getElement(int n) { e.hasCfgChild(e.getElement(n), this, result) }
486484

487-
/** Gets the variable for the prefix of this list pattern, if any. */
485+
/** Gets the variable for the prefix of this find pattern, if any. */
488486
final VariableWriteAccessCfgNode getPrefixVariableAccess() {
489487
e.hasCfgChild(e.getPrefixVariableAccess(), this, result)
490488
}
491489

492-
/** Gets the variable for the suffix of this list pattern, if any. */
490+
/** Gets the variable for the suffix of this find pattern, if any. */
493491
final VariableWriteAccessCfgNode getSuffixVariableAccess() {
494492
e.hasCfgChild(e.getSuffixVariableAccess(), this, result)
495493
}
@@ -519,7 +517,7 @@ module ExprNodes {
519517
override predicate relevantChild(AstNode e) { e = this.getAnAlternative() }
520518
}
521519

522-
/** A control-flow node that wraps a `AlternativePattern` node. */
520+
/** A control-flow node that wraps an `AlternativePattern` node. */
523521
class AlternativePatternCfgNode extends CasePatternCfgNode {
524522
override AlternativePatternChildMapping e;
525523

@@ -535,7 +533,7 @@ module ExprNodes {
535533
}
536534
}
537535

538-
/** A control-flow node that wraps a `AsPattern` node. */
536+
/** A control-flow node that wraps an `AsPattern` node. */
539537
class AsPatternCfgNode extends CasePatternCfgNode {
540538
override AsPatternChildMapping e;
541539

ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ module LocalFlow {
133133
or
134134
nodeFrom.asExpr() = branch.(CfgNodes::ExprNodes::WhenClauseCfgNode).getBody()
135135
or
136-
nodeFrom.asExpr() = branch and branch instanceof CfgNodes::ExprCfgNode
136+
nodeFrom.asExpr() = branch.(CfgNodes::ExprCfgNode)
137137
)
138138
or
139139
exists(CfgNodes::ExprCfgNode exprTo, ReturningStatementNode n |

ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingPrivate.qll

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,41 @@ private CfgNodes::ExprNodes::VariableWriteAccessCfgNode variablesInPattern(
2929
) {
3030
result = p
3131
or
32-
exists(CfgNodes::ExprNodes::AsPatternCfgNode ap | p = ap |
33-
result = variablesInPattern(ap.getPattern()) or
34-
result = ap.getVariableAccess()
35-
)
32+
p =
33+
any(CfgNodes::ExprNodes::AsPatternCfgNode ap |
34+
result = variablesInPattern(ap.getPattern()) or
35+
result = ap.getVariableAccess()
36+
)
3637
or
37-
exists(CfgNodes::ExprNodes::ParenthesizedPatternCfgNode pp | p = pp |
38-
result = variablesInPattern(pp.getPattern())
39-
)
38+
p =
39+
any(CfgNodes::ExprNodes::ParenthesizedPatternCfgNode pp |
40+
result = variablesInPattern(pp.getPattern())
41+
)
4042
or
41-
exists(CfgNodes::ExprNodes::AlternativePatternCfgNode ap | p = ap |
42-
result = variablesInPattern(ap.getAlternative(_))
43-
)
43+
p =
44+
any(CfgNodes::ExprNodes::AlternativePatternCfgNode ap |
45+
result = variablesInPattern(ap.getAlternative(_))
46+
)
4447
or
45-
exists(CfgNodes::ExprNodes::ArrayPatternCfgNode ap | p = ap |
46-
result = variablesInPattern(ap.getPrefixElement(_)) or
47-
result = variablesInPattern(ap.getSuffixElement(_)) or
48-
result = ap.getRestVariableAccess()
49-
)
48+
p =
49+
any(CfgNodes::ExprNodes::ArrayPatternCfgNode ap |
50+
result = variablesInPattern(ap.getPrefixElement(_)) or
51+
result = variablesInPattern(ap.getSuffixElement(_)) or
52+
result = ap.getRestVariableAccess()
53+
)
5054
or
51-
exists(CfgNodes::ExprNodes::FindPatternCfgNode fp | p = fp |
52-
result = variablesInPattern(fp.getElement(_)) or
53-
result = fp.getPrefixVariableAccess() or
54-
result = fp.getSuffixVariableAccess()
55-
)
55+
p =
56+
any(CfgNodes::ExprNodes::FindPatternCfgNode fp |
57+
result = variablesInPattern(fp.getElement(_)) or
58+
result = fp.getPrefixVariableAccess() or
59+
result = fp.getSuffixVariableAccess()
60+
)
5661
or
57-
exists(CfgNodes::ExprNodes::HashPatternCfgNode hp | p = hp |
58-
result = variablesInPattern(hp.getValue(_)) or
59-
result = hp.getRestVariableAccess()
60-
)
62+
p =
63+
any(CfgNodes::ExprNodes::HashPatternCfgNode hp |
64+
result = variablesInPattern(hp.getValue(_)) or
65+
result = hp.getRestVariableAccess()
66+
)
6167
}
6268

6369
/**

ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,15 @@
7272
| local_dataflow.rb:51:9:51:15 | "break" | local_dataflow.rb:51:3:51:15 | break |
7373
| local_dataflow.rb:60:1:90:3 | self (test_case) | local_dataflow.rb:78:12:78:20 | self |
7474
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:78:12:78:20 | self |
75-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:79:18:79:24 | self |
76-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:80:22:80:28 | self |
77-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:82:6:82:12 | self |
78-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:83:6:83:12 | self |
79-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:84:6:84:12 | self |
80-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:85:20:85:26 | self |
81-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:86:26:86:32 | self |
82-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:87:18:87:24 | self |
83-
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:89:1:89:7 | self |
75+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:79:20:79:26 | self |
76+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:80:24:80:30 | self |
77+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:82:7:82:13 | self |
78+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:83:7:83:13 | self |
79+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:84:7:84:13 | self |
80+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:85:22:85:28 | self |
81+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:86:28:86:34 | self |
82+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:87:20:87:26 | self |
83+
| local_dataflow.rb:60:1:90:3 | self in test_case | local_dataflow.rb:89:3:89:9 | self |
8484
| local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:60:15:60:15 | x |
8585
| local_dataflow.rb:60:15:60:15 | x | local_dataflow.rb:61:12:61:12 | x |
8686
| local_dataflow.rb:61:7:68:5 | case ... | local_dataflow.rb:61:3:68:5 | ... = ... |
@@ -111,58 +111,58 @@
111111
| local_dataflow.rb:73:7:73:7 | x | local_dataflow.rb:72:7:73:7 | then ... |
112112
| local_dataflow.rb:74:3:75:6 | else ... | local_dataflow.rb:69:7:76:5 | case ... |
113113
| local_dataflow.rb:75:6:75:6 | x | local_dataflow.rb:74:3:75:6 | else ... |
114-
| local_dataflow.rb:78:3:88:3 | ... = ... | local_dataflow.rb:89:6:89:6 | z |
115-
| local_dataflow.rb:78:7:88:3 | case ... | local_dataflow.rb:78:3:88:3 | ... = ... |
116-
| local_dataflow.rb:78:7:88:3 | case ... | local_dataflow.rb:78:3:88:3 | ... = ... |
117-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:79:18:79:24 | self |
118-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:80:22:80:28 | self |
119-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:82:6:82:12 | self |
120-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:85:20:85:26 | self |
121-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:86:26:86:32 | self |
122-
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:87:18:87:24 | self |
123-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:79:18:79:24 | self |
124-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:80:22:80:28 | self |
125-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:82:6:82:12 | self |
126-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:85:20:85:26 | self |
127-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:86:26:86:32 | self |
128-
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:87:18:87:24 | self |
129-
| local_dataflow.rb:79:11:79:11 | b | local_dataflow.rb:79:23:79:23 | b |
130-
| local_dataflow.rb:79:13:79:43 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
131-
| local_dataflow.rb:79:18:79:24 | [post] self | local_dataflow.rb:89:1:89:7 | self |
132-
| local_dataflow.rb:79:18:79:24 | call to sink | local_dataflow.rb:79:13:79:43 | then ... |
133-
| local_dataflow.rb:79:18:79:24 | self | local_dataflow.rb:89:1:89:7 | self |
134-
| local_dataflow.rb:80:6:80:6 | a | local_dataflow.rb:80:11:80:11 | a |
135-
| local_dataflow.rb:80:11:80:11 | [post] a | local_dataflow.rb:80:27:80:27 | a |
136-
| local_dataflow.rb:80:11:80:11 | a | local_dataflow.rb:80:27:80:27 | a |
137-
| local_dataflow.rb:80:17:80:47 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
138-
| local_dataflow.rb:80:22:80:28 | [post] self | local_dataflow.rb:89:1:89:7 | self |
139-
| local_dataflow.rb:80:22:80:28 | call to sink | local_dataflow.rb:80:17:80:47 | then ... |
140-
| local_dataflow.rb:80:22:80:28 | self | local_dataflow.rb:89:1:89:7 | self |
141-
| local_dataflow.rb:81:7:81:7 | c | local_dataflow.rb:82:11:82:11 | c |
142-
| local_dataflow.rb:81:11:81:11 | d | local_dataflow.rb:83:11:83:11 | d |
143-
| local_dataflow.rb:81:14:81:14 | e | local_dataflow.rb:84:11:84:11 | e |
144-
| local_dataflow.rb:81:18:84:32 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
145-
| local_dataflow.rb:81:23:84:13 | call to [] | local_dataflow.rb:81:18:84:32 | then ... |
146-
| local_dataflow.rb:82:6:82:12 | [post] self | local_dataflow.rb:83:6:83:12 | self |
147-
| local_dataflow.rb:82:6:82:12 | self | local_dataflow.rb:83:6:83:12 | self |
148-
| local_dataflow.rb:83:6:83:12 | [post] self | local_dataflow.rb:84:6:84:12 | self |
149-
| local_dataflow.rb:83:6:83:12 | self | local_dataflow.rb:84:6:84:12 | self |
150-
| local_dataflow.rb:84:6:84:12 | [post] self | local_dataflow.rb:89:1:89:7 | self |
151-
| local_dataflow.rb:84:6:84:12 | self | local_dataflow.rb:89:1:89:7 | self |
152-
| local_dataflow.rb:85:11:85:11 | f | local_dataflow.rb:85:25:85:25 | f |
153-
| local_dataflow.rb:85:15:85:45 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
154-
| local_dataflow.rb:85:20:85:26 | [post] self | local_dataflow.rb:89:1:89:7 | self |
155-
| local_dataflow.rb:85:20:85:26 | call to sink | local_dataflow.rb:85:15:85:45 | then ... |
156-
| local_dataflow.rb:85:20:85:26 | self | local_dataflow.rb:89:1:89:7 | self |
157-
| local_dataflow.rb:86:16:86:16 | g | local_dataflow.rb:86:31:86:31 | g |
158-
| local_dataflow.rb:86:21:86:51 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
159-
| local_dataflow.rb:86:26:86:32 | [post] self | local_dataflow.rb:89:1:89:7 | self |
160-
| local_dataflow.rb:86:26:86:32 | call to sink | local_dataflow.rb:86:21:86:51 | then ... |
161-
| local_dataflow.rb:86:26:86:32 | self | local_dataflow.rb:89:1:89:7 | self |
162-
| local_dataflow.rb:87:8:87:8 | x | local_dataflow.rb:87:23:87:23 | x |
163-
| local_dataflow.rb:87:13:87:46 | then ... | local_dataflow.rb:78:7:88:3 | case ... |
164-
| local_dataflow.rb:87:18:87:24 | [post] self | local_dataflow.rb:89:1:89:7 | self |
165-
| local_dataflow.rb:87:18:87:24 | self | local_dataflow.rb:89:1:89:7 | self |
166-
| local_dataflow.rb:87:23:87:23 | [post] x | local_dataflow.rb:87:27:87:27 | x |
167-
| local_dataflow.rb:87:23:87:23 | x | local_dataflow.rb:87:27:87:27 | x |
168-
| local_dataflow.rb:87:27:87:27 | x | local_dataflow.rb:87:13:87:46 | then ... |
114+
| local_dataflow.rb:78:3:88:5 | ... = ... | local_dataflow.rb:89:8:89:8 | z |
115+
| local_dataflow.rb:78:7:88:5 | case ... | local_dataflow.rb:78:3:88:5 | ... = ... |
116+
| local_dataflow.rb:78:7:88:5 | case ... | local_dataflow.rb:78:3:88:5 | ... = ... |
117+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:79:20:79:26 | self |
118+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:80:24:80:30 | self |
119+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:82:7:82:13 | self |
120+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:85:22:85:28 | self |
121+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:86:28:86:34 | self |
122+
| local_dataflow.rb:78:12:78:20 | [post] self | local_dataflow.rb:87:20:87:26 | self |
123+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:79:20:79:26 | self |
124+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:80:24:80:30 | self |
125+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:82:7:82:13 | self |
126+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:85:22:85:28 | self |
127+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:86:28:86:34 | self |
128+
| local_dataflow.rb:78:12:78:20 | self | local_dataflow.rb:87:20:87:26 | self |
129+
| local_dataflow.rb:79:13:79:13 | b | local_dataflow.rb:79:25:79:25 | b |
130+
| local_dataflow.rb:79:15:79:45 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
131+
| local_dataflow.rb:79:20:79:26 | [post] self | local_dataflow.rb:89:3:89:9 | self |
132+
| local_dataflow.rb:79:20:79:26 | call to sink | local_dataflow.rb:79:15:79:45 | then ... |
133+
| local_dataflow.rb:79:20:79:26 | self | local_dataflow.rb:89:3:89:9 | self |
134+
| local_dataflow.rb:80:8:80:8 | a | local_dataflow.rb:80:13:80:13 | a |
135+
| local_dataflow.rb:80:13:80:13 | [post] a | local_dataflow.rb:80:29:80:29 | a |
136+
| local_dataflow.rb:80:13:80:13 | a | local_dataflow.rb:80:29:80:29 | a |
137+
| local_dataflow.rb:80:19:80:49 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
138+
| local_dataflow.rb:80:24:80:30 | [post] self | local_dataflow.rb:89:3:89:9 | self |
139+
| local_dataflow.rb:80:24:80:30 | call to sink | local_dataflow.rb:80:19:80:49 | then ... |
140+
| local_dataflow.rb:80:24:80:30 | self | local_dataflow.rb:89:3:89:9 | self |
141+
| local_dataflow.rb:81:9:81:9 | c | local_dataflow.rb:82:12:82:12 | c |
142+
| local_dataflow.rb:81:13:81:13 | d | local_dataflow.rb:83:12:83:12 | d |
143+
| local_dataflow.rb:81:16:81:16 | e | local_dataflow.rb:84:12:84:12 | e |
144+
| local_dataflow.rb:81:20:84:33 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
145+
| local_dataflow.rb:81:25:84:14 | call to [] | local_dataflow.rb:81:20:84:33 | then ... |
146+
| local_dataflow.rb:82:7:82:13 | [post] self | local_dataflow.rb:83:7:83:13 | self |
147+
| local_dataflow.rb:82:7:82:13 | self | local_dataflow.rb:83:7:83:13 | self |
148+
| local_dataflow.rb:83:7:83:13 | [post] self | local_dataflow.rb:84:7:84:13 | self |
149+
| local_dataflow.rb:83:7:83:13 | self | local_dataflow.rb:84:7:84:13 | self |
150+
| local_dataflow.rb:84:7:84:13 | [post] self | local_dataflow.rb:89:3:89:9 | self |
151+
| local_dataflow.rb:84:7:84:13 | self | local_dataflow.rb:89:3:89:9 | self |
152+
| local_dataflow.rb:85:13:85:13 | f | local_dataflow.rb:85:27:85:27 | f |
153+
| local_dataflow.rb:85:17:85:47 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
154+
| local_dataflow.rb:85:22:85:28 | [post] self | local_dataflow.rb:89:3:89:9 | self |
155+
| local_dataflow.rb:85:22:85:28 | call to sink | local_dataflow.rb:85:17:85:47 | then ... |
156+
| local_dataflow.rb:85:22:85:28 | self | local_dataflow.rb:89:3:89:9 | self |
157+
| local_dataflow.rb:86:18:86:18 | g | local_dataflow.rb:86:33:86:33 | g |
158+
| local_dataflow.rb:86:23:86:53 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
159+
| local_dataflow.rb:86:28:86:34 | [post] self | local_dataflow.rb:89:3:89:9 | self |
160+
| local_dataflow.rb:86:28:86:34 | call to sink | local_dataflow.rb:86:23:86:53 | then ... |
161+
| local_dataflow.rb:86:28:86:34 | self | local_dataflow.rb:89:3:89:9 | self |
162+
| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x |
163+
| local_dataflow.rb:87:15:87:48 | then ... | local_dataflow.rb:78:7:88:5 | case ... |
164+
| local_dataflow.rb:87:20:87:26 | [post] self | local_dataflow.rb:89:3:89:9 | self |
165+
| local_dataflow.rb:87:20:87:26 | self | local_dataflow.rb:89:3:89:9 | self |
166+
| local_dataflow.rb:87:25:87:25 | [post] x | local_dataflow.rb:87:29:87:29 | x |
167+
| local_dataflow.rb:87:25:87:25 | x | local_dataflow.rb:87:29:87:29 | x |
168+
| local_dataflow.rb:87:29:87:29 | x | local_dataflow.rb:87:15:87:48 | then ... |

0 commit comments

Comments
 (0)