mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Merge pull request #19881 from hvitved/rust/dataflow-traits
Rust: Data flow through trait methods
This commit is contained in:
1
rust/ql/.generated.list
generated
1
rust/ql/.generated.list
generated
@@ -226,7 +226,6 @@ lib/codeql/rust/elements/internal/AsmRegSpecConstructor.qll bf3e0783645622691183
|
||||
lib/codeql/rust/elements/internal/AsmRegSpecImpl.qll 7ad0a5b86922e321da9f8c7ea8aefa88068b27bcea3890f981b061a204ab576d 65f13c423ef42209bd514523f21dd1e43cc4f5c191bdb85ba7128c76241f78a8
|
||||
lib/codeql/rust/elements/internal/AsmSymConstructor.qll 9c7e8471081b9173f01592d4b9d22584a0d1cee6b4851050d642ddaa4017659e adc5b4b2a8cd7164da4867d83aa08c6e54c45614c1f4fc9aa1cbbedd3c20a1b3
|
||||
lib/codeql/rust/elements/internal/AsmSymImpl.qll e173807c5b6cf856f5f4eaedb2be41d48db95dd8a973e1dc857a883383feec50 ab19c9f479c0272a5257ab45977c9f9dd60380fe33b4ade14f3dddf2970112de
|
||||
lib/codeql/rust/elements/internal/AssocItemImpl.qll 33be2a25b94eb32c44b973351f0babf6d46d35d5a0a06f1064418c94c40b01e9 5e42adb18b5c2f9246573d7965ce91013370f16d92d8f7bda31232cef7a549c6
|
||||
lib/codeql/rust/elements/internal/AssocItemListConstructor.qll 1977164a68d52707ddee2f16e4d5a3de07280864510648750016010baec61637 bb750f1a016b42a32583b423655279e967be5def66f6b68c5018ec1e022e25e1
|
||||
lib/codeql/rust/elements/internal/AssocItemListImpl.qll 70e82744464827326bfc394dab417f39905db155fb631f804bf1f27e23892698 760c7b42137d010e15920f9623e461daaf16518ab44a36a15259e549ecd4fa7a
|
||||
lib/codeql/rust/elements/internal/AssocTypeArgConstructor.qll 58b4ac5a532e55d71f77a5af8eadaf7ba53a8715c398f48285dac1db3a6c87a3 f0d889f32d9ea7bd633b495df014e39af24454608253200c05721022948bd856
|
||||
|
||||
1
rust/ql/.gitattributes
generated
vendored
1
rust/ql/.gitattributes
generated
vendored
@@ -228,7 +228,6 @@
|
||||
/lib/codeql/rust/elements/internal/AsmRegSpecImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsmSymConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AsmSymImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocItemListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/AssocTypeArgConstructor.qll linguist-generated
|
||||
|
||||
4
rust/ql/lib/change-notes/2025-06-26-dataflow-traits.md
Normal file
4
rust/ql/lib/change-notes/2025-06-26-dataflow-traits.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Implemented support for data flow through trait functions. For the purpose of data flow, calls to trait functions dispatch to all possible implementations.
|
||||
@@ -404,10 +404,20 @@ module RustDataFlow implements InputSig<Location> {
|
||||
|
||||
/** Gets a viable implementation of the target of the given `Call`. */
|
||||
DataFlowCallable viableCallable(DataFlowCall call) {
|
||||
exists(Callable target | target = call.asCallCfgNode().getCall().getStaticTarget() |
|
||||
target = result.asCfgScope()
|
||||
exists(Call c | c = call.asCallCfgNode().getCall() |
|
||||
result.asCfgScope() = c.getARuntimeTarget()
|
||||
or
|
||||
target = result.asSummarizedCallable()
|
||||
exists(SummarizedCallable sc, Function staticTarget |
|
||||
staticTarget = c.getStaticTarget() and
|
||||
sc = result.asSummarizedCallable()
|
||||
|
|
||||
sc = staticTarget
|
||||
or
|
||||
// only apply trait models to concrete implementations when they are not
|
||||
// defined in source code
|
||||
staticTarget.implements(sc) and
|
||||
not staticTarget.fromSource()
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
* - `Field[t(i)]`: position `i` inside the variant/struct with canonical path `v`, for example
|
||||
* `Field[core::option::Option::Some(0)]`.
|
||||
* - `Field[i]`: the `i`th element of a tuple.
|
||||
* - `Reference`: the referenced value.
|
||||
* - `Future`: the value being computed asynchronously.
|
||||
* 3. The `kind` column is a tag that can be referenced from QL to determine to
|
||||
* which classes the interpreted elements should be added. For example, for
|
||||
* sources `"remote"` indicates a default remote flow source, and for summaries
|
||||
@@ -211,6 +213,10 @@ private class SummarizedCallableFromModel extends SummarizedCallable::Range {
|
||||
this.getCanonicalPath() = path
|
||||
}
|
||||
|
||||
override predicate hasProvenance(Provenance provenance) {
|
||||
summaryModel(path, _, _, _, provenance, _)
|
||||
}
|
||||
|
||||
override predicate propagatesFlow(
|
||||
string input, string output, boolean preservesValue, string model
|
||||
) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// generated by codegen, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `AssocItem`.
|
||||
*
|
||||
@@ -12,6 +11,10 @@ private import codeql.rust.elements.internal.generated.AssocItem
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
private import codeql.rust.internal.PathResolution
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* An associated item in a `Trait` or `Impl`.
|
||||
*
|
||||
@@ -21,5 +24,15 @@ module Impl {
|
||||
* // ^^^^^^^^^^^^^
|
||||
* ```
|
||||
*/
|
||||
class AssocItem extends Generated::AssocItem { }
|
||||
class AssocItem extends Generated::AssocItem {
|
||||
/** Holds if this item implements trait item `other`. */
|
||||
pragma[nomagic]
|
||||
predicate implements(AssocItem other) {
|
||||
exists(TraitItemNode t, ImplItemNode i, string name |
|
||||
other = t.getAssocItem(pragma[only_bind_into](name)) and
|
||||
t = i.resolveTraitTy() and
|
||||
this = i.getAssocItem(pragma[only_bind_into](name))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,17 @@ module Impl {
|
||||
not exists(TypeInference::resolveMethodCallTarget(this)) and
|
||||
result = this.(CallExpr).getStaticTarget()
|
||||
}
|
||||
|
||||
/** Gets a runtime target of this call, if any. */
|
||||
pragma[nomagic]
|
||||
Function getARuntimeTarget() {
|
||||
result.hasImplementation() and
|
||||
(
|
||||
result = this.getStaticTarget()
|
||||
or
|
||||
result.implements(this.getStaticTarget())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/** Holds if the call expression dispatches to a trait method. */
|
||||
|
||||
@@ -540,6 +540,13 @@ abstract class ImplOrTraitItemNode extends ItemNode {
|
||||
/** Gets an associated item belonging to this trait or `impl` block. */
|
||||
abstract AssocItemNode getAnAssocItem();
|
||||
|
||||
/** Gets the associated item named `name` belonging to this trait or `impl` block. */
|
||||
pragma[nomagic]
|
||||
AssocItemNode getAssocItem(string name) {
|
||||
result = this.getAnAssocItem() and
|
||||
result.getName() = name
|
||||
}
|
||||
|
||||
/** Holds if this trait or `impl` block declares an associated item named `name`. */
|
||||
pragma[nomagic]
|
||||
predicate hasAssocItem(string name) { name = this.getAnAssocItem().getName() }
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
multipleCallTargets
|
||||
| main.rs:225:14:225:29 | ...::deref(...) |
|
||||
| main.rs:272:14:272:29 | ...::deref(...) |
|
||||
|
||||
@@ -48,85 +48,125 @@ edges
|
||||
| main.rs:86:13:86:27 | pass_through(...) | main.rs:86:9:86:9 | b | provenance | |
|
||||
| main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | provenance | |
|
||||
| main.rs:86:26:86:26 | a | main.rs:86:13:86:27 | pass_through(...) | provenance | |
|
||||
| main.rs:98:22:98:27 | ...: i64 | main.rs:99:14:99:14 | n | provenance | |
|
||||
| main.rs:102:30:108:5 | { ... } | main.rs:121:13:121:25 | mn.get_data() | provenance | |
|
||||
| main.rs:106:13:106:21 | source(...) | main.rs:102:30:108:5 | { ... } | provenance | |
|
||||
| main.rs:110:27:110:32 | ...: i64 | main.rs:110:42:116:5 | { ... } | provenance | |
|
||||
| main.rs:121:9:121:9 | a | main.rs:122:10:122:10 | a | provenance | |
|
||||
| main.rs:121:13:121:25 | mn.get_data() | main.rs:121:9:121:9 | a | provenance | |
|
||||
| main.rs:127:9:127:9 | a | main.rs:128:16:128:16 | a | provenance | |
|
||||
| main.rs:127:13:127:21 | source(...) | main.rs:127:9:127:9 | a | provenance | |
|
||||
| main.rs:128:16:128:16 | a | main.rs:98:22:98:27 | ...: i64 | provenance | |
|
||||
| main.rs:133:9:133:9 | a | main.rs:134:29:134:29 | a | provenance | |
|
||||
| main.rs:133:13:133:21 | source(...) | main.rs:133:9:133:9 | a | provenance | |
|
||||
| main.rs:134:9:134:9 | b | main.rs:135:10:135:10 | b | provenance | |
|
||||
| main.rs:134:13:134:30 | mn.data_through(...) | main.rs:134:9:134:9 | b | provenance | |
|
||||
| main.rs:134:29:134:29 | a | main.rs:110:27:110:32 | ...: i64 | provenance | |
|
||||
| main.rs:134:29:134:29 | a | main.rs:134:13:134:30 | mn.data_through(...) | provenance | |
|
||||
| main.rs:140:9:140:9 | a | main.rs:141:25:141:25 | a | provenance | |
|
||||
| main.rs:140:13:140:21 | source(...) | main.rs:140:9:140:9 | a | provenance | |
|
||||
| main.rs:141:25:141:25 | a | main.rs:98:22:98:27 | ...: i64 | provenance | |
|
||||
| main.rs:146:9:146:9 | a | main.rs:147:38:147:38 | a | provenance | |
|
||||
| main.rs:146:13:146:22 | source(...) | main.rs:146:9:146:9 | a | provenance | |
|
||||
| main.rs:147:9:147:9 | b | main.rs:148:10:148:10 | b | provenance | |
|
||||
| main.rs:147:13:147:39 | ...::data_through(...) | main.rs:147:9:147:9 | b | provenance | |
|
||||
| main.rs:147:38:147:38 | a | main.rs:110:27:110:32 | ...: i64 | provenance | |
|
||||
| main.rs:147:38:147:38 | a | main.rs:147:13:147:39 | ...::data_through(...) | provenance | |
|
||||
| main.rs:159:12:159:17 | ...: i64 | main.rs:160:24:160:24 | n | provenance | |
|
||||
| main.rs:160:9:160:26 | MyInt {...} [MyInt] | main.rs:159:28:161:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:160:24:160:24 | n | main.rs:160:9:160:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:165:9:165:9 | n [MyInt] | main.rs:166:9:166:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:165:13:165:34 | ...::new(...) [MyInt] | main.rs:165:9:165:9 | n [MyInt] | provenance | |
|
||||
| main.rs:165:24:165:33 | source(...) | main.rs:159:12:159:17 | ...: i64 | provenance | |
|
||||
| main.rs:165:24:165:33 | source(...) | main.rs:165:13:165:34 | ...::new(...) [MyInt] | provenance | |
|
||||
| main.rs:166:9:166:26 | MyInt {...} [MyInt] | main.rs:166:24:166:24 | m | provenance | |
|
||||
| main.rs:166:24:166:24 | m | main.rs:167:10:167:10 | m | provenance | |
|
||||
| main.rs:173:12:173:15 | SelfParam [MyInt] | main.rs:175:24:175:27 | self [MyInt] | provenance | |
|
||||
| main.rs:175:9:175:35 | MyInt {...} [MyInt] | main.rs:173:42:176:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:175:24:175:27 | self [MyInt] | main.rs:175:24:175:33 | self.value | provenance | |
|
||||
| main.rs:175:24:175:33 | self.value | main.rs:175:9:175:35 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:195:9:195:9 | a [MyInt] | main.rs:197:13:197:13 | a [MyInt] | provenance | |
|
||||
| main.rs:195:13:195:38 | MyInt {...} [MyInt] | main.rs:195:9:195:9 | a [MyInt] | provenance | |
|
||||
| main.rs:195:28:195:36 | source(...) | main.rs:195:13:195:38 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:197:9:197:9 | c [MyInt] | main.rs:198:10:198:10 | c [MyInt] | provenance | |
|
||||
| main.rs:197:13:197:13 | a [MyInt] | main.rs:173:12:173:15 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:197:13:197:13 | a [MyInt] | main.rs:197:13:197:17 | ... + ... [MyInt] | provenance | |
|
||||
| main.rs:197:13:197:17 | ... + ... [MyInt] | main.rs:197:9:197:9 | c [MyInt] | provenance | |
|
||||
| main.rs:198:10:198:10 | c [MyInt] | main.rs:198:10:198:16 | c.value | provenance | |
|
||||
| main.rs:205:9:205:9 | a [MyInt] | main.rs:173:12:173:15 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:205:9:205:9 | a [MyInt] | main.rs:207:13:207:20 | a.add(...) [MyInt] | provenance | |
|
||||
| main.rs:205:13:205:38 | MyInt {...} [MyInt] | main.rs:205:9:205:9 | a [MyInt] | provenance | |
|
||||
| main.rs:205:28:205:36 | source(...) | main.rs:205:13:205:38 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:207:9:207:9 | d [MyInt] | main.rs:208:10:208:10 | d [MyInt] | provenance | |
|
||||
| main.rs:207:13:207:20 | a.add(...) [MyInt] | main.rs:207:9:207:9 | d [MyInt] | provenance | |
|
||||
| main.rs:208:10:208:10 | d [MyInt] | main.rs:208:10:208:16 | d.value | provenance | |
|
||||
| main.rs:242:18:242:21 | SelfParam [MyInt] | main.rs:242:48:244:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:246:26:246:37 | ...: MyInt [MyInt] | main.rs:246:49:248:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:252:9:252:9 | a [MyInt] | main.rs:254:49:254:49 | a [MyInt] | provenance | |
|
||||
| main.rs:104:22:104:27 | ...: i64 | main.rs:105:14:105:14 | n | provenance | |
|
||||
| main.rs:108:30:110:5 | { ... } | main.rs:138:13:138:25 | mn.get_data() | provenance | |
|
||||
| main.rs:109:35:109:43 | source(...) | main.rs:108:30:110:5 | { ... } | provenance | |
|
||||
| main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | provenance | |
|
||||
| main.rs:118:28:118:33 | ...: i64 | main.rs:119:14:119:14 | n | provenance | |
|
||||
| main.rs:122:36:124:5 | { ... } | main.rs:132:13:132:30 | x.get_data_trait() | provenance | |
|
||||
| main.rs:122:36:124:5 | { ... } | main.rs:142:13:142:31 | mn.get_data_trait() | provenance | |
|
||||
| main.rs:123:35:123:44 | source(...) | main.rs:122:36:124:5 | { ... } | provenance | |
|
||||
| main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | provenance | |
|
||||
| main.rs:132:9:132:9 | a | main.rs:133:10:133:10 | a | provenance | |
|
||||
| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:132:9:132:9 | a | provenance | |
|
||||
| main.rs:138:9:138:9 | a | main.rs:139:10:139:10 | a | provenance | |
|
||||
| main.rs:138:13:138:25 | mn.get_data() | main.rs:138:9:138:9 | a | provenance | |
|
||||
| main.rs:142:9:142:9 | a | main.rs:143:10:143:10 | a | provenance | |
|
||||
| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:142:9:142:9 | a | provenance | |
|
||||
| main.rs:149:9:149:9 | a | main.rs:150:21:150:21 | a | provenance | |
|
||||
| main.rs:149:13:149:22 | source(...) | main.rs:149:9:149:9 | a | provenance | |
|
||||
| main.rs:150:21:150:21 | a | main.rs:118:28:118:33 | ...: i64 | provenance | |
|
||||
| main.rs:155:9:155:9 | a | main.rs:156:16:156:16 | a | provenance | |
|
||||
| main.rs:155:13:155:21 | source(...) | main.rs:155:9:155:9 | a | provenance | |
|
||||
| main.rs:156:16:156:16 | a | main.rs:104:22:104:27 | ...: i64 | provenance | |
|
||||
| main.rs:159:9:159:9 | a | main.rs:160:22:160:22 | a | provenance | |
|
||||
| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | a | provenance | |
|
||||
| main.rs:160:22:160:22 | a | main.rs:118:28:118:33 | ...: i64 | provenance | |
|
||||
| main.rs:166:9:166:9 | a | main.rs:167:34:167:34 | a | provenance | |
|
||||
| main.rs:166:13:166:22 | source(...) | main.rs:166:9:166:9 | a | provenance | |
|
||||
| main.rs:167:9:167:9 | b | main.rs:168:10:168:10 | b | provenance | |
|
||||
| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:167:9:167:9 | b | provenance | |
|
||||
| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | provenance | |
|
||||
| main.rs:167:34:167:34 | a | main.rs:167:13:167:35 | x.data_through_trait(...) | provenance | |
|
||||
| main.rs:173:9:173:9 | a | main.rs:174:29:174:29 | a | provenance | |
|
||||
| main.rs:173:13:173:21 | source(...) | main.rs:173:9:173:9 | a | provenance | |
|
||||
| main.rs:174:9:174:9 | b | main.rs:175:10:175:10 | b | provenance | |
|
||||
| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:174:9:174:9 | b | provenance | |
|
||||
| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | provenance | |
|
||||
| main.rs:174:29:174:29 | a | main.rs:174:13:174:30 | mn.data_through(...) | provenance | |
|
||||
| main.rs:178:9:178:9 | a | main.rs:179:35:179:35 | a | provenance | |
|
||||
| main.rs:178:13:178:22 | source(...) | main.rs:178:9:178:9 | a | provenance | |
|
||||
| main.rs:179:9:179:9 | b | main.rs:180:10:180:10 | b | provenance | |
|
||||
| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:179:9:179:9 | b | provenance | |
|
||||
| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | provenance | |
|
||||
| main.rs:179:35:179:35 | a | main.rs:179:13:179:36 | mn.data_through_trait(...) | provenance | |
|
||||
| main.rs:187:9:187:9 | a | main.rs:188:25:188:25 | a | provenance | |
|
||||
| main.rs:187:13:187:21 | source(...) | main.rs:187:9:187:9 | a | provenance | |
|
||||
| main.rs:188:25:188:25 | a | main.rs:104:22:104:27 | ...: i64 | provenance | |
|
||||
| main.rs:193:9:193:9 | a | main.rs:194:38:194:38 | a | provenance | |
|
||||
| main.rs:193:13:193:22 | source(...) | main.rs:193:9:193:9 | a | provenance | |
|
||||
| main.rs:194:9:194:9 | b | main.rs:195:10:195:10 | b | provenance | |
|
||||
| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:194:9:194:9 | b | provenance | |
|
||||
| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | provenance | |
|
||||
| main.rs:194:38:194:38 | a | main.rs:194:13:194:39 | ...::data_through(...) | provenance | |
|
||||
| main.rs:206:12:206:17 | ...: i64 | main.rs:207:24:207:24 | n | provenance | |
|
||||
| main.rs:207:9:207:26 | MyInt {...} [MyInt] | main.rs:206:28:208:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:207:24:207:24 | n | main.rs:207:9:207:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:212:9:212:9 | n [MyInt] | main.rs:213:9:213:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:212:13:212:34 | ...::new(...) [MyInt] | main.rs:212:9:212:9 | n [MyInt] | provenance | |
|
||||
| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | provenance | |
|
||||
| main.rs:212:24:212:33 | source(...) | main.rs:212:13:212:34 | ...::new(...) [MyInt] | provenance | |
|
||||
| main.rs:213:9:213:26 | MyInt {...} [MyInt] | main.rs:213:24:213:24 | m | provenance | |
|
||||
| main.rs:213:24:213:24 | m | main.rs:214:10:214:10 | m | provenance | |
|
||||
| main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:222:24:222:27 | self [MyInt] | provenance | |
|
||||
| main.rs:222:9:222:35 | MyInt {...} [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:222:24:222:27 | self [MyInt] | main.rs:222:24:222:33 | self.value | provenance | |
|
||||
| main.rs:222:24:222:33 | self.value | main.rs:222:9:222:35 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:228:25:228:27 | rhs [MyInt] | provenance | |
|
||||
| main.rs:228:10:228:14 | [post] * ... [MyInt] | main.rs:228:11:228:14 | [post] self [&ref, MyInt] | provenance | |
|
||||
| main.rs:228:11:228:14 | [post] self [&ref, MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | provenance | |
|
||||
| main.rs:228:25:228:27 | rhs [MyInt] | main.rs:228:25:228:33 | rhs.value | provenance | |
|
||||
| main.rs:228:25:228:33 | rhs.value | main.rs:228:10:228:14 | [post] * ... [MyInt] | provenance | |
|
||||
| main.rs:242:9:242:9 | a [MyInt] | main.rs:244:13:244:13 | a [MyInt] | provenance | |
|
||||
| main.rs:242:13:242:38 | MyInt {...} [MyInt] | main.rs:242:9:242:9 | a [MyInt] | provenance | |
|
||||
| main.rs:242:28:242:36 | source(...) | main.rs:242:13:242:38 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:244:9:244:9 | c [MyInt] | main.rs:245:10:245:10 | c [MyInt] | provenance | |
|
||||
| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:244:13:244:13 | a [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] | provenance | |
|
||||
| main.rs:244:13:244:17 | ... + ... [MyInt] | main.rs:244:9:244:9 | c [MyInt] | provenance | |
|
||||
| main.rs:245:10:245:10 | c [MyInt] | main.rs:245:10:245:16 | c.value | provenance | |
|
||||
| main.rs:252:9:252:9 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:252:9:252:9 | a [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] | provenance | |
|
||||
| main.rs:252:13:252:38 | MyInt {...} [MyInt] | main.rs:252:9:252:9 | a [MyInt] | provenance | |
|
||||
| main.rs:252:28:252:36 | source(...) | main.rs:252:13:252:38 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:254:9:254:26 | MyInt {...} [MyInt] | main.rs:254:24:254:24 | c | provenance | |
|
||||
| main.rs:254:24:254:24 | c | main.rs:255:10:255:10 | c | provenance | |
|
||||
| main.rs:254:30:254:53 | ...::take_self(...) [MyInt] | main.rs:254:9:254:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:254:49:254:49 | a [MyInt] | main.rs:242:18:242:21 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:254:49:254:49 | a [MyInt] | main.rs:254:30:254:53 | ...::take_self(...) [MyInt] | provenance | |
|
||||
| main.rs:258:9:258:9 | b [MyInt] | main.rs:259:54:259:54 | b [MyInt] | provenance | |
|
||||
| main.rs:258:13:258:39 | MyInt {...} [MyInt] | main.rs:258:9:258:9 | b [MyInt] | provenance | |
|
||||
| main.rs:258:28:258:37 | source(...) | main.rs:258:13:258:39 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:259:9:259:26 | MyInt {...} [MyInt] | main.rs:259:24:259:24 | c | provenance | |
|
||||
| main.rs:259:24:259:24 | c | main.rs:260:10:260:10 | c | provenance | |
|
||||
| main.rs:259:30:259:55 | ...::take_second(...) [MyInt] | main.rs:259:9:259:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:259:54:259:54 | b [MyInt] | main.rs:246:26:246:37 | ...: MyInt [MyInt] | provenance | |
|
||||
| main.rs:259:54:259:54 | b [MyInt] | main.rs:259:30:259:55 | ...::take_second(...) [MyInt] | provenance | |
|
||||
| main.rs:268:32:272:1 | { ... } | main.rs:287:41:287:54 | async_source(...) | provenance | |
|
||||
| main.rs:269:9:269:9 | a | main.rs:268:32:272:1 | { ... } | provenance | |
|
||||
| main.rs:269:9:269:9 | a | main.rs:270:10:270:10 | a | provenance | |
|
||||
| main.rs:269:13:269:21 | source(...) | main.rs:269:9:269:9 | a | provenance | |
|
||||
| main.rs:279:13:279:13 | c | main.rs:280:14:280:14 | c | provenance | |
|
||||
| main.rs:279:17:279:25 | source(...) | main.rs:279:13:279:13 | c | provenance | |
|
||||
| main.rs:287:9:287:9 | a | main.rs:288:10:288:10 | a | provenance | |
|
||||
| main.rs:287:13:287:55 | ...::block_on(...) | main.rs:287:9:287:9 | a | provenance | |
|
||||
| main.rs:287:41:287:54 | async_source(...) | main.rs:287:13:287:55 | ...::block_on(...) | provenance | MaD:1 |
|
||||
| main.rs:254:9:254:9 | d [MyInt] | main.rs:255:10:255:10 | d [MyInt] | provenance | |
|
||||
| main.rs:254:13:254:20 | a.add(...) [MyInt] | main.rs:254:9:254:9 | d [MyInt] | provenance | |
|
||||
| main.rs:255:10:255:10 | d [MyInt] | main.rs:255:10:255:16 | d.value | provenance | |
|
||||
| main.rs:259:9:259:9 | b [MyInt] | main.rs:261:35:261:35 | b [MyInt] | provenance | |
|
||||
| main.rs:259:13:259:39 | MyInt {...} [MyInt] | main.rs:259:9:259:9 | b [MyInt] | provenance | |
|
||||
| main.rs:259:28:259:37 | source(...) | main.rs:259:13:259:39 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | main.rs:261:32:261:32 | [post] a [MyInt] | provenance | |
|
||||
| main.rs:261:32:261:32 | [post] a [MyInt] | main.rs:262:10:262:10 | a [MyInt] | provenance | |
|
||||
| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | provenance | |
|
||||
| main.rs:261:35:261:35 | b [MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | provenance | |
|
||||
| main.rs:262:10:262:10 | a [MyInt] | main.rs:262:10:262:16 | a.value | provenance | |
|
||||
| main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | provenance | |
|
||||
| main.rs:299:9:299:9 | a [MyInt] | main.rs:301:50:301:50 | a [MyInt] | provenance | |
|
||||
| main.rs:299:13:299:38 | MyInt {...} [MyInt] | main.rs:299:9:299:9 | a [MyInt] | provenance | |
|
||||
| main.rs:299:28:299:36 | source(...) | main.rs:299:13:299:38 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:301:9:301:26 | MyInt {...} [MyInt] | main.rs:301:24:301:24 | c | provenance | |
|
||||
| main.rs:301:24:301:24 | c | main.rs:302:10:302:10 | c | provenance | |
|
||||
| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | main.rs:301:9:301:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | provenance | |
|
||||
| main.rs:301:50:301:50 | a [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | provenance | |
|
||||
| main.rs:305:9:305:9 | b [MyInt] | main.rs:306:55:306:55 | b [MyInt] | provenance | |
|
||||
| main.rs:305:13:305:39 | MyInt {...} [MyInt] | main.rs:305:9:305:9 | b [MyInt] | provenance | |
|
||||
| main.rs:305:28:305:37 | source(...) | main.rs:305:13:305:39 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:306:9:306:26 | MyInt {...} [MyInt] | main.rs:306:24:306:24 | c | provenance | |
|
||||
| main.rs:306:24:306:24 | c | main.rs:307:10:307:10 | c | provenance | |
|
||||
| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | main.rs:306:9:306:26 | MyInt {...} [MyInt] | provenance | |
|
||||
| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | provenance | |
|
||||
| main.rs:306:55:306:55 | b [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | provenance | |
|
||||
| main.rs:315:32:319:1 | { ... } | main.rs:334:41:334:54 | async_source(...) | provenance | |
|
||||
| main.rs:316:9:316:9 | a | main.rs:315:32:319:1 | { ... } | provenance | |
|
||||
| main.rs:316:9:316:9 | a | main.rs:317:10:317:10 | a | provenance | |
|
||||
| main.rs:316:13:316:21 | source(...) | main.rs:316:9:316:9 | a | provenance | |
|
||||
| main.rs:326:13:326:13 | c | main.rs:327:14:327:14 | c | provenance | |
|
||||
| main.rs:326:17:326:25 | source(...) | main.rs:326:13:326:13 | c | provenance | |
|
||||
| main.rs:334:9:334:9 | a | main.rs:335:10:335:10 | a | provenance | |
|
||||
| main.rs:334:13:334:55 | ...::block_on(...) | main.rs:334:9:334:9 | a | provenance | |
|
||||
| main.rs:334:41:334:54 | async_source(...) | main.rs:334:13:334:55 | ...::block_on(...) | provenance | MaD:1 |
|
||||
nodes
|
||||
| main.rs:12:28:14:1 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:13:5:13:13 | source(...) | semmle.label | source(...) |
|
||||
@@ -179,94 +219,138 @@ nodes
|
||||
| main.rs:86:13:86:27 | pass_through(...) | semmle.label | pass_through(...) |
|
||||
| main.rs:86:26:86:26 | a | semmle.label | a |
|
||||
| main.rs:87:10:87:10 | b | semmle.label | b |
|
||||
| main.rs:98:22:98:27 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:99:14:99:14 | n | semmle.label | n |
|
||||
| main.rs:102:30:108:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:106:13:106:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:110:27:110:32 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:110:42:116:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:121:9:121:9 | a | semmle.label | a |
|
||||
| main.rs:121:13:121:25 | mn.get_data() | semmle.label | mn.get_data() |
|
||||
| main.rs:122:10:122:10 | a | semmle.label | a |
|
||||
| main.rs:127:9:127:9 | a | semmle.label | a |
|
||||
| main.rs:127:13:127:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:128:16:128:16 | a | semmle.label | a |
|
||||
| main.rs:133:9:133:9 | a | semmle.label | a |
|
||||
| main.rs:133:13:133:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:134:9:134:9 | b | semmle.label | b |
|
||||
| main.rs:134:13:134:30 | mn.data_through(...) | semmle.label | mn.data_through(...) |
|
||||
| main.rs:134:29:134:29 | a | semmle.label | a |
|
||||
| main.rs:135:10:135:10 | b | semmle.label | b |
|
||||
| main.rs:140:9:140:9 | a | semmle.label | a |
|
||||
| main.rs:140:13:140:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:141:25:141:25 | a | semmle.label | a |
|
||||
| main.rs:146:9:146:9 | a | semmle.label | a |
|
||||
| main.rs:146:13:146:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:147:9:147:9 | b | semmle.label | b |
|
||||
| main.rs:147:13:147:39 | ...::data_through(...) | semmle.label | ...::data_through(...) |
|
||||
| main.rs:147:38:147:38 | a | semmle.label | a |
|
||||
| main.rs:148:10:148:10 | b | semmle.label | b |
|
||||
| main.rs:159:12:159:17 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:159:28:161:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:160:9:160:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:160:24:160:24 | n | semmle.label | n |
|
||||
| main.rs:165:9:165:9 | n [MyInt] | semmle.label | n [MyInt] |
|
||||
| main.rs:165:13:165:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] |
|
||||
| main.rs:165:24:165:33 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:166:9:166:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:166:24:166:24 | m | semmle.label | m |
|
||||
| main.rs:167:10:167:10 | m | semmle.label | m |
|
||||
| main.rs:173:12:173:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] |
|
||||
| main.rs:173:42:176:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:175:9:175:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:175:24:175:27 | self [MyInt] | semmle.label | self [MyInt] |
|
||||
| main.rs:175:24:175:33 | self.value | semmle.label | self.value |
|
||||
| main.rs:195:9:195:9 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:195:13:195:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:195:28:195:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:197:9:197:9 | c [MyInt] | semmle.label | c [MyInt] |
|
||||
| main.rs:197:13:197:13 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:197:13:197:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] |
|
||||
| main.rs:198:10:198:10 | c [MyInt] | semmle.label | c [MyInt] |
|
||||
| main.rs:198:10:198:16 | c.value | semmle.label | c.value |
|
||||
| main.rs:205:9:205:9 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:205:13:205:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:205:28:205:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:207:9:207:9 | d [MyInt] | semmle.label | d [MyInt] |
|
||||
| main.rs:207:13:207:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] |
|
||||
| main.rs:208:10:208:10 | d [MyInt] | semmle.label | d [MyInt] |
|
||||
| main.rs:208:10:208:16 | d.value | semmle.label | d.value |
|
||||
| main.rs:242:18:242:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] |
|
||||
| main.rs:242:48:244:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:246:26:246:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] |
|
||||
| main.rs:246:49:248:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:104:22:104:27 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:105:14:105:14 | n | semmle.label | n |
|
||||
| main.rs:108:30:110:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:109:35:109:43 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:112:27:112:32 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:112:42:114:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:118:28:118:33 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:119:14:119:14 | n | semmle.label | n |
|
||||
| main.rs:122:36:124:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:123:35:123:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:126:33:126:38 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:126:48:128:5 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:132:9:132:9 | a | semmle.label | a |
|
||||
| main.rs:132:13:132:30 | x.get_data_trait() | semmle.label | x.get_data_trait() |
|
||||
| main.rs:133:10:133:10 | a | semmle.label | a |
|
||||
| main.rs:138:9:138:9 | a | semmle.label | a |
|
||||
| main.rs:138:13:138:25 | mn.get_data() | semmle.label | mn.get_data() |
|
||||
| main.rs:139:10:139:10 | a | semmle.label | a |
|
||||
| main.rs:142:9:142:9 | a | semmle.label | a |
|
||||
| main.rs:142:13:142:31 | mn.get_data_trait() | semmle.label | mn.get_data_trait() |
|
||||
| main.rs:143:10:143:10 | a | semmle.label | a |
|
||||
| main.rs:149:9:149:9 | a | semmle.label | a |
|
||||
| main.rs:149:13:149:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:150:21:150:21 | a | semmle.label | a |
|
||||
| main.rs:155:9:155:9 | a | semmle.label | a |
|
||||
| main.rs:155:13:155:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:156:16:156:16 | a | semmle.label | a |
|
||||
| main.rs:159:9:159:9 | a | semmle.label | a |
|
||||
| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:160:22:160:22 | a | semmle.label | a |
|
||||
| main.rs:166:9:166:9 | a | semmle.label | a |
|
||||
| main.rs:166:13:166:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:167:9:167:9 | b | semmle.label | b |
|
||||
| main.rs:167:13:167:35 | x.data_through_trait(...) | semmle.label | x.data_through_trait(...) |
|
||||
| main.rs:167:34:167:34 | a | semmle.label | a |
|
||||
| main.rs:168:10:168:10 | b | semmle.label | b |
|
||||
| main.rs:173:9:173:9 | a | semmle.label | a |
|
||||
| main.rs:173:13:173:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:174:9:174:9 | b | semmle.label | b |
|
||||
| main.rs:174:13:174:30 | mn.data_through(...) | semmle.label | mn.data_through(...) |
|
||||
| main.rs:174:29:174:29 | a | semmle.label | a |
|
||||
| main.rs:175:10:175:10 | b | semmle.label | b |
|
||||
| main.rs:178:9:178:9 | a | semmle.label | a |
|
||||
| main.rs:178:13:178:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:179:9:179:9 | b | semmle.label | b |
|
||||
| main.rs:179:13:179:36 | mn.data_through_trait(...) | semmle.label | mn.data_through_trait(...) |
|
||||
| main.rs:179:35:179:35 | a | semmle.label | a |
|
||||
| main.rs:180:10:180:10 | b | semmle.label | b |
|
||||
| main.rs:187:9:187:9 | a | semmle.label | a |
|
||||
| main.rs:187:13:187:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:188:25:188:25 | a | semmle.label | a |
|
||||
| main.rs:193:9:193:9 | a | semmle.label | a |
|
||||
| main.rs:193:13:193:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:194:9:194:9 | b | semmle.label | b |
|
||||
| main.rs:194:13:194:39 | ...::data_through(...) | semmle.label | ...::data_through(...) |
|
||||
| main.rs:194:38:194:38 | a | semmle.label | a |
|
||||
| main.rs:195:10:195:10 | b | semmle.label | b |
|
||||
| main.rs:206:12:206:17 | ...: i64 | semmle.label | ...: i64 |
|
||||
| main.rs:206:28:208:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:207:9:207:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:207:24:207:24 | n | semmle.label | n |
|
||||
| main.rs:212:9:212:9 | n [MyInt] | semmle.label | n [MyInt] |
|
||||
| main.rs:212:13:212:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] |
|
||||
| main.rs:212:24:212:33 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:213:9:213:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:213:24:213:24 | m | semmle.label | m |
|
||||
| main.rs:214:10:214:10 | m | semmle.label | m |
|
||||
| main.rs:220:12:220:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] |
|
||||
| main.rs:220:42:223:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:222:9:222:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:222:24:222:27 | self [MyInt] | semmle.label | self [MyInt] |
|
||||
| main.rs:222:24:222:33 | self.value | semmle.label | self.value |
|
||||
| main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | semmle.label | SelfParam [Return] [&ref, MyInt] |
|
||||
| main.rs:227:30:227:39 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] |
|
||||
| main.rs:228:10:228:14 | [post] * ... [MyInt] | semmle.label | [post] * ... [MyInt] |
|
||||
| main.rs:228:11:228:14 | [post] self [&ref, MyInt] | semmle.label | [post] self [&ref, MyInt] |
|
||||
| main.rs:228:25:228:27 | rhs [MyInt] | semmle.label | rhs [MyInt] |
|
||||
| main.rs:228:25:228:33 | rhs.value | semmle.label | rhs.value |
|
||||
| main.rs:242:9:242:9 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:242:13:242:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:242:28:242:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:244:9:244:9 | c [MyInt] | semmle.label | c [MyInt] |
|
||||
| main.rs:244:13:244:13 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:244:13:244:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] |
|
||||
| main.rs:245:10:245:10 | c [MyInt] | semmle.label | c [MyInt] |
|
||||
| main.rs:245:10:245:16 | c.value | semmle.label | c.value |
|
||||
| main.rs:252:9:252:9 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:252:13:252:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:252:28:252:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:254:9:254:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:254:24:254:24 | c | semmle.label | c |
|
||||
| main.rs:254:30:254:53 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] |
|
||||
| main.rs:254:49:254:49 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:255:10:255:10 | c | semmle.label | c |
|
||||
| main.rs:258:9:258:9 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:258:13:258:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:258:28:258:37 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:259:9:259:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:259:24:259:24 | c | semmle.label | c |
|
||||
| main.rs:259:30:259:55 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] |
|
||||
| main.rs:259:54:259:54 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:260:10:260:10 | c | semmle.label | c |
|
||||
| main.rs:268:32:272:1 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:269:9:269:9 | a | semmle.label | a |
|
||||
| main.rs:269:13:269:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:270:10:270:10 | a | semmle.label | a |
|
||||
| main.rs:279:13:279:13 | c | semmle.label | c |
|
||||
| main.rs:279:17:279:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:280:14:280:14 | c | semmle.label | c |
|
||||
| main.rs:287:9:287:9 | a | semmle.label | a |
|
||||
| main.rs:287:13:287:55 | ...::block_on(...) | semmle.label | ...::block_on(...) |
|
||||
| main.rs:287:41:287:54 | async_source(...) | semmle.label | async_source(...) |
|
||||
| main.rs:288:10:288:10 | a | semmle.label | a |
|
||||
| main.rs:254:9:254:9 | d [MyInt] | semmle.label | d [MyInt] |
|
||||
| main.rs:254:13:254:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] |
|
||||
| main.rs:255:10:255:10 | d [MyInt] | semmle.label | d [MyInt] |
|
||||
| main.rs:255:10:255:16 | d.value | semmle.label | d.value |
|
||||
| main.rs:259:9:259:9 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:259:13:259:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:259:28:259:37 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | semmle.label | [post] &mut a [&ref, MyInt] |
|
||||
| main.rs:261:32:261:32 | [post] a [MyInt] | semmle.label | [post] a [MyInt] |
|
||||
| main.rs:261:35:261:35 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:262:10:262:10 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:262:10:262:16 | a.value | semmle.label | a.value |
|
||||
| main.rs:289:18:289:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] |
|
||||
| main.rs:289:48:291:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:293:26:293:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] |
|
||||
| main.rs:293:49:295:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] |
|
||||
| main.rs:299:9:299:9 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:299:13:299:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:299:28:299:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:301:9:301:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:301:24:301:24 | c | semmle.label | c |
|
||||
| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] |
|
||||
| main.rs:301:50:301:50 | a [MyInt] | semmle.label | a [MyInt] |
|
||||
| main.rs:302:10:302:10 | c | semmle.label | c |
|
||||
| main.rs:305:9:305:9 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:305:13:305:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:305:28:305:37 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:306:9:306:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] |
|
||||
| main.rs:306:24:306:24 | c | semmle.label | c |
|
||||
| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] |
|
||||
| main.rs:306:55:306:55 | b [MyInt] | semmle.label | b [MyInt] |
|
||||
| main.rs:307:10:307:10 | c | semmle.label | c |
|
||||
| main.rs:315:32:319:1 | { ... } | semmle.label | { ... } |
|
||||
| main.rs:316:9:316:9 | a | semmle.label | a |
|
||||
| main.rs:316:13:316:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:317:10:317:10 | a | semmle.label | a |
|
||||
| main.rs:326:13:326:13 | c | semmle.label | c |
|
||||
| main.rs:326:17:326:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:327:14:327:14 | c | semmle.label | c |
|
||||
| main.rs:334:9:334:9 | a | semmle.label | a |
|
||||
| main.rs:334:13:334:55 | ...::block_on(...) | semmle.label | ...::block_on(...) |
|
||||
| main.rs:334:41:334:54 | async_source(...) | semmle.label | async_source(...) |
|
||||
| main.rs:335:10:335:10 | a | semmle.label | a |
|
||||
subpaths
|
||||
| main.rs:38:23:38:31 | source(...) | main.rs:26:28:26:33 | ...: i64 | main.rs:26:17:26:25 | SelfParam [Return] [&ref, MyStruct] | main.rs:38:6:38:11 | [post] &mut a [&ref, MyStruct] |
|
||||
| main.rs:39:10:39:10 | a [MyStruct] | main.rs:30:17:30:21 | SelfParam [&ref, MyStruct] | main.rs:30:31:32:5 | { ... } | main.rs:39:10:39:21 | a.get_data() |
|
||||
@@ -275,13 +359,16 @@ subpaths
|
||||
| main.rs:67:26:67:26 | a | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:67:13:67:27 | pass_through(...) |
|
||||
| main.rs:72:26:75:5 | { ... } | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:72:13:75:6 | pass_through(...) |
|
||||
| main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | main.rs:82:36:84:5 | { ... } | main.rs:86:13:86:27 | pass_through(...) |
|
||||
| main.rs:134:29:134:29 | a | main.rs:110:27:110:32 | ...: i64 | main.rs:110:42:116:5 | { ... } | main.rs:134:13:134:30 | mn.data_through(...) |
|
||||
| main.rs:147:38:147:38 | a | main.rs:110:27:110:32 | ...: i64 | main.rs:110:42:116:5 | { ... } | main.rs:147:13:147:39 | ...::data_through(...) |
|
||||
| main.rs:165:24:165:33 | source(...) | main.rs:159:12:159:17 | ...: i64 | main.rs:159:28:161:5 | { ... } [MyInt] | main.rs:165:13:165:34 | ...::new(...) [MyInt] |
|
||||
| main.rs:197:13:197:13 | a [MyInt] | main.rs:173:12:173:15 | SelfParam [MyInt] | main.rs:173:42:176:5 | { ... } [MyInt] | main.rs:197:13:197:17 | ... + ... [MyInt] |
|
||||
| main.rs:205:9:205:9 | a [MyInt] | main.rs:173:12:173:15 | SelfParam [MyInt] | main.rs:173:42:176:5 | { ... } [MyInt] | main.rs:207:13:207:20 | a.add(...) [MyInt] |
|
||||
| main.rs:254:49:254:49 | a [MyInt] | main.rs:242:18:242:21 | SelfParam [MyInt] | main.rs:242:48:244:5 | { ... } [MyInt] | main.rs:254:30:254:53 | ...::take_self(...) [MyInt] |
|
||||
| main.rs:259:54:259:54 | b [MyInt] | main.rs:246:26:246:37 | ...: MyInt [MyInt] | main.rs:246:49:248:5 | { ... } [MyInt] | main.rs:259:30:259:55 | ...::take_second(...) [MyInt] |
|
||||
| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:167:13:167:35 | x.data_through_trait(...) |
|
||||
| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:174:13:174:30 | mn.data_through(...) |
|
||||
| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:179:13:179:36 | mn.data_through_trait(...) |
|
||||
| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:194:13:194:39 | ...::data_through(...) |
|
||||
| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | main.rs:206:28:208:5 | { ... } [MyInt] | main.rs:212:13:212:34 | ...::new(...) [MyInt] |
|
||||
| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] |
|
||||
| main.rs:252:9:252:9 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] |
|
||||
| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] |
|
||||
| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] |
|
||||
| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] |
|
||||
testFailures
|
||||
#select
|
||||
| main.rs:18:10:18:10 | a | main.rs:13:5:13:13 | source(...) | main.rs:18:10:18:10 | a | $@ | main.rs:13:5:13:13 | source(...) | source(...) |
|
||||
@@ -291,16 +378,23 @@ testFailures
|
||||
| main.rs:68:10:68:10 | b | main.rs:66:13:66:21 | source(...) | main.rs:68:10:68:10 | b | $@ | main.rs:66:13:66:21 | source(...) | source(...) |
|
||||
| main.rs:76:10:76:10 | a | main.rs:74:9:74:18 | source(...) | main.rs:76:10:76:10 | a | $@ | main.rs:74:9:74:18 | source(...) | source(...) |
|
||||
| main.rs:87:10:87:10 | b | main.rs:80:13:80:22 | source(...) | main.rs:87:10:87:10 | b | $@ | main.rs:80:13:80:22 | source(...) | source(...) |
|
||||
| main.rs:99:14:99:14 | n | main.rs:127:13:127:21 | source(...) | main.rs:99:14:99:14 | n | $@ | main.rs:127:13:127:21 | source(...) | source(...) |
|
||||
| main.rs:99:14:99:14 | n | main.rs:140:13:140:21 | source(...) | main.rs:99:14:99:14 | n | $@ | main.rs:140:13:140:21 | source(...) | source(...) |
|
||||
| main.rs:122:10:122:10 | a | main.rs:106:13:106:21 | source(...) | main.rs:122:10:122:10 | a | $@ | main.rs:106:13:106:21 | source(...) | source(...) |
|
||||
| main.rs:135:10:135:10 | b | main.rs:133:13:133:21 | source(...) | main.rs:135:10:135:10 | b | $@ | main.rs:133:13:133:21 | source(...) | source(...) |
|
||||
| main.rs:148:10:148:10 | b | main.rs:146:13:146:22 | source(...) | main.rs:148:10:148:10 | b | $@ | main.rs:146:13:146:22 | source(...) | source(...) |
|
||||
| main.rs:167:10:167:10 | m | main.rs:165:24:165:33 | source(...) | main.rs:167:10:167:10 | m | $@ | main.rs:165:24:165:33 | source(...) | source(...) |
|
||||
| main.rs:198:10:198:16 | c.value | main.rs:195:28:195:36 | source(...) | main.rs:198:10:198:16 | c.value | $@ | main.rs:195:28:195:36 | source(...) | source(...) |
|
||||
| main.rs:208:10:208:16 | d.value | main.rs:205:28:205:36 | source(...) | main.rs:208:10:208:16 | d.value | $@ | main.rs:205:28:205:36 | source(...) | source(...) |
|
||||
| main.rs:255:10:255:10 | c | main.rs:252:28:252:36 | source(...) | main.rs:255:10:255:10 | c | $@ | main.rs:252:28:252:36 | source(...) | source(...) |
|
||||
| main.rs:260:10:260:10 | c | main.rs:258:28:258:37 | source(...) | main.rs:260:10:260:10 | c | $@ | main.rs:258:28:258:37 | source(...) | source(...) |
|
||||
| main.rs:270:10:270:10 | a | main.rs:269:13:269:21 | source(...) | main.rs:270:10:270:10 | a | $@ | main.rs:269:13:269:21 | source(...) | source(...) |
|
||||
| main.rs:280:14:280:14 | c | main.rs:279:17:279:25 | source(...) | main.rs:280:14:280:14 | c | $@ | main.rs:279:17:279:25 | source(...) | source(...) |
|
||||
| main.rs:288:10:288:10 | a | main.rs:269:13:269:21 | source(...) | main.rs:288:10:288:10 | a | $@ | main.rs:269:13:269:21 | source(...) | source(...) |
|
||||
| main.rs:105:14:105:14 | n | main.rs:155:13:155:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:155:13:155:21 | source(...) | source(...) |
|
||||
| main.rs:105:14:105:14 | n | main.rs:187:13:187:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:187:13:187:21 | source(...) | source(...) |
|
||||
| main.rs:119:14:119:14 | n | main.rs:149:13:149:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:149:13:149:22 | source(...) | source(...) |
|
||||
| main.rs:119:14:119:14 | n | main.rs:159:13:159:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:159:13:159:22 | source(...) | source(...) |
|
||||
| main.rs:133:10:133:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:133:10:133:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) |
|
||||
| main.rs:139:10:139:10 | a | main.rs:109:35:109:43 | source(...) | main.rs:139:10:139:10 | a | $@ | main.rs:109:35:109:43 | source(...) | source(...) |
|
||||
| main.rs:143:10:143:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:143:10:143:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) |
|
||||
| main.rs:168:10:168:10 | b | main.rs:166:13:166:22 | source(...) | main.rs:168:10:168:10 | b | $@ | main.rs:166:13:166:22 | source(...) | source(...) |
|
||||
| main.rs:175:10:175:10 | b | main.rs:173:13:173:21 | source(...) | main.rs:175:10:175:10 | b | $@ | main.rs:173:13:173:21 | source(...) | source(...) |
|
||||
| main.rs:180:10:180:10 | b | main.rs:178:13:178:22 | source(...) | main.rs:180:10:180:10 | b | $@ | main.rs:178:13:178:22 | source(...) | source(...) |
|
||||
| main.rs:195:10:195:10 | b | main.rs:193:13:193:22 | source(...) | main.rs:195:10:195:10 | b | $@ | main.rs:193:13:193:22 | source(...) | source(...) |
|
||||
| main.rs:214:10:214:10 | m | main.rs:212:24:212:33 | source(...) | main.rs:214:10:214:10 | m | $@ | main.rs:212:24:212:33 | source(...) | source(...) |
|
||||
| main.rs:245:10:245:16 | c.value | main.rs:242:28:242:36 | source(...) | main.rs:245:10:245:16 | c.value | $@ | main.rs:242:28:242:36 | source(...) | source(...) |
|
||||
| main.rs:255:10:255:16 | d.value | main.rs:252:28:252:36 | source(...) | main.rs:255:10:255:16 | d.value | $@ | main.rs:252:28:252:36 | source(...) | source(...) |
|
||||
| main.rs:262:10:262:16 | a.value | main.rs:259:28:259:37 | source(...) | main.rs:262:10:262:16 | a.value | $@ | main.rs:259:28:259:37 | source(...) | source(...) |
|
||||
| main.rs:302:10:302:10 | c | main.rs:299:28:299:36 | source(...) | main.rs:302:10:302:10 | c | $@ | main.rs:299:28:299:36 | source(...) | source(...) |
|
||||
| main.rs:307:10:307:10 | c | main.rs:305:28:305:37 | source(...) | main.rs:307:10:307:10 | c | $@ | main.rs:305:28:305:37 | source(...) | source(...) |
|
||||
| main.rs:317:10:317:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:317:10:317:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) |
|
||||
| main.rs:327:14:327:14 | c | main.rs:326:17:326:25 | source(...) | main.rs:327:14:327:14 | c | $@ | main.rs:326:17:326:25 | source(...) | source(...) |
|
||||
| main.rs:335:10:335:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:335:10:335:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) |
|
||||
|
||||
@@ -94,38 +94,78 @@ struct MyFlag {
|
||||
flag: bool,
|
||||
}
|
||||
|
||||
trait MyTrait {
|
||||
fn data_in_trait(self, n: i64);
|
||||
fn get_data_trait(self) -> i64;
|
||||
fn data_through_trait(self, n: i64) -> i64;
|
||||
}
|
||||
|
||||
impl MyFlag {
|
||||
fn data_in(self, n: i64) {
|
||||
sink(n); // $ hasValueFlow=1 hasValueFlow=8
|
||||
}
|
||||
|
||||
fn get_data(self) -> i64 {
|
||||
if self.flag {
|
||||
0
|
||||
} else {
|
||||
source(2)
|
||||
}
|
||||
if self.flag { 0 } else { source(2) }
|
||||
}
|
||||
|
||||
fn data_through(self, n: i64) -> i64 {
|
||||
if self.flag {
|
||||
0
|
||||
} else {
|
||||
n
|
||||
}
|
||||
if self.flag { 0 } else { n }
|
||||
}
|
||||
}
|
||||
|
||||
impl MyTrait for MyFlag {
|
||||
fn data_in_trait(self, n: i64) {
|
||||
sink(n); // $ hasValueFlow=22 $ hasValueFlow=31
|
||||
}
|
||||
|
||||
fn get_data_trait(self) -> i64 {
|
||||
if self.flag { 0 } else { source(21) }
|
||||
}
|
||||
|
||||
fn data_through_trait(self, n: i64) -> i64 {
|
||||
if self.flag { 0 } else { n }
|
||||
}
|
||||
}
|
||||
|
||||
fn data_out_of_method_trait_dispatch<T: MyTrait>(x: T) {
|
||||
let a = x.get_data_trait();
|
||||
sink(a); // $ hasValueFlow=21
|
||||
}
|
||||
|
||||
fn data_out_of_method() {
|
||||
let mn = MyFlag { flag: true };
|
||||
let a = mn.get_data();
|
||||
sink(a); // $ hasValueFlow=2
|
||||
|
||||
let mn = MyFlag { flag: true };
|
||||
let a = mn.get_data_trait();
|
||||
sink(a); // $ hasValueFlow=21
|
||||
|
||||
data_out_of_method_trait_dispatch(MyFlag { flag: true });
|
||||
}
|
||||
|
||||
fn data_in_to_method_call_trait_dispatch<T: MyTrait>(x: T) {
|
||||
let a = source(31);
|
||||
x.data_in_trait(a);
|
||||
}
|
||||
|
||||
fn data_in_to_method_call() {
|
||||
let mn = MyFlag { flag: true };
|
||||
let a = source(1);
|
||||
mn.data_in(a)
|
||||
mn.data_in(a);
|
||||
|
||||
let mn = MyFlag { flag: true };
|
||||
let a = source(22);
|
||||
mn.data_in_trait(a);
|
||||
|
||||
data_in_to_method_call_trait_dispatch(MyFlag { flag: true });
|
||||
}
|
||||
|
||||
fn data_through_method_trait_dispatch<T: MyTrait>(x: T) {
|
||||
let a = source(34);
|
||||
let b = x.data_through_trait(a);
|
||||
sink(b); // $ hasValueFlow=34
|
||||
}
|
||||
|
||||
fn data_through_method() {
|
||||
@@ -133,6 +173,13 @@ fn data_through_method() {
|
||||
let a = source(4);
|
||||
let b = mn.data_through(a);
|
||||
sink(b); // $ hasValueFlow=4
|
||||
|
||||
let mn = MyFlag { flag: true };
|
||||
let a = source(24);
|
||||
let b = mn.data_through_trait(a);
|
||||
sink(b); // $ hasValueFlow=24
|
||||
|
||||
data_through_method_trait_dispatch(MyFlag { flag: true });
|
||||
}
|
||||
|
||||
fn data_in_to_method_called_as_function() {
|
||||
@@ -212,7 +259,7 @@ fn test_operator_overloading() {
|
||||
let b = MyInt { value: source(34) };
|
||||
// The line below is what `*=` desugars to.
|
||||
MulAssign::mul_assign(&mut a, b);
|
||||
sink(a.value); // $ MISSING: hasValueFlow=34
|
||||
sink(a.value); // $ hasValueFlow=34
|
||||
|
||||
let mut a = MyInt { value: 0 };
|
||||
let b = MyInt { value: source(35) };
|
||||
@@ -230,13 +277,13 @@ fn test_operator_overloading() {
|
||||
sink(c); // $ hasTaintFlow=28 MISSING: hasValueFlow=28
|
||||
}
|
||||
|
||||
trait MyTrait {
|
||||
trait MyTrait2 {
|
||||
type Output;
|
||||
fn take_self(self, _other: Self::Output) -> Self::Output;
|
||||
fn take_second(self, other: Self::Output) -> Self::Output;
|
||||
}
|
||||
|
||||
impl MyTrait for MyInt {
|
||||
impl MyTrait2 for MyInt {
|
||||
type Output = MyInt;
|
||||
|
||||
fn take_self(self, _other: MyInt) -> MyInt {
|
||||
@@ -251,17 +298,17 @@ impl MyTrait for MyInt {
|
||||
fn data_through_trait_method_called_as_function() {
|
||||
let a = MyInt { value: source(8) };
|
||||
let b = MyInt { value: 2 };
|
||||
let MyInt { value: c } = MyTrait::take_self(a, b);
|
||||
let MyInt { value: c } = MyTrait2::take_self(a, b);
|
||||
sink(c); // $ hasValueFlow=8
|
||||
|
||||
let a = MyInt { value: 0 };
|
||||
let b = MyInt { value: source(37) };
|
||||
let MyInt { value: c } = MyTrait::take_second(a, b);
|
||||
let MyInt { value: c } = MyTrait2::take_second(a, b);
|
||||
sink(c); // $ hasValueFlow=37
|
||||
|
||||
let a = MyInt { value: 0 };
|
||||
let b = MyInt { value: source(38) };
|
||||
let MyInt { value: c } = MyTrait::take_self(a, b);
|
||||
let MyInt { value: c } = MyTrait2::take_self(a, b);
|
||||
sink(c);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,73 +23,93 @@
|
||||
| main.rs:80:13:80:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:86:13:86:27 | pass_through(...) | main.rs:82:5:84:5 | fn pass_through |
|
||||
| main.rs:87:5:87:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:99:9:99:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:106:13:106:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:121:13:121:25 | mn.get_data() | main.rs:102:5:108:5 | fn get_data |
|
||||
| main.rs:122:5:122:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:127:13:127:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:128:5:128:17 | mn.data_in(...) | main.rs:98:5:100:5 | fn data_in |
|
||||
| main.rs:133:13:133:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:134:13:134:30 | mn.data_through(...) | main.rs:110:5:116:5 | fn data_through |
|
||||
| main.rs:135:5:135:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:140:13:140:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:141:5:141:26 | ...::data_in(...) | main.rs:98:5:100:5 | fn data_in |
|
||||
| main.rs:146:13:146:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:147:13:147:39 | ...::data_through(...) | main.rs:110:5:116:5 | fn data_through |
|
||||
| main.rs:148:5:148:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:165:13:165:34 | ...::new(...) | main.rs:158:5:161:5 | fn new |
|
||||
| main.rs:165:24:165:33 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:167:5:167:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:181:10:181:14 | * ... | main.rs:188:5:190:5 | fn deref |
|
||||
| main.rs:189:11:189:15 | * ... | main.rs:188:5:190:5 | fn deref |
|
||||
| main.rs:195:28:195:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:197:13:197:17 | ... + ... | main.rs:173:5:176:5 | fn add |
|
||||
| main.rs:198:5:198:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:201:28:201:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:202:13:202:17 | ... + ... | main.rs:173:5:176:5 | fn add |
|
||||
| main.rs:203:5:203:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:205:28:205:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:207:13:207:20 | a.add(...) | main.rs:173:5:176:5 | fn add |
|
||||
| main.rs:208:5:208:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:212:28:212:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:215:5:215:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:218:28:218:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:219:5:219:10 | ... *= ... | main.rs:180:5:182:5 | fn mul_assign |
|
||||
| main.rs:220:5:220:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:223:28:223:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:226:5:226:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:228:28:228:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:229:13:229:14 | * ... | main.rs:188:5:190:5 | fn deref |
|
||||
| main.rs:230:5:230:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:105:9:105:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:109:35:109:43 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:119:9:119:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:123:35:123:44 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait |
|
||||
| main.rs:133:5:133:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:138:13:138:25 | mn.get_data() | main.rs:108:5:110:5 | fn get_data |
|
||||
| main.rs:139:5:139:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait |
|
||||
| main.rs:143:5:143:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:145:5:145:60 | data_out_of_method_trait_dispatch(...) | main.rs:131:1:134:1 | fn data_out_of_method_trait_dispatch |
|
||||
| main.rs:149:13:149:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:150:5:150:22 | x.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait |
|
||||
| main.rs:155:13:155:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:156:5:156:17 | mn.data_in(...) | main.rs:104:5:106:5 | fn data_in |
|
||||
| main.rs:159:13:159:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:160:5:160:23 | mn.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait |
|
||||
| main.rs:162:5:162:64 | data_in_to_method_call_trait_dispatch(...) | main.rs:148:1:151:1 | fn data_in_to_method_call_trait_dispatch |
|
||||
| main.rs:166:13:166:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait |
|
||||
| main.rs:168:5:168:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:173:13:173:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:112:5:114:5 | fn data_through |
|
||||
| main.rs:175:5:175:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:178:13:178:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait |
|
||||
| main.rs:180:5:180:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:182:5:182:61 | data_through_method_trait_dispatch(...) | main.rs:165:1:169:1 | fn data_through_method_trait_dispatch |
|
||||
| main.rs:187:13:187:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:188:5:188:26 | ...::data_in(...) | main.rs:104:5:106:5 | fn data_in |
|
||||
| main.rs:193:13:193:22 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:112:5:114:5 | fn data_through |
|
||||
| main.rs:195:5:195:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:212:13:212:34 | ...::new(...) | main.rs:205:5:208:5 | fn new |
|
||||
| main.rs:212:24:212:33 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:214:5:214:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:228:10:228:14 | * ... | main.rs:235:5:237:5 | fn deref |
|
||||
| main.rs:236:11:236:15 | * ... | main.rs:235:5:237:5 | fn deref |
|
||||
| main.rs:242:28:242:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:244:13:244:17 | ... + ... | main.rs:220:5:223:5 | fn add |
|
||||
| main.rs:245:5:245:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:248:28:248:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:249:13:249:17 | ... + ... | main.rs:220:5:223:5 | fn add |
|
||||
| main.rs:250:5:250:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:252:28:252:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:254:30:254:53 | ...::take_self(...) | main.rs:242:5:244:5 | fn take_self |
|
||||
| main.rs:255:5:255:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:258:28:258:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:259:30:259:55 | ...::take_second(...) | main.rs:246:5:248:5 | fn take_second |
|
||||
| main.rs:260:5:260:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:263:28:263:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:264:30:264:53 | ...::take_self(...) | main.rs:242:5:244:5 | fn take_self |
|
||||
| main.rs:265:5:265:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:269:13:269:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:270:5:270:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:275:13:275:26 | async_source(...) | main.rs:268:1:272:1 | fn async_source |
|
||||
| main.rs:276:5:276:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:279:17:279:25 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:280:9:280:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:283:5:283:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:287:13:287:55 | ...::block_on(...) | file://:0:0:0:0 | fn block_on |
|
||||
| main.rs:287:41:287:54 | async_source(...) | main.rs:268:1:272:1 | fn async_source |
|
||||
| main.rs:288:5:288:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:290:5:290:62 | ...::block_on(...) | file://:0:0:0:0 | fn block_on |
|
||||
| main.rs:290:33:290:61 | test_async_await_async_part(...) | main.rs:274:1:284:1 | fn test_async_await_async_part |
|
||||
| main.rs:294:5:294:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call |
|
||||
| main.rs:295:5:295:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 |
|
||||
| main.rs:296:5:296:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 |
|
||||
| main.rs:297:5:297:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call |
|
||||
| main.rs:298:5:298:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call |
|
||||
| main.rs:299:5:299:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function |
|
||||
| main.rs:301:5:301:24 | data_out_of_method(...) | main.rs:119:1:123:1 | fn data_out_of_method |
|
||||
| main.rs:302:5:302:28 | data_in_to_method_call(...) | main.rs:125:1:129:1 | fn data_in_to_method_call |
|
||||
| main.rs:303:5:303:25 | data_through_method(...) | main.rs:131:1:136:1 | fn data_through_method |
|
||||
| main.rs:305:5:305:31 | test_operator_overloading(...) | main.rs:193:1:231:1 | fn test_operator_overloading |
|
||||
| main.rs:306:5:306:22 | test_async_await(...) | main.rs:286:1:291:1 | fn test_async_await |
|
||||
| main.rs:254:13:254:20 | a.add(...) | main.rs:220:5:223:5 | fn add |
|
||||
| main.rs:255:5:255:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:259:28:259:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:261:5:261:36 | ...::mul_assign(...) | main.rs:227:5:229:5 | fn mul_assign |
|
||||
| main.rs:262:5:262:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:265:28:265:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:266:5:266:10 | ... *= ... | main.rs:227:5:229:5 | fn mul_assign |
|
||||
| main.rs:267:5:267:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:270:28:270:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:273:5:273:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:275:28:275:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:276:13:276:14 | * ... | main.rs:235:5:237:5 | fn deref |
|
||||
| main.rs:277:5:277:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:299:28:299:36 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:301:30:301:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self |
|
||||
| main.rs:302:5:302:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:305:28:305:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:306:30:306:56 | ...::take_second(...) | main.rs:293:5:295:5 | fn take_second |
|
||||
| main.rs:307:5:307:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:310:28:310:37 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:311:30:311:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self |
|
||||
| main.rs:312:5:312:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:316:13:316:21 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:317:5:317:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:322:13:322:26 | async_source(...) | main.rs:315:1:319:1 | fn async_source |
|
||||
| main.rs:323:5:323:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:326:17:326:25 | source(...) | main.rs:1:1:3:1 | fn source |
|
||||
| main.rs:327:9:327:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:330:5:330:17 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:334:13:334:55 | ...::block_on(...) | file://:0:0:0:0 | fn block_on |
|
||||
| main.rs:334:41:334:54 | async_source(...) | main.rs:315:1:319:1 | fn async_source |
|
||||
| main.rs:335:5:335:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
|
||||
| main.rs:337:5:337:62 | ...::block_on(...) | file://:0:0:0:0 | fn block_on |
|
||||
| main.rs:337:33:337:61 | test_async_await_async_part(...) | main.rs:321:1:331:1 | fn test_async_await_async_part |
|
||||
| main.rs:341:5:341:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call |
|
||||
| main.rs:342:5:342:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 |
|
||||
| main.rs:343:5:343:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 |
|
||||
| main.rs:344:5:344:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call |
|
||||
| main.rs:345:5:345:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call |
|
||||
| main.rs:346:5:346:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function |
|
||||
| main.rs:348:5:348:24 | data_out_of_method(...) | main.rs:136:1:146:1 | fn data_out_of_method |
|
||||
| main.rs:349:5:349:28 | data_in_to_method_call(...) | main.rs:153:1:163:1 | fn data_in_to_method_call |
|
||||
| main.rs:350:5:350:25 | data_through_method(...) | main.rs:171:1:183:1 | fn data_through_method |
|
||||
| main.rs:352:5:352:31 | test_operator_overloading(...) | main.rs:240:1:278:1 | fn test_operator_overloading |
|
||||
| main.rs:353:5:353:22 | test_async_await(...) | main.rs:333:1:338:1 | fn test_async_await |
|
||||
|
||||
@@ -2,8 +2,8 @@ fn source(i: i64) -> i64 {
|
||||
1000 + i
|
||||
}
|
||||
|
||||
fn sink(s: i64) {
|
||||
println!("{}", s);
|
||||
fn sink<T: std::fmt::Debug>(s: T) {
|
||||
println!("{:?}", s);
|
||||
}
|
||||
|
||||
// has a flow model
|
||||
@@ -176,7 +176,10 @@ fn test_set_tuple_element() {
|
||||
}
|
||||
|
||||
// has a flow model
|
||||
pub fn apply<F>(n: i64, f: F) -> i64 where F : FnOnce(i64) -> i64 {
|
||||
pub fn apply<F>(n: i64, f: F) -> i64
|
||||
where
|
||||
F: FnOnce(i64) -> i64,
|
||||
{
|
||||
0
|
||||
}
|
||||
|
||||
@@ -288,6 +291,81 @@ fn test_arg_source() {
|
||||
sink(i) // $ hasValueFlow=i
|
||||
}
|
||||
|
||||
struct MyStruct2(i64);
|
||||
|
||||
impl PartialEq for MyStruct {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for MyStruct2 {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
self.0 == other.0
|
||||
}
|
||||
}
|
||||
|
||||
impl Eq for MyStruct {}
|
||||
|
||||
impl Eq for MyStruct2 {}
|
||||
|
||||
use std::cmp::Ordering;
|
||||
|
||||
impl PartialOrd for MyStruct {
|
||||
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
|
||||
Some(Ordering::Equal)
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialOrd for MyStruct2 {
|
||||
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
|
||||
Some(self.0.cmp(&other.0))
|
||||
}
|
||||
}
|
||||
|
||||
impl Ord for MyStruct {
|
||||
fn cmp(&self, other: &Self) -> Ordering {
|
||||
Ordering::Equal
|
||||
}
|
||||
}
|
||||
|
||||
impl Ord for MyStruct2 {
|
||||
fn cmp(&self, other: &Self) -> Ordering {
|
||||
self.0.cmp(&other.0)
|
||||
}
|
||||
|
||||
fn max(self, other: Self) -> Self {
|
||||
other
|
||||
}
|
||||
}
|
||||
|
||||
fn test_trait_model<T: Ord>(x: T) {
|
||||
let x1 = source(20).max(0);
|
||||
sink(x1); // $ hasValueFlow=20
|
||||
|
||||
let x2 = (MyStruct {
|
||||
field1: source(23),
|
||||
field2: 0,
|
||||
})
|
||||
.max(MyStruct {
|
||||
field1: 0,
|
||||
field2: 0,
|
||||
});
|
||||
sink(x2.field1); // $ hasValueFlow=23
|
||||
|
||||
let x3 = MyStruct2(source(24)).max(MyStruct2(0));
|
||||
sink(x3.0); // no flow, because the model does not apply when the target is in source code
|
||||
|
||||
let x4 = source(25).max(1);
|
||||
sink(x4); // $ hasValueFlow=25
|
||||
|
||||
let x5 = source(26).lt(&1);
|
||||
sink(x5); // $ hasTaintFlow=26
|
||||
|
||||
let x6 = source(27) < 1;
|
||||
sink(x6); // $ hasTaintFlow=27
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
test_identify();
|
||||
|
||||
@@ -6,20 +6,22 @@ models
|
||||
| 5 | Source: main::arg_source; Argument[0]; test-source |
|
||||
| 6 | Source: main::enum_source; ReturnValue.Field[main::MyFieldEnum::D::field_d]; test-source |
|
||||
| 7 | Source: main::simple_source; ReturnValue; test-source |
|
||||
| 8 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value |
|
||||
| 9 | Summary: main::apply; Argument[1].ReturnValue; ReturnValue; value |
|
||||
| 10 | Summary: main::coerce; Argument[0]; ReturnValue; taint |
|
||||
| 11 | Summary: main::get_array_element; Argument[0].Element; ReturnValue; value |
|
||||
| 12 | Summary: main::get_async_number; Argument[0]; ReturnValue.Future; value |
|
||||
| 13 | Summary: main::get_struct_field; Argument[0].Field[main::MyStruct::field1]; ReturnValue; value |
|
||||
| 14 | Summary: main::get_tuple_element; Argument[0].Field[0]; ReturnValue; value |
|
||||
| 15 | Summary: main::get_var_field; Argument[0].Field[main::MyFieldEnum::C::field_c]; ReturnValue; value |
|
||||
| 16 | Summary: main::get_var_pos; Argument[0].Field[main::MyPosEnum::A(0)]; ReturnValue; value |
|
||||
| 17 | Summary: main::set_array_element; Argument[0]; ReturnValue.Element; value |
|
||||
| 18 | Summary: main::set_struct_field; Argument[0]; ReturnValue.Field[main::MyStruct::field2]; value |
|
||||
| 19 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value |
|
||||
| 20 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value |
|
||||
| 21 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value |
|
||||
| 8 | Summary: <_ as core::cmp::Ord>::max; Argument[self]; ReturnValue; value |
|
||||
| 9 | Summary: <_ as core::cmp::PartialOrd>::lt; Argument[self].Reference; ReturnValue; taint |
|
||||
| 10 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value |
|
||||
| 11 | Summary: main::apply; Argument[1].ReturnValue; ReturnValue; value |
|
||||
| 12 | Summary: main::coerce; Argument[0]; ReturnValue; taint |
|
||||
| 13 | Summary: main::get_array_element; Argument[0].Element; ReturnValue; value |
|
||||
| 14 | Summary: main::get_async_number; Argument[0]; ReturnValue.Future; value |
|
||||
| 15 | Summary: main::get_struct_field; Argument[0].Field[main::MyStruct::field1]; ReturnValue; value |
|
||||
| 16 | Summary: main::get_tuple_element; Argument[0].Field[0]; ReturnValue; value |
|
||||
| 17 | Summary: main::get_var_field; Argument[0].Field[main::MyFieldEnum::C::field_c]; ReturnValue; value |
|
||||
| 18 | Summary: main::get_var_pos; Argument[0].Field[main::MyPosEnum::A(0)]; ReturnValue; value |
|
||||
| 19 | Summary: main::set_array_element; Argument[0]; ReturnValue.Element; value |
|
||||
| 20 | Summary: main::set_struct_field; Argument[0]; ReturnValue.Field[main::MyStruct::field2]; value |
|
||||
| 21 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value |
|
||||
| 22 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value |
|
||||
| 23 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value |
|
||||
edges
|
||||
| main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | |
|
||||
| main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | |
|
||||
@@ -29,7 +31,7 @@ edges
|
||||
| main.rs:16:19:16:19 | s | main.rs:16:10:16:20 | identity(...) | provenance | QL |
|
||||
| main.rs:25:9:25:9 | s | main.rs:26:17:26:17 | s | provenance | |
|
||||
| main.rs:25:13:25:22 | source(...) | main.rs:25:9:25:9 | s | provenance | |
|
||||
| main.rs:26:17:26:17 | s | main.rs:26:10:26:18 | coerce(...) | provenance | MaD:10 |
|
||||
| main.rs:26:17:26:17 | s | main.rs:26:10:26:18 | coerce(...) | provenance | MaD:12 |
|
||||
| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | |
|
||||
| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | |
|
||||
| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | |
|
||||
@@ -40,8 +42,8 @@ edges
|
||||
| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | |
|
||||
| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:16 |
|
||||
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:16 |
|
||||
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:18 |
|
||||
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:18 |
|
||||
| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | |
|
||||
| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | |
|
||||
| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | |
|
||||
@@ -50,8 +52,8 @@ edges
|
||||
| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | |
|
||||
| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | |
|
||||
| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | |
|
||||
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:21 |
|
||||
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:21 |
|
||||
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:23 |
|
||||
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:23 |
|
||||
| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | |
|
||||
| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | |
|
||||
| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | |
|
||||
@@ -68,8 +70,8 @@ edges
|
||||
| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | |
|
||||
| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:15 |
|
||||
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:15 |
|
||||
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:17 |
|
||||
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:17 |
|
||||
| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | |
|
||||
| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | |
|
||||
| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | |
|
||||
@@ -78,8 +80,8 @@ edges
|
||||
| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | |
|
||||
| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | |
|
||||
| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | |
|
||||
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:20 |
|
||||
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:20 |
|
||||
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:22 |
|
||||
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:22 |
|
||||
| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | |
|
||||
@@ -96,8 +98,8 @@ edges
|
||||
| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | |
|
||||
| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | |
|
||||
| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | |
|
||||
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:13 |
|
||||
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:13 |
|
||||
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:15 |
|
||||
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:15 |
|
||||
| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | |
|
||||
| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | |
|
||||
| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | |
|
||||
@@ -106,16 +108,16 @@ edges
|
||||
| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | main.rs:129:10:129:18 | my_struct [MyStruct.field2] | provenance | |
|
||||
| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | |
|
||||
| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | |
|
||||
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:18 |
|
||||
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:18 |
|
||||
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:20 |
|
||||
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:20 |
|
||||
| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | |
|
||||
| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | |
|
||||
| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | |
|
||||
| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | |
|
||||
| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | |
|
||||
| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | |
|
||||
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:11 |
|
||||
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:11 |
|
||||
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:13 |
|
||||
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:13 |
|
||||
| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | |
|
||||
| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | |
|
||||
| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | |
|
||||
@@ -126,8 +128,8 @@ edges
|
||||
| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | |
|
||||
| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | |
|
||||
| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | |
|
||||
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:17 |
|
||||
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:17 |
|
||||
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:19 |
|
||||
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:19 |
|
||||
| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | |
|
||||
| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | |
|
||||
| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | |
|
||||
@@ -140,8 +142,8 @@ edges
|
||||
| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | |
|
||||
| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | |
|
||||
| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | |
|
||||
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:14 |
|
||||
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:14 |
|
||||
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:16 |
|
||||
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:16 |
|
||||
| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | |
|
||||
| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | |
|
||||
| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | |
|
||||
@@ -150,120 +152,148 @@ edges
|
||||
| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | |
|
||||
| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | |
|
||||
| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | |
|
||||
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:19 |
|
||||
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:19 |
|
||||
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:21 |
|
||||
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:21 |
|
||||
| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | |
|
||||
| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | |
|
||||
| main.rs:184:9:184:9 | s | main.rs:189:11:189:11 | s | provenance | |
|
||||
| main.rs:184:9:184:9 | s | main.rs:189:11:189:11 | s | provenance | |
|
||||
| main.rs:184:13:184:22 | source(...) | main.rs:184:9:184:9 | s | provenance | |
|
||||
| main.rs:184:13:184:22 | source(...) | main.rs:184:9:184:9 | s | provenance | |
|
||||
| main.rs:185:14:185:14 | ... | main.rs:186:14:186:14 | n | provenance | |
|
||||
| main.rs:185:14:185:14 | ... | main.rs:186:14:186:14 | n | provenance | |
|
||||
| main.rs:189:11:189:11 | s | main.rs:185:14:185:14 | ... | provenance | MaD:8 |
|
||||
| main.rs:189:11:189:11 | s | main.rs:185:14:185:14 | ... | provenance | MaD:8 |
|
||||
| main.rs:193:13:193:22 | source(...) | main.rs:195:23:195:23 | f [captured s] | provenance | |
|
||||
| main.rs:193:13:193:22 | source(...) | main.rs:195:23:195:23 | f [captured s] | provenance | |
|
||||
| main.rs:194:40:194:40 | s | main.rs:194:17:194:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:194:40:194:40 | s | main.rs:194:17:194:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:195:9:195:9 | t | main.rs:196:10:196:10 | t | provenance | |
|
||||
| main.rs:195:9:195:9 | t | main.rs:196:10:196:10 | t | provenance | |
|
||||
| main.rs:195:13:195:24 | apply(...) | main.rs:195:9:195:9 | t | provenance | |
|
||||
| main.rs:195:13:195:24 | apply(...) | main.rs:195:9:195:9 | t | provenance | |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | provenance | MaD:8 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | provenance | MaD:8 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | provenance | MaD:9 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | provenance | MaD:9 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:195:13:195:24 | apply(...) | provenance | MaD:8 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:195:13:195:24 | apply(...) | provenance | MaD:8 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:195:13:195:24 | apply(...) | provenance | MaD:9 |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:195:13:195:24 | apply(...) | provenance | MaD:9 |
|
||||
| main.rs:200:9:200:9 | s | main.rs:202:19:202:19 | s | provenance | |
|
||||
| main.rs:200:9:200:9 | s | main.rs:202:19:202:19 | s | provenance | |
|
||||
| main.rs:200:13:200:22 | source(...) | main.rs:200:9:200:9 | s | provenance | |
|
||||
| main.rs:200:13:200:22 | source(...) | main.rs:200:9:200:9 | s | provenance | |
|
||||
| main.rs:201:14:201:14 | ... | main.rs:201:17:201:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:201:14:201:14 | ... | main.rs:201:17:201:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:202:9:202:9 | t | main.rs:203:10:203:10 | t | provenance | |
|
||||
| main.rs:202:9:202:9 | t | main.rs:203:10:203:10 | t | provenance | |
|
||||
| main.rs:202:13:202:23 | apply(...) | main.rs:202:9:202:9 | t | provenance | |
|
||||
| main.rs:202:13:202:23 | apply(...) | main.rs:202:9:202:9 | t | provenance | |
|
||||
| main.rs:202:19:202:19 | s | main.rs:201:14:201:14 | ... | provenance | MaD:8 |
|
||||
| main.rs:202:19:202:19 | s | main.rs:201:14:201:14 | ... | provenance | MaD:8 |
|
||||
| main.rs:202:19:202:19 | s | main.rs:202:13:202:23 | apply(...) | provenance | MaD:8 |
|
||||
| main.rs:202:19:202:19 | s | main.rs:202:13:202:23 | apply(...) | provenance | MaD:8 |
|
||||
| main.rs:212:9:212:9 | s | main.rs:213:30:213:30 | s | provenance | |
|
||||
| main.rs:212:9:212:9 | s | main.rs:213:30:213:30 | s | provenance | |
|
||||
| main.rs:212:13:212:22 | source(...) | main.rs:212:9:212:9 | s | provenance | |
|
||||
| main.rs:212:13:212:22 | source(...) | main.rs:212:9:212:9 | s | provenance | |
|
||||
| main.rs:213:9:213:9 | t | main.rs:214:10:214:10 | t | provenance | |
|
||||
| main.rs:213:9:213:9 | t | main.rs:214:10:214:10 | t | provenance | |
|
||||
| main.rs:213:13:213:31 | get_async_number(...) [future] | main.rs:213:13:213:37 | await ... | provenance | |
|
||||
| main.rs:213:13:213:31 | get_async_number(...) [future] | main.rs:213:13:213:37 | await ... | provenance | |
|
||||
| main.rs:213:13:213:37 | await ... | main.rs:213:9:213:9 | t | provenance | |
|
||||
| main.rs:213:13:213:37 | await ... | main.rs:213:9:213:9 | t | provenance | |
|
||||
| main.rs:213:30:213:30 | s | main.rs:213:13:213:31 | get_async_number(...) [future] | provenance | MaD:12 |
|
||||
| main.rs:213:30:213:30 | s | main.rs:213:13:213:31 | get_async_number(...) [future] | provenance | MaD:12 |
|
||||
| main.rs:233:9:233:9 | s [D] | main.rs:234:11:234:11 | s [D] | provenance | |
|
||||
| main.rs:233:9:233:9 | s [D] | main.rs:234:11:234:11 | s [D] | provenance | |
|
||||
| main.rs:233:13:233:23 | enum_source | main.rs:233:13:233:27 | enum_source(...) [D] | provenance | Src:MaD:6 |
|
||||
| main.rs:233:13:233:23 | enum_source | main.rs:233:13:233:27 | enum_source(...) [D] | provenance | Src:MaD:6 |
|
||||
| main.rs:233:13:233:27 | enum_source(...) [D] | main.rs:233:9:233:9 | s [D] | provenance | |
|
||||
| main.rs:233:13:233:27 | enum_source(...) [D] | main.rs:233:9:233:9 | s [D] | provenance | |
|
||||
| main.rs:234:11:234:11 | s [D] | main.rs:236:9:236:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:234:11:234:11 | s [D] | main.rs:236:9:236:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:236:9:236:37 | ...::D {...} [D] | main.rs:236:35:236:35 | i | provenance | |
|
||||
| main.rs:236:9:236:37 | ...::D {...} [D] | main.rs:236:35:236:35 | i | provenance | |
|
||||
| main.rs:236:35:236:35 | i | main.rs:236:47:236:47 | i | provenance | |
|
||||
| main.rs:236:35:236:35 | i | main.rs:236:47:236:47 | i | provenance | |
|
||||
| main.rs:242:9:242:9 | s [C] | main.rs:243:11:243:11 | s [C] | provenance | |
|
||||
| main.rs:242:9:242:9 | s [C] | main.rs:243:11:243:11 | s [C] | provenance | |
|
||||
| main.rs:242:13:242:24 | e.source(...) [C] | main.rs:242:9:242:9 | s [C] | provenance | |
|
||||
| main.rs:242:13:242:24 | e.source(...) [C] | main.rs:242:9:242:9 | s [C] | provenance | |
|
||||
| main.rs:242:15:242:20 | source | main.rs:242:13:242:24 | e.source(...) [C] | provenance | Src:MaD:4 |
|
||||
| main.rs:242:15:242:20 | source | main.rs:242:13:242:24 | e.source(...) [C] | provenance | Src:MaD:4 |
|
||||
| main.rs:243:11:243:11 | s [C] | main.rs:244:9:244:37 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:243:11:243:11 | s [C] | main.rs:244:9:244:37 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:244:9:244:37 | ...::C {...} [C] | main.rs:244:35:244:35 | i | provenance | |
|
||||
| main.rs:244:9:244:37 | ...::C {...} [C] | main.rs:244:35:244:35 | i | provenance | |
|
||||
| main.rs:244:35:244:35 | i | main.rs:244:47:244:47 | i | provenance | |
|
||||
| main.rs:244:35:244:35 | i | main.rs:244:47:244:47 | i | provenance | |
|
||||
| main.rs:253:9:253:9 | s | main.rs:254:41:254:41 | s | provenance | |
|
||||
| main.rs:253:9:253:9 | s | main.rs:254:41:254:41 | s | provenance | |
|
||||
| main.rs:253:13:253:22 | source(...) | main.rs:253:9:253:9 | s | provenance | |
|
||||
| main.rs:253:13:253:22 | source(...) | main.rs:253:9:253:9 | s | provenance | |
|
||||
| main.rs:254:15:254:43 | ...::C {...} [C] | main.rs:254:5:254:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 |
|
||||
| main.rs:254:15:254:43 | ...::C {...} [C] | main.rs:254:5:254:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 |
|
||||
| main.rs:254:41:254:41 | s | main.rs:254:15:254:43 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:254:41:254:41 | s | main.rs:254:15:254:43 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:259:9:259:9 | s | main.rs:260:39:260:39 | s | provenance | |
|
||||
| main.rs:259:9:259:9 | s | main.rs:260:39:260:39 | s | provenance | |
|
||||
| main.rs:259:13:259:22 | source(...) | main.rs:259:9:259:9 | s | provenance | |
|
||||
| main.rs:259:13:259:22 | source(...) | main.rs:259:9:259:9 | s | provenance | |
|
||||
| main.rs:260:9:260:9 | e [D] | main.rs:261:5:261:5 | e [D] | provenance | |
|
||||
| main.rs:260:9:260:9 | e [D] | main.rs:261:5:261:5 | e [D] | provenance | |
|
||||
| main.rs:260:13:260:41 | ...::D {...} [D] | main.rs:260:9:260:9 | e [D] | provenance | |
|
||||
| main.rs:260:13:260:41 | ...::D {...} [D] | main.rs:260:9:260:9 | e [D] | provenance | |
|
||||
| main.rs:260:39:260:39 | s | main.rs:260:13:260:41 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:260:39:260:39 | s | main.rs:260:13:260:41 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:261:5:261:5 | e [D] | main.rs:261:7:261:10 | sink | provenance | MaD:1 Sink:MaD:1 |
|
||||
| main.rs:261:5:261:5 | e [D] | main.rs:261:7:261:10 | sink | provenance | MaD:1 Sink:MaD:1 |
|
||||
| main.rs:270:9:270:9 | s | main.rs:271:10:271:10 | s | provenance | |
|
||||
| main.rs:270:9:270:9 | s | main.rs:271:10:271:10 | s | provenance | |
|
||||
| main.rs:270:13:270:25 | simple_source | main.rs:270:13:270:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 |
|
||||
| main.rs:270:13:270:25 | simple_source | main.rs:270:13:270:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 |
|
||||
| main.rs:270:13:270:29 | simple_source(...) | main.rs:270:9:270:9 | s | provenance | |
|
||||
| main.rs:270:13:270:29 | simple_source(...) | main.rs:270:9:270:9 | s | provenance | |
|
||||
| main.rs:278:9:278:9 | s | main.rs:279:17:279:17 | s | provenance | |
|
||||
| main.rs:278:9:278:9 | s | main.rs:279:17:279:17 | s | provenance | |
|
||||
| main.rs:278:13:278:22 | source(...) | main.rs:278:9:278:9 | s | provenance | |
|
||||
| main.rs:278:13:278:22 | source(...) | main.rs:278:9:278:9 | s | provenance | |
|
||||
| main.rs:279:17:279:17 | s | main.rs:279:5:279:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 |
|
||||
| main.rs:279:17:279:17 | s | main.rs:279:5:279:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 |
|
||||
| main.rs:287:5:287:14 | arg_source | main.rs:287:16:287:16 | [post] i | provenance | Src:MaD:5 MaD:5 |
|
||||
| main.rs:287:5:287:14 | arg_source | main.rs:287:16:287:16 | [post] i | provenance | Src:MaD:5 MaD:5 |
|
||||
| main.rs:287:16:287:16 | [post] i | main.rs:288:10:288:10 | i | provenance | |
|
||||
| main.rs:287:16:287:16 | [post] i | main.rs:288:10:288:10 | i | provenance | |
|
||||
| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | |
|
||||
| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | |
|
||||
| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | |
|
||||
| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | |
|
||||
| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | |
|
||||
| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | |
|
||||
| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:10 |
|
||||
| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:10 |
|
||||
| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | |
|
||||
| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | |
|
||||
| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | |
|
||||
| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | |
|
||||
| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | |
|
||||
| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:10 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:10 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:11 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:11 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:10 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:10 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:11 |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:11 |
|
||||
| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | |
|
||||
| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | |
|
||||
| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | |
|
||||
| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | |
|
||||
| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | |
|
||||
| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | |
|
||||
| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | |
|
||||
| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | |
|
||||
| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | |
|
||||
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:10 |
|
||||
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:10 |
|
||||
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:10 |
|
||||
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:10 |
|
||||
| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | |
|
||||
| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | |
|
||||
| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | |
|
||||
| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | |
|
||||
| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | |
|
||||
| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | |
|
||||
| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | |
|
||||
| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | |
|
||||
| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | |
|
||||
| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | |
|
||||
| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:14 |
|
||||
| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:14 |
|
||||
| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | |
|
||||
| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | |
|
||||
| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 |
|
||||
| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 |
|
||||
| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | |
|
||||
| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | |
|
||||
| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | |
|
||||
| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | |
|
||||
| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | |
|
||||
| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | |
|
||||
| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | |
|
||||
| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | |
|
||||
| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | |
|
||||
| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | |
|
||||
| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 |
|
||||
| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 |
|
||||
| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | |
|
||||
| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | |
|
||||
| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | |
|
||||
| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | |
|
||||
| main.rs:256:9:256:9 | s | main.rs:257:41:257:41 | s | provenance | |
|
||||
| main.rs:256:9:256:9 | s | main.rs:257:41:257:41 | s | provenance | |
|
||||
| main.rs:256:13:256:22 | source(...) | main.rs:256:9:256:9 | s | provenance | |
|
||||
| main.rs:256:13:256:22 | source(...) | main.rs:256:9:256:9 | s | provenance | |
|
||||
| main.rs:257:15:257:43 | ...::C {...} [C] | main.rs:257:5:257:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 |
|
||||
| main.rs:257:15:257:43 | ...::C {...} [C] | main.rs:257:5:257:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 |
|
||||
| main.rs:257:41:257:41 | s | main.rs:257:15:257:43 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:257:41:257:41 | s | main.rs:257:15:257:43 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:262:9:262:9 | s | main.rs:263:39:263:39 | s | provenance | |
|
||||
| main.rs:262:9:262:9 | s | main.rs:263:39:263:39 | s | provenance | |
|
||||
| main.rs:262:13:262:22 | source(...) | main.rs:262:9:262:9 | s | provenance | |
|
||||
| main.rs:262:13:262:22 | source(...) | main.rs:262:9:262:9 | s | provenance | |
|
||||
| main.rs:263:9:263:9 | e [D] | main.rs:264:5:264:5 | e [D] | provenance | |
|
||||
| main.rs:263:9:263:9 | e [D] | main.rs:264:5:264:5 | e [D] | provenance | |
|
||||
| main.rs:263:13:263:41 | ...::D {...} [D] | main.rs:263:9:263:9 | e [D] | provenance | |
|
||||
| main.rs:263:13:263:41 | ...::D {...} [D] | main.rs:263:9:263:9 | e [D] | provenance | |
|
||||
| main.rs:263:39:263:39 | s | main.rs:263:13:263:41 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:263:39:263:39 | s | main.rs:263:13:263:41 | ...::D {...} [D] | provenance | |
|
||||
| main.rs:264:5:264:5 | e [D] | main.rs:264:7:264:10 | sink | provenance | MaD:1 Sink:MaD:1 |
|
||||
| main.rs:264:5:264:5 | e [D] | main.rs:264:7:264:10 | sink | provenance | MaD:1 Sink:MaD:1 |
|
||||
| main.rs:273:9:273:9 | s | main.rs:274:10:274:10 | s | provenance | |
|
||||
| main.rs:273:9:273:9 | s | main.rs:274:10:274:10 | s | provenance | |
|
||||
| main.rs:273:13:273:25 | simple_source | main.rs:273:13:273:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 |
|
||||
| main.rs:273:13:273:25 | simple_source | main.rs:273:13:273:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 |
|
||||
| main.rs:273:13:273:29 | simple_source(...) | main.rs:273:9:273:9 | s | provenance | |
|
||||
| main.rs:273:13:273:29 | simple_source(...) | main.rs:273:9:273:9 | s | provenance | |
|
||||
| main.rs:281:9:281:9 | s | main.rs:282:17:282:17 | s | provenance | |
|
||||
| main.rs:281:9:281:9 | s | main.rs:282:17:282:17 | s | provenance | |
|
||||
| main.rs:281:13:281:22 | source(...) | main.rs:281:9:281:9 | s | provenance | |
|
||||
| main.rs:281:13:281:22 | source(...) | main.rs:281:9:281:9 | s | provenance | |
|
||||
| main.rs:282:17:282:17 | s | main.rs:282:5:282:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 |
|
||||
| main.rs:282:17:282:17 | s | main.rs:282:5:282:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 |
|
||||
| main.rs:290:5:290:14 | arg_source | main.rs:290:16:290:16 | [post] i | provenance | Src:MaD:5 MaD:5 |
|
||||
| main.rs:290:5:290:14 | arg_source | main.rs:290:16:290:16 | [post] i | provenance | Src:MaD:5 MaD:5 |
|
||||
| main.rs:290:16:290:16 | [post] i | main.rs:291:10:291:10 | i | provenance | |
|
||||
| main.rs:290:16:290:16 | [post] i | main.rs:291:10:291:10 | i | provenance | |
|
||||
| main.rs:343:9:343:10 | x1 | main.rs:344:10:344:11 | x1 | provenance | |
|
||||
| main.rs:343:9:343:10 | x1 | main.rs:344:10:344:11 | x1 | provenance | |
|
||||
| main.rs:343:14:343:23 | source(...) | main.rs:343:14:343:30 | ... .max(...) | provenance | MaD:8 |
|
||||
| main.rs:343:14:343:23 | source(...) | main.rs:343:14:343:30 | ... .max(...) | provenance | MaD:8 |
|
||||
| main.rs:343:14:343:30 | ... .max(...) | main.rs:343:9:343:10 | x1 | provenance | |
|
||||
| main.rs:343:14:343:30 | ... .max(...) | main.rs:343:9:343:10 | x1 | provenance | |
|
||||
| main.rs:346:9:346:10 | x2 [MyStruct.field1] | main.rs:354:10:354:11 | x2 [MyStruct.field1] | provenance | |
|
||||
| main.rs:346:9:346:10 | x2 [MyStruct.field1] | main.rs:354:10:354:11 | x2 [MyStruct.field1] | provenance | |
|
||||
| main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | main.rs:346:9:346:10 | x2 [MyStruct.field1] | provenance | |
|
||||
| main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | main.rs:346:9:346:10 | x2 [MyStruct.field1] | provenance | |
|
||||
| main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:8 |
|
||||
| main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:8 |
|
||||
| main.rs:347:17:347:26 | source(...) | main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | provenance | |
|
||||
| main.rs:347:17:347:26 | source(...) | main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | provenance | |
|
||||
| main.rs:354:10:354:11 | x2 [MyStruct.field1] | main.rs:354:10:354:18 | x2.field1 | provenance | |
|
||||
| main.rs:354:10:354:11 | x2 [MyStruct.field1] | main.rs:354:10:354:18 | x2.field1 | provenance | |
|
||||
| main.rs:359:9:359:10 | x4 | main.rs:360:10:360:11 | x4 | provenance | |
|
||||
| main.rs:359:9:359:10 | x4 | main.rs:360:10:360:11 | x4 | provenance | |
|
||||
| main.rs:359:14:359:23 | source(...) | main.rs:359:14:359:30 | ... .max(...) | provenance | MaD:8 |
|
||||
| main.rs:359:14:359:23 | source(...) | main.rs:359:14:359:30 | ... .max(...) | provenance | MaD:8 |
|
||||
| main.rs:359:14:359:30 | ... .max(...) | main.rs:359:9:359:10 | x4 | provenance | |
|
||||
| main.rs:359:14:359:30 | ... .max(...) | main.rs:359:9:359:10 | x4 | provenance | |
|
||||
| main.rs:362:9:362:10 | x5 | main.rs:363:10:363:11 | x5 | provenance | |
|
||||
| main.rs:362:14:362:23 | source(...) | main.rs:362:14:362:30 | ... .lt(...) | provenance | MaD:9 |
|
||||
| main.rs:362:14:362:30 | ... .lt(...) | main.rs:362:9:362:10 | x5 | provenance | |
|
||||
| main.rs:365:9:365:10 | x6 | main.rs:366:10:366:11 | x6 | provenance | |
|
||||
| main.rs:365:14:365:23 | source(...) | main.rs:365:14:365:27 | ... < ... | provenance | MaD:9 |
|
||||
| main.rs:365:14:365:27 | ... < ... | main.rs:365:9:365:10 | x6 | provenance | |
|
||||
nodes
|
||||
| main.rs:15:9:15:9 | s | semmle.label | s |
|
||||
| main.rs:15:9:15:9 | s | semmle.label | s |
|
||||
@@ -421,139 +451,175 @@ nodes
|
||||
| main.rs:175:10:175:10 | t [tuple.1] | semmle.label | t [tuple.1] |
|
||||
| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 |
|
||||
| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 |
|
||||
| main.rs:184:9:184:9 | s | semmle.label | s |
|
||||
| main.rs:184:9:184:9 | s | semmle.label | s |
|
||||
| main.rs:184:13:184:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:184:13:184:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:185:14:185:14 | ... | semmle.label | ... |
|
||||
| main.rs:185:14:185:14 | ... | semmle.label | ... |
|
||||
| main.rs:186:14:186:14 | n | semmle.label | n |
|
||||
| main.rs:186:14:186:14 | n | semmle.label | n |
|
||||
| main.rs:189:11:189:11 | s | semmle.label | s |
|
||||
| main.rs:189:11:189:11 | s | semmle.label | s |
|
||||
| main.rs:193:13:193:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:193:13:193:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:194:17:194:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:194:17:194:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:194:40:194:40 | s | semmle.label | s |
|
||||
| main.rs:194:40:194:40 | s | semmle.label | s |
|
||||
| main.rs:195:9:195:9 | t | semmle.label | t |
|
||||
| main.rs:195:9:195:9 | t | semmle.label | t |
|
||||
| main.rs:195:13:195:24 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:195:13:195:24 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:195:23:195:23 | f [captured s] | semmle.label | f [captured s] |
|
||||
| main.rs:195:23:195:23 | f [captured s] | semmle.label | f [captured s] |
|
||||
| main.rs:196:10:196:10 | t | semmle.label | t |
|
||||
| main.rs:196:10:196:10 | t | semmle.label | t |
|
||||
| main.rs:200:9:200:9 | s | semmle.label | s |
|
||||
| main.rs:200:9:200:9 | s | semmle.label | s |
|
||||
| main.rs:200:13:200:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:200:13:200:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:201:14:201:14 | ... | semmle.label | ... |
|
||||
| main.rs:201:14:201:14 | ... | semmle.label | ... |
|
||||
| main.rs:201:17:201:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:201:17:201:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:202:9:202:9 | t | semmle.label | t |
|
||||
| main.rs:202:9:202:9 | t | semmle.label | t |
|
||||
| main.rs:202:13:202:23 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:202:13:202:23 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:202:19:202:19 | s | semmle.label | s |
|
||||
| main.rs:202:19:202:19 | s | semmle.label | s |
|
||||
| main.rs:203:10:203:10 | t | semmle.label | t |
|
||||
| main.rs:203:10:203:10 | t | semmle.label | t |
|
||||
| main.rs:212:9:212:9 | s | semmle.label | s |
|
||||
| main.rs:212:9:212:9 | s | semmle.label | s |
|
||||
| main.rs:212:13:212:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:212:13:212:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:213:9:213:9 | t | semmle.label | t |
|
||||
| main.rs:213:9:213:9 | t | semmle.label | t |
|
||||
| main.rs:213:13:213:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] |
|
||||
| main.rs:213:13:213:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] |
|
||||
| main.rs:213:13:213:37 | await ... | semmle.label | await ... |
|
||||
| main.rs:213:13:213:37 | await ... | semmle.label | await ... |
|
||||
| main.rs:213:30:213:30 | s | semmle.label | s |
|
||||
| main.rs:213:30:213:30 | s | semmle.label | s |
|
||||
| main.rs:214:10:214:10 | t | semmle.label | t |
|
||||
| main.rs:214:10:214:10 | t | semmle.label | t |
|
||||
| main.rs:233:9:233:9 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:233:9:233:9 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:233:13:233:23 | enum_source | semmle.label | enum_source |
|
||||
| main.rs:233:13:233:23 | enum_source | semmle.label | enum_source |
|
||||
| main.rs:233:13:233:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] |
|
||||
| main.rs:233:13:233:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] |
|
||||
| main.rs:234:11:234:11 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:234:11:234:11 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:236:9:236:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:236:9:236:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:236:35:236:35 | i | semmle.label | i |
|
||||
| main.rs:236:35:236:35 | i | semmle.label | i |
|
||||
| main.rs:236:47:236:47 | i | semmle.label | i |
|
||||
| main.rs:236:47:236:47 | i | semmle.label | i |
|
||||
| main.rs:242:9:242:9 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:242:9:242:9 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:242:13:242:24 | e.source(...) [C] | semmle.label | e.source(...) [C] |
|
||||
| main.rs:242:13:242:24 | e.source(...) [C] | semmle.label | e.source(...) [C] |
|
||||
| main.rs:242:15:242:20 | source | semmle.label | source |
|
||||
| main.rs:242:15:242:20 | source | semmle.label | source |
|
||||
| main.rs:243:11:243:11 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:243:11:243:11 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:244:9:244:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:244:9:244:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:244:35:244:35 | i | semmle.label | i |
|
||||
| main.rs:244:35:244:35 | i | semmle.label | i |
|
||||
| main.rs:244:47:244:47 | i | semmle.label | i |
|
||||
| main.rs:244:47:244:47 | i | semmle.label | i |
|
||||
| main.rs:253:9:253:9 | s | semmle.label | s |
|
||||
| main.rs:253:9:253:9 | s | semmle.label | s |
|
||||
| main.rs:253:13:253:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:253:13:253:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:254:5:254:13 | enum_sink | semmle.label | enum_sink |
|
||||
| main.rs:254:5:254:13 | enum_sink | semmle.label | enum_sink |
|
||||
| main.rs:254:15:254:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:254:15:254:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:254:41:254:41 | s | semmle.label | s |
|
||||
| main.rs:254:41:254:41 | s | semmle.label | s |
|
||||
| main.rs:259:9:259:9 | s | semmle.label | s |
|
||||
| main.rs:259:9:259:9 | s | semmle.label | s |
|
||||
| main.rs:259:13:259:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:259:13:259:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:260:9:260:9 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:260:9:260:9 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:260:13:260:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:260:13:260:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:260:39:260:39 | s | semmle.label | s |
|
||||
| main.rs:260:39:260:39 | s | semmle.label | s |
|
||||
| main.rs:261:5:261:5 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:261:5:261:5 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:261:7:261:10 | sink | semmle.label | sink |
|
||||
| main.rs:261:7:261:10 | sink | semmle.label | sink |
|
||||
| main.rs:270:9:270:9 | s | semmle.label | s |
|
||||
| main.rs:270:9:270:9 | s | semmle.label | s |
|
||||
| main.rs:270:13:270:25 | simple_source | semmle.label | simple_source |
|
||||
| main.rs:270:13:270:25 | simple_source | semmle.label | simple_source |
|
||||
| main.rs:270:13:270:29 | simple_source(...) | semmle.label | simple_source(...) |
|
||||
| main.rs:270:13:270:29 | simple_source(...) | semmle.label | simple_source(...) |
|
||||
| main.rs:271:10:271:10 | s | semmle.label | s |
|
||||
| main.rs:271:10:271:10 | s | semmle.label | s |
|
||||
| main.rs:278:9:278:9 | s | semmle.label | s |
|
||||
| main.rs:278:9:278:9 | s | semmle.label | s |
|
||||
| main.rs:278:13:278:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:278:13:278:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:279:5:279:15 | simple_sink | semmle.label | simple_sink |
|
||||
| main.rs:279:5:279:15 | simple_sink | semmle.label | simple_sink |
|
||||
| main.rs:279:17:279:17 | s | semmle.label | s |
|
||||
| main.rs:279:17:279:17 | s | semmle.label | s |
|
||||
| main.rs:287:5:287:14 | arg_source | semmle.label | arg_source |
|
||||
| main.rs:287:5:287:14 | arg_source | semmle.label | arg_source |
|
||||
| main.rs:287:16:287:16 | [post] i | semmle.label | [post] i |
|
||||
| main.rs:287:16:287:16 | [post] i | semmle.label | [post] i |
|
||||
| main.rs:288:10:288:10 | i | semmle.label | i |
|
||||
| main.rs:288:10:288:10 | i | semmle.label | i |
|
||||
| main.rs:187:9:187:9 | s | semmle.label | s |
|
||||
| main.rs:187:9:187:9 | s | semmle.label | s |
|
||||
| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:188:14:188:14 | ... | semmle.label | ... |
|
||||
| main.rs:188:14:188:14 | ... | semmle.label | ... |
|
||||
| main.rs:189:14:189:14 | n | semmle.label | n |
|
||||
| main.rs:189:14:189:14 | n | semmle.label | n |
|
||||
| main.rs:192:11:192:11 | s | semmle.label | s |
|
||||
| main.rs:192:11:192:11 | s | semmle.label | s |
|
||||
| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:197:40:197:40 | s | semmle.label | s |
|
||||
| main.rs:197:40:197:40 | s | semmle.label | s |
|
||||
| main.rs:198:9:198:9 | t | semmle.label | t |
|
||||
| main.rs:198:9:198:9 | t | semmle.label | t |
|
||||
| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] |
|
||||
| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] |
|
||||
| main.rs:199:10:199:10 | t | semmle.label | t |
|
||||
| main.rs:199:10:199:10 | t | semmle.label | t |
|
||||
| main.rs:203:9:203:9 | s | semmle.label | s |
|
||||
| main.rs:203:9:203:9 | s | semmle.label | s |
|
||||
| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:204:14:204:14 | ... | semmle.label | ... |
|
||||
| main.rs:204:14:204:14 | ... | semmle.label | ... |
|
||||
| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} |
|
||||
| main.rs:205:9:205:9 | t | semmle.label | t |
|
||||
| main.rs:205:9:205:9 | t | semmle.label | t |
|
||||
| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) |
|
||||
| main.rs:205:19:205:19 | s | semmle.label | s |
|
||||
| main.rs:205:19:205:19 | s | semmle.label | s |
|
||||
| main.rs:206:10:206:10 | t | semmle.label | t |
|
||||
| main.rs:206:10:206:10 | t | semmle.label | t |
|
||||
| main.rs:215:9:215:9 | s | semmle.label | s |
|
||||
| main.rs:215:9:215:9 | s | semmle.label | s |
|
||||
| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:216:9:216:9 | t | semmle.label | t |
|
||||
| main.rs:216:9:216:9 | t | semmle.label | t |
|
||||
| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] |
|
||||
| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] |
|
||||
| main.rs:216:13:216:37 | await ... | semmle.label | await ... |
|
||||
| main.rs:216:13:216:37 | await ... | semmle.label | await ... |
|
||||
| main.rs:216:30:216:30 | s | semmle.label | s |
|
||||
| main.rs:216:30:216:30 | s | semmle.label | s |
|
||||
| main.rs:217:10:217:10 | t | semmle.label | t |
|
||||
| main.rs:217:10:217:10 | t | semmle.label | t |
|
||||
| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source |
|
||||
| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source |
|
||||
| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] |
|
||||
| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] |
|
||||
| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] |
|
||||
| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:239:35:239:35 | i | semmle.label | i |
|
||||
| main.rs:239:35:239:35 | i | semmle.label | i |
|
||||
| main.rs:239:47:239:47 | i | semmle.label | i |
|
||||
| main.rs:239:47:239:47 | i | semmle.label | i |
|
||||
| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] |
|
||||
| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] |
|
||||
| main.rs:245:15:245:20 | source | semmle.label | source |
|
||||
| main.rs:245:15:245:20 | source | semmle.label | source |
|
||||
| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] |
|
||||
| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:247:35:247:35 | i | semmle.label | i |
|
||||
| main.rs:247:35:247:35 | i | semmle.label | i |
|
||||
| main.rs:247:47:247:47 | i | semmle.label | i |
|
||||
| main.rs:247:47:247:47 | i | semmle.label | i |
|
||||
| main.rs:256:9:256:9 | s | semmle.label | s |
|
||||
| main.rs:256:9:256:9 | s | semmle.label | s |
|
||||
| main.rs:256:13:256:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:256:13:256:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:257:5:257:13 | enum_sink | semmle.label | enum_sink |
|
||||
| main.rs:257:5:257:13 | enum_sink | semmle.label | enum_sink |
|
||||
| main.rs:257:15:257:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:257:15:257:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:257:41:257:41 | s | semmle.label | s |
|
||||
| main.rs:257:41:257:41 | s | semmle.label | s |
|
||||
| main.rs:262:9:262:9 | s | semmle.label | s |
|
||||
| main.rs:262:9:262:9 | s | semmle.label | s |
|
||||
| main.rs:262:13:262:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:262:13:262:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:263:9:263:9 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:263:9:263:9 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:263:13:263:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:263:13:263:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] |
|
||||
| main.rs:263:39:263:39 | s | semmle.label | s |
|
||||
| main.rs:263:39:263:39 | s | semmle.label | s |
|
||||
| main.rs:264:5:264:5 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:264:5:264:5 | e [D] | semmle.label | e [D] |
|
||||
| main.rs:264:7:264:10 | sink | semmle.label | sink |
|
||||
| main.rs:264:7:264:10 | sink | semmle.label | sink |
|
||||
| main.rs:273:9:273:9 | s | semmle.label | s |
|
||||
| main.rs:273:9:273:9 | s | semmle.label | s |
|
||||
| main.rs:273:13:273:25 | simple_source | semmle.label | simple_source |
|
||||
| main.rs:273:13:273:25 | simple_source | semmle.label | simple_source |
|
||||
| main.rs:273:13:273:29 | simple_source(...) | semmle.label | simple_source(...) |
|
||||
| main.rs:273:13:273:29 | simple_source(...) | semmle.label | simple_source(...) |
|
||||
| main.rs:274:10:274:10 | s | semmle.label | s |
|
||||
| main.rs:274:10:274:10 | s | semmle.label | s |
|
||||
| main.rs:281:9:281:9 | s | semmle.label | s |
|
||||
| main.rs:281:9:281:9 | s | semmle.label | s |
|
||||
| main.rs:281:13:281:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:281:13:281:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:282:5:282:15 | simple_sink | semmle.label | simple_sink |
|
||||
| main.rs:282:5:282:15 | simple_sink | semmle.label | simple_sink |
|
||||
| main.rs:282:17:282:17 | s | semmle.label | s |
|
||||
| main.rs:282:17:282:17 | s | semmle.label | s |
|
||||
| main.rs:290:5:290:14 | arg_source | semmle.label | arg_source |
|
||||
| main.rs:290:5:290:14 | arg_source | semmle.label | arg_source |
|
||||
| main.rs:290:16:290:16 | [post] i | semmle.label | [post] i |
|
||||
| main.rs:290:16:290:16 | [post] i | semmle.label | [post] i |
|
||||
| main.rs:291:10:291:10 | i | semmle.label | i |
|
||||
| main.rs:291:10:291:10 | i | semmle.label | i |
|
||||
| main.rs:343:9:343:10 | x1 | semmle.label | x1 |
|
||||
| main.rs:343:9:343:10 | x1 | semmle.label | x1 |
|
||||
| main.rs:343:14:343:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:343:14:343:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:343:14:343:30 | ... .max(...) | semmle.label | ... .max(...) |
|
||||
| main.rs:343:14:343:30 | ... .max(...) | semmle.label | ... .max(...) |
|
||||
| main.rs:344:10:344:11 | x1 | semmle.label | x1 |
|
||||
| main.rs:344:10:344:11 | x1 | semmle.label | x1 |
|
||||
| main.rs:346:9:346:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] |
|
||||
| main.rs:346:9:346:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] |
|
||||
| main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] |
|
||||
| main.rs:346:14:353:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] |
|
||||
| main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] |
|
||||
| main.rs:346:15:349:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] |
|
||||
| main.rs:347:17:347:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:347:17:347:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:354:10:354:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] |
|
||||
| main.rs:354:10:354:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] |
|
||||
| main.rs:354:10:354:18 | x2.field1 | semmle.label | x2.field1 |
|
||||
| main.rs:354:10:354:18 | x2.field1 | semmle.label | x2.field1 |
|
||||
| main.rs:359:9:359:10 | x4 | semmle.label | x4 |
|
||||
| main.rs:359:9:359:10 | x4 | semmle.label | x4 |
|
||||
| main.rs:359:14:359:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:359:14:359:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:359:14:359:30 | ... .max(...) | semmle.label | ... .max(...) |
|
||||
| main.rs:359:14:359:30 | ... .max(...) | semmle.label | ... .max(...) |
|
||||
| main.rs:360:10:360:11 | x4 | semmle.label | x4 |
|
||||
| main.rs:360:10:360:11 | x4 | semmle.label | x4 |
|
||||
| main.rs:362:9:362:10 | x5 | semmle.label | x5 |
|
||||
| main.rs:362:14:362:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:362:14:362:30 | ... .lt(...) | semmle.label | ... .lt(...) |
|
||||
| main.rs:363:10:363:11 | x5 | semmle.label | x5 |
|
||||
| main.rs:365:9:365:10 | x6 | semmle.label | x6 |
|
||||
| main.rs:365:14:365:23 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:365:14:365:27 | ... < ... | semmle.label | ... < ... |
|
||||
| main.rs:366:10:366:11 | x6 | semmle.label | x6 |
|
||||
subpaths
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | main.rs:194:17:194:42 | if ... {...} else {...} | main.rs:195:13:195:24 | apply(...) |
|
||||
| main.rs:195:23:195:23 | f [captured s] | main.rs:194:40:194:40 | s | main.rs:194:17:194:42 | if ... {...} else {...} | main.rs:195:13:195:24 | apply(...) |
|
||||
| main.rs:202:19:202:19 | s | main.rs:201:14:201:14 | ... | main.rs:201:17:201:42 | if ... {...} else {...} | main.rs:202:13:202:23 | apply(...) |
|
||||
| main.rs:202:19:202:19 | s | main.rs:201:14:201:14 | ... | main.rs:201:17:201:42 | if ... {...} else {...} | main.rs:202:13:202:23 | apply(...) |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) |
|
||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) |
|
||||
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) |
|
||||
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) |
|
||||
testFailures
|
||||
invalidSpecComponent
|
||||
#select
|
||||
@@ -580,25 +646,33 @@ invalidSpecComponent
|
||||
| main.rs:161:10:161:29 | get_tuple_element(...) | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:29 | get_tuple_element(...) | $@ | main.rs:159:13:159:22 | source(...) | source(...) |
|
||||
| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) |
|
||||
| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) |
|
||||
| main.rs:186:14:186:14 | n | main.rs:184:13:184:22 | source(...) | main.rs:186:14:186:14 | n | $@ | main.rs:184:13:184:22 | source(...) | source(...) |
|
||||
| main.rs:186:14:186:14 | n | main.rs:184:13:184:22 | source(...) | main.rs:186:14:186:14 | n | $@ | main.rs:184:13:184:22 | source(...) | source(...) |
|
||||
| main.rs:196:10:196:10 | t | main.rs:193:13:193:22 | source(...) | main.rs:196:10:196:10 | t | $@ | main.rs:193:13:193:22 | source(...) | source(...) |
|
||||
| main.rs:196:10:196:10 | t | main.rs:193:13:193:22 | source(...) | main.rs:196:10:196:10 | t | $@ | main.rs:193:13:193:22 | source(...) | source(...) |
|
||||
| main.rs:203:10:203:10 | t | main.rs:200:13:200:22 | source(...) | main.rs:203:10:203:10 | t | $@ | main.rs:200:13:200:22 | source(...) | source(...) |
|
||||
| main.rs:203:10:203:10 | t | main.rs:200:13:200:22 | source(...) | main.rs:203:10:203:10 | t | $@ | main.rs:200:13:200:22 | source(...) | source(...) |
|
||||
| main.rs:214:10:214:10 | t | main.rs:212:13:212:22 | source(...) | main.rs:214:10:214:10 | t | $@ | main.rs:212:13:212:22 | source(...) | source(...) |
|
||||
| main.rs:214:10:214:10 | t | main.rs:212:13:212:22 | source(...) | main.rs:214:10:214:10 | t | $@ | main.rs:212:13:212:22 | source(...) | source(...) |
|
||||
| main.rs:236:47:236:47 | i | main.rs:233:13:233:23 | enum_source | main.rs:236:47:236:47 | i | $@ | main.rs:233:13:233:23 | enum_source | enum_source |
|
||||
| main.rs:236:47:236:47 | i | main.rs:233:13:233:23 | enum_source | main.rs:236:47:236:47 | i | $@ | main.rs:233:13:233:23 | enum_source | enum_source |
|
||||
| main.rs:244:47:244:47 | i | main.rs:242:15:242:20 | source | main.rs:244:47:244:47 | i | $@ | main.rs:242:15:242:20 | source | source |
|
||||
| main.rs:244:47:244:47 | i | main.rs:242:15:242:20 | source | main.rs:244:47:244:47 | i | $@ | main.rs:242:15:242:20 | source | source |
|
||||
| main.rs:254:5:254:13 | enum_sink | main.rs:253:13:253:22 | source(...) | main.rs:254:5:254:13 | enum_sink | $@ | main.rs:253:13:253:22 | source(...) | source(...) |
|
||||
| main.rs:254:5:254:13 | enum_sink | main.rs:253:13:253:22 | source(...) | main.rs:254:5:254:13 | enum_sink | $@ | main.rs:253:13:253:22 | source(...) | source(...) |
|
||||
| main.rs:261:7:261:10 | sink | main.rs:259:13:259:22 | source(...) | main.rs:261:7:261:10 | sink | $@ | main.rs:259:13:259:22 | source(...) | source(...) |
|
||||
| main.rs:261:7:261:10 | sink | main.rs:259:13:259:22 | source(...) | main.rs:261:7:261:10 | sink | $@ | main.rs:259:13:259:22 | source(...) | source(...) |
|
||||
| main.rs:271:10:271:10 | s | main.rs:270:13:270:25 | simple_source | main.rs:271:10:271:10 | s | $@ | main.rs:270:13:270:25 | simple_source | simple_source |
|
||||
| main.rs:271:10:271:10 | s | main.rs:270:13:270:25 | simple_source | main.rs:271:10:271:10 | s | $@ | main.rs:270:13:270:25 | simple_source | simple_source |
|
||||
| main.rs:279:5:279:15 | simple_sink | main.rs:278:13:278:22 | source(...) | main.rs:279:5:279:15 | simple_sink | $@ | main.rs:278:13:278:22 | source(...) | source(...) |
|
||||
| main.rs:279:5:279:15 | simple_sink | main.rs:278:13:278:22 | source(...) | main.rs:279:5:279:15 | simple_sink | $@ | main.rs:278:13:278:22 | source(...) | source(...) |
|
||||
| main.rs:288:10:288:10 | i | main.rs:287:5:287:14 | arg_source | main.rs:288:10:288:10 | i | $@ | main.rs:287:5:287:14 | arg_source | arg_source |
|
||||
| main.rs:288:10:288:10 | i | main.rs:287:5:287:14 | arg_source | main.rs:288:10:288:10 | i | $@ | main.rs:287:5:287:14 | arg_source | arg_source |
|
||||
| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) |
|
||||
| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) |
|
||||
| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) |
|
||||
| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) |
|
||||
| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) |
|
||||
| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) |
|
||||
| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) |
|
||||
| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) |
|
||||
| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source |
|
||||
| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source |
|
||||
| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source |
|
||||
| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source |
|
||||
| main.rs:257:5:257:13 | enum_sink | main.rs:256:13:256:22 | source(...) | main.rs:257:5:257:13 | enum_sink | $@ | main.rs:256:13:256:22 | source(...) | source(...) |
|
||||
| main.rs:257:5:257:13 | enum_sink | main.rs:256:13:256:22 | source(...) | main.rs:257:5:257:13 | enum_sink | $@ | main.rs:256:13:256:22 | source(...) | source(...) |
|
||||
| main.rs:264:7:264:10 | sink | main.rs:262:13:262:22 | source(...) | main.rs:264:7:264:10 | sink | $@ | main.rs:262:13:262:22 | source(...) | source(...) |
|
||||
| main.rs:264:7:264:10 | sink | main.rs:262:13:262:22 | source(...) | main.rs:264:7:264:10 | sink | $@ | main.rs:262:13:262:22 | source(...) | source(...) |
|
||||
| main.rs:274:10:274:10 | s | main.rs:273:13:273:25 | simple_source | main.rs:274:10:274:10 | s | $@ | main.rs:273:13:273:25 | simple_source | simple_source |
|
||||
| main.rs:274:10:274:10 | s | main.rs:273:13:273:25 | simple_source | main.rs:274:10:274:10 | s | $@ | main.rs:273:13:273:25 | simple_source | simple_source |
|
||||
| main.rs:282:5:282:15 | simple_sink | main.rs:281:13:281:22 | source(...) | main.rs:282:5:282:15 | simple_sink | $@ | main.rs:281:13:281:22 | source(...) | source(...) |
|
||||
| main.rs:282:5:282:15 | simple_sink | main.rs:281:13:281:22 | source(...) | main.rs:282:5:282:15 | simple_sink | $@ | main.rs:281:13:281:22 | source(...) | source(...) |
|
||||
| main.rs:291:10:291:10 | i | main.rs:290:5:290:14 | arg_source | main.rs:291:10:291:10 | i | $@ | main.rs:290:5:290:14 | arg_source | arg_source |
|
||||
| main.rs:291:10:291:10 | i | main.rs:290:5:290:14 | arg_source | main.rs:291:10:291:10 | i | $@ | main.rs:290:5:290:14 | arg_source | arg_source |
|
||||
| main.rs:344:10:344:11 | x1 | main.rs:343:14:343:23 | source(...) | main.rs:344:10:344:11 | x1 | $@ | main.rs:343:14:343:23 | source(...) | source(...) |
|
||||
| main.rs:344:10:344:11 | x1 | main.rs:343:14:343:23 | source(...) | main.rs:344:10:344:11 | x1 | $@ | main.rs:343:14:343:23 | source(...) | source(...) |
|
||||
| main.rs:354:10:354:18 | x2.field1 | main.rs:347:17:347:26 | source(...) | main.rs:354:10:354:18 | x2.field1 | $@ | main.rs:347:17:347:26 | source(...) | source(...) |
|
||||
| main.rs:354:10:354:18 | x2.field1 | main.rs:347:17:347:26 | source(...) | main.rs:354:10:354:18 | x2.field1 | $@ | main.rs:347:17:347:26 | source(...) | source(...) |
|
||||
| main.rs:360:10:360:11 | x4 | main.rs:359:14:359:23 | source(...) | main.rs:360:10:360:11 | x4 | $@ | main.rs:359:14:359:23 | source(...) | source(...) |
|
||||
| main.rs:360:10:360:11 | x4 | main.rs:359:14:359:23 | source(...) | main.rs:360:10:360:11 | x4 | $@ | main.rs:359:14:359:23 | source(...) | source(...) |
|
||||
| main.rs:363:10:363:11 | x5 | main.rs:362:14:362:23 | source(...) | main.rs:363:10:363:11 | x5 | $@ | main.rs:362:14:362:23 | source(...) | source(...) |
|
||||
| main.rs:366:10:366:11 | x6 | main.rs:365:14:365:23 | source(...) | main.rs:366:10:366:11 | x6 | $@ | main.rs:365:14:365:23 | source(...) | source(...) |
|
||||
|
||||
@@ -32,3 +32,5 @@ extensions:
|
||||
- ["main::apply", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"]
|
||||
- ["main::apply", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"]
|
||||
- ["main::get_async_number", "Argument[0]", "ReturnValue.Future", "value", "manual"]
|
||||
- ["<_ as core::cmp::Ord>::max", "Argument[self]", "ReturnValue", "value", "manual"]
|
||||
- ["<_ as core::cmp::PartialOrd>::lt", "Argument[self].Reference", "ReturnValue", "taint", "manual"]
|
||||
|
||||
Reference in New Issue
Block a user