Skip to content

Commit 66b6ae7

Browse files
committed
Rust: Change array element content type into a general collection
element type
1 parent 4bd4937 commit 66b6ae7

File tree

6 files changed

+112
-107
lines changed

6 files changed

+112
-107
lines changed

rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -759,12 +759,17 @@ final class ReferenceContent extends Content, TReferenceContent {
759759
}
760760

761761
/**
762-
* An element in an array.
762+
* An element in a collection where we do not track the specific collection
763+
* type nor the placement of the element in the collection. Therefore the
764+
* collection should be one where the elements are reasonably homogeneous,
765+
* i.e., if one is tainted all elements are considered tainted.
766+
*
767+
* Examples include the elements of a set, array, vector, or stack.
763768
*/
764-
final class ArrayElementContent extends Content, TArrayElement {
765-
ArrayElementContent() { this = TArrayElement() }
769+
final class CollectionContent extends Content, TArrayElement {
770+
CollectionContent() { this = TArrayElement() }
766771

767-
override string toString() { result = "array[]" }
772+
override string toString() { result = "element" }
768773
}
769774

770775
/**
@@ -1086,19 +1091,19 @@ module RustDataFlow implements InputSig<Location> {
10861091
)
10871092
or
10881093
exists(IndexExprCfgNode arr |
1089-
c instanceof ArrayElementContent and
1094+
c instanceof CollectionContent and
10901095
node1.asExpr() = arr.getBase() and
10911096
node2.asExpr() = arr
10921097
)
10931098
or
10941099
exists(ForExprCfgNode for |
1095-
c instanceof ArrayElementContent and
1100+
c instanceof CollectionContent and
10961101
node1.asExpr() = for.getIterable() and
10971102
node2.asPat() = for.getPat()
10981103
)
10991104
or
11001105
exists(SlicePatCfgNode pat |
1101-
c instanceof ArrayElementContent and
1106+
c instanceof CollectionContent and
11021107
node1.asPat() = pat and
11031108
node2.asPat() = pat.getAPat()
11041109
)
@@ -1178,7 +1183,7 @@ module RustDataFlow implements InputSig<Location> {
11781183
node2.asExpr() = tuple
11791184
)
11801185
or
1181-
c instanceof ArrayElementContent and
1186+
c instanceof CollectionContent and
11821187
node1.asExpr() =
11831188
[
11841189
node2.asExpr().(ArrayRepeatExprCfgNode).getRepeatOperand(),
@@ -1188,7 +1193,7 @@ module RustDataFlow implements InputSig<Location> {
11881193
tupleAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
11891194
or
11901195
exists(AssignmentExprCfgNode assignment, IndexExprCfgNode index |
1191-
c instanceof ArrayElementContent and
1196+
c instanceof CollectionContent and
11921197
assignment.getLhs() = index and
11931198
node1.asExpr() = assignment.getRhs() and
11941199
node2.(PostUpdateNode).getPreUpdateNode().asExpr() = index.getBase()

rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ module RustTaintTracking implements InputSig<Location, RustDataFlow> {
4444
// source is a collection.
4545
exists(SingletonContentSet cs |
4646
RustDataFlow::readStep(pred, cs, succ) and
47-
cs.getContent() instanceof ArrayElementContent
47+
cs.getContent() instanceof CollectionContent
4848
)
4949
or
5050
exists(FormatArgsExprCfgNode format | succ.asExpr() = format |
@@ -64,7 +64,7 @@ module RustTaintTracking implements InputSig<Location, RustDataFlow> {
6464
predicate defaultImplicitTaintRead(Node::Node node, ContentSet cs) {
6565
exists(node) and
6666
exists(Content c | c = cs.(SingletonContentSet).getContent() |
67-
c instanceof ArrayElementContent or
67+
c instanceof CollectionContent or
6868
c instanceof ReferenceContent
6969
)
7070
}

rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -514,26 +514,26 @@ storeStep
514514
| main.rs:306:41:306:41 | 2 | D | main.rs:306:14:306:43 | ...::D {...} |
515515
| main.rs:324:18:324:27 | source(...) | C | main.rs:323:14:325:5 | C {...} |
516516
| main.rs:326:27:326:27 | 2 | D | main.rs:326:14:326:29 | D {...} |
517-
| main.rs:344:17:344:17 | 1 | array[] | main.rs:344:16:344:33 | [...] |
518-
| main.rs:344:20:344:20 | 2 | array[] | main.rs:344:16:344:33 | [...] |
519-
| main.rs:344:23:344:32 | source(...) | array[] | main.rs:344:16:344:33 | [...] |
520-
| main.rs:348:17:348:26 | source(...) | array[] | main.rs:348:16:348:31 | [...; 10] |
521-
| main.rs:352:17:352:17 | 1 | array[] | main.rs:352:16:352:24 | [...] |
522-
| main.rs:352:20:352:20 | 2 | array[] | main.rs:352:16:352:24 | [...] |
523-
| main.rs:352:23:352:23 | 3 | array[] | main.rs:352:16:352:24 | [...] |
524-
| main.rs:358:17:358:17 | 1 | array[] | main.rs:358:16:358:33 | [...] |
525-
| main.rs:358:20:358:20 | 2 | array[] | main.rs:358:16:358:33 | [...] |
526-
| main.rs:358:23:358:32 | source(...) | array[] | main.rs:358:16:358:33 | [...] |
527-
| main.rs:363:17:363:17 | 1 | array[] | main.rs:363:16:363:24 | [...] |
528-
| main.rs:363:20:363:20 | 2 | array[] | main.rs:363:16:363:24 | [...] |
529-
| main.rs:363:23:363:23 | 3 | array[] | main.rs:363:16:363:24 | [...] |
530-
| main.rs:370:17:370:17 | 1 | array[] | main.rs:370:16:370:33 | [...] |
531-
| main.rs:370:20:370:20 | 2 | array[] | main.rs:370:16:370:33 | [...] |
532-
| main.rs:370:23:370:32 | source(...) | array[] | main.rs:370:16:370:33 | [...] |
533-
| main.rs:381:24:381:24 | 1 | array[] | main.rs:381:23:381:31 | [...] |
534-
| main.rs:381:27:381:27 | 2 | array[] | main.rs:381:23:381:31 | [...] |
535-
| main.rs:381:30:381:30 | 3 | array[] | main.rs:381:23:381:31 | [...] |
536-
| main.rs:384:18:384:27 | source(...) | array[] | main.rs:384:5:384:11 | [post] mut_arr |
517+
| main.rs:344:17:344:17 | 1 | element | main.rs:344:16:344:33 | [...] |
518+
| main.rs:344:20:344:20 | 2 | element | main.rs:344:16:344:33 | [...] |
519+
| main.rs:344:23:344:32 | source(...) | element | main.rs:344:16:344:33 | [...] |
520+
| main.rs:348:17:348:26 | source(...) | element | main.rs:348:16:348:31 | [...; 10] |
521+
| main.rs:352:17:352:17 | 1 | element | main.rs:352:16:352:24 | [...] |
522+
| main.rs:352:20:352:20 | 2 | element | main.rs:352:16:352:24 | [...] |
523+
| main.rs:352:23:352:23 | 3 | element | main.rs:352:16:352:24 | [...] |
524+
| main.rs:358:17:358:17 | 1 | element | main.rs:358:16:358:33 | [...] |
525+
| main.rs:358:20:358:20 | 2 | element | main.rs:358:16:358:33 | [...] |
526+
| main.rs:358:23:358:32 | source(...) | element | main.rs:358:16:358:33 | [...] |
527+
| main.rs:363:17:363:17 | 1 | element | main.rs:363:16:363:24 | [...] |
528+
| main.rs:363:20:363:20 | 2 | element | main.rs:363:16:363:24 | [...] |
529+
| main.rs:363:23:363:23 | 3 | element | main.rs:363:16:363:24 | [...] |
530+
| main.rs:370:17:370:17 | 1 | element | main.rs:370:16:370:33 | [...] |
531+
| main.rs:370:20:370:20 | 2 | element | main.rs:370:16:370:33 | [...] |
532+
| main.rs:370:23:370:32 | source(...) | element | main.rs:370:16:370:33 | [...] |
533+
| main.rs:381:24:381:24 | 1 | element | main.rs:381:23:381:31 | [...] |
534+
| main.rs:381:27:381:27 | 2 | element | main.rs:381:23:381:31 | [...] |
535+
| main.rs:381:30:381:30 | 3 | element | main.rs:381:23:381:31 | [...] |
536+
| main.rs:384:18:384:27 | source(...) | element | main.rs:384:5:384:11 | [post] mut_arr |
537537
| main.rs:396:35:396:61 | default_name | captured default_name | main.rs:396:35:396:61 | \|...\| ... |
538538
| main.rs:418:27:418:27 | 0 | Some | main.rs:418:22:418:28 | Some(...) |
539539
readStep
@@ -600,20 +600,20 @@ readStep
600600
| main.rs:332:28:332:43 | D {...} | D | main.rs:332:41:332:41 | n |
601601
| main.rs:335:9:335:24 | C {...} | C | main.rs:335:22:335:22 | n |
602602
| main.rs:336:9:336:24 | D {...} | D | main.rs:336:22:336:22 | n |
603-
| main.rs:345:14:345:17 | arr1 | array[] | main.rs:345:14:345:20 | arr1[2] |
604-
| main.rs:349:14:349:17 | arr2 | array[] | main.rs:349:14:349:20 | arr2[4] |
605-
| main.rs:353:14:353:17 | arr3 | array[] | main.rs:353:14:353:20 | arr3[2] |
606-
| main.rs:359:15:359:18 | arr1 | array[] | main.rs:359:9:359:10 | n1 |
607-
| main.rs:364:15:364:18 | arr2 | array[] | main.rs:364:9:364:10 | n2 |
608-
| main.rs:372:9:372:17 | SlicePat | array[] | main.rs:372:10:372:10 | a |
609-
| main.rs:372:9:372:17 | SlicePat | array[] | main.rs:372:13:372:13 | b |
610-
| main.rs:372:9:372:17 | SlicePat | array[] | main.rs:372:16:372:16 | c |
611-
| main.rs:382:10:382:16 | mut_arr | array[] | main.rs:382:10:382:19 | mut_arr[1] |
612-
| main.rs:384:5:384:11 | mut_arr | array[] | main.rs:384:5:384:14 | mut_arr[1] |
613-
| main.rs:385:13:385:19 | mut_arr | array[] | main.rs:385:13:385:22 | mut_arr[1] |
614-
| main.rs:387:10:387:16 | mut_arr | array[] | main.rs:387:10:387:19 | mut_arr[0] |
603+
| main.rs:345:14:345:17 | arr1 | element | main.rs:345:14:345:20 | arr1[2] |
604+
| main.rs:349:14:349:17 | arr2 | element | main.rs:349:14:349:20 | arr2[4] |
605+
| main.rs:353:14:353:17 | arr3 | element | main.rs:353:14:353:20 | arr3[2] |
606+
| main.rs:359:15:359:18 | arr1 | element | main.rs:359:9:359:10 | n1 |
607+
| main.rs:364:15:364:18 | arr2 | element | main.rs:364:9:364:10 | n2 |
608+
| main.rs:372:9:372:17 | SlicePat | element | main.rs:372:10:372:10 | a |
609+
| main.rs:372:9:372:17 | SlicePat | element | main.rs:372:13:372:13 | b |
610+
| main.rs:372:9:372:17 | SlicePat | element | main.rs:372:16:372:16 | c |
611+
| main.rs:382:10:382:16 | mut_arr | element | main.rs:382:10:382:19 | mut_arr[1] |
612+
| main.rs:384:5:384:11 | mut_arr | element | main.rs:384:5:384:14 | mut_arr[1] |
613+
| main.rs:385:13:385:19 | mut_arr | element | main.rs:385:13:385:22 | mut_arr[1] |
614+
| main.rs:387:10:387:16 | mut_arr | element | main.rs:387:10:387:19 | mut_arr[0] |
615615
| main.rs:394:7:394:18 | TuplePat | tuple.0 | main.rs:394:8:394:11 | cond |
616616
| main.rs:394:7:394:18 | TuplePat | tuple.1 | main.rs:394:14:394:17 | name |
617-
| main.rs:394:23:394:27 | names | array[] | main.rs:394:7:394:18 | TuplePat |
617+
| main.rs:394:23:394:27 | names | element | main.rs:394:7:394:18 | TuplePat |
618618
| main.rs:396:35:396:61 | [post] \|...\| ... | captured default_name | main.rs:396:35:396:61 | [post] default_name |
619619
| main.rs:396:38:396:49 | this | captured default_name | main.rs:396:38:396:49 | default_name |

rust/ql/test/library-tests/dataflow/local/inline-flow.expected

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -118,40 +118,40 @@ edges
118118
| main.rs:331:11:331:12 | s1 [C] | main.rs:332:9:332:24 | C {...} [C] | provenance | |
119119
| main.rs:332:9:332:24 | C {...} [C] | main.rs:332:22:332:22 | n | provenance | |
120120
| main.rs:332:22:332:22 | n | main.rs:332:53:332:53 | n | provenance | |
121-
| main.rs:344:9:344:12 | arr1 [array[]] | main.rs:345:14:345:17 | arr1 [array[]] | provenance | |
122-
| main.rs:344:16:344:33 | [...] [array[]] | main.rs:344:9:344:12 | arr1 [array[]] | provenance | |
123-
| main.rs:344:23:344:32 | source(...) | main.rs:344:16:344:33 | [...] [array[]] | provenance | |
121+
| main.rs:344:9:344:12 | arr1 [element] | main.rs:345:14:345:17 | arr1 [element] | provenance | |
122+
| main.rs:344:16:344:33 | [...] [element] | main.rs:344:9:344:12 | arr1 [element] | provenance | |
123+
| main.rs:344:23:344:32 | source(...) | main.rs:344:16:344:33 | [...] [element] | provenance | |
124124
| main.rs:345:9:345:10 | n1 | main.rs:346:10:346:11 | n1 | provenance | |
125-
| main.rs:345:14:345:17 | arr1 [array[]] | main.rs:345:14:345:20 | arr1[2] | provenance | |
125+
| main.rs:345:14:345:17 | arr1 [element] | main.rs:345:14:345:20 | arr1[2] | provenance | |
126126
| main.rs:345:14:345:20 | arr1[2] | main.rs:345:9:345:10 | n1 | provenance | |
127-
| main.rs:348:9:348:12 | arr2 [array[]] | main.rs:349:14:349:17 | arr2 [array[]] | provenance | |
128-
| main.rs:348:16:348:31 | [...; 10] [array[]] | main.rs:348:9:348:12 | arr2 [array[]] | provenance | |
129-
| main.rs:348:17:348:26 | source(...) | main.rs:348:16:348:31 | [...; 10] [array[]] | provenance | |
127+
| main.rs:348:9:348:12 | arr2 [element] | main.rs:349:14:349:17 | arr2 [element] | provenance | |
128+
| main.rs:348:16:348:31 | [...; 10] [element] | main.rs:348:9:348:12 | arr2 [element] | provenance | |
129+
| main.rs:348:17:348:26 | source(...) | main.rs:348:16:348:31 | [...; 10] [element] | provenance | |
130130
| main.rs:349:9:349:10 | n2 | main.rs:350:10:350:11 | n2 | provenance | |
131-
| main.rs:349:14:349:17 | arr2 [array[]] | main.rs:349:14:349:20 | arr2[4] | provenance | |
131+
| main.rs:349:14:349:17 | arr2 [element] | main.rs:349:14:349:20 | arr2[4] | provenance | |
132132
| main.rs:349:14:349:20 | arr2[4] | main.rs:349:9:349:10 | n2 | provenance | |
133-
| main.rs:358:9:358:12 | arr1 [array[]] | main.rs:359:15:359:18 | arr1 [array[]] | provenance | |
134-
| main.rs:358:16:358:33 | [...] [array[]] | main.rs:358:9:358:12 | arr1 [array[]] | provenance | |
135-
| main.rs:358:23:358:32 | source(...) | main.rs:358:16:358:33 | [...] [array[]] | provenance | |
133+
| main.rs:358:9:358:12 | arr1 [element] | main.rs:359:15:359:18 | arr1 [element] | provenance | |
134+
| main.rs:358:16:358:33 | [...] [element] | main.rs:358:9:358:12 | arr1 [element] | provenance | |
135+
| main.rs:358:23:358:32 | source(...) | main.rs:358:16:358:33 | [...] [element] | provenance | |
136136
| main.rs:359:9:359:10 | n1 | main.rs:360:14:360:15 | n1 | provenance | |
137-
| main.rs:359:15:359:18 | arr1 [array[]] | main.rs:359:9:359:10 | n1 | provenance | |
138-
| main.rs:370:9:370:12 | arr1 [array[]] | main.rs:371:11:371:14 | arr1 [array[]] | provenance | |
139-
| main.rs:370:16:370:33 | [...] [array[]] | main.rs:370:9:370:12 | arr1 [array[]] | provenance | |
140-
| main.rs:370:23:370:32 | source(...) | main.rs:370:16:370:33 | [...] [array[]] | provenance | |
141-
| main.rs:371:11:371:14 | arr1 [array[]] | main.rs:372:9:372:17 | SlicePat [array[]] | provenance | |
142-
| main.rs:372:9:372:17 | SlicePat [array[]] | main.rs:372:10:372:10 | a | provenance | |
143-
| main.rs:372:9:372:17 | SlicePat [array[]] | main.rs:372:13:372:13 | b | provenance | |
144-
| main.rs:372:9:372:17 | SlicePat [array[]] | main.rs:372:16:372:16 | c | provenance | |
137+
| main.rs:359:15:359:18 | arr1 [element] | main.rs:359:9:359:10 | n1 | provenance | |
138+
| main.rs:370:9:370:12 | arr1 [element] | main.rs:371:11:371:14 | arr1 [element] | provenance | |
139+
| main.rs:370:16:370:33 | [...] [element] | main.rs:370:9:370:12 | arr1 [element] | provenance | |
140+
| main.rs:370:23:370:32 | source(...) | main.rs:370:16:370:33 | [...] [element] | provenance | |
141+
| main.rs:371:11:371:14 | arr1 [element] | main.rs:372:9:372:17 | SlicePat [element] | provenance | |
142+
| main.rs:372:9:372:17 | SlicePat [element] | main.rs:372:10:372:10 | a | provenance | |
143+
| main.rs:372:9:372:17 | SlicePat [element] | main.rs:372:13:372:13 | b | provenance | |
144+
| main.rs:372:9:372:17 | SlicePat [element] | main.rs:372:16:372:16 | c | provenance | |
145145
| main.rs:372:10:372:10 | a | main.rs:373:18:373:18 | a | provenance | |
146146
| main.rs:372:13:372:13 | b | main.rs:374:18:374:18 | b | provenance | |
147147
| main.rs:372:16:372:16 | c | main.rs:375:18:375:18 | c | provenance | |
148-
| main.rs:384:5:384:11 | [post] mut_arr [array[]] | main.rs:385:13:385:19 | mut_arr [array[]] | provenance | |
149-
| main.rs:384:5:384:11 | [post] mut_arr [array[]] | main.rs:387:10:387:16 | mut_arr [array[]] | provenance | |
150-
| main.rs:384:18:384:27 | source(...) | main.rs:384:5:384:11 | [post] mut_arr [array[]] | provenance | |
148+
| main.rs:384:5:384:11 | [post] mut_arr [element] | main.rs:385:13:385:19 | mut_arr [element] | provenance | |
149+
| main.rs:384:5:384:11 | [post] mut_arr [element] | main.rs:387:10:387:16 | mut_arr [element] | provenance | |
150+
| main.rs:384:18:384:27 | source(...) | main.rs:384:5:384:11 | [post] mut_arr [element] | provenance | |
151151
| main.rs:385:9:385:9 | d | main.rs:386:10:386:10 | d | provenance | |
152-
| main.rs:385:13:385:19 | mut_arr [array[]] | main.rs:385:13:385:22 | mut_arr[1] | provenance | |
152+
| main.rs:385:13:385:19 | mut_arr [element] | main.rs:385:13:385:22 | mut_arr[1] | provenance | |
153153
| main.rs:385:13:385:22 | mut_arr[1] | main.rs:385:9:385:9 | d | provenance | |
154-
| main.rs:387:10:387:16 | mut_arr [array[]] | main.rs:387:10:387:19 | mut_arr[0] | provenance | |
154+
| main.rs:387:10:387:16 | mut_arr [element] | main.rs:387:10:387:19 | mut_arr[0] | provenance | |
155155
| main.rs:410:9:410:9 | s | main.rs:411:10:411:10 | s | provenance | |
156156
| main.rs:410:25:410:26 | source(...) | main.rs:410:9:410:9 | s | provenance | |
157157
nodes
@@ -293,44 +293,44 @@ nodes
293293
| main.rs:332:9:332:24 | C {...} [C] | semmle.label | C {...} [C] |
294294
| main.rs:332:22:332:22 | n | semmle.label | n |
295295
| main.rs:332:53:332:53 | n | semmle.label | n |
296-
| main.rs:344:9:344:12 | arr1 [array[]] | semmle.label | arr1 [array[]] |
297-
| main.rs:344:16:344:33 | [...] [array[]] | semmle.label | [...] [array[]] |
296+
| main.rs:344:9:344:12 | arr1 [element] | semmle.label | arr1 [element] |
297+
| main.rs:344:16:344:33 | [...] [element] | semmle.label | [...] [element] |
298298
| main.rs:344:23:344:32 | source(...) | semmle.label | source(...) |
299299
| main.rs:345:9:345:10 | n1 | semmle.label | n1 |
300-
| main.rs:345:14:345:17 | arr1 [array[]] | semmle.label | arr1 [array[]] |
300+
| main.rs:345:14:345:17 | arr1 [element] | semmle.label | arr1 [element] |
301301
| main.rs:345:14:345:20 | arr1[2] | semmle.label | arr1[2] |
302302
| main.rs:346:10:346:11 | n1 | semmle.label | n1 |
303-
| main.rs:348:9:348:12 | arr2 [array[]] | semmle.label | arr2 [array[]] |
304-
| main.rs:348:16:348:31 | [...; 10] [array[]] | semmle.label | [...; 10] [array[]] |
303+
| main.rs:348:9:348:12 | arr2 [element] | semmle.label | arr2 [element] |
304+
| main.rs:348:16:348:31 | [...; 10] [element] | semmle.label | [...; 10] [element] |
305305
| main.rs:348:17:348:26 | source(...) | semmle.label | source(...) |
306306
| main.rs:349:9:349:10 | n2 | semmle.label | n2 |
307-
| main.rs:349:14:349:17 | arr2 [array[]] | semmle.label | arr2 [array[]] |
307+
| main.rs:349:14:349:17 | arr2 [element] | semmle.label | arr2 [element] |
308308
| main.rs:349:14:349:20 | arr2[4] | semmle.label | arr2[4] |
309309
| main.rs:350:10:350:11 | n2 | semmle.label | n2 |
310-
| main.rs:358:9:358:12 | arr1 [array[]] | semmle.label | arr1 [array[]] |
311-
| main.rs:358:16:358:33 | [...] [array[]] | semmle.label | [...] [array[]] |
310+
| main.rs:358:9:358:12 | arr1 [element] | semmle.label | arr1 [element] |
311+
| main.rs:358:16:358:33 | [...] [element] | semmle.label | [...] [element] |
312312
| main.rs:358:23:358:32 | source(...) | semmle.label | source(...) |
313313
| main.rs:359:9:359:10 | n1 | semmle.label | n1 |
314-
| main.rs:359:15:359:18 | arr1 [array[]] | semmle.label | arr1 [array[]] |
314+
| main.rs:359:15:359:18 | arr1 [element] | semmle.label | arr1 [element] |
315315
| main.rs:360:14:360:15 | n1 | semmle.label | n1 |
316-
| main.rs:370:9:370:12 | arr1 [array[]] | semmle.label | arr1 [array[]] |
317-
| main.rs:370:16:370:33 | [...] [array[]] | semmle.label | [...] [array[]] |
316+
| main.rs:370:9:370:12 | arr1 [element] | semmle.label | arr1 [element] |
317+
| main.rs:370:16:370:33 | [...] [element] | semmle.label | [...] [element] |
318318
| main.rs:370:23:370:32 | source(...) | semmle.label | source(...) |
319-
| main.rs:371:11:371:14 | arr1 [array[]] | semmle.label | arr1 [array[]] |
320-
| main.rs:372:9:372:17 | SlicePat [array[]] | semmle.label | SlicePat [array[]] |
319+
| main.rs:371:11:371:14 | arr1 [element] | semmle.label | arr1 [element] |
320+
| main.rs:372:9:372:17 | SlicePat [element] | semmle.label | SlicePat [element] |
321321
| main.rs:372:10:372:10 | a | semmle.label | a |
322322
| main.rs:372:13:372:13 | b | semmle.label | b |
323323
| main.rs:372:16:372:16 | c | semmle.label | c |
324324
| main.rs:373:18:373:18 | a | semmle.label | a |
325325
| main.rs:374:18:374:18 | b | semmle.label | b |
326326
| main.rs:375:18:375:18 | c | semmle.label | c |
327-
| main.rs:384:5:384:11 | [post] mut_arr [array[]] | semmle.label | [post] mut_arr [array[]] |
327+
| main.rs:384:5:384:11 | [post] mut_arr [element] | semmle.label | [post] mut_arr [element] |
328328
| main.rs:384:18:384:27 | source(...) | semmle.label | source(...) |
329329
| main.rs:385:9:385:9 | d | semmle.label | d |
330-
| main.rs:385:13:385:19 | mut_arr [array[]] | semmle.label | mut_arr [array[]] |
330+
| main.rs:385:13:385:19 | mut_arr [element] | semmle.label | mut_arr [element] |
331331
| main.rs:385:13:385:22 | mut_arr[1] | semmle.label | mut_arr[1] |
332332
| main.rs:386:10:386:10 | d | semmle.label | d |
333-
| main.rs:387:10:387:16 | mut_arr [array[]] | semmle.label | mut_arr [array[]] |
333+
| main.rs:387:10:387:16 | mut_arr [element] | semmle.label | mut_arr [element] |
334334
| main.rs:387:10:387:19 | mut_arr[0] | semmle.label | mut_arr[0] |
335335
| main.rs:410:9:410:9 | s | semmle.label | s |
336336
| main.rs:410:25:410:26 | source(...) | semmle.label | source(...) |

0 commit comments

Comments
 (0)