mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Rust: Handle x[y] expressions as *.index(y) calls in data flow
This commit is contained in:
@@ -90,8 +90,6 @@ final class DataFlowCall extends TDataFlowCall {
|
|||||||
* Holds if `arg` is an argument of `call` at the position `pos`.
|
* Holds if `arg` is an argument of `call` at the position `pos`.
|
||||||
*/
|
*/
|
||||||
predicate isArgumentForCall(Expr arg, Call call, RustDataFlow::ArgumentPosition pos) {
|
predicate isArgumentForCall(Expr arg, Call call, RustDataFlow::ArgumentPosition pos) {
|
||||||
// TODO: Handle index expressions as calls in data flow.
|
|
||||||
not call instanceof IndexExpr and
|
|
||||||
arg = pos.getArgument(call)
|
arg = pos.getArgument(call)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,6 +259,30 @@ private module Aliases {
|
|||||||
class LambdaCallKindAlias = LambdaCallKind;
|
class LambdaCallKindAlias = LambdaCallKind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Index assignments like `a[i] = rhs` are treated as `*a.index_mut(i) = rhs`,
|
||||||
|
* so they should in principle be handled by `referenceAssignment`.
|
||||||
|
*
|
||||||
|
* However, this would require support for [generalized reverse flow][1], which
|
||||||
|
* is not yet implemented, so instead we simulate reverse flow where it would
|
||||||
|
* have applied via the model for `<_ as core::ops::index::IndexMut>::index_mut`.
|
||||||
|
*
|
||||||
|
* The same is the case for compound assignments like `a[i] += rhs`, which are
|
||||||
|
* treated as `(*a.index_mut(i)).add_assign(rhs)`.
|
||||||
|
*
|
||||||
|
* [1]: https://github.com/github/codeql/pull/18109
|
||||||
|
*/
|
||||||
|
predicate indexAssignment(
|
||||||
|
AssignmentOperation assignment, IndexExpr index, Node rhs, PostUpdateNode base, Content c
|
||||||
|
) {
|
||||||
|
assignment.getLhs() = index and
|
||||||
|
rhs.asExpr() = assignment.getRhs() and
|
||||||
|
base.getPreUpdateNode().asExpr() = index.getBase() and
|
||||||
|
c instanceof ElementContent and
|
||||||
|
// simulate that the flow summary applies
|
||||||
|
not index.getResolvedTarget().fromSource()
|
||||||
|
}
|
||||||
|
|
||||||
module RustDataFlow implements InputSig<Location> {
|
module RustDataFlow implements InputSig<Location> {
|
||||||
private import Aliases
|
private import Aliases
|
||||||
private import codeql.rust.dataflow.DataFlow
|
private import codeql.rust.dataflow.DataFlow
|
||||||
@@ -360,6 +382,7 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
node instanceof ClosureParameterNode or
|
node instanceof ClosureParameterNode or
|
||||||
node instanceof DerefBorrowNode or
|
node instanceof DerefBorrowNode or
|
||||||
node instanceof DerefOutNode or
|
node instanceof DerefOutNode or
|
||||||
|
node instanceof IndexOutNode or
|
||||||
node.asExpr() instanceof ParenExpr or
|
node.asExpr() instanceof ParenExpr or
|
||||||
nodeIsHidden(node.(PostUpdateNode).getPreUpdateNode())
|
nodeIsHidden(node.(PostUpdateNode).getPreUpdateNode())
|
||||||
}
|
}
|
||||||
@@ -552,12 +575,6 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
access = c.(FieldContent).getAnAccess()
|
access = c.(FieldContent).getAnAccess()
|
||||||
)
|
)
|
||||||
or
|
or
|
||||||
exists(IndexExpr arr |
|
|
||||||
c instanceof ElementContent and
|
|
||||||
node1.asExpr() = arr.getBase() and
|
|
||||||
node2.asExpr() = arr
|
|
||||||
)
|
|
||||||
or
|
|
||||||
exists(ForExpr for |
|
exists(ForExpr for |
|
||||||
c instanceof ElementContent and
|
c instanceof ElementContent and
|
||||||
node1.asExpr() = for.getIterable() and
|
node1.asExpr() = for.getIterable() and
|
||||||
@@ -583,6 +600,12 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
node2.asExpr() = deref
|
node2.asExpr() = deref
|
||||||
)
|
)
|
||||||
or
|
or
|
||||||
|
exists(IndexExpr index |
|
||||||
|
c instanceof ReferenceContent and
|
||||||
|
node1.(IndexOutNode).getIndexExpr() = index and
|
||||||
|
node2.asExpr() = index
|
||||||
|
)
|
||||||
|
or
|
||||||
// Read from function return
|
// Read from function return
|
||||||
exists(DataFlowCall call |
|
exists(DataFlowCall call |
|
||||||
lambdaCall(call, _, node1) and
|
lambdaCall(call, _, node1) and
|
||||||
@@ -644,13 +667,27 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
private predicate referenceAssignment(Node node1, Node node2, ReferenceContent c) {
|
private predicate referenceAssignment(
|
||||||
exists(AssignmentExpr assignment, PrefixExpr deref |
|
Node node1, Node node2, Expr e, boolean clears, ReferenceContent c
|
||||||
assignment.getLhs() = deref and
|
) {
|
||||||
deref.getOperatorName() = "*" and
|
exists(AssignmentExpr assignment, Expr lhs |
|
||||||
|
assignment.getLhs() = lhs and
|
||||||
node1.asExpr() = assignment.getRhs() and
|
node1.asExpr() = assignment.getRhs() and
|
||||||
node2.asExpr() = deref.getExpr() and
|
|
||||||
exists(c)
|
exists(c)
|
||||||
|
|
|
||||||
|
lhs =
|
||||||
|
any(DerefExpr de |
|
||||||
|
de = node2.(DerefOutNode).getDerefExpr() and
|
||||||
|
e = de.getExpr()
|
||||||
|
) and
|
||||||
|
clears = true
|
||||||
|
or
|
||||||
|
lhs =
|
||||||
|
any(IndexExpr ie |
|
||||||
|
ie = node2.(IndexOutNode).getIndexExpr() and
|
||||||
|
e = ie.getBase() and
|
||||||
|
clears = false
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -694,14 +731,14 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
or
|
or
|
||||||
fieldAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
|
fieldAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
|
||||||
or
|
or
|
||||||
referenceAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
|
referenceAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), _, _, c)
|
||||||
or
|
or
|
||||||
exists(AssignmentExpr assignment, IndexExpr index |
|
indexAssignment(any(AssignmentExpr ae), _, node1, node2, c)
|
||||||
c instanceof ElementContent and
|
or
|
||||||
assignment.getLhs() = index and
|
// Compund assignment like `a[i] += rhs` are modeled as a store step from `rhs`
|
||||||
node1.asExpr() = assignment.getRhs() and
|
// to `[post] a[i]`, followed by a taint step into `[post] a`.
|
||||||
node2.(PostUpdateNode).getPreUpdateNode().asExpr() = index.getBase()
|
indexAssignment(any(CompoundAssignmentExpr cae),
|
||||||
)
|
node2.(PostUpdateNode).getPreUpdateNode().asExpr(), node1, _, c)
|
||||||
or
|
or
|
||||||
referenceExprToExpr(node1, node2, c)
|
referenceExprToExpr(node1, node2, c)
|
||||||
or
|
or
|
||||||
@@ -738,7 +775,7 @@ module RustDataFlow implements InputSig<Location> {
|
|||||||
predicate clearsContent(Node n, ContentSet cs) {
|
predicate clearsContent(Node n, ContentSet cs) {
|
||||||
fieldAssignment(_, n, cs.(SingletonContentSet).getContent())
|
fieldAssignment(_, n, cs.(SingletonContentSet).getContent())
|
||||||
or
|
or
|
||||||
referenceAssignment(_, n, cs.(SingletonContentSet).getContent())
|
referenceAssignment(_, _, n.asExpr(), true, cs.(SingletonContentSet).getContent())
|
||||||
or
|
or
|
||||||
FlowSummaryImpl::Private::Steps::summaryClearsContent(n.(FlowSummaryNode).getSummaryNode(), cs)
|
FlowSummaryImpl::Private::Steps::summaryClearsContent(n.(FlowSummaryNode).getSummaryNode(), cs)
|
||||||
or
|
or
|
||||||
@@ -982,9 +1019,7 @@ private module Cached {
|
|||||||
newtype TDataFlowCall =
|
newtype TDataFlowCall =
|
||||||
TCall(Call call) {
|
TCall(Call call) {
|
||||||
Stages::DataFlowStage::ref() and
|
Stages::DataFlowStage::ref() and
|
||||||
call.hasEnclosingCfgScope() and
|
call.hasEnclosingCfgScope()
|
||||||
// TODO: Handle index expressions as calls in data flow.
|
|
||||||
not call instanceof IndexExpr
|
|
||||||
} or
|
} or
|
||||||
TSummaryCall(
|
TSummaryCall(
|
||||||
FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver
|
FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver
|
||||||
|
|||||||
@@ -350,7 +350,8 @@ final private class ExprOutNode extends ExprNode, OutNode {
|
|||||||
ExprOutNode() {
|
ExprOutNode() {
|
||||||
exists(Call call |
|
exists(Call call |
|
||||||
call = this.asExpr() and
|
call = this.asExpr() and
|
||||||
not call instanceof DerefExpr // Handled by `DerefOutNode`
|
not call instanceof DerefExpr and // Handled by `DerefOutNode`
|
||||||
|
not call instanceof IndexExpr // Handled by `IndexOutNode`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,6 +388,32 @@ class DerefOutNode extends OutNode, TDerefOutNode {
|
|||||||
override string toString() { result = de.toString() + " [pre-dereferenced]" }
|
override string toString() { result = de.toString() + " [pre-dereferenced]" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A node that represents the value of a `x[y]` expression _before_ implicit
|
||||||
|
* dereferencing:
|
||||||
|
*
|
||||||
|
* `x[y]` equivalent to `*x.index(y)`, and this node represents the
|
||||||
|
* `x.index(y)` part.
|
||||||
|
*/
|
||||||
|
class IndexOutNode extends OutNode, TIndexOutNode {
|
||||||
|
IndexExpr ie;
|
||||||
|
|
||||||
|
IndexOutNode() { this = TIndexOutNode(ie, false) }
|
||||||
|
|
||||||
|
IndexExpr getIndexExpr() { result = ie }
|
||||||
|
|
||||||
|
override CfgScope getCfgScope() { result = ie.getEnclosingCfgScope() }
|
||||||
|
|
||||||
|
override DataFlowCall getCall(ReturnKind kind) {
|
||||||
|
result.asCall() = ie and
|
||||||
|
kind = TNormalReturnKind()
|
||||||
|
}
|
||||||
|
|
||||||
|
override Location getLocation() { result = ie.getLocation() }
|
||||||
|
|
||||||
|
override string toString() { result = ie.toString() + " [pre-dereferenced]" }
|
||||||
|
}
|
||||||
|
|
||||||
final class SummaryOutNode extends FlowSummaryNode, OutNode {
|
final class SummaryOutNode extends FlowSummaryNode, OutNode {
|
||||||
private DataFlowCall call;
|
private DataFlowCall call;
|
||||||
private ReturnKind kind_;
|
private ReturnKind kind_;
|
||||||
@@ -476,6 +503,18 @@ class DerefOutPostUpdateNode extends PostUpdateNode, TDerefOutNode {
|
|||||||
override Location getLocation() { result = de.getLocation() }
|
override Location getLocation() { result = de.getLocation() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class IndexOutPostUpdateNode extends PostUpdateNode, TIndexOutNode {
|
||||||
|
IndexExpr ie;
|
||||||
|
|
||||||
|
IndexOutPostUpdateNode() { this = TIndexOutNode(ie, true) }
|
||||||
|
|
||||||
|
override IndexOutNode getPreUpdateNode() { result = TIndexOutNode(ie, false) }
|
||||||
|
|
||||||
|
override CfgScope getCfgScope() { result = ie.getEnclosingCfgScope() }
|
||||||
|
|
||||||
|
override Location getLocation() { result = ie.getLocation() }
|
||||||
|
}
|
||||||
|
|
||||||
final class SummaryPostUpdateNode extends FlowSummaryNode, PostUpdateNode {
|
final class SummaryPostUpdateNode extends FlowSummaryNode, PostUpdateNode {
|
||||||
private FlowSummaryNode pre;
|
private FlowSummaryNode pre;
|
||||||
|
|
||||||
@@ -514,7 +553,8 @@ newtype TNode =
|
|||||||
TExprPostUpdateNode(Expr e) {
|
TExprPostUpdateNode(Expr e) {
|
||||||
e.hasEnclosingCfgScope() and
|
e.hasEnclosingCfgScope() and
|
||||||
(
|
(
|
||||||
isArgumentForCall(e, _, _)
|
isArgumentForCall(e, _, _) and
|
||||||
|
not (e = any(CompoundAssignmentExpr cae).getLhs() and e instanceof VariableAccess)
|
||||||
or
|
or
|
||||||
lambdaCallExpr(_, _, e)
|
lambdaCallExpr(_, _, e)
|
||||||
or
|
or
|
||||||
@@ -526,7 +566,6 @@ newtype TNode =
|
|||||||
or
|
or
|
||||||
e =
|
e =
|
||||||
[
|
[
|
||||||
any(IndexExpr i).getBase(), //
|
|
||||||
any(FieldExpr access).getContainer(), //
|
any(FieldExpr access).getContainer(), //
|
||||||
any(TryExpr try).getExpr(), //
|
any(TryExpr try).getExpr(), //
|
||||||
any(AwaitExpr a).getExpr(), //
|
any(AwaitExpr a).getExpr(), //
|
||||||
@@ -542,6 +581,7 @@ newtype TNode =
|
|||||||
borrow = true
|
borrow = true
|
||||||
} or
|
} or
|
||||||
TDerefOutNode(DerefExpr de, Boolean isPost) or
|
TDerefOutNode(DerefExpr de, Boolean isPost) or
|
||||||
|
TIndexOutNode(IndexExpr ie, Boolean isPost) or
|
||||||
TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or
|
TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or
|
||||||
TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) {
|
TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) {
|
||||||
forall(AstNode n | n = sn.getSinkElement() or n = sn.getSourceElement() |
|
forall(AstNode n | n = sn.getSinkElement() or n = sn.getSourceElement() |
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ module RustTaintTracking implements InputSig<Location, RustDataFlow> {
|
|||||||
or
|
or
|
||||||
succ.(Node::PostUpdateNode).getPreUpdateNode().asExpr() =
|
succ.(Node::PostUpdateNode).getPreUpdateNode().asExpr() =
|
||||||
getPostUpdateReverseStep(pred.(Node::PostUpdateNode).getPreUpdateNode().asExpr(), false)
|
getPostUpdateReverseStep(pred.(Node::PostUpdateNode).getPreUpdateNode().asExpr(), false)
|
||||||
|
or
|
||||||
|
indexAssignment(any(CompoundAssignmentExpr cae),
|
||||||
|
pred.(Node::PostUpdateNode).getPreUpdateNode().asExpr(), _, succ, _)
|
||||||
)
|
)
|
||||||
or
|
or
|
||||||
FlowSummaryImpl::Private::Steps::summaryLocalStep(pred.(Node::FlowSummaryNode).getSummaryNode(),
|
FlowSummaryImpl::Private::Steps::summaryLocalStep(pred.(Node::FlowSummaryNode).getSummaryNode(),
|
||||||
|
|||||||
@@ -676,12 +676,12 @@ module Impl {
|
|||||||
predicate isCapture() { this.getEnclosingCfgScope() != v.getEnclosingCfgScope() }
|
predicate isCapture() { this.getEnclosingCfgScope() != v.getEnclosingCfgScope() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if `e` occurs in the LHS of an assignment or compound assignment. */
|
/** Holds if `e` occurs in the LHS of an assignment operation. */
|
||||||
private predicate assignmentExprDescendant(AssignmentExpr ae, Expr e) {
|
predicate assignmentOperationDescendant(AssignmentOperation ao, Expr e) {
|
||||||
e = ae.getLhs()
|
e = ao.getLhs()
|
||||||
or
|
or
|
||||||
exists(Expr mid |
|
exists(Expr mid |
|
||||||
assignmentExprDescendant(ae, mid) and
|
assignmentOperationDescendant(ao, mid) and
|
||||||
getImmediateParentAdj(e) = mid and
|
getImmediateParentAdj(e) = mid and
|
||||||
not mid instanceof DerefExpr and
|
not mid instanceof DerefExpr and
|
||||||
not mid instanceof FieldExpr and
|
not mid instanceof FieldExpr and
|
||||||
@@ -696,7 +696,7 @@ module Impl {
|
|||||||
cached
|
cached
|
||||||
VariableWriteAccess() {
|
VariableWriteAccess() {
|
||||||
Cached::ref() and
|
Cached::ref() and
|
||||||
assignmentExprDescendant(ae, this)
|
assignmentOperationDescendant(ae, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the assignment expression that has this write access in the left-hand side. */
|
/** Gets the assignment expression that has this write access in the left-hand side. */
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ extensions:
|
|||||||
# Builtin deref
|
# Builtin deref
|
||||||
- ["<& as core::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "manual"]
|
- ["<& as core::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "manual"]
|
||||||
- ["<&mut as core::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "manual"]
|
- ["<&mut as core::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "manual"]
|
||||||
|
# Index
|
||||||
|
- ["<_ as core::ops::index::Index>::index", "Argument[self].Reference.Element", "ReturnValue.Reference", "value", "manual"]
|
||||||
|
- ["<_ as core::ops::index::IndexMut>::index_mut", "Argument[self].Reference.Element", "ReturnValue.Reference", "value", "manual"]
|
||||||
# Arithmetic
|
# Arithmetic
|
||||||
- ["<_ as core::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "manual"]
|
- ["<_ as core::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "manual"]
|
||||||
- ["<_ as core::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "manual"]
|
- ["<_ as core::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ private import TypeMention
|
|||||||
private import typeinference.FunctionType
|
private import typeinference.FunctionType
|
||||||
private import typeinference.FunctionOverloading as FunctionOverloading
|
private import typeinference.FunctionOverloading as FunctionOverloading
|
||||||
private import typeinference.BlanketImplementation as BlanketImplementation
|
private import typeinference.BlanketImplementation as BlanketImplementation
|
||||||
|
private import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl
|
||||||
private import codeql.rust.internal.CachedStages
|
private import codeql.rust.internal.CachedStages
|
||||||
private import codeql.typeinference.internal.TypeInference
|
private import codeql.typeinference.internal.TypeInference
|
||||||
private import codeql.rust.frameworks.stdlib.Stdlib
|
private import codeql.rust.frameworks.stdlib.Stdlib
|
||||||
@@ -672,7 +673,7 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `child` is a child of `parent`, and the Rust compiler applies [least
|
* Holds if `child` is a child of `parent`, and the Rust compiler applies [least
|
||||||
* upper bound (LUB) coercion](1) to infer the type of `parent` from the type of
|
* upper bound (LUB) coercion][1] to infer the type of `parent` from the type of
|
||||||
* `child`.
|
* `child`.
|
||||||
*
|
*
|
||||||
* In this case, we want type information to only flow from `child` to `parent`,
|
* In this case, we want type information to only flow from `child` to `parent`,
|
||||||
@@ -1645,9 +1646,14 @@ private module MethodResolution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class MethodCallIndexExpr extends MethodCall instanceof IndexExpr {
|
private class MethodCallIndexExpr extends MethodCall instanceof IndexExpr {
|
||||||
|
private predicate isInMutableContext() {
|
||||||
|
// todo: does not handle all cases yet
|
||||||
|
VariableImpl::assignmentOperationDescendant(_, this)
|
||||||
|
}
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
override predicate hasNameAndArity(string name, int arity) {
|
override predicate hasNameAndArity(string name, int arity) {
|
||||||
name = "index" and
|
(if this.isInMutableContext() then name = "index_mut" else name = "index") and
|
||||||
arity = 1
|
arity = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1661,7 +1667,11 @@ private module MethodResolution {
|
|||||||
|
|
||||||
override predicate supportsAutoDerefAndBorrow() { any() }
|
override predicate supportsAutoDerefAndBorrow() { any() }
|
||||||
|
|
||||||
override Trait getTrait() { result.getCanonicalPath() = "core::ops::index::Index" }
|
override Trait getTrait() {
|
||||||
|
if this.isInMutableContext()
|
||||||
|
then result.getCanonicalPath() = "core::ops::index::IndexMut"
|
||||||
|
else result.getCanonicalPath() = "core::ops::index::Index"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MethodCallCallExpr extends MethodCall instanceof CallExpr {
|
private class MethodCallCallExpr extends MethodCall instanceof CallExpr {
|
||||||
|
|||||||
@@ -1,14 +1,22 @@
|
|||||||
models
|
models
|
||||||
| 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value |
|
| 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value |
|
||||||
|
| 2 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
edges
|
edges
|
||||||
| main.rs:15:13:15:13 | s | main.rs:16:20:16:20 | s | provenance | |
|
| main.rs:15:13:15:13 | s | main.rs:16:20:16:20 | s | provenance | |
|
||||||
| main.rs:15:17:15:25 | source(...) | main.rs:15:13:15:13 | s | provenance | |
|
| main.rs:15:17:15:25 | source(...) | main.rs:15:13:15:13 | s | provenance | |
|
||||||
| main.rs:16:13:16:15 | arr [element] | main.rs:17:14:17:16 | arr [element] | provenance | |
|
| main.rs:16:13:16:15 | arr [element] | main.rs:17:14:17:16 | arr [element] | provenance | |
|
||||||
|
| main.rs:16:13:16:15 | arr [element] | main.rs:18:15:18:17 | arr [element] | provenance | |
|
||||||
| main.rs:16:19:16:24 | [s; 5] [element] | main.rs:16:13:16:15 | arr [element] | provenance | |
|
| main.rs:16:19:16:24 | [s; 5] [element] | main.rs:16:13:16:15 | arr [element] | provenance | |
|
||||||
| main.rs:16:20:16:20 | s | main.rs:16:19:16:24 | [s; 5] [element] | provenance | |
|
| main.rs:16:20:16:20 | s | main.rs:16:19:16:24 | [s; 5] [element] | provenance | |
|
||||||
| main.rs:17:14:17:16 | arr [element] | main.rs:17:14:17:19 | arr[2] | provenance | |
|
| main.rs:17:14:17:16 | arr [element] | main.rs:17:14:17:19 | arr[2] | provenance | MaD:2 |
|
||||||
| main.rs:20:13:20:19 | mut arr | main.rs:21:14:21:19 | arr[0] | provenance | |
|
| main.rs:18:15:18:17 | arr [element] | main.rs:18:15:18:26 | arr.index(...) [&ref] | provenance | MaD:2 |
|
||||||
|
| main.rs:18:15:18:26 | arr.index(...) [&ref] | main.rs:18:14:18:26 | * ... | provenance | MaD:1 |
|
||||||
|
| main.rs:20:13:20:19 | mut arr | main.rs:21:14:21:16 | arr | provenance | |
|
||||||
|
| main.rs:20:13:20:19 | mut arr | main.rs:22:15:22:17 | arr | provenance | |
|
||||||
| main.rs:20:23:20:33 | source(...) | main.rs:20:13:20:19 | mut arr | provenance | |
|
| main.rs:20:23:20:33 | source(...) | main.rs:20:13:20:19 | mut arr | provenance | |
|
||||||
|
| main.rs:21:14:21:16 | arr | main.rs:21:14:21:19 | arr[0] | provenance | MaD:2 |
|
||||||
|
| main.rs:22:15:22:17 | arr | main.rs:22:15:22:26 | arr.index(...) [&ref] | provenance | MaD:2 |
|
||||||
|
| main.rs:22:15:22:26 | arr.index(...) [&ref] | main.rs:22:14:22:26 | * ... | provenance | MaD:1 |
|
||||||
| main.rs:24:13:24:13 | s | main.rs:25:20:25:20 | s | provenance | |
|
| main.rs:24:13:24:13 | s | main.rs:25:20:25:20 | s | provenance | |
|
||||||
| main.rs:24:17:24:25 | source(...) | main.rs:24:13:24:13 | s | provenance | |
|
| main.rs:24:17:24:25 | source(...) | main.rs:24:13:24:13 | s | provenance | |
|
||||||
| main.rs:25:13:25:15 | arr [element] | main.rs:26:18:26:20 | arr [element] | provenance | |
|
| main.rs:25:13:25:15 | arr [element] | main.rs:26:18:26:20 | arr [element] | provenance | |
|
||||||
@@ -20,17 +28,25 @@ edges
|
|||||||
| main.rs:30:19:30:29 | source(...) | main.rs:30:13:30:15 | arr | provenance | |
|
| main.rs:30:19:30:29 | source(...) | main.rs:30:13:30:15 | arr | provenance | |
|
||||||
| main.rs:37:9:37:11 | [post] arr [element] | main.rs:38:14:38:16 | arr [element] | provenance | |
|
| main.rs:37:9:37:11 | [post] arr [element] | main.rs:38:14:38:16 | arr [element] | provenance | |
|
||||||
| main.rs:37:18:37:26 | source(...) | main.rs:37:9:37:11 | [post] arr [element] | provenance | |
|
| main.rs:37:18:37:26 | source(...) | main.rs:37:9:37:11 | [post] arr [element] | provenance | |
|
||||||
| main.rs:38:14:38:16 | arr [element] | main.rs:38:14:38:19 | arr[0] | provenance | |
|
| main.rs:38:14:38:16 | arr [element] | main.rs:38:14:38:19 | arr[0] | provenance | MaD:2 |
|
||||||
| main.rs:63:18:63:22 | SelfParam [&ref, S] | main.rs:63:56:65:9 | { ... } [&ref, S] | provenance | |
|
| main.rs:63:18:63:22 | SelfParam [&ref, S] | main.rs:63:56:65:9 | { ... } [&ref, S] | provenance | |
|
||||||
| main.rs:82:13:82:13 | s | main.rs:83:19:83:19 | s | provenance | |
|
| main.rs:82:13:82:13 | s | main.rs:83:19:83:19 | s | provenance | |
|
||||||
| main.rs:82:17:82:25 | source(...) | main.rs:82:13:82:13 | s | provenance | |
|
| main.rs:82:17:82:25 | source(...) | main.rs:82:13:82:13 | s | provenance | |
|
||||||
|
| main.rs:83:13:83:13 | s [S] | main.rs:84:14:84:14 | s [S] | provenance | |
|
||||||
| main.rs:83:13:83:13 | s [S] | main.rs:85:16:85:16 | s [S] | provenance | |
|
| main.rs:83:13:83:13 | s [S] | main.rs:85:16:85:16 | s [S] | provenance | |
|
||||||
| main.rs:83:17:83:20 | S(...) [S] | main.rs:83:13:83:13 | s [S] | provenance | |
|
| main.rs:83:17:83:20 | S(...) [S] | main.rs:83:13:83:13 | s [S] | provenance | |
|
||||||
| main.rs:83:19:83:19 | s | main.rs:83:17:83:20 | S(...) [S] | provenance | |
|
| main.rs:83:19:83:19 | s | main.rs:83:17:83:20 | S(...) [S] | provenance | |
|
||||||
|
| main.rs:84:14:84:14 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | provenance | |
|
||||||
|
| main.rs:84:14:84:14 | s [S] | main.rs:84:14:84:17 | s[0] [S] | provenance | |
|
||||||
|
| main.rs:84:14:84:17 | s[0] [S] | main.rs:84:14:84:19 | ... .0 | provenance | |
|
||||||
| main.rs:85:15:85:25 | * ... [S] | main.rs:85:14:85:28 | ... .0 | provenance | |
|
| main.rs:85:15:85:25 | * ... [S] | main.rs:85:14:85:28 | ... .0 | provenance | |
|
||||||
| main.rs:85:16:85:16 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | provenance | |
|
| main.rs:85:16:85:16 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | provenance | |
|
||||||
| main.rs:85:16:85:16 | s [S] | main.rs:85:16:85:25 | s.index(...) [&ref, S] | provenance | |
|
| main.rs:85:16:85:16 | s [S] | main.rs:85:16:85:25 | s.index(...) [&ref, S] | provenance | |
|
||||||
| main.rs:85:16:85:25 | s.index(...) [&ref, S] | main.rs:85:15:85:25 | * ... [S] | provenance | MaD:1 |
|
| main.rs:85:16:85:25 | s.index(...) [&ref, S] | main.rs:85:15:85:25 | * ... [S] | provenance | MaD:1 |
|
||||||
|
| main.rs:89:9:89:9 | [post] s [S] | main.rs:90:14:90:14 | s [S] | provenance | |
|
||||||
|
| main.rs:89:16:89:27 | S(...) [S] | main.rs:89:9:89:9 | [post] s [S] | provenance | |
|
||||||
|
| main.rs:89:18:89:26 | source(...) | main.rs:89:16:89:27 | S(...) [S] | provenance | |
|
||||||
|
| main.rs:90:14:90:14 | s [S] | main.rs:90:14:90:16 | s.0 | provenance | |
|
||||||
| main.rs:94:10:94:10 | [post] s [S] | main.rs:95:14:95:14 | s [S] | provenance | |
|
| main.rs:94:10:94:10 | [post] s [S] | main.rs:95:14:95:14 | s [S] | provenance | |
|
||||||
| main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | main.rs:94:10:94:10 | [post] s [S] | provenance | |
|
| main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | main.rs:94:10:94:10 | [post] s [S] | provenance | |
|
||||||
| main.rs:94:27:94:38 | S(...) [S] | main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | provenance | |
|
| main.rs:94:27:94:38 | S(...) [S] | main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | provenance | |
|
||||||
@@ -44,9 +60,16 @@ nodes
|
|||||||
| main.rs:16:20:16:20 | s | semmle.label | s |
|
| main.rs:16:20:16:20 | s | semmle.label | s |
|
||||||
| main.rs:17:14:17:16 | arr [element] | semmle.label | arr [element] |
|
| main.rs:17:14:17:16 | arr [element] | semmle.label | arr [element] |
|
||||||
| main.rs:17:14:17:19 | arr[2] | semmle.label | arr[2] |
|
| main.rs:17:14:17:19 | arr[2] | semmle.label | arr[2] |
|
||||||
|
| main.rs:18:14:18:26 | * ... | semmle.label | * ... |
|
||||||
|
| main.rs:18:15:18:17 | arr [element] | semmle.label | arr [element] |
|
||||||
|
| main.rs:18:15:18:26 | arr.index(...) [&ref] | semmle.label | arr.index(...) [&ref] |
|
||||||
| main.rs:20:13:20:19 | mut arr | semmle.label | mut arr |
|
| main.rs:20:13:20:19 | mut arr | semmle.label | mut arr |
|
||||||
| main.rs:20:23:20:33 | source(...) | semmle.label | source(...) |
|
| main.rs:20:23:20:33 | source(...) | semmle.label | source(...) |
|
||||||
|
| main.rs:21:14:21:16 | arr | semmle.label | arr |
|
||||||
| main.rs:21:14:21:19 | arr[0] | semmle.label | arr[0] |
|
| main.rs:21:14:21:19 | arr[0] | semmle.label | arr[0] |
|
||||||
|
| main.rs:22:14:22:26 | * ... | semmle.label | * ... |
|
||||||
|
| main.rs:22:15:22:17 | arr | semmle.label | arr |
|
||||||
|
| main.rs:22:15:22:26 | arr.index(...) [&ref] | semmle.label | arr.index(...) [&ref] |
|
||||||
| main.rs:24:13:24:13 | s | semmle.label | s |
|
| main.rs:24:13:24:13 | s | semmle.label | s |
|
||||||
| main.rs:24:17:24:25 | source(...) | semmle.label | source(...) |
|
| main.rs:24:17:24:25 | source(...) | semmle.label | source(...) |
|
||||||
| main.rs:25:13:25:15 | arr [element] | semmle.label | arr [element] |
|
| main.rs:25:13:25:15 | arr [element] | semmle.label | arr [element] |
|
||||||
@@ -69,10 +92,18 @@ nodes
|
|||||||
| main.rs:83:13:83:13 | s [S] | semmle.label | s [S] |
|
| main.rs:83:13:83:13 | s [S] | semmle.label | s [S] |
|
||||||
| main.rs:83:17:83:20 | S(...) [S] | semmle.label | S(...) [S] |
|
| main.rs:83:17:83:20 | S(...) [S] | semmle.label | S(...) [S] |
|
||||||
| main.rs:83:19:83:19 | s | semmle.label | s |
|
| main.rs:83:19:83:19 | s | semmle.label | s |
|
||||||
|
| main.rs:84:14:84:14 | s [S] | semmle.label | s [S] |
|
||||||
|
| main.rs:84:14:84:17 | s[0] [S] | semmle.label | s[0] [S] |
|
||||||
|
| main.rs:84:14:84:19 | ... .0 | semmle.label | ... .0 |
|
||||||
| main.rs:85:14:85:28 | ... .0 | semmle.label | ... .0 |
|
| main.rs:85:14:85:28 | ... .0 | semmle.label | ... .0 |
|
||||||
| main.rs:85:15:85:25 | * ... [S] | semmle.label | * ... [S] |
|
| main.rs:85:15:85:25 | * ... [S] | semmle.label | * ... [S] |
|
||||||
| main.rs:85:16:85:16 | s [S] | semmle.label | s [S] |
|
| main.rs:85:16:85:16 | s [S] | semmle.label | s [S] |
|
||||||
| main.rs:85:16:85:25 | s.index(...) [&ref, S] | semmle.label | s.index(...) [&ref, S] |
|
| main.rs:85:16:85:25 | s.index(...) [&ref, S] | semmle.label | s.index(...) [&ref, S] |
|
||||||
|
| main.rs:89:9:89:9 | [post] s [S] | semmle.label | [post] s [S] |
|
||||||
|
| main.rs:89:16:89:27 | S(...) [S] | semmle.label | S(...) [S] |
|
||||||
|
| main.rs:89:18:89:26 | source(...) | semmle.label | source(...) |
|
||||||
|
| main.rs:90:14:90:14 | s [S] | semmle.label | s [S] |
|
||||||
|
| main.rs:90:14:90:16 | s.0 | semmle.label | s.0 |
|
||||||
| main.rs:94:10:94:10 | [post] s [S] | semmle.label | [post] s [S] |
|
| main.rs:94:10:94:10 | [post] s [S] | semmle.label | [post] s [S] |
|
||||||
| main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | semmle.label | [post] s.index_mut(...) [&ref, S] |
|
| main.rs:94:10:94:23 | [post] s.index_mut(...) [&ref, S] | semmle.label | [post] s.index_mut(...) [&ref, S] |
|
||||||
| main.rs:94:27:94:38 | S(...) [S] | semmle.label | S(...) [S] |
|
| main.rs:94:27:94:38 | S(...) [S] | semmle.label | S(...) [S] |
|
||||||
@@ -80,13 +111,18 @@ nodes
|
|||||||
| main.rs:95:14:95:14 | s [S] | semmle.label | s [S] |
|
| main.rs:95:14:95:14 | s [S] | semmle.label | s [S] |
|
||||||
| main.rs:95:14:95:16 | s.0 | semmle.label | s.0 |
|
| main.rs:95:14:95:16 | s.0 | semmle.label | s.0 |
|
||||||
subpaths
|
subpaths
|
||||||
|
| main.rs:84:14:84:14 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | main.rs:63:56:65:9 | { ... } [&ref, S] | main.rs:84:14:84:17 | s[0] [S] |
|
||||||
| main.rs:85:16:85:16 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | main.rs:63:56:65:9 | { ... } [&ref, S] | main.rs:85:16:85:25 | s.index(...) [&ref, S] |
|
| main.rs:85:16:85:16 | s [S] | main.rs:63:18:63:22 | SelfParam [&ref, S] | main.rs:63:56:65:9 | { ... } [&ref, S] | main.rs:85:16:85:25 | s.index(...) [&ref, S] |
|
||||||
testFailures
|
testFailures
|
||||||
#select
|
#select
|
||||||
| main.rs:17:14:17:19 | arr[2] | main.rs:15:17:15:25 | source(...) | main.rs:17:14:17:19 | arr[2] | $@ | main.rs:15:17:15:25 | source(...) | source(...) |
|
| main.rs:17:14:17:19 | arr[2] | main.rs:15:17:15:25 | source(...) | main.rs:17:14:17:19 | arr[2] | $@ | main.rs:15:17:15:25 | source(...) | source(...) |
|
||||||
|
| main.rs:18:14:18:26 | * ... | main.rs:15:17:15:25 | source(...) | main.rs:18:14:18:26 | * ... | $@ | main.rs:15:17:15:25 | source(...) | source(...) |
|
||||||
| main.rs:21:14:21:19 | arr[0] | main.rs:20:23:20:33 | source(...) | main.rs:21:14:21:19 | arr[0] | $@ | main.rs:20:23:20:33 | source(...) | source(...) |
|
| main.rs:21:14:21:19 | arr[0] | main.rs:20:23:20:33 | source(...) | main.rs:21:14:21:19 | arr[0] | $@ | main.rs:20:23:20:33 | source(...) | source(...) |
|
||||||
|
| main.rs:22:14:22:26 | * ... | main.rs:20:23:20:33 | source(...) | main.rs:22:14:22:26 | * ... | $@ | main.rs:20:23:20:33 | source(...) | source(...) |
|
||||||
| main.rs:27:18:27:18 | x | main.rs:24:17:24:25 | source(...) | main.rs:27:18:27:18 | x | $@ | main.rs:24:17:24:25 | source(...) | source(...) |
|
| main.rs:27:18:27:18 | x | main.rs:24:17:24:25 | source(...) | main.rs:27:18:27:18 | x | $@ | main.rs:24:17:24:25 | source(...) | source(...) |
|
||||||
| main.rs:32:18:32:18 | x | main.rs:30:19:30:29 | source(...) | main.rs:32:18:32:18 | x | $@ | main.rs:30:19:30:29 | source(...) | source(...) |
|
| main.rs:32:18:32:18 | x | main.rs:30:19:30:29 | source(...) | main.rs:32:18:32:18 | x | $@ | main.rs:30:19:30:29 | source(...) | source(...) |
|
||||||
| main.rs:38:14:38:19 | arr[0] | main.rs:37:18:37:26 | source(...) | main.rs:38:14:38:19 | arr[0] | $@ | main.rs:37:18:37:26 | source(...) | source(...) |
|
| main.rs:38:14:38:19 | arr[0] | main.rs:37:18:37:26 | source(...) | main.rs:38:14:38:19 | arr[0] | $@ | main.rs:37:18:37:26 | source(...) | source(...) |
|
||||||
|
| main.rs:84:14:84:19 | ... .0 | main.rs:82:17:82:25 | source(...) | main.rs:84:14:84:19 | ... .0 | $@ | main.rs:82:17:82:25 | source(...) | source(...) |
|
||||||
| main.rs:85:14:85:28 | ... .0 | main.rs:82:17:82:25 | source(...) | main.rs:85:14:85:28 | ... .0 | $@ | main.rs:82:17:82:25 | source(...) | source(...) |
|
| main.rs:85:14:85:28 | ... .0 | main.rs:82:17:82:25 | source(...) | main.rs:85:14:85:28 | ... .0 | $@ | main.rs:82:17:82:25 | source(...) | source(...) |
|
||||||
|
| main.rs:90:14:90:16 | s.0 | main.rs:89:18:89:26 | source(...) | main.rs:90:14:90:16 | s.0 | $@ | main.rs:89:18:89:26 | source(...) | source(...) |
|
||||||
| main.rs:95:14:95:16 | s.0 | main.rs:94:29:94:37 | source(...) | main.rs:95:14:95:16 | s.0 | $@ | main.rs:94:29:94:37 | source(...) | source(...) |
|
| main.rs:95:14:95:16 | s.0 | main.rs:94:29:94:37 | source(...) | main.rs:95:14:95:16 | s.0 | $@ | main.rs:94:29:94:37 | source(...) | source(...) |
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ mod arrays {
|
|||||||
let s = source(0);
|
let s = source(0);
|
||||||
let arr = [s; 5];
|
let arr = [s; 5];
|
||||||
sink(arr[2]); // $ hasValueFlow=0
|
sink(arr[2]); // $ hasValueFlow=0
|
||||||
sink(*arr.index(2)); // $ MISSING: hasValueFlow=0
|
sink(*arr.index(2)); // $ hasValueFlow=0
|
||||||
|
|
||||||
let mut arr = source([1]);
|
let mut arr = source([1]);
|
||||||
sink(arr[0]); // $ hasTaintFlow=1
|
sink(arr[0]); // $ hasTaintFlow=1
|
||||||
sink(*arr.index(0)); // $ MISSING: hasTaintFlow=1
|
sink(*arr.index(0)); // $ hasTaintFlow=1
|
||||||
|
|
||||||
let s = source(2);
|
let s = source(2);
|
||||||
let arr = [s];
|
let arr = [s];
|
||||||
@@ -81,13 +81,13 @@ mod indexers {
|
|||||||
pub fn f() {
|
pub fn f() {
|
||||||
let s = source(0);
|
let s = source(0);
|
||||||
let s = S(s);
|
let s = S(s);
|
||||||
sink(s[0].0); // $ MISSING: hasValueFlow=0
|
sink(s[0].0); // $ hasValueFlow=0
|
||||||
sink((*s.index(0)).0); // $ hasValueFlow=0
|
sink((*s.index(0)).0); // $ hasValueFlow=0
|
||||||
|
|
||||||
let mut s = S(0);
|
let mut s = S(0);
|
||||||
sink(s.0);
|
sink(s.0);
|
||||||
s[0] = S(source(1));
|
s[0] = S(source(1));
|
||||||
sink(s.0); // $ MISSING: hasValueFlow=1
|
sink(s.0); // $ hasValueFlow=1
|
||||||
|
|
||||||
let mut s = S(0);
|
let mut s = S(0);
|
||||||
sink(s.0);
|
sink(s.0);
|
||||||
|
|||||||
@@ -905,24 +905,24 @@ readStep
|
|||||||
| main.rs:421:9:421:24 | C {...} | main.rs:384:9:384:20 | C | main.rs:421:22:421:22 | n |
|
| main.rs:421:9:421:24 | C {...} | main.rs:384:9:384:20 | C | main.rs:421:22:421:22 | n |
|
||||||
| main.rs:422:9:422:24 | D {...} | main.rs:385:9:385:20 | D | main.rs:422:22:422:22 | n |
|
| main.rs:422:9:422:24 | D {...} | main.rs:385:9:385:20 | D | main.rs:422:22:422:22 | n |
|
||||||
| main.rs:431:14:431:17 | [post] arr1 [borrowed] | file://:0:0:0:0 | &ref | main.rs:431:14:431:17 | [post] arr1 |
|
| main.rs:431:14:431:17 | [post] arr1 [borrowed] | file://:0:0:0:0 | &ref | main.rs:431:14:431:17 | [post] arr1 |
|
||||||
| main.rs:431:14:431:17 | arr1 | file://:0:0:0:0 | element | main.rs:431:14:431:20 | arr1[2] |
|
| main.rs:431:14:431:20 | arr1[2] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:431:14:431:20 | arr1[2] |
|
||||||
| main.rs:435:14:435:17 | [post] arr2 [borrowed] | file://:0:0:0:0 | &ref | main.rs:435:14:435:17 | [post] arr2 |
|
| main.rs:435:14:435:17 | [post] arr2 [borrowed] | file://:0:0:0:0 | &ref | main.rs:435:14:435:17 | [post] arr2 |
|
||||||
| main.rs:435:14:435:17 | arr2 | file://:0:0:0:0 | element | main.rs:435:14:435:20 | arr2[4] |
|
| main.rs:435:14:435:20 | arr2[4] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:435:14:435:20 | arr2[4] |
|
||||||
| main.rs:439:14:439:17 | [post] arr3 [borrowed] | file://:0:0:0:0 | &ref | main.rs:439:14:439:17 | [post] arr3 |
|
| main.rs:439:14:439:17 | [post] arr3 [borrowed] | file://:0:0:0:0 | &ref | main.rs:439:14:439:17 | [post] arr3 |
|
||||||
| main.rs:439:14:439:17 | arr3 | file://:0:0:0:0 | element | main.rs:439:14:439:20 | arr3[2] |
|
| main.rs:439:14:439:20 | arr3[2] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:439:14:439:20 | arr3[2] |
|
||||||
| main.rs:445:15:445:18 | arr1 | file://:0:0:0:0 | element | main.rs:445:9:445:10 | n1 |
|
| main.rs:445:15:445:18 | arr1 | file://:0:0:0:0 | element | main.rs:445:9:445:10 | n1 |
|
||||||
| main.rs:450:15:450:18 | arr2 | file://:0:0:0:0 | element | main.rs:450:9:450:10 | n2 |
|
| main.rs:450:15:450:18 | arr2 | file://:0:0:0:0 | element | main.rs:450:9:450:10 | n2 |
|
||||||
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:10:458:10 | a |
|
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:10:458:10 | a |
|
||||||
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:13:458:13 | b |
|
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:13:458:13 | b |
|
||||||
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:16:458:16 | c |
|
| main.rs:458:9:458:17 | SlicePat | file://:0:0:0:0 | element | main.rs:458:16:458:16 | c |
|
||||||
| main.rs:468:10:468:16 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:468:10:468:16 | [post] mut_arr |
|
| main.rs:468:10:468:16 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:468:10:468:16 | [post] mut_arr |
|
||||||
| main.rs:468:10:468:16 | mut_arr | file://:0:0:0:0 | element | main.rs:468:10:468:19 | mut_arr[1] |
|
| main.rs:468:10:468:19 | mut_arr[1] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:468:10:468:19 | mut_arr[1] |
|
||||||
| main.rs:470:5:470:11 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:470:5:470:11 | [post] mut_arr |
|
| main.rs:470:5:470:11 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:470:5:470:11 | [post] mut_arr |
|
||||||
| main.rs:470:5:470:11 | mut_arr | file://:0:0:0:0 | element | main.rs:470:5:470:14 | mut_arr[1] |
|
| main.rs:470:5:470:14 | mut_arr[1] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:470:5:470:14 | mut_arr[1] |
|
||||||
| main.rs:471:13:471:19 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:471:13:471:19 | [post] mut_arr |
|
| main.rs:471:13:471:19 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:471:13:471:19 | [post] mut_arr |
|
||||||
| main.rs:471:13:471:19 | mut_arr | file://:0:0:0:0 | element | main.rs:471:13:471:22 | mut_arr[1] |
|
| main.rs:471:13:471:22 | mut_arr[1] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:471:13:471:22 | mut_arr[1] |
|
||||||
| main.rs:473:10:473:16 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:473:10:473:16 | [post] mut_arr |
|
| main.rs:473:10:473:16 | [post] mut_arr [borrowed] | file://:0:0:0:0 | &ref | main.rs:473:10:473:16 | [post] mut_arr |
|
||||||
| main.rs:473:10:473:16 | mut_arr | file://:0:0:0:0 | element | main.rs:473:10:473:19 | mut_arr[0] |
|
| main.rs:473:10:473:19 | mut_arr[0] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:473:10:473:19 | mut_arr[0] |
|
||||||
| main.rs:479:24:479:33 | [post] source(...) [borrowed] | file://:0:0:0:0 | &ref | main.rs:479:24:479:33 | [post] source(...) |
|
| main.rs:479:24:479:33 | [post] source(...) [borrowed] | file://:0:0:0:0 | &ref | main.rs:479:24:479:33 | [post] source(...) |
|
||||||
| main.rs:480:9:480:20 | TuplePat | file://:0:0:0:0 | tuple.0 | main.rs:480:10:480:13 | cond |
|
| main.rs:480:9:480:20 | TuplePat | file://:0:0:0:0 | tuple.0 | main.rs:480:10:480:13 | cond |
|
||||||
| main.rs:480:9:480:20 | TuplePat | file://:0:0:0:0 | tuple.1 | main.rs:480:16:480:19 | name |
|
| main.rs:480:9:480:20 | TuplePat | file://:0:0:0:0 | tuple.1 | main.rs:480:16:480:19 | name |
|
||||||
@@ -933,7 +933,7 @@ readStep
|
|||||||
| main.rs:483:18:483:18 | [post] n [borrowed] | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | [post] n |
|
| main.rs:483:18:483:18 | [post] n [borrowed] | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | [post] n |
|
||||||
| main.rs:506:13:506:13 | [post] a [borrowed] | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | [post] a |
|
| main.rs:506:13:506:13 | [post] a [borrowed] | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | [post] a |
|
||||||
| main.rs:519:10:519:11 | [post] vs [borrowed] | file://:0:0:0:0 | &ref | main.rs:519:10:519:11 | [post] vs |
|
| main.rs:519:10:519:11 | [post] vs [borrowed] | file://:0:0:0:0 | &ref | main.rs:519:10:519:11 | [post] vs |
|
||||||
| main.rs:519:10:519:11 | vs | file://:0:0:0:0 | element | main.rs:519:10:519:14 | vs[0] |
|
| main.rs:519:10:519:14 | vs[0] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:519:10:519:14 | vs[0] |
|
||||||
| main.rs:520:10:520:35 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:520:10:520:35 | * ... |
|
| main.rs:520:10:520:35 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:520:10:520:35 | * ... |
|
||||||
| main.rs:520:11:520:35 | [post] ... .unwrap() [borrowed] | file://:0:0:0:0 | &ref | main.rs:520:11:520:35 | [post] ... .unwrap() |
|
| main.rs:520:11:520:35 | [post] ... .unwrap() [borrowed] | file://:0:0:0:0 | &ref | main.rs:520:11:520:35 | [post] ... .unwrap() |
|
||||||
| main.rs:521:10:521:35 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:521:10:521:35 | * ... |
|
| main.rs:521:10:521:35 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:521:10:521:35 | * ... |
|
||||||
@@ -949,7 +949,7 @@ readStep
|
|||||||
| main.rs:536:34:536:34 | [post] x [borrowed] | file://:0:0:0:0 | &ref | main.rs:536:34:536:34 | [post] x |
|
| main.rs:536:34:536:34 | [post] x [borrowed] | file://:0:0:0:0 | &ref | main.rs:536:34:536:34 | [post] x |
|
||||||
| main.rs:538:14:538:27 | vs.into_iter() | file://:0:0:0:0 | element | main.rs:538:9:538:9 | v |
|
| main.rs:538:14:538:27 | vs.into_iter() | file://:0:0:0:0 | element | main.rs:538:9:538:9 | v |
|
||||||
| main.rs:544:10:544:15 | [post] vs_mut [borrowed] | file://:0:0:0:0 | &ref | main.rs:544:10:544:15 | [post] vs_mut |
|
| main.rs:544:10:544:15 | [post] vs_mut [borrowed] | file://:0:0:0:0 | &ref | main.rs:544:10:544:15 | [post] vs_mut |
|
||||||
| main.rs:544:10:544:15 | vs_mut | file://:0:0:0:0 | element | main.rs:544:10:544:18 | vs_mut[0] |
|
| main.rs:544:10:544:18 | vs_mut[0] [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:544:10:544:18 | vs_mut[0] |
|
||||||
| main.rs:545:10:545:39 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:545:10:545:39 | * ... |
|
| main.rs:545:10:545:39 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:545:10:545:39 | * ... |
|
||||||
| main.rs:545:11:545:39 | [post] ... .unwrap() [borrowed] | file://:0:0:0:0 | &ref | main.rs:545:11:545:39 | [post] ... .unwrap() |
|
| main.rs:545:11:545:39 | [post] ... .unwrap() [borrowed] | file://:0:0:0:0 | &ref | main.rs:545:11:545:39 | [post] ... .unwrap() |
|
||||||
| main.rs:546:10:546:39 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:546:10:546:39 | * ... |
|
| main.rs:546:10:546:39 | * ... [pre-dereferenced] | file://:0:0:0:0 | &ref | main.rs:546:10:546:39 | * ... |
|
||||||
@@ -1042,6 +1042,7 @@ storeStep
|
|||||||
| main.rs:467:30:467:30 | 3 | file://:0:0:0:0 | element | main.rs:467:23:467:31 | [...] |
|
| main.rs:467:30:467:30 | 3 | file://:0:0:0:0 | element | main.rs:467:23:467:31 | [...] |
|
||||||
| main.rs:468:10:468:16 | mut_arr | file://:0:0:0:0 | &ref | main.rs:468:10:468:16 | mut_arr [borrowed] |
|
| main.rs:468:10:468:16 | mut_arr | file://:0:0:0:0 | &ref | main.rs:468:10:468:16 | mut_arr [borrowed] |
|
||||||
| main.rs:470:5:470:11 | mut_arr | file://:0:0:0:0 | &ref | main.rs:470:5:470:11 | mut_arr [borrowed] |
|
| main.rs:470:5:470:11 | mut_arr | file://:0:0:0:0 | &ref | main.rs:470:5:470:11 | mut_arr [borrowed] |
|
||||||
|
| main.rs:470:18:470:27 | source(...) | file://:0:0:0:0 | &ref | main.rs:470:5:470:14 | [post] mut_arr[1] [pre-dereferenced] |
|
||||||
| main.rs:470:18:470:27 | source(...) | file://:0:0:0:0 | element | main.rs:470:5:470:11 | [post] mut_arr |
|
| main.rs:470:18:470:27 | source(...) | file://:0:0:0:0 | element | main.rs:470:5:470:11 | [post] mut_arr |
|
||||||
| main.rs:471:13:471:19 | mut_arr | file://:0:0:0:0 | &ref | main.rs:471:13:471:19 | mut_arr [borrowed] |
|
| main.rs:471:13:471:19 | mut_arr | file://:0:0:0:0 | &ref | main.rs:471:13:471:19 | mut_arr [borrowed] |
|
||||||
| main.rs:473:10:473:16 | mut_arr | file://:0:0:0:0 | &ref | main.rs:473:10:473:16 | mut_arr [borrowed] |
|
| main.rs:473:10:473:16 | mut_arr | file://:0:0:0:0 | &ref | main.rs:473:10:473:16 | mut_arr [borrowed] |
|
||||||
|
|||||||
@@ -2,20 +2,21 @@ models
|
|||||||
| 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value |
|
| 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value |
|
||||||
| 2 | Summary: <_ as alloc::string::ToString>::to_string; Argument[self].Reference; ReturnValue; taint |
|
| 2 | Summary: <_ as alloc::string::ToString>::to_string; Argument[self].Reference; ReturnValue; taint |
|
||||||
| 3 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
| 3 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
||||||
| 4 | Summary: <alloc::boxed::Box as core::ops::deref::Deref>::deref; Argument[self].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value |
|
| 4 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 5 | Summary: <alloc::boxed::Box>::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value |
|
| 5 | Summary: <alloc::boxed::Box as core::ops::deref::Deref>::deref; Argument[self].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value |
|
||||||
| 6 | Summary: <core::i64 as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
| 6 | Summary: <alloc::boxed::Box>::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value |
|
||||||
| 7 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 7 | Summary: <core::i64 as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
||||||
| 8 | Summary: <core::option::Option>::unwrap_or; Argument[0]; ReturnValue; value |
|
| 8 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 9 | Summary: <core::option::Option>::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 9 | Summary: <core::option::Option>::unwrap_or; Argument[0]; ReturnValue; value |
|
||||||
| 10 | Summary: <core::option::Option>::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value |
|
| 10 | Summary: <core::option::Option>::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 11 | Summary: <core::option::Option>::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 11 | Summary: <core::option::Option>::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value |
|
||||||
| 12 | Summary: <core::result::Result>::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
| 12 | Summary: <core::option::Option>::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 13 | Summary: <core::result::Result>::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 13 | Summary: <core::result::Result>::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
||||||
| 14 | Summary: <core::result::Result>::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value |
|
| 14 | Summary: <core::result::Result>::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
| 15 | Summary: <core::result::Result>::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
| 15 | Summary: <core::result::Result>::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value |
|
||||||
| 16 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 16 | Summary: <core::result::Result>::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
||||||
| 17 | Summary: <core::str>::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 17 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
|
| 18 | Summary: <core::str>::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
edges
|
edges
|
||||||
| main.rs:23:9:23:9 | s | main.rs:24:10:24:10 | s | provenance | |
|
| main.rs:23:9:23:9 | s | main.rs:24:10:24:10 | s | provenance | |
|
||||||
| main.rs:23:9:23:9 | s | main.rs:26:12:26:12 | x | provenance | |
|
| main.rs:23:9:23:9 | s | main.rs:26:12:26:12 | x | provenance | |
|
||||||
@@ -43,8 +44,8 @@ edges
|
|||||||
| main.rs:82:5:82:5 | l | main.rs:83:10:83:10 | l | provenance | |
|
| main.rs:82:5:82:5 | l | main.rs:83:10:83:10 | l | provenance | |
|
||||||
| main.rs:115:9:115:9 | i [Box(0)] | main.rs:116:11:116:11 | i [Box(0)] | provenance | |
|
| main.rs:115:9:115:9 | i [Box(0)] | main.rs:116:11:116:11 | i [Box(0)] | provenance | |
|
||||||
| main.rs:115:13:115:31 | ...::new(...) [Box(0)] | main.rs:115:9:115:9 | i [Box(0)] | provenance | |
|
| main.rs:115:13:115:31 | ...::new(...) [Box(0)] | main.rs:115:9:115:9 | i [Box(0)] | provenance | |
|
||||||
| main.rs:115:22:115:30 | source(...) | main.rs:115:13:115:31 | ...::new(...) [Box(0)] | provenance | MaD:5 |
|
| main.rs:115:22:115:30 | source(...) | main.rs:115:13:115:31 | ...::new(...) [Box(0)] | provenance | MaD:6 |
|
||||||
| main.rs:116:11:116:11 | i [Box(0)] | main.rs:116:10:116:11 | * ... | provenance | MaD:4 |
|
| main.rs:116:11:116:11 | i [Box(0)] | main.rs:116:10:116:11 | * ... | provenance | MaD:5 |
|
||||||
| main.rs:123:9:123:9 | a [tuple.0] | main.rs:124:10:124:10 | a [tuple.0] | provenance | |
|
| main.rs:123:9:123:9 | a [tuple.0] | main.rs:124:10:124:10 | a [tuple.0] | provenance | |
|
||||||
| main.rs:123:13:123:26 | TupleExpr [tuple.0] | main.rs:123:9:123:9 | a [tuple.0] | provenance | |
|
| main.rs:123:13:123:26 | TupleExpr [tuple.0] | main.rs:123:9:123:9 | a [tuple.0] | provenance | |
|
||||||
| main.rs:123:14:123:22 | source(...) | main.rs:123:13:123:26 | TupleExpr [tuple.0] | provenance | |
|
| main.rs:123:14:123:22 | source(...) | main.rs:123:13:123:26 | TupleExpr [tuple.0] | provenance | |
|
||||||
@@ -127,17 +128,17 @@ edges
|
|||||||
| main.rs:278:9:278:10 | s1 [Some] | main.rs:279:10:279:11 | s1 [Some] | provenance | |
|
| main.rs:278:9:278:10 | s1 [Some] | main.rs:279:10:279:11 | s1 [Some] | provenance | |
|
||||||
| main.rs:278:14:278:29 | Some(...) [Some] | main.rs:278:9:278:10 | s1 [Some] | provenance | |
|
| main.rs:278:14:278:29 | Some(...) [Some] | main.rs:278:9:278:10 | s1 [Some] | provenance | |
|
||||||
| main.rs:278:19:278:28 | source(...) | main.rs:278:14:278:29 | Some(...) [Some] | provenance | |
|
| main.rs:278:19:278:28 | source(...) | main.rs:278:14:278:29 | Some(...) [Some] | provenance | |
|
||||||
| main.rs:279:10:279:11 | s1 [Some] | main.rs:279:10:279:20 | s1.unwrap() | provenance | MaD:7 |
|
| main.rs:279:10:279:11 | s1 [Some] | main.rs:279:10:279:20 | s1.unwrap() | provenance | MaD:8 |
|
||||||
| main.rs:283:9:283:10 | s1 [Some] | main.rs:284:10:284:11 | s1 [Some] | provenance | |
|
| main.rs:283:9:283:10 | s1 [Some] | main.rs:284:10:284:11 | s1 [Some] | provenance | |
|
||||||
| main.rs:283:14:283:29 | Some(...) [Some] | main.rs:283:9:283:10 | s1 [Some] | provenance | |
|
| main.rs:283:14:283:29 | Some(...) [Some] | main.rs:283:9:283:10 | s1 [Some] | provenance | |
|
||||||
| main.rs:283:19:283:28 | source(...) | main.rs:283:14:283:29 | Some(...) [Some] | provenance | |
|
| main.rs:283:19:283:28 | source(...) | main.rs:283:14:283:29 | Some(...) [Some] | provenance | |
|
||||||
| main.rs:284:10:284:11 | s1 [Some] | main.rs:284:10:284:24 | s1.unwrap_or(...) | provenance | MaD:9 |
|
| main.rs:284:10:284:11 | s1 [Some] | main.rs:284:10:284:24 | s1.unwrap_or(...) | provenance | MaD:10 |
|
||||||
| main.rs:287:23:287:32 | source(...) | main.rs:287:10:287:33 | s2.unwrap_or(...) | provenance | MaD:8 |
|
| main.rs:287:23:287:32 | source(...) | main.rs:287:10:287:33 | s2.unwrap_or(...) | provenance | MaD:9 |
|
||||||
| main.rs:291:9:291:10 | s1 [Some] | main.rs:292:10:292:11 | s1 [Some] | provenance | |
|
| main.rs:291:9:291:10 | s1 [Some] | main.rs:292:10:292:11 | s1 [Some] | provenance | |
|
||||||
| main.rs:291:14:291:29 | Some(...) [Some] | main.rs:291:9:291:10 | s1 [Some] | provenance | |
|
| main.rs:291:14:291:29 | Some(...) [Some] | main.rs:291:9:291:10 | s1 [Some] | provenance | |
|
||||||
| main.rs:291:19:291:28 | source(...) | main.rs:291:14:291:29 | Some(...) [Some] | provenance | |
|
| main.rs:291:19:291:28 | source(...) | main.rs:291:14:291:29 | Some(...) [Some] | provenance | |
|
||||||
| main.rs:292:10:292:11 | s1 [Some] | main.rs:292:10:292:32 | s1.unwrap_or_else(...) | provenance | MaD:11 |
|
| main.rs:292:10:292:11 | s1 [Some] | main.rs:292:10:292:32 | s1.unwrap_or_else(...) | provenance | MaD:12 |
|
||||||
| main.rs:295:31:295:40 | source(...) | main.rs:295:10:295:41 | s2.unwrap_or_else(...) | provenance | MaD:10 |
|
| main.rs:295:31:295:40 | source(...) | main.rs:295:10:295:41 | s2.unwrap_or_else(...) | provenance | MaD:11 |
|
||||||
| main.rs:299:9:299:10 | s1 [Some] | main.rs:301:14:301:15 | s1 [Some] | provenance | |
|
| main.rs:299:9:299:10 | s1 [Some] | main.rs:301:14:301:15 | s1 [Some] | provenance | |
|
||||||
| main.rs:299:14:299:29 | Some(...) [Some] | main.rs:299:9:299:10 | s1 [Some] | provenance | |
|
| main.rs:299:14:299:29 | Some(...) [Some] | main.rs:299:9:299:10 | s1 [Some] | provenance | |
|
||||||
| main.rs:299:19:299:28 | source(...) | main.rs:299:14:299:29 | Some(...) [Some] | provenance | |
|
| main.rs:299:19:299:28 | source(...) | main.rs:299:14:299:29 | Some(...) [Some] | provenance | |
|
||||||
@@ -148,16 +149,16 @@ edges
|
|||||||
| main.rs:308:32:308:45 | Ok(...) [Ok] | main.rs:308:9:308:10 | r1 [Ok] | provenance | |
|
| main.rs:308:32:308:45 | Ok(...) [Ok] | main.rs:308:9:308:10 | r1 [Ok] | provenance | |
|
||||||
| main.rs:308:35:308:44 | source(...) | main.rs:308:32:308:45 | Ok(...) [Ok] | provenance | |
|
| main.rs:308:35:308:44 | source(...) | main.rs:308:32:308:45 | Ok(...) [Ok] | provenance | |
|
||||||
| main.rs:309:9:309:11 | o1a [Some] | main.rs:311:10:311:12 | o1a [Some] | provenance | |
|
| main.rs:309:9:309:11 | o1a [Some] | main.rs:311:10:311:12 | o1a [Some] | provenance | |
|
||||||
| main.rs:309:28:309:29 | r1 [Ok] | main.rs:309:28:309:34 | r1.ok() [Some] | provenance | MaD:15 |
|
| main.rs:309:28:309:29 | r1 [Ok] | main.rs:309:28:309:34 | r1.ok() [Some] | provenance | MaD:16 |
|
||||||
| main.rs:309:28:309:34 | r1.ok() [Some] | main.rs:309:9:309:11 | o1a [Some] | provenance | |
|
| main.rs:309:28:309:34 | r1.ok() [Some] | main.rs:309:9:309:11 | o1a [Some] | provenance | |
|
||||||
| main.rs:311:10:311:12 | o1a [Some] | main.rs:311:10:311:21 | o1a.unwrap() | provenance | MaD:7 |
|
| main.rs:311:10:311:12 | o1a [Some] | main.rs:311:10:311:21 | o1a.unwrap() | provenance | MaD:8 |
|
||||||
| main.rs:314:9:314:10 | r2 [Err] | main.rs:316:28:316:29 | r2 [Err] | provenance | |
|
| main.rs:314:9:314:10 | r2 [Err] | main.rs:316:28:316:29 | r2 [Err] | provenance | |
|
||||||
| main.rs:314:32:314:46 | Err(...) [Err] | main.rs:314:9:314:10 | r2 [Err] | provenance | |
|
| main.rs:314:32:314:46 | Err(...) [Err] | main.rs:314:9:314:10 | r2 [Err] | provenance | |
|
||||||
| main.rs:314:36:314:45 | source(...) | main.rs:314:32:314:46 | Err(...) [Err] | provenance | |
|
| main.rs:314:36:314:45 | source(...) | main.rs:314:32:314:46 | Err(...) [Err] | provenance | |
|
||||||
| main.rs:316:9:316:11 | o2b [Some] | main.rs:318:10:318:12 | o2b [Some] | provenance | |
|
| main.rs:316:9:316:11 | o2b [Some] | main.rs:318:10:318:12 | o2b [Some] | provenance | |
|
||||||
| main.rs:316:28:316:29 | r2 [Err] | main.rs:316:28:316:35 | r2.err() [Some] | provenance | MaD:12 |
|
| main.rs:316:28:316:29 | r2 [Err] | main.rs:316:28:316:35 | r2.err() [Some] | provenance | MaD:13 |
|
||||||
| main.rs:316:28:316:35 | r2.err() [Some] | main.rs:316:9:316:11 | o2b [Some] | provenance | |
|
| main.rs:316:28:316:35 | r2.err() [Some] | main.rs:316:9:316:11 | o2b [Some] | provenance | |
|
||||||
| main.rs:318:10:318:12 | o2b [Some] | main.rs:318:10:318:21 | o2b.unwrap() | provenance | MaD:7 |
|
| main.rs:318:10:318:12 | o2b [Some] | main.rs:318:10:318:21 | o2b.unwrap() | provenance | MaD:8 |
|
||||||
| main.rs:322:9:322:10 | s1 [Ok] | main.rs:325:14:325:15 | s1 [Ok] | provenance | |
|
| main.rs:322:9:322:10 | s1 [Ok] | main.rs:325:14:325:15 | s1 [Ok] | provenance | |
|
||||||
| main.rs:322:32:322:45 | Ok(...) [Ok] | main.rs:322:9:322:10 | s1 [Ok] | provenance | |
|
| main.rs:322:32:322:45 | Ok(...) [Ok] | main.rs:322:9:322:10 | s1 [Ok] | provenance | |
|
||||||
| main.rs:322:35:322:44 | source(...) | main.rs:322:32:322:45 | Ok(...) [Ok] | provenance | |
|
| main.rs:322:35:322:44 | source(...) | main.rs:322:32:322:45 | Ok(...) [Ok] | provenance | |
|
||||||
@@ -167,11 +168,11 @@ edges
|
|||||||
| main.rs:335:9:335:10 | s1 [Ok] | main.rs:336:10:336:11 | s1 [Ok] | provenance | |
|
| main.rs:335:9:335:10 | s1 [Ok] | main.rs:336:10:336:11 | s1 [Ok] | provenance | |
|
||||||
| main.rs:335:32:335:45 | Ok(...) [Ok] | main.rs:335:9:335:10 | s1 [Ok] | provenance | |
|
| main.rs:335:32:335:45 | Ok(...) [Ok] | main.rs:335:9:335:10 | s1 [Ok] | provenance | |
|
||||||
| main.rs:335:35:335:44 | source(...) | main.rs:335:32:335:45 | Ok(...) [Ok] | provenance | |
|
| main.rs:335:35:335:44 | source(...) | main.rs:335:32:335:45 | Ok(...) [Ok] | provenance | |
|
||||||
| main.rs:336:10:336:11 | s1 [Ok] | main.rs:336:10:336:22 | s1.expect(...) | provenance | MaD:13 |
|
| main.rs:336:10:336:11 | s1 [Ok] | main.rs:336:10:336:22 | s1.expect(...) | provenance | MaD:14 |
|
||||||
| main.rs:339:9:339:10 | s2 [Err] | main.rs:341:10:341:11 | s2 [Err] | provenance | |
|
| main.rs:339:9:339:10 | s2 [Err] | main.rs:341:10:341:11 | s2 [Err] | provenance | |
|
||||||
| main.rs:339:32:339:46 | Err(...) [Err] | main.rs:339:9:339:10 | s2 [Err] | provenance | |
|
| main.rs:339:32:339:46 | Err(...) [Err] | main.rs:339:9:339:10 | s2 [Err] | provenance | |
|
||||||
| main.rs:339:36:339:45 | source(...) | main.rs:339:32:339:46 | Err(...) [Err] | provenance | |
|
| main.rs:339:36:339:45 | source(...) | main.rs:339:32:339:46 | Err(...) [Err] | provenance | |
|
||||||
| main.rs:341:10:341:11 | s2 [Err] | main.rs:341:10:341:26 | s2.expect_err(...) | provenance | MaD:14 |
|
| main.rs:341:10:341:11 | s2 [Err] | main.rs:341:10:341:26 | s2.expect_err(...) | provenance | MaD:15 |
|
||||||
| main.rs:350:9:350:10 | s1 [A] | main.rs:352:11:352:12 | s1 [A] | provenance | |
|
| main.rs:350:9:350:10 | s1 [A] | main.rs:352:11:352:12 | s1 [A] | provenance | |
|
||||||
| main.rs:350:14:350:39 | ...::A(...) [A] | main.rs:350:9:350:10 | s1 [A] | provenance | |
|
| main.rs:350:14:350:39 | ...::A(...) [A] | main.rs:350:9:350:10 | s1 [A] | provenance | |
|
||||||
| main.rs:350:29:350:38 | source(...) | main.rs:350:14:350:39 | ...::A(...) [A] | provenance | |
|
| main.rs:350:29:350:38 | source(...) | main.rs:350:14:350:39 | ...::A(...) [A] | provenance | |
|
||||||
@@ -220,13 +221,13 @@ edges
|
|||||||
| main.rs:430:16:430:33 | [...] [element] | main.rs:430:9:430:12 | arr1 [element] | provenance | |
|
| main.rs:430:16:430:33 | [...] [element] | main.rs:430:9:430:12 | arr1 [element] | provenance | |
|
||||||
| main.rs:430:23:430:32 | source(...) | main.rs:430:16:430:33 | [...] [element] | provenance | |
|
| main.rs:430:23:430:32 | source(...) | main.rs:430:16:430:33 | [...] [element] | provenance | |
|
||||||
| main.rs:431:9:431:10 | n1 | main.rs:432:10:432:11 | n1 | provenance | |
|
| main.rs:431:9:431:10 | n1 | main.rs:432:10:432:11 | n1 | provenance | |
|
||||||
| main.rs:431:14:431:17 | arr1 [element] | main.rs:431:14:431:20 | arr1[2] | provenance | |
|
| main.rs:431:14:431:17 | arr1 [element] | main.rs:431:14:431:20 | arr1[2] | provenance | MaD:4 |
|
||||||
| main.rs:431:14:431:20 | arr1[2] | main.rs:431:9:431:10 | n1 | provenance | |
|
| main.rs:431:14:431:20 | arr1[2] | main.rs:431:9:431:10 | n1 | provenance | |
|
||||||
| main.rs:434:9:434:12 | arr2 [element] | main.rs:435:14:435:17 | arr2 [element] | provenance | |
|
| main.rs:434:9:434:12 | arr2 [element] | main.rs:435:14:435:17 | arr2 [element] | provenance | |
|
||||||
| main.rs:434:16:434:31 | [...; 10] [element] | main.rs:434:9:434:12 | arr2 [element] | provenance | |
|
| main.rs:434:16:434:31 | [...; 10] [element] | main.rs:434:9:434:12 | arr2 [element] | provenance | |
|
||||||
| main.rs:434:17:434:26 | source(...) | main.rs:434:16:434:31 | [...; 10] [element] | provenance | |
|
| main.rs:434:17:434:26 | source(...) | main.rs:434:16:434:31 | [...; 10] [element] | provenance | |
|
||||||
| main.rs:435:9:435:10 | n2 | main.rs:436:10:436:11 | n2 | provenance | |
|
| main.rs:435:9:435:10 | n2 | main.rs:436:10:436:11 | n2 | provenance | |
|
||||||
| main.rs:435:14:435:17 | arr2 [element] | main.rs:435:14:435:20 | arr2[4] | provenance | |
|
| main.rs:435:14:435:17 | arr2 [element] | main.rs:435:14:435:20 | arr2[4] | provenance | MaD:4 |
|
||||||
| main.rs:435:14:435:20 | arr2[4] | main.rs:435:9:435:10 | n2 | provenance | |
|
| main.rs:435:14:435:20 | arr2[4] | main.rs:435:9:435:10 | n2 | provenance | |
|
||||||
| main.rs:444:9:444:12 | arr1 [element] | main.rs:445:15:445:18 | arr1 [element] | provenance | |
|
| main.rs:444:9:444:12 | arr1 [element] | main.rs:445:15:445:18 | arr1 [element] | provenance | |
|
||||||
| main.rs:444:16:444:33 | [...] [element] | main.rs:444:9:444:12 | arr1 [element] | provenance | |
|
| main.rs:444:16:444:33 | [...] [element] | main.rs:444:9:444:12 | arr1 [element] | provenance | |
|
||||||
@@ -247,9 +248,9 @@ edges
|
|||||||
| main.rs:470:5:470:11 | [post] mut_arr [element] | main.rs:473:10:473:16 | mut_arr [element] | provenance | |
|
| main.rs:470:5:470:11 | [post] mut_arr [element] | main.rs:473:10:473:16 | mut_arr [element] | provenance | |
|
||||||
| main.rs:470:18:470:27 | source(...) | main.rs:470:5:470:11 | [post] mut_arr [element] | provenance | |
|
| main.rs:470:18:470:27 | source(...) | main.rs:470:5:470:11 | [post] mut_arr [element] | provenance | |
|
||||||
| main.rs:471:9:471:9 | d | main.rs:472:10:472:10 | d | provenance | |
|
| main.rs:471:9:471:9 | d | main.rs:472:10:472:10 | d | provenance | |
|
||||||
| main.rs:471:13:471:19 | mut_arr [element] | main.rs:471:13:471:22 | mut_arr[1] | provenance | |
|
| main.rs:471:13:471:19 | mut_arr [element] | main.rs:471:13:471:22 | mut_arr[1] | provenance | MaD:4 |
|
||||||
| main.rs:471:13:471:22 | mut_arr[1] | main.rs:471:9:471:9 | d | provenance | |
|
| main.rs:471:13:471:22 | mut_arr[1] | main.rs:471:9:471:9 | d | provenance | |
|
||||||
| main.rs:473:10:473:16 | mut_arr [element] | main.rs:473:10:473:19 | mut_arr[0] | provenance | |
|
| main.rs:473:10:473:16 | mut_arr [element] | main.rs:473:10:473:19 | mut_arr[0] | provenance | MaD:4 |
|
||||||
| main.rs:496:9:496:9 | s | main.rs:497:10:497:10 | s | provenance | |
|
| main.rs:496:9:496:9 | s | main.rs:497:10:497:10 | s | provenance | |
|
||||||
| main.rs:496:25:496:26 | source(...) | main.rs:496:9:496:9 | s | provenance | |
|
| main.rs:496:25:496:26 | source(...) | main.rs:496:9:496:9 | s | provenance | |
|
||||||
| main.rs:505:9:505:9 | a | main.rs:506:13:506:13 | a | provenance | |
|
| main.rs:505:9:505:9 | a | main.rs:506:13:506:13 | a | provenance | |
|
||||||
@@ -261,24 +262,24 @@ edges
|
|||||||
| main.rs:506:13:506:13 | a | main.rs:506:13:506:25 | a.to_string() | provenance | MaD:2 |
|
| main.rs:506:13:506:13 | a | main.rs:506:13:506:25 | a.to_string() | provenance | MaD:2 |
|
||||||
| main.rs:506:13:506:25 | a.to_string() | main.rs:506:9:506:9 | b | provenance | |
|
| main.rs:506:13:506:25 | a.to_string() | main.rs:506:9:506:9 | b | provenance | |
|
||||||
| main.rs:507:9:507:9 | c | main.rs:512:10:512:10 | c | provenance | |
|
| main.rs:507:9:507:9 | c | main.rs:512:10:512:10 | c | provenance | |
|
||||||
| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:17 |
|
| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:18 |
|
||||||
| main.rs:507:13:507:28 | b.parse() [Ok] | main.rs:507:13:507:37 | ... .unwrap() | provenance | MaD:16 |
|
| main.rs:507:13:507:28 | b.parse() [Ok] | main.rs:507:13:507:37 | ... .unwrap() | provenance | MaD:17 |
|
||||||
| main.rs:507:13:507:37 | ... .unwrap() | main.rs:507:9:507:9 | c | provenance | |
|
| main.rs:507:13:507:37 | ... .unwrap() | main.rs:507:9:507:9 | c | provenance | |
|
||||||
| main.rs:508:9:508:9 | d | main.rs:513:10:513:10 | d | provenance | |
|
| main.rs:508:9:508:9 | d | main.rs:513:10:513:10 | d | provenance | |
|
||||||
| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:17 |
|
| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:18 |
|
||||||
| main.rs:508:18:508:26 | b.parse() [Ok] | main.rs:508:18:508:35 | ... .unwrap() | provenance | MaD:16 |
|
| main.rs:508:18:508:26 | b.parse() [Ok] | main.rs:508:18:508:35 | ... .unwrap() | provenance | MaD:17 |
|
||||||
| main.rs:508:18:508:35 | ... .unwrap() | main.rs:508:9:508:9 | d | provenance | |
|
| main.rs:508:18:508:35 | ... .unwrap() | main.rs:508:9:508:9 | d | provenance | |
|
||||||
| main.rs:517:9:517:10 | vs [element] | main.rs:519:10:519:11 | vs [element] | provenance | |
|
| main.rs:517:9:517:10 | vs [element] | main.rs:519:10:519:11 | vs [element] | provenance | |
|
||||||
| main.rs:517:9:517:10 | vs [element] | main.rs:523:14:523:15 | vs [element] | provenance | |
|
| main.rs:517:9:517:10 | vs [element] | main.rs:523:14:523:15 | vs [element] | provenance | |
|
||||||
| main.rs:517:14:517:34 | [...] [element] | main.rs:517:9:517:10 | vs [element] | provenance | |
|
| main.rs:517:14:517:34 | [...] [element] | main.rs:517:9:517:10 | vs [element] | provenance | |
|
||||||
| main.rs:517:15:517:24 | source(...) | main.rs:517:14:517:34 | [...] [element] | provenance | |
|
| main.rs:517:15:517:24 | source(...) | main.rs:517:14:517:34 | [...] [element] | provenance | |
|
||||||
| main.rs:519:10:519:11 | vs [element] | main.rs:519:10:519:14 | vs[0] | provenance | |
|
| main.rs:519:10:519:11 | vs [element] | main.rs:519:10:519:14 | vs[0] | provenance | MaD:4 |
|
||||||
| main.rs:523:9:523:9 | v | main.rs:524:14:524:14 | v | provenance | |
|
| main.rs:523:9:523:9 | v | main.rs:524:14:524:14 | v | provenance | |
|
||||||
| main.rs:523:14:523:15 | vs [element] | main.rs:523:9:523:9 | v | provenance | |
|
| main.rs:523:14:523:15 | vs [element] | main.rs:523:9:523:9 | v | provenance | |
|
||||||
| main.rs:542:9:542:18 | mut vs_mut [element] | main.rs:544:10:544:15 | vs_mut [element] | provenance | |
|
| main.rs:542:9:542:18 | mut vs_mut [element] | main.rs:544:10:544:15 | vs_mut [element] | provenance | |
|
||||||
| main.rs:542:22:542:42 | [...] [element] | main.rs:542:9:542:18 | mut vs_mut [element] | provenance | |
|
| main.rs:542:22:542:42 | [...] [element] | main.rs:542:9:542:18 | mut vs_mut [element] | provenance | |
|
||||||
| main.rs:542:23:542:32 | source(...) | main.rs:542:22:542:42 | [...] [element] | provenance | |
|
| main.rs:542:23:542:32 | source(...) | main.rs:542:22:542:42 | [...] [element] | provenance | |
|
||||||
| main.rs:544:10:544:15 | vs_mut [element] | main.rs:544:10:544:18 | vs_mut[0] | provenance | |
|
| main.rs:544:10:544:15 | vs_mut [element] | main.rs:544:10:544:18 | vs_mut[0] | provenance | MaD:4 |
|
||||||
| main.rs:554:9:554:9 | a | main.rs:559:10:559:10 | a | provenance | |
|
| main.rs:554:9:554:9 | a | main.rs:559:10:559:10 | a | provenance | |
|
||||||
| main.rs:554:13:554:22 | source(...) | main.rs:554:9:554:9 | a | provenance | |
|
| main.rs:554:13:554:22 | source(...) | main.rs:554:9:554:9 | a | provenance | |
|
||||||
| main.rs:555:9:555:9 | b | main.rs:560:15:560:15 | b | provenance | |
|
| main.rs:555:9:555:9 | b | main.rs:560:15:560:15 | b | provenance | |
|
||||||
@@ -297,7 +298,7 @@ edges
|
|||||||
| main.rs:572:9:572:9 | b | main.rs:576:20:576:20 | b | provenance | |
|
| main.rs:572:9:572:9 | b | main.rs:576:20:576:20 | b | provenance | |
|
||||||
| main.rs:572:18:572:27 | source(...) | main.rs:572:9:572:9 | b | provenance | |
|
| main.rs:572:18:572:27 | source(...) | main.rs:572:9:572:9 | b | provenance | |
|
||||||
| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:3 |
|
| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:3 |
|
||||||
| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:6 |
|
| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:7 |
|
||||||
nodes
|
nodes
|
||||||
| main.rs:19:10:19:18 | source(...) | semmle.label | source(...) |
|
| main.rs:19:10:19:18 | source(...) | semmle.label | source(...) |
|
||||||
| main.rs:23:9:23:9 | s | semmle.label | s |
|
| main.rs:23:9:23:9 | s | semmle.label | s |
|
||||||
|
|||||||
@@ -9,20 +9,21 @@ models
|
|||||||
| 8 | Source: main::source_into_function::pass_source; Argument[1].Parameter[0]; test-source |
|
| 8 | Source: main::source_into_function::pass_source; Argument[1].Parameter[0]; test-source |
|
||||||
| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self]; ReturnValue; value |
|
| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self]; ReturnValue; value |
|
||||||
| 10 | Summary: <_ as core::cmp::PartialOrd>::lt; Argument[self].Reference; ReturnValue; taint |
|
| 10 | Summary: <_ as core::cmp::PartialOrd>::lt; Argument[self].Reference; ReturnValue; taint |
|
||||||
| 11 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value |
|
| 11 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 12 | Summary: main::apply; Argument[1].ReturnValue; ReturnValue; value |
|
| 12 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value |
|
||||||
| 13 | Summary: main::coerce; Argument[0]; ReturnValue; taint |
|
| 13 | Summary: main::apply; Argument[1].ReturnValue; ReturnValue; value |
|
||||||
| 14 | Summary: main::get_array_element; Argument[0].Element; ReturnValue; value |
|
| 14 | Summary: main::coerce; Argument[0]; ReturnValue; taint |
|
||||||
| 15 | Summary: main::get_async_number; Argument[0]; ReturnValue.Future; value |
|
| 15 | Summary: main::get_array_element; Argument[0].Element; ReturnValue; value |
|
||||||
| 16 | Summary: main::get_struct_field; Argument[0].Field[main::MyStruct::field1]; ReturnValue; value |
|
| 16 | Summary: main::get_async_number; Argument[0]; ReturnValue.Future; value |
|
||||||
| 17 | Summary: main::get_tuple_element; Argument[0].Field[0]; ReturnValue; value |
|
| 17 | Summary: main::get_struct_field; Argument[0].Field[main::MyStruct::field1]; ReturnValue; value |
|
||||||
| 18 | Summary: main::get_var_field; Argument[0].Field[main::MyFieldEnum::C::field_c]; ReturnValue; value |
|
| 18 | Summary: main::get_tuple_element; Argument[0].Field[0]; ReturnValue; value |
|
||||||
| 19 | Summary: main::get_var_pos; Argument[0].Field[main::MyPosEnum::A(0)]; ReturnValue; value |
|
| 19 | Summary: main::get_var_field; Argument[0].Field[main::MyFieldEnum::C::field_c]; ReturnValue; value |
|
||||||
| 20 | Summary: main::set_array_element; Argument[0]; ReturnValue.Element; value |
|
| 20 | Summary: main::get_var_pos; Argument[0].Field[main::MyPosEnum::A(0)]; ReturnValue; value |
|
||||||
| 21 | Summary: main::set_struct_field; Argument[0]; ReturnValue.Field[main::MyStruct::field2]; value |
|
| 21 | Summary: main::set_array_element; Argument[0]; ReturnValue.Element; value |
|
||||||
| 22 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value |
|
| 22 | Summary: main::set_struct_field; Argument[0]; ReturnValue.Field[main::MyStruct::field2]; value |
|
||||||
| 23 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value |
|
| 23 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value |
|
||||||
| 24 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value |
|
| 24 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value |
|
||||||
|
| 25 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value |
|
||||||
edges
|
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 | |
|
||||||
| 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 | |
|
||||||
@@ -32,7 +33,7 @@ edges
|
|||||||
| main.rs:16:19:16:19 | s | main.rs:16:10:16:20 | identity(...) | provenance | QL |
|
| 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: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: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:13 |
|
| main.rs:26:17:26:17 | s | main.rs:26:10:26:18 | coerce(...) | provenance | MaD:14 |
|
||||||
| 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: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 | |
|
| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | |
|
||||||
@@ -43,8 +44,8 @@ edges
|
|||||||
| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | |
|
| 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: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:19 |
|
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 |
|
||||||
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:19 |
|
| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 |
|
||||||
| 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: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 | |
|
| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | |
|
||||||
@@ -53,8 +54,8 @@ edges
|
|||||||
| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | |
|
| 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: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:24 |
|
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 |
|
||||||
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:24 |
|
| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 |
|
||||||
| 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: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 | |
|
| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | |
|
||||||
@@ -71,8 +72,8 @@ edges
|
|||||||
| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | |
|
| 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: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:18 |
|
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 |
|
||||||
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:18 |
|
| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 |
|
||||||
| 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: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 | |
|
| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | |
|
||||||
@@ -81,8 +82,8 @@ edges
|
|||||||
| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | |
|
| 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: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:23 |
|
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 |
|
||||||
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:23 |
|
| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 |
|
||||||
| 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: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 | |
|
| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | |
|
||||||
@@ -99,8 +100,8 @@ edges
|
|||||||
| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | |
|
| 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: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:16 |
|
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 |
|
||||||
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:16 |
|
| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 |
|
||||||
| 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: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 | |
|
| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | |
|
||||||
@@ -109,16 +110,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: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: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:21 |
|
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 |
|
||||||
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:21 |
|
| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 |
|
||||||
| 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: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: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: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:14 |
|
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 |
|
||||||
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:14 |
|
| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 |
|
||||||
| 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: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 | |
|
| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | |
|
||||||
@@ -129,10 +130,10 @@ edges
|
|||||||
| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | |
|
| 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: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:20 |
|
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 |
|
||||||
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:20 |
|
| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 |
|
||||||
| 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 | MaD:11 |
|
||||||
| 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 | MaD:11 |
|
||||||
| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | |
|
| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | |
|
||||||
| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | |
|
| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | |
|
||||||
| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | |
|
| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | |
|
||||||
@@ -143,8 +144,8 @@ edges
|
|||||||
| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | |
|
| 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: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:17 |
|
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 |
|
||||||
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:17 |
|
| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 |
|
||||||
| 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: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 | |
|
| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | |
|
||||||
@@ -153,8 +154,8 @@ edges
|
|||||||
| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | |
|
| 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: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:22 |
|
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 |
|
||||||
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:22 |
|
| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 |
|
||||||
| 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: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: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 | |
|
||||||
@@ -163,8 +164,8 @@ edges
|
|||||||
| 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: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:11 |
|
| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 |
|
||||||
| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:11 |
|
| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 |
|
||||||
| 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: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 | |
|
||||||
@@ -173,14 +174,14 @@ edges
|
|||||||
| 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: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: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:197:40:197:40 | s | provenance | MaD:12 |
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 |
|
||||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 |
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 |
|
||||||
| 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:197:40:197:40 | s | provenance | MaD:13 |
|
||||||
| 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:197:40:197:40 | s | provenance | MaD:13 |
|
||||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 |
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 |
|
||||||
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 |
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 |
|
||||||
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 |
|
||||||
|
| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 |
|
||||||
| 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: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 | |
|
||||||
@@ -191,10 +192,10 @@ edges
|
|||||||
| 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: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:11 |
|
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 |
|
||||||
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:11 |
|
| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 |
|
||||||
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:11 |
|
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 |
|
||||||
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:11 |
|
| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 |
|
||||||
| 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: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 | |
|
||||||
@@ -205,8 +206,8 @@ edges
|
|||||||
| 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: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:15 |
|
| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 |
|
||||||
| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:15 |
|
| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 |
|
||||||
| 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: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 |
|
||||||
|
|||||||
@@ -8,21 +8,22 @@ models
|
|||||||
| 7 | Source: std::env::var_os; ReturnValue.Field[core::option::Option::Some(0)]; environment |
|
| 7 | Source: std::env::var_os; ReturnValue.Field[core::option::Option::Some(0)]; environment |
|
||||||
| 8 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value |
|
| 8 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value |
|
||||||
| 9 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
| 9 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value |
|
||||||
| 10 | Summary: <core::option::Option>::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 10 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 11 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 11 | Summary: <core::option::Option>::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 12 | Summary: <core::result::Result>::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 12 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 13 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 13 | Summary: <core::result::Result>::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
| 14 | Summary: <core::str>::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 14 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
|
| 15 | Summary: <core::str>::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
edges
|
edges
|
||||||
| test.rs:6:10:6:22 | ...::var | test.rs:6:10:6:30 | ...::var(...) | provenance | Src:MaD:6 |
|
| test.rs:6:10:6:22 | ...::var | test.rs:6:10:6:30 | ...::var(...) | provenance | Src:MaD:6 |
|
||||||
| test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | provenance | Src:MaD:7 |
|
| test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | provenance | Src:MaD:7 |
|
||||||
| test.rs:9:9:9:12 | var1 | test.rs:12:10:12:13 | var1 | provenance | |
|
| test.rs:9:9:9:12 | var1 | test.rs:12:10:12:13 | var1 | provenance | |
|
||||||
| test.rs:9:16:9:28 | ...::var | test.rs:9:16:9:36 | ...::var(...) [Ok] | provenance | Src:MaD:6 |
|
| test.rs:9:16:9:28 | ...::var | test.rs:9:16:9:36 | ...::var(...) [Ok] | provenance | Src:MaD:6 |
|
||||||
| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:12 |
|
| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:13 |
|
||||||
| test.rs:9:16:9:59 | ... .expect(...) | test.rs:9:9:9:12 | var1 | provenance | |
|
| test.rs:9:16:9:59 | ... .expect(...) | test.rs:9:9:9:12 | var1 | provenance | |
|
||||||
| test.rs:10:9:10:12 | var2 | test.rs:13:10:13:13 | var2 | provenance | |
|
| test.rs:10:9:10:12 | var2 | test.rs:13:10:13:13 | var2 | provenance | |
|
||||||
| test.rs:10:16:10:31 | ...::var_os | test.rs:10:16:10:39 | ...::var_os(...) [Some] | provenance | Src:MaD:7 |
|
| test.rs:10:16:10:31 | ...::var_os | test.rs:10:16:10:39 | ...::var_os(...) [Some] | provenance | Src:MaD:7 |
|
||||||
| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:11 |
|
| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:12 |
|
||||||
| test.rs:10:16:10:48 | ... .unwrap() | test.rs:10:9:10:12 | var2 | provenance | |
|
| test.rs:10:16:10:48 | ... .unwrap() | test.rs:10:9:10:12 | var2 | provenance | |
|
||||||
| test.rs:27:9:27:12 | args [element] | test.rs:28:20:28:23 | args [element] | provenance | |
|
| test.rs:27:9:27:12 | args [element] | test.rs:28:20:28:23 | args [element] | provenance | |
|
||||||
| test.rs:27:9:27:12 | args [element] | test.rs:29:17:29:20 | args [element] | provenance | |
|
| test.rs:27:9:27:12 | args [element] | test.rs:29:17:29:20 | args [element] | provenance | |
|
||||||
@@ -31,28 +32,28 @@ edges
|
|||||||
| test.rs:27:29:27:54 | ... .collect() [element] | test.rs:27:9:27:12 | args [element] | provenance | |
|
| test.rs:27:29:27:54 | ... .collect() [element] | test.rs:27:9:27:12 | args [element] | provenance | |
|
||||||
| test.rs:28:9:28:15 | my_path [&ref] | test.rs:34:10:34:16 | my_path | provenance | |
|
| test.rs:28:9:28:15 | my_path [&ref] | test.rs:34:10:34:16 | my_path | provenance | |
|
||||||
| test.rs:28:19:28:26 | &... [&ref] | test.rs:28:9:28:15 | my_path [&ref] | provenance | |
|
| test.rs:28:19:28:26 | &... [&ref] | test.rs:28:9:28:15 | my_path [&ref] | provenance | |
|
||||||
| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | |
|
| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | MaD:10 |
|
||||||
| test.rs:28:20:28:26 | args[0] | test.rs:28:19:28:26 | &... [&ref] | provenance | |
|
| test.rs:28:20:28:26 | args[0] | test.rs:28:19:28:26 | &... [&ref] | provenance | |
|
||||||
| test.rs:29:9:29:12 | arg1 [&ref] | test.rs:35:10:35:13 | arg1 | provenance | |
|
| test.rs:29:9:29:12 | arg1 [&ref] | test.rs:35:10:35:13 | arg1 | provenance | |
|
||||||
| test.rs:29:16:29:23 | &... [&ref] | test.rs:29:9:29:12 | arg1 [&ref] | provenance | |
|
| test.rs:29:16:29:23 | &... [&ref] | test.rs:29:9:29:12 | arg1 [&ref] | provenance | |
|
||||||
| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | |
|
| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | MaD:10 |
|
||||||
| test.rs:29:17:29:23 | args[1] | test.rs:29:16:29:23 | &... [&ref] | provenance | |
|
| test.rs:29:17:29:23 | args[1] | test.rs:29:16:29:23 | &... [&ref] | provenance | |
|
||||||
| test.rs:30:9:30:12 | arg2 | test.rs:36:10:36:13 | arg2 | provenance | |
|
| test.rs:30:9:30:12 | arg2 | test.rs:36:10:36:13 | arg2 | provenance | |
|
||||||
| test.rs:30:16:30:29 | ...::args | test.rs:30:16:30:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
| test.rs:30:16:30:29 | ...::args | test.rs:30:16:30:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
||||||
| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:9 |
|
| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:9 |
|
||||||
| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:11 |
|
| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:12 |
|
||||||
| test.rs:30:16:30:47 | ... .unwrap() | test.rs:30:9:30:12 | arg2 | provenance | |
|
| test.rs:30:16:30:47 | ... .unwrap() | test.rs:30:9:30:12 | arg2 | provenance | |
|
||||||
| test.rs:31:9:31:12 | arg3 | test.rs:37:10:37:13 | arg3 | provenance | |
|
| test.rs:31:9:31:12 | arg3 | test.rs:37:10:37:13 | arg3 | provenance | |
|
||||||
| test.rs:31:16:31:32 | ...::args_os | test.rs:31:16:31:34 | ...::args_os(...) [element] | provenance | Src:MaD:2 |
|
| test.rs:31:16:31:32 | ...::args_os | test.rs:31:16:31:34 | ...::args_os(...) [element] | provenance | Src:MaD:2 |
|
||||||
| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:9 |
|
| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:9 |
|
||||||
| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:11 |
|
| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:12 |
|
||||||
| test.rs:31:16:31:50 | ... .unwrap() | test.rs:31:9:31:12 | arg3 | provenance | |
|
| test.rs:31:16:31:50 | ... .unwrap() | test.rs:31:9:31:12 | arg3 | provenance | |
|
||||||
| test.rs:32:9:32:12 | arg4 | test.rs:38:10:38:13 | arg4 | provenance | |
|
| test.rs:32:9:32:12 | arg4 | test.rs:38:10:38:13 | arg4 | provenance | |
|
||||||
| test.rs:32:16:32:29 | ...::args | test.rs:32:16:32:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
| test.rs:32:16:32:29 | ...::args | test.rs:32:16:32:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
||||||
| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:9 |
|
| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:9 |
|
||||||
| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:11 |
|
| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:12 |
|
||||||
| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:14 |
|
| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:15 |
|
||||||
| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:13 |
|
| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:14 |
|
||||||
| test.rs:32:16:32:73 | ... .unwrap() | test.rs:32:9:32:12 | arg4 | provenance | |
|
| test.rs:32:16:32:73 | ... .unwrap() | test.rs:32:9:32:12 | arg4 | provenance | |
|
||||||
| test.rs:40:9:40:11 | arg | test.rs:41:14:41:16 | arg | provenance | |
|
| test.rs:40:9:40:11 | arg | test.rs:41:14:41:16 | arg | provenance | |
|
||||||
| test.rs:40:16:40:29 | ...::args | test.rs:40:16:40:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
| test.rs:40:16:40:29 | ...::args | test.rs:40:16:40:31 | ...::args(...) [element] | provenance | Src:MaD:1 |
|
||||||
@@ -62,15 +63,15 @@ edges
|
|||||||
| test.rs:44:16:44:34 | ...::args_os(...) [element] | test.rs:44:9:44:11 | arg | provenance | |
|
| test.rs:44:16:44:34 | ...::args_os(...) [element] | test.rs:44:9:44:11 | arg | provenance | |
|
||||||
| test.rs:50:9:50:11 | dir | test.rs:54:10:54:12 | dir | provenance | |
|
| test.rs:50:9:50:11 | dir | test.rs:54:10:54:12 | dir | provenance | |
|
||||||
| test.rs:50:15:50:35 | ...::current_dir | test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | provenance | Src:MaD:3 |
|
| test.rs:50:15:50:35 | ...::current_dir | test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | provenance | Src:MaD:3 |
|
||||||
| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:12 |
|
| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:13 |
|
||||||
| test.rs:50:15:50:54 | ... .expect(...) | test.rs:50:9:50:11 | dir | provenance | |
|
| test.rs:50:15:50:54 | ... .expect(...) | test.rs:50:9:50:11 | dir | provenance | |
|
||||||
| test.rs:51:9:51:11 | exe | test.rs:55:10:55:12 | exe | provenance | |
|
| test.rs:51:9:51:11 | exe | test.rs:55:10:55:12 | exe | provenance | |
|
||||||
| test.rs:51:15:51:35 | ...::current_exe | test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | provenance | Src:MaD:4 |
|
| test.rs:51:15:51:35 | ...::current_exe | test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | provenance | Src:MaD:4 |
|
||||||
| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:12 |
|
| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:13 |
|
||||||
| test.rs:51:15:51:54 | ... .expect(...) | test.rs:51:9:51:11 | exe | provenance | |
|
| test.rs:51:15:51:54 | ... .expect(...) | test.rs:51:9:51:11 | exe | provenance | |
|
||||||
| test.rs:52:9:52:12 | home | test.rs:56:10:56:13 | home | provenance | |
|
| test.rs:52:9:52:12 | home | test.rs:56:10:56:13 | home | provenance | |
|
||||||
| test.rs:52:16:52:33 | ...::home_dir | test.rs:52:16:52:35 | ...::home_dir(...) [Some] | provenance | Src:MaD:5 |
|
| test.rs:52:16:52:33 | ...::home_dir | test.rs:52:16:52:35 | ...::home_dir(...) [Some] | provenance | Src:MaD:5 |
|
||||||
| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:10 |
|
| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:11 |
|
||||||
| test.rs:52:16:52:52 | ... .expect(...) | test.rs:52:9:52:12 | home | provenance | |
|
| test.rs:52:16:52:52 | ... .expect(...) | test.rs:52:9:52:12 | home | provenance | |
|
||||||
nodes
|
nodes
|
||||||
| test.rs:6:10:6:22 | ...::var | semmle.label | ...::var |
|
| test.rs:6:10:6:22 | ...::var | semmle.label | ...::var |
|
||||||
|
|||||||
@@ -6,63 +6,64 @@ models
|
|||||||
| 5 | Source: <tokio::net::tcp::stream::TcpStream>::connect; ReturnValue.Future.Field[core::result::Result::Ok(0)]; remote |
|
| 5 | Source: <tokio::net::tcp::stream::TcpStream>::connect; ReturnValue.Future.Field[core::result::Result::Ok(0)]; remote |
|
||||||
| 6 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote |
|
| 6 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote |
|
||||||
| 7 | Source: reqwest::get; ReturnValue.Future.Field[core::result::Result::Ok(0)]; remote |
|
| 7 | Source: reqwest::get; ReturnValue.Future.Field[core::result::Result::Ok(0)]; remote |
|
||||||
| 8 | Summary: <_ as futures_io::if_std::AsyncBufRead>::poll_fill_buf; Argument[self].Reference; ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]; taint |
|
| 8 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 9 | Summary: <_ as futures_io::if_std::AsyncRead>::poll_read; Argument[self].Reference; Argument[1].Reference; taint |
|
| 9 | Summary: <_ as futures_io::if_std::AsyncBufRead>::poll_fill_buf; Argument[self].Reference; ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 10 | Summary: <_ as futures_util::io::AsyncBufReadExt>::fill_buf; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 10 | Summary: <_ as futures_io::if_std::AsyncRead>::poll_read; Argument[self].Reference; Argument[1].Reference; taint |
|
||||||
| 11 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
| 11 | Summary: <_ as futures_util::io::AsyncBufReadExt>::fill_buf; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 12 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
| 12 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 13 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 13 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
||||||
| 14 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
| 14 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 15 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
| 15 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 16 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 16 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 17 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint |
|
| 17 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 18 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 18 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint |
|
||||||
| 19 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 19 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 20 | Summary: <core::pin::Pin>::new; Argument[0].Reference; ReturnValue; value |
|
| 20 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 21 | Summary: <core::pin::Pin>::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value |
|
| 21 | Summary: <core::pin::Pin>::new; Argument[0].Reference; ReturnValue; value |
|
||||||
| 22 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 22 | Summary: <core::pin::Pin>::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value |
|
||||||
| 23 | Summary: <futures_rustls::TlsConnector>::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 23 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
| 24 | Summary: <futures_util::io::buf_reader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
| 24 | Summary: <futures_rustls::TlsConnector>::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 25 | Summary: <reqwest::async_impl::response::Response>::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 25 | Summary: <futures_util::io::buf_reader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
||||||
| 26 | Summary: <reqwest::async_impl::response::Response>::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
| 26 | Summary: <reqwest::async_impl::response::Response>::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 27 | Summary: <reqwest::async_impl::response::Response>::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 27 | Summary: <reqwest::async_impl::response::Response>::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
||||||
| 28 | Summary: <reqwest::blocking::response::Response>::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 28 | Summary: <reqwest::async_impl::response::Response>::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 29 | Summary: <reqwest::blocking::response::Response>::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 29 | Summary: <reqwest::blocking::response::Response>::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 30 | Summary: <reqwest::blocking::response::Response>::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 30 | Summary: <reqwest::blocking::response::Response>::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 31 | Summary: <std::io::buffered::bufreader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
| 31 | Summary: <reqwest::blocking::response::Response>::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 32 | Summary: <tokio::net::tcp::stream::TcpStream>::peek; Argument[self].Reference; Argument[0].Reference; taint |
|
| 32 | Summary: <std::io::buffered::bufreader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
||||||
| 33 | Summary: <tokio::net::tcp::stream::TcpStream>::try_read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 33 | Summary: <tokio::net::tcp::stream::TcpStream>::peek; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 34 | Summary: <tokio::net::tcp::stream::TcpStream>::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint |
|
| 34 | Summary: <tokio::net::tcp::stream::TcpStream>::try_read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
|
| 35 | Summary: <tokio::net::tcp::stream::TcpStream>::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
edges
|
edges
|
||||||
| test.rs:11:9:11:22 | remote_string1 | test.rs:12:10:12:23 | remote_string1 | provenance | |
|
| test.rs:11:9:11:22 | remote_string1 | test.rs:12:10:12:23 | remote_string1 | provenance | |
|
||||||
| test.rs:11:26:11:47 | ...::get | test.rs:11:26:11:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
| test.rs:11:26:11:47 | ...::get | test.rs:11:26:11:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
||||||
| test.rs:11:26:11:62 | ...::get(...) [Ok] | test.rs:11:26:11:63 | TryExpr | provenance | |
|
| test.rs:11:26:11:62 | ...::get(...) [Ok] | test.rs:11:26:11:63 | TryExpr | provenance | |
|
||||||
| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:29 |
|
| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:30 |
|
||||||
| test.rs:11:26:11:70 | ... .text() [Ok] | test.rs:11:26:11:71 | TryExpr | provenance | |
|
| test.rs:11:26:11:70 | ... .text() [Ok] | test.rs:11:26:11:71 | TryExpr | provenance | |
|
||||||
| test.rs:11:26:11:71 | TryExpr | test.rs:11:9:11:22 | remote_string1 | provenance | |
|
| test.rs:11:26:11:71 | TryExpr | test.rs:11:9:11:22 | remote_string1 | provenance | |
|
||||||
| test.rs:14:9:14:22 | remote_string2 | test.rs:15:10:15:23 | remote_string2 | provenance | |
|
| test.rs:14:9:14:22 | remote_string2 | test.rs:15:10:15:23 | remote_string2 | provenance | |
|
||||||
| test.rs:14:26:14:47 | ...::get | test.rs:14:26:14:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
| test.rs:14:26:14:47 | ...::get | test.rs:14:26:14:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
||||||
| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:29 |
|
| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:30 |
|
||||||
| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:14:26:14:87 | ... .unwrap() | test.rs:14:9:14:22 | remote_string2 | provenance | |
|
| test.rs:14:26:14:87 | ... .unwrap() | test.rs:14:9:14:22 | remote_string2 | provenance | |
|
||||||
| test.rs:17:9:17:22 | remote_string3 | test.rs:18:10:18:23 | remote_string3 | provenance | |
|
| test.rs:17:9:17:22 | remote_string3 | test.rs:18:10:18:23 | remote_string3 | provenance | |
|
||||||
| test.rs:17:26:17:47 | ...::get | test.rs:17:26:17:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
| test.rs:17:26:17:47 | ...::get | test.rs:17:26:17:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
||||||
| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:30 |
|
| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:31 |
|
||||||
| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:17:26:17:107 | ... .unwrap() | test.rs:17:9:17:22 | remote_string3 | provenance | |
|
| test.rs:17:26:17:107 | ... .unwrap() | test.rs:17:9:17:22 | remote_string3 | provenance | |
|
||||||
| test.rs:20:9:20:22 | remote_string4 | test.rs:21:10:21:23 | remote_string4 | provenance | |
|
| test.rs:20:9:20:22 | remote_string4 | test.rs:21:10:21:23 | remote_string4 | provenance | |
|
||||||
| test.rs:20:26:20:47 | ...::get | test.rs:20:26:20:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
| test.rs:20:26:20:47 | ...::get | test.rs:20:26:20:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 |
|
||||||
| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:28 |
|
| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:29 |
|
||||||
| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:22 |
|
| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:23 |
|
||||||
| test.rs:20:26:20:88 | ... .unwrap() | test.rs:20:9:20:22 | remote_string4 | provenance | |
|
| test.rs:20:26:20:88 | ... .unwrap() | test.rs:20:9:20:22 | remote_string4 | provenance | |
|
||||||
| test.rs:23:9:23:22 | remote_string5 | test.rs:24:10:24:23 | remote_string5 | provenance | |
|
| test.rs:23:9:23:22 | remote_string5 | test.rs:24:10:24:23 | remote_string5 | provenance | |
|
||||||
| test.rs:23:26:23:37 | ...::get | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:7 |
|
| test.rs:23:26:23:37 | ...::get | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:7 |
|
||||||
| test.rs:23:26:23:52 | ...::get(...) [future, Ok] | test.rs:23:26:23:58 | await ... [Ok] | provenance | |
|
| test.rs:23:26:23:52 | ...::get(...) [future, Ok] | test.rs:23:26:23:58 | await ... [Ok] | provenance | |
|
||||||
| test.rs:23:26:23:58 | await ... [Ok] | test.rs:23:26:23:59 | TryExpr | provenance | |
|
| test.rs:23:26:23:58 | await ... [Ok] | test.rs:23:26:23:59 | TryExpr | provenance | |
|
||||||
| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:27 |
|
| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:28 |
|
||||||
| test.rs:23:26:23:66 | ... .text() [future, Ok] | test.rs:23:26:23:72 | await ... [Ok] | provenance | |
|
| test.rs:23:26:23:66 | ... .text() [future, Ok] | test.rs:23:26:23:72 | await ... [Ok] | provenance | |
|
||||||
| test.rs:23:26:23:72 | await ... [Ok] | test.rs:23:26:23:73 | TryExpr | provenance | |
|
| test.rs:23:26:23:72 | await ... [Ok] | test.rs:23:26:23:73 | TryExpr | provenance | |
|
||||||
| test.rs:23:26:23:73 | TryExpr | test.rs:23:9:23:22 | remote_string5 | provenance | |
|
| test.rs:23:26:23:73 | TryExpr | test.rs:23:9:23:22 | remote_string5 | provenance | |
|
||||||
@@ -70,7 +71,7 @@ edges
|
|||||||
| test.rs:26:26:26:37 | ...::get | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:7 |
|
| test.rs:26:26:26:37 | ...::get | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:7 |
|
||||||
| test.rs:26:26:26:52 | ...::get(...) [future, Ok] | test.rs:26:26:26:58 | await ... [Ok] | provenance | |
|
| test.rs:26:26:26:52 | ...::get(...) [future, Ok] | test.rs:26:26:26:58 | await ... [Ok] | provenance | |
|
||||||
| test.rs:26:26:26:58 | await ... [Ok] | test.rs:26:26:26:59 | TryExpr | provenance | |
|
| test.rs:26:26:26:58 | await ... [Ok] | test.rs:26:26:26:59 | TryExpr | provenance | |
|
||||||
| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:25 |
|
| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:26 |
|
||||||
| test.rs:26:26:26:67 | ... .bytes() [future, Ok] | test.rs:26:26:26:73 | await ... [Ok] | provenance | |
|
| test.rs:26:26:26:67 | ... .bytes() [future, Ok] | test.rs:26:26:26:73 | await ... [Ok] | provenance | |
|
||||||
| test.rs:26:26:26:73 | await ... [Ok] | test.rs:26:26:26:74 | TryExpr | provenance | |
|
| test.rs:26:26:26:73 | await ... [Ok] | test.rs:26:26:26:74 | TryExpr | provenance | |
|
||||||
| test.rs:26:26:26:74 | TryExpr | test.rs:26:9:26:22 | remote_string6 | provenance | |
|
| test.rs:26:26:26:74 | TryExpr | test.rs:26:9:26:22 | remote_string6 | provenance | |
|
||||||
@@ -80,13 +81,13 @@ edges
|
|||||||
| test.rs:29:24:29:50 | ...::get(...) [future, Ok] | test.rs:29:24:29:56 | await ... [Ok] | provenance | |
|
| test.rs:29:24:29:50 | ...::get(...) [future, Ok] | test.rs:29:24:29:56 | await ... [Ok] | provenance | |
|
||||||
| test.rs:29:24:29:56 | await ... [Ok] | test.rs:29:24:29:57 | TryExpr | provenance | |
|
| test.rs:29:24:29:56 | await ... [Ok] | test.rs:29:24:29:57 | TryExpr | provenance | |
|
||||||
| test.rs:29:24:29:57 | TryExpr | test.rs:29:9:29:20 | mut request1 | provenance | |
|
| test.rs:29:24:29:57 | TryExpr | test.rs:29:9:29:20 | mut request1 | provenance | |
|
||||||
| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:26 |
|
| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:27 |
|
||||||
| test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | test.rs:30:10:30:31 | await ... [Ok, Some] | provenance | |
|
| test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | test.rs:30:10:30:31 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:30:10:30:31 | await ... [Ok, Some] | test.rs:30:10:30:32 | TryExpr [Some] | provenance | |
|
| test.rs:30:10:30:31 | await ... [Ok, Some] | test.rs:30:10:30:32 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:19 |
|
| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:20 |
|
||||||
| test.rs:31:15:31:25 | Some(...) [Some] | test.rs:31:20:31:24 | chunk | provenance | |
|
| test.rs:31:15:31:25 | Some(...) [Some] | test.rs:31:20:31:24 | chunk | provenance | |
|
||||||
| test.rs:31:20:31:24 | chunk | test.rs:32:14:32:18 | chunk | provenance | |
|
| test.rs:31:20:31:24 | chunk | test.rs:32:14:32:18 | chunk | provenance | |
|
||||||
| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:26 |
|
| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:27 |
|
||||||
| test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | test.rs:31:29:31:50 | await ... [Ok, Some] | provenance | |
|
| test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | test.rs:31:29:31:50 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:31:29:31:50 | await ... [Ok, Some] | test.rs:31:29:31:51 | TryExpr [Some] | provenance | |
|
| test.rs:31:29:31:50 | await ... [Ok, Some] | test.rs:31:29:31:51 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:31:29:31:51 | TryExpr [Some] | test.rs:31:15:31:25 | Some(...) [Some] | provenance | |
|
| test.rs:31:29:31:51 | TryExpr [Some] | test.rs:31:15:31:25 | Some(...) [Some] | provenance | |
|
||||||
@@ -107,20 +108,21 @@ edges
|
|||||||
| test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:3 |
|
| test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:3 |
|
||||||
| test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | |
|
| test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | |
|
||||||
| test.rs:155:26:155:63 | TryExpr | test.rs:155:13:155:22 | mut stream | provenance | |
|
| test.rs:155:26:155:63 | TryExpr | test.rs:155:13:155:22 | mut stream | provenance | |
|
||||||
| test.rs:162:17:162:22 | stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:16 |
|
| test.rs:162:17:162:22 | stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:17 |
|
||||||
| test.rs:162:29:162:39 | [post] &mut buffer [&ref] | test.rs:162:34:162:39 | [post] buffer | provenance | |
|
| test.rs:162:29:162:39 | [post] &mut buffer [&ref] | test.rs:162:34:162:39 | [post] buffer | provenance | |
|
||||||
| test.rs:162:34:162:39 | [post] buffer | test.rs:165:15:165:20 | buffer | provenance | |
|
| test.rs:162:34:162:39 | [post] buffer | test.rs:165:15:165:20 | buffer | provenance | |
|
||||||
| test.rs:162:34:162:39 | [post] buffer | test.rs:166:14:166:22 | buffer[0] | provenance | |
|
| test.rs:162:34:162:39 | [post] buffer | test.rs:166:14:166:19 | buffer | provenance | |
|
||||||
| test.rs:165:15:165:20 | buffer | test.rs:165:14:165:20 | &buffer | provenance | |
|
| test.rs:165:15:165:20 | buffer | test.rs:165:14:165:20 | &buffer | provenance | |
|
||||||
|
| test.rs:166:14:166:19 | buffer | test.rs:166:14:166:22 | buffer[0] | provenance | MaD:8 |
|
||||||
| test.rs:174:13:174:22 | mut stream | test.rs:182:58:182:63 | stream | provenance | |
|
| test.rs:174:13:174:22 | mut stream | test.rs:182:58:182:63 | stream | provenance | |
|
||||||
| test.rs:174:26:174:61 | ...::connect_timeout | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | provenance | Src:MaD:4 |
|
| test.rs:174:26:174:61 | ...::connect_timeout | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | provenance | Src:MaD:4 |
|
||||||
| test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | test.rs:174:26:174:106 | TryExpr | provenance | |
|
| test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | test.rs:174:26:174:106 | TryExpr | provenance | |
|
||||||
| test.rs:174:26:174:106 | TryExpr | test.rs:174:13:174:22 | mut stream | provenance | |
|
| test.rs:174:26:174:106 | TryExpr | test.rs:174:13:174:22 | mut stream | provenance | |
|
||||||
| test.rs:182:21:182:30 | mut reader | test.rs:185:27:185:32 | reader | provenance | |
|
| test.rs:182:21:182:30 | mut reader | test.rs:185:27:185:32 | reader | provenance | |
|
||||||
| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:17 |
|
| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:18 |
|
||||||
| test.rs:182:34:182:74 | ... .take(...) | test.rs:182:21:182:30 | mut reader | provenance | |
|
| test.rs:182:34:182:74 | ... .take(...) | test.rs:182:21:182:30 | mut reader | provenance | |
|
||||||
| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:185:27:185:32 | reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:15 |
|
| test.rs:185:27:185:32 | reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:16 |
|
||||||
| test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | |
|
| test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | |
|
||||||
| test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | |
|
| test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | |
|
||||||
| test.rs:192:35:192:38 | line | test.rs:192:34:192:38 | &line | provenance | |
|
| test.rs:192:35:192:38 | line | test.rs:192:34:192:38 | &line | provenance | |
|
||||||
@@ -132,21 +134,23 @@ edges
|
|||||||
| test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | test.rs:224:28:224:72 | await ... [Ok] | provenance | |
|
| test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | test.rs:224:28:224:72 | await ... [Ok] | provenance | |
|
||||||
| test.rs:224:28:224:72 | await ... [Ok] | test.rs:224:28:224:73 | TryExpr | provenance | |
|
| test.rs:224:28:224:72 | await ... [Ok] | test.rs:224:28:224:73 | TryExpr | provenance | |
|
||||||
| test.rs:224:28:224:73 | TryExpr | test.rs:224:9:224:24 | mut tokio_stream | provenance | |
|
| test.rs:224:28:224:73 | TryExpr | test.rs:224:9:224:24 | mut tokio_stream | provenance | |
|
||||||
| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:32 |
|
| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:33 |
|
||||||
| test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | test.rs:232:40:232:46 | [post] buffer1 | provenance | |
|
| test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | test.rs:232:40:232:46 | [post] buffer1 | provenance | |
|
||||||
| test.rs:232:40:232:46 | [post] buffer1 | test.rs:239:15:239:21 | buffer1 | provenance | |
|
| test.rs:232:40:232:46 | [post] buffer1 | test.rs:239:15:239:21 | buffer1 | provenance | |
|
||||||
| test.rs:232:40:232:46 | [post] buffer1 | test.rs:240:14:240:23 | buffer1[0] | provenance | |
|
| test.rs:232:40:232:46 | [post] buffer1 | test.rs:240:14:240:20 | buffer1 | provenance | |
|
||||||
| test.rs:236:18:236:29 | tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:18 |
|
| test.rs:236:18:236:29 | tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:19 |
|
||||||
| test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | test.rs:236:41:236:47 | [post] buffer2 | provenance | |
|
| test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | test.rs:236:41:236:47 | [post] buffer2 | provenance | |
|
||||||
| test.rs:236:41:236:47 | [post] buffer2 | test.rs:243:15:243:21 | buffer2 | provenance | |
|
| test.rs:236:41:236:47 | [post] buffer2 | test.rs:243:15:243:21 | buffer2 | provenance | |
|
||||||
| test.rs:236:41:236:47 | [post] buffer2 | test.rs:244:14:244:23 | buffer2[0] | provenance | |
|
| test.rs:236:41:236:47 | [post] buffer2 | test.rs:244:14:244:20 | buffer2 | provenance | |
|
||||||
| test.rs:239:15:239:21 | buffer1 | test.rs:239:14:239:21 | &buffer1 | provenance | |
|
| test.rs:239:15:239:21 | buffer1 | test.rs:239:14:239:21 | &buffer1 | provenance | |
|
||||||
|
| test.rs:240:14:240:20 | buffer1 | test.rs:240:14:240:23 | buffer1[0] | provenance | MaD:8 |
|
||||||
| test.rs:243:15:243:21 | buffer2 | test.rs:243:14:243:21 | &buffer2 | provenance | |
|
| test.rs:243:15:243:21 | buffer2 | test.rs:243:14:243:21 | &buffer2 | provenance | |
|
||||||
| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:33 |
|
| test.rs:244:14:244:20 | buffer2 | test.rs:244:14:244:23 | buffer2[0] | provenance | MaD:8 |
|
||||||
|
| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:34 |
|
||||||
| test.rs:252:41:252:51 | [post] &mut buffer [&ref] | test.rs:252:46:252:51 | [post] buffer | provenance | |
|
| test.rs:252:41:252:51 | [post] &mut buffer [&ref] | test.rs:252:46:252:51 | [post] buffer | provenance | |
|
||||||
| test.rs:252:46:252:51 | [post] buffer | test.rs:259:27:259:32 | buffer | provenance | |
|
| test.rs:252:46:252:51 | [post] buffer | test.rs:259:27:259:32 | buffer | provenance | |
|
||||||
| test.rs:259:27:259:32 | buffer | test.rs:259:26:259:32 | &buffer | provenance | |
|
| test.rs:259:27:259:32 | buffer | test.rs:259:26:259:32 | &buffer | provenance | |
|
||||||
| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:34 |
|
| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:35 |
|
||||||
| test.rs:275:45:275:55 | [post] &mut buffer [&ref] | test.rs:275:50:275:55 | [post] buffer | provenance | |
|
| test.rs:275:45:275:55 | [post] &mut buffer [&ref] | test.rs:275:50:275:55 | [post] buffer | provenance | |
|
||||||
| test.rs:275:50:275:55 | [post] buffer | test.rs:282:27:282:32 | buffer | provenance | |
|
| test.rs:275:50:275:55 | [post] buffer | test.rs:282:27:282:32 | buffer | provenance | |
|
||||||
| test.rs:282:27:282:32 | buffer | test.rs:282:26:282:32 | &buffer | provenance | |
|
| test.rs:282:27:282:32 | buffer | test.rs:282:26:282:32 | &buffer | provenance | |
|
||||||
@@ -165,32 +169,38 @@ edges
|
|||||||
| test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | test.rs:380:26:380:66 | await ... [Ok] | provenance | |
|
| test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | test.rs:380:26:380:66 | await ... [Ok] | provenance | |
|
||||||
| test.rs:380:26:380:66 | await ... [Ok] | test.rs:380:26:380:67 | TryExpr | provenance | |
|
| test.rs:380:26:380:66 | await ... [Ok] | test.rs:380:26:380:67 | TryExpr | provenance | |
|
||||||
| test.rs:380:26:380:67 | TryExpr | test.rs:380:13:380:22 | mut reader | provenance | |
|
| test.rs:380:26:380:67 | TryExpr | test.rs:380:13:380:22 | mut reader | provenance | |
|
||||||
| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:23 |
|
| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:24 |
|
||||||
| test.rs:381:15:381:20 | reader | test.rs:381:14:381:20 | &reader | provenance | |
|
| test.rs:381:15:381:20 | reader | test.rs:381:14:381:20 | &reader | provenance | |
|
||||||
| test.rs:386:17:386:26 | mut pinned | test.rs:387:19:387:24 | pinned | provenance | |
|
| test.rs:386:17:386:26 | mut pinned | test.rs:387:19:387:24 | pinned | provenance | |
|
||||||
| test.rs:386:17:386:26 | mut pinned | test.rs:389:30:389:35 | pinned | provenance | |
|
| test.rs:386:17:386:26 | mut pinned | test.rs:389:30:389:35 | pinned | provenance | |
|
||||||
| test.rs:386:17:386:26 | mut pinned [Pin, &ref] | test.rs:387:19:387:24 | pinned [Pin, &ref] | provenance | |
|
| test.rs:386:17:386:26 | mut pinned [Pin, &ref] | test.rs:387:19:387:24 | pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:386:30:386:50 | ...::new(...) | test.rs:386:17:386:26 | mut pinned | provenance | |
|
| test.rs:386:30:386:50 | ...::new(...) | test.rs:386:17:386:26 | mut pinned | provenance | |
|
||||||
| test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | test.rs:386:17:386:26 | mut pinned [Pin, &ref] | provenance | |
|
| test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | test.rs:386:17:386:26 | mut pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:20 |
|
| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:21 |
|
||||||
| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | provenance | MaD:21 |
|
| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | provenance | MaD:22 |
|
||||||
| test.rs:386:44:386:49 | reader | test.rs:386:39:386:49 | &mut reader [&ref] | provenance | |
|
| test.rs:386:44:386:49 | reader | test.rs:386:39:386:49 | &mut reader [&ref] | provenance | |
|
||||||
| test.rs:387:19:387:24 | pinned | test.rs:387:18:387:24 | &pinned | provenance | |
|
| test.rs:387:19:387:24 | pinned | test.rs:387:18:387:24 | &pinned | provenance | |
|
||||||
| test.rs:387:19:387:24 | pinned [Pin, &ref] | test.rs:387:18:387:24 | &pinned | provenance | |
|
| test.rs:387:19:387:24 | pinned [Pin, &ref] | test.rs:387:18:387:24 | &pinned | provenance | |
|
||||||
| test.rs:389:30:389:35 | pinned | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:9 |
|
| test.rs:389:30:389:35 | pinned | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:10 |
|
||||||
| test.rs:389:56:389:66 | [post] &mut buffer [&ref] | test.rs:389:61:389:66 | [post] buffer | provenance | |
|
| test.rs:389:56:389:66 | [post] &mut buffer [&ref] | test.rs:389:61:389:66 | [post] buffer | provenance | |
|
||||||
| test.rs:389:61:389:66 | [post] buffer | test.rs:391:23:391:28 | buffer | provenance | |
|
| test.rs:389:61:389:66 | [post] buffer | test.rs:391:23:391:28 | buffer | provenance | |
|
||||||
|
| test.rs:389:61:389:66 | [post] buffer | test.rs:392:23:392:28 | buffer | provenance | |
|
||||||
| test.rs:389:61:389:66 | [post] buffer | test.rs:392:23:392:33 | buffer[...] | provenance | |
|
| test.rs:389:61:389:66 | [post] buffer | test.rs:392:23:392:33 | buffer[...] | provenance | |
|
||||||
| test.rs:391:23:391:28 | buffer | test.rs:391:22:391:28 | &buffer | provenance | |
|
| test.rs:391:23:391:28 | buffer | test.rs:391:22:391:28 | &buffer | provenance | |
|
||||||
|
| test.rs:392:23:392:28 | buffer | test.rs:392:23:392:33 | buffer[...] | provenance | MaD:8 |
|
||||||
| test.rs:392:23:392:33 | buffer[...] | test.rs:392:22:392:33 | &... | provenance | |
|
| test.rs:392:23:392:33 | buffer[...] | test.rs:392:22:392:33 | &... | provenance | |
|
||||||
| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | provenance | MaD:13 |
|
| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | provenance | MaD:14 |
|
||||||
| test.rs:399:68:399:73 | reader | test.rs:399:63:399:73 | &mut reader [&ref] | provenance | |
|
| test.rs:399:68:399:73 | reader | test.rs:399:63:399:73 | &mut reader [&ref] | provenance | |
|
||||||
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | test.rs:399:81:399:87 | [post] buffer1 | provenance | |
|
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | test.rs:399:81:399:87 | [post] buffer1 | provenance | |
|
||||||
|
| test.rs:399:81:399:87 | [post] buffer1 | test.rs:400:19:400:25 | buffer1 | provenance | |
|
||||||
| test.rs:399:81:399:87 | [post] buffer1 | test.rs:400:19:400:40 | buffer1[...] | provenance | |
|
| test.rs:399:81:399:87 | [post] buffer1 | test.rs:400:19:400:40 | buffer1[...] | provenance | |
|
||||||
|
| test.rs:400:19:400:25 | buffer1 | test.rs:400:19:400:40 | buffer1[...] | provenance | MaD:8 |
|
||||||
| test.rs:400:19:400:40 | buffer1[...] | test.rs:400:18:400:40 | &... | provenance | |
|
| test.rs:400:19:400:40 | buffer1[...] | test.rs:400:18:400:40 | &... | provenance | |
|
||||||
| test.rs:403:31:403:36 | reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:13 |
|
| test.rs:403:31:403:36 | reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:14 |
|
||||||
| test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | test.rs:403:48:403:54 | [post] buffer2 | provenance | |
|
| test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | test.rs:403:48:403:54 | [post] buffer2 | provenance | |
|
||||||
|
| test.rs:403:48:403:54 | [post] buffer2 | test.rs:405:19:405:25 | buffer2 | provenance | |
|
||||||
| test.rs:403:48:403:54 | [post] buffer2 | test.rs:405:19:405:40 | buffer2[...] | provenance | |
|
| test.rs:403:48:403:54 | [post] buffer2 | test.rs:405:19:405:40 | buffer2[...] | provenance | |
|
||||||
|
| test.rs:405:19:405:25 | buffer2 | test.rs:405:19:405:40 | buffer2[...] | provenance | MaD:8 |
|
||||||
| test.rs:405:19:405:40 | buffer2[...] | test.rs:405:18:405:40 | &... | provenance | |
|
| test.rs:405:19:405:40 | buffer2[...] | test.rs:405:18:405:40 | &... | provenance | |
|
||||||
| test.rs:408:13:408:23 | mut reader2 | test.rs:409:15:409:21 | reader2 | provenance | |
|
| test.rs:408:13:408:23 | mut reader2 | test.rs:409:15:409:21 | reader2 | provenance | |
|
||||||
| test.rs:408:13:408:23 | mut reader2 | test.rs:413:44:413:50 | reader2 | provenance | |
|
| test.rs:408:13:408:23 | mut reader2 | test.rs:413:44:413:50 | reader2 | provenance | |
|
||||||
@@ -205,30 +215,30 @@ edges
|
|||||||
| test.rs:408:13:408:23 | mut reader2 | test.rs:493:31:493:37 | reader2 | provenance | |
|
| test.rs:408:13:408:23 | mut reader2 | test.rs:493:31:493:37 | reader2 | provenance | |
|
||||||
| test.rs:408:13:408:23 | mut reader2 | test.rs:500:31:500:37 | reader2 | provenance | |
|
| test.rs:408:13:408:23 | mut reader2 | test.rs:500:31:500:37 | reader2 | provenance | |
|
||||||
| test.rs:408:27:408:61 | ...::new(...) | test.rs:408:13:408:23 | mut reader2 | provenance | |
|
| test.rs:408:27:408:61 | ...::new(...) | test.rs:408:13:408:23 | mut reader2 | provenance | |
|
||||||
| test.rs:408:55:408:60 | reader | test.rs:408:27:408:61 | ...::new(...) | provenance | MaD:24 |
|
| test.rs:408:55:408:60 | reader | test.rs:408:27:408:61 | ...::new(...) | provenance | MaD:25 |
|
||||||
| test.rs:409:15:409:21 | reader2 | test.rs:409:14:409:21 | &reader2 | provenance | |
|
| test.rs:409:15:409:21 | reader2 | test.rs:409:14:409:21 | &reader2 | provenance | |
|
||||||
| test.rs:413:17:413:26 | mut pinned | test.rs:414:19:414:24 | pinned | provenance | |
|
| test.rs:413:17:413:26 | mut pinned | test.rs:414:19:414:24 | pinned | provenance | |
|
||||||
| test.rs:413:17:413:26 | mut pinned | test.rs:416:26:416:31 | pinned | provenance | |
|
| test.rs:413:17:413:26 | mut pinned | test.rs:416:26:416:31 | pinned | provenance | |
|
||||||
| test.rs:413:17:413:26 | mut pinned [Pin, &ref] | test.rs:414:19:414:24 | pinned [Pin, &ref] | provenance | |
|
| test.rs:413:17:413:26 | mut pinned [Pin, &ref] | test.rs:414:19:414:24 | pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:413:30:413:51 | ...::new(...) | test.rs:413:17:413:26 | mut pinned | provenance | |
|
| test.rs:413:30:413:51 | ...::new(...) | test.rs:413:17:413:26 | mut pinned | provenance | |
|
||||||
| test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | test.rs:413:17:413:26 | mut pinned [Pin, &ref] | provenance | |
|
| test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | test.rs:413:17:413:26 | mut pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:20 |
|
| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:21 |
|
||||||
| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | provenance | MaD:21 |
|
| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | provenance | MaD:22 |
|
||||||
| test.rs:413:44:413:50 | reader2 | test.rs:413:39:413:50 | &mut reader2 [&ref] | provenance | |
|
| test.rs:413:44:413:50 | reader2 | test.rs:413:39:413:50 | &mut reader2 [&ref] | provenance | |
|
||||||
| test.rs:414:19:414:24 | pinned | test.rs:414:18:414:24 | &pinned | provenance | |
|
| test.rs:414:19:414:24 | pinned | test.rs:414:18:414:24 | &pinned | provenance | |
|
||||||
| test.rs:414:19:414:24 | pinned [Pin, &ref] | test.rs:414:18:414:24 | &pinned | provenance | |
|
| test.rs:414:19:414:24 | pinned [Pin, &ref] | test.rs:414:18:414:24 | &pinned | provenance | |
|
||||||
| test.rs:416:17:416:22 | buffer [Ready, Ok] | test.rs:417:20:417:39 | ...::Ready(...) [Ready, Ok] | provenance | |
|
| test.rs:416:17:416:22 | buffer [Ready, Ok] | test.rs:417:20:417:39 | ...::Ready(...) [Ready, Ok] | provenance | |
|
||||||
| test.rs:416:17:416:22 | buffer [Ready, Ok] | test.rs:418:23:418:28 | buffer [Ready, Ok] | provenance | |
|
| test.rs:416:17:416:22 | buffer [Ready, Ok] | test.rs:418:23:418:28 | buffer [Ready, Ok] | provenance | |
|
||||||
| test.rs:416:26:416:31 | pinned | test.rs:416:26:416:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 |
|
| test.rs:416:26:416:31 | pinned | test.rs:416:26:416:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:9 |
|
||||||
| test.rs:416:26:416:54 | pinned.poll_fill_buf(...) [Ready, Ok] | test.rs:416:17:416:22 | buffer [Ready, Ok] | provenance | |
|
| test.rs:416:26:416:54 | pinned.poll_fill_buf(...) [Ready, Ok] | test.rs:416:17:416:22 | buffer [Ready, Ok] | provenance | |
|
||||||
| test.rs:417:20:417:39 | ...::Ready(...) [Ready, Ok] | test.rs:417:32:417:38 | Ok(...) [Ok] | provenance | |
|
| test.rs:417:20:417:39 | ...::Ready(...) [Ready, Ok] | test.rs:417:32:417:38 | Ok(...) [Ok] | provenance | |
|
||||||
| test.rs:417:32:417:38 | Ok(...) [Ok] | test.rs:417:35:417:37 | buf | provenance | |
|
| test.rs:417:32:417:38 | Ok(...) [Ok] | test.rs:417:35:417:37 | buf | provenance | |
|
||||||
| test.rs:417:35:417:37 | buf | test.rs:419:22:419:24 | buf | provenance | |
|
| test.rs:417:35:417:37 | buf | test.rs:419:22:419:24 | buf | provenance | |
|
||||||
| test.rs:418:23:418:28 | buffer [Ready, Ok] | test.rs:418:22:418:28 | &buffer | provenance | |
|
| test.rs:418:23:418:28 | buffer [Ready, Ok] | test.rs:418:22:418:28 | &buffer | provenance | |
|
||||||
| test.rs:423:17:423:23 | buffer2 [Ready, Ok] | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | provenance | |
|
| test.rs:423:17:423:23 | buffer2 [Ready, Ok] | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | provenance | |
|
||||||
| test.rs:423:27:423:48 | ...::new(...) | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 |
|
| test.rs:423:27:423:48 | ...::new(...) | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | provenance | MaD:9 |
|
||||||
| test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | test.rs:423:17:423:23 | buffer2 [Ready, Ok] | provenance | |
|
| test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | test.rs:423:17:423:23 | buffer2 [Ready, Ok] | provenance | |
|
||||||
| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:20 |
|
| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:21 |
|
||||||
| test.rs:423:41:423:47 | reader2 | test.rs:423:36:423:47 | &mut reader2 [&ref] | provenance | |
|
| test.rs:423:41:423:47 | reader2 | test.rs:423:36:423:47 | &mut reader2 [&ref] | provenance | |
|
||||||
| test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:425:17:425:36 | ...::Ready(...) [Ready, Ok] | provenance | |
|
| test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:425:17:425:36 | ...::Ready(...) [Ready, Ok] | provenance | |
|
||||||
| test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:426:27:426:33 | buffer2 [Ready, Ok] | provenance | |
|
| test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:426:27:426:33 | buffer2 [Ready, Ok] | provenance | |
|
||||||
@@ -237,7 +247,7 @@ edges
|
|||||||
| test.rs:425:32:425:34 | buf | test.rs:427:26:427:28 | buf | provenance | |
|
| test.rs:425:32:425:34 | buf | test.rs:427:26:427:28 | buf | provenance | |
|
||||||
| test.rs:426:27:426:33 | buffer2 [Ready, Ok] | test.rs:426:26:426:33 | &buffer2 | provenance | |
|
| test.rs:426:27:426:33 | buffer2 [Ready, Ok] | test.rs:426:26:426:33 | &buffer2 | provenance | |
|
||||||
| test.rs:437:17:437:22 | buffer | test.rs:438:18:438:23 | buffer | provenance | |
|
| test.rs:437:17:437:22 | buffer | test.rs:438:18:438:23 | buffer | provenance | |
|
||||||
| test.rs:437:26:437:32 | reader2 | test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:10 |
|
| test.rs:437:26:437:32 | reader2 | test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:11 |
|
||||||
| test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | test.rs:437:26:437:49 | await ... [Ok] | provenance | |
|
| test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | test.rs:437:26:437:49 | await ... [Ok] | provenance | |
|
||||||
| test.rs:437:26:437:49 | await ... [Ok] | test.rs:437:26:437:50 | TryExpr | provenance | |
|
| test.rs:437:26:437:49 | await ... [Ok] | test.rs:437:26:437:50 | TryExpr | provenance | |
|
||||||
| test.rs:437:26:437:50 | TryExpr | test.rs:437:17:437:22 | buffer | provenance | |
|
| test.rs:437:26:437:50 | TryExpr | test.rs:437:17:437:22 | buffer | provenance | |
|
||||||
@@ -246,58 +256,64 @@ edges
|
|||||||
| test.rs:444:17:444:26 | mut pinned [Pin, &ref] | test.rs:445:19:445:24 | pinned [Pin, &ref] | provenance | |
|
| test.rs:444:17:444:26 | mut pinned [Pin, &ref] | test.rs:445:19:445:24 | pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:444:30:444:51 | ...::new(...) | test.rs:444:17:444:26 | mut pinned | provenance | |
|
| test.rs:444:30:444:51 | ...::new(...) | test.rs:444:17:444:26 | mut pinned | provenance | |
|
||||||
| test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | test.rs:444:17:444:26 | mut pinned [Pin, &ref] | provenance | |
|
| test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | test.rs:444:17:444:26 | mut pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:20 |
|
| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:21 |
|
||||||
| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | provenance | MaD:21 |
|
| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | provenance | MaD:22 |
|
||||||
| test.rs:444:44:444:50 | reader2 | test.rs:444:39:444:50 | &mut reader2 [&ref] | provenance | |
|
| test.rs:444:44:444:50 | reader2 | test.rs:444:39:444:50 | &mut reader2 [&ref] | provenance | |
|
||||||
| test.rs:445:19:445:24 | pinned | test.rs:445:18:445:24 | &pinned | provenance | |
|
| test.rs:445:19:445:24 | pinned | test.rs:445:18:445:24 | &pinned | provenance | |
|
||||||
| test.rs:445:19:445:24 | pinned [Pin, &ref] | test.rs:445:18:445:24 | &pinned | provenance | |
|
| test.rs:445:19:445:24 | pinned [Pin, &ref] | test.rs:445:18:445:24 | &pinned | provenance | |
|
||||||
| test.rs:447:30:447:35 | pinned | test.rs:447:56:447:66 | [post] &mut buffer [&ref] | provenance | MaD:9 |
|
| test.rs:447:30:447:35 | pinned | test.rs:447:56:447:66 | [post] &mut buffer [&ref] | provenance | MaD:10 |
|
||||||
| test.rs:447:56:447:66 | [post] &mut buffer [&ref] | test.rs:447:61:447:66 | [post] buffer | provenance | |
|
| test.rs:447:56:447:66 | [post] &mut buffer [&ref] | test.rs:447:61:447:66 | [post] buffer | provenance | |
|
||||||
| test.rs:447:61:447:66 | [post] buffer | test.rs:448:19:448:24 | buffer | provenance | |
|
| test.rs:447:61:447:66 | [post] buffer | test.rs:448:19:448:24 | buffer | provenance | |
|
||||||
|
| test.rs:447:61:447:66 | [post] buffer | test.rs:450:23:450:28 | buffer | provenance | |
|
||||||
| test.rs:447:61:447:66 | [post] buffer | test.rs:450:23:450:33 | buffer[...] | provenance | |
|
| test.rs:447:61:447:66 | [post] buffer | test.rs:450:23:450:33 | buffer[...] | provenance | |
|
||||||
| test.rs:448:19:448:24 | buffer | test.rs:448:18:448:24 | &buffer | provenance | |
|
| test.rs:448:19:448:24 | buffer | test.rs:448:18:448:24 | &buffer | provenance | |
|
||||||
|
| test.rs:450:23:450:28 | buffer | test.rs:450:23:450:33 | buffer[...] | provenance | MaD:8 |
|
||||||
| test.rs:450:23:450:33 | buffer[...] | test.rs:450:22:450:33 | &... | provenance | |
|
| test.rs:450:23:450:33 | buffer[...] | test.rs:450:22:450:33 | &... | provenance | |
|
||||||
| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | provenance | MaD:13 |
|
| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | provenance | MaD:14 |
|
||||||
| test.rs:457:68:457:74 | reader2 | test.rs:457:63:457:74 | &mut reader2 [&ref] | provenance | |
|
| test.rs:457:68:457:74 | reader2 | test.rs:457:63:457:74 | &mut reader2 [&ref] | provenance | |
|
||||||
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | test.rs:457:82:457:88 | [post] buffer1 | provenance | |
|
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | test.rs:457:82:457:88 | [post] buffer1 | provenance | |
|
||||||
|
| test.rs:457:82:457:88 | [post] buffer1 | test.rs:458:19:458:25 | buffer1 | provenance | |
|
||||||
| test.rs:457:82:457:88 | [post] buffer1 | test.rs:458:19:458:40 | buffer1[...] | provenance | |
|
| test.rs:457:82:457:88 | [post] buffer1 | test.rs:458:19:458:40 | buffer1[...] | provenance | |
|
||||||
|
| test.rs:458:19:458:25 | buffer1 | test.rs:458:19:458:40 | buffer1[...] | provenance | MaD:8 |
|
||||||
| test.rs:458:19:458:40 | buffer1[...] | test.rs:458:18:458:40 | &... | provenance | |
|
| test.rs:458:19:458:40 | buffer1[...] | test.rs:458:18:458:40 | &... | provenance | |
|
||||||
| test.rs:461:31:461:37 | reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:13 |
|
| test.rs:461:31:461:37 | reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:14 |
|
||||||
| test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | test.rs:461:49:461:55 | [post] buffer2 | provenance | |
|
| test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | test.rs:461:49:461:55 | [post] buffer2 | provenance | |
|
||||||
|
| test.rs:461:49:461:55 | [post] buffer2 | test.rs:462:19:462:25 | buffer2 | provenance | |
|
||||||
| test.rs:461:49:461:55 | [post] buffer2 | test.rs:462:19:462:40 | buffer2[...] | provenance | |
|
| test.rs:461:49:461:55 | [post] buffer2 | test.rs:462:19:462:40 | buffer2[...] | provenance | |
|
||||||
|
| test.rs:462:19:462:25 | buffer2 | test.rs:462:19:462:40 | buffer2[...] | provenance | MaD:8 |
|
||||||
| test.rs:462:19:462:40 | buffer2[...] | test.rs:462:18:462:40 | &... | provenance | |
|
| test.rs:462:19:462:40 | buffer2[...] | test.rs:462:18:462:40 | &... | provenance | |
|
||||||
| test.rs:467:17:467:26 | mut pinned | test.rs:468:19:468:24 | pinned | provenance | |
|
| test.rs:467:17:467:26 | mut pinned | test.rs:468:19:468:24 | pinned | provenance | |
|
||||||
| test.rs:467:17:467:26 | mut pinned | test.rs:470:26:470:31 | pinned | provenance | |
|
| test.rs:467:17:467:26 | mut pinned | test.rs:470:26:470:31 | pinned | provenance | |
|
||||||
| test.rs:467:17:467:26 | mut pinned [Pin, &ref] | test.rs:468:19:468:24 | pinned [Pin, &ref] | provenance | |
|
| test.rs:467:17:467:26 | mut pinned [Pin, &ref] | test.rs:468:19:468:24 | pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:467:30:467:51 | ...::new(...) | test.rs:467:17:467:26 | mut pinned | provenance | |
|
| test.rs:467:30:467:51 | ...::new(...) | test.rs:467:17:467:26 | mut pinned | provenance | |
|
||||||
| test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | test.rs:467:17:467:26 | mut pinned [Pin, &ref] | provenance | |
|
| test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | test.rs:467:17:467:26 | mut pinned [Pin, &ref] | provenance | |
|
||||||
| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:20 |
|
| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:21 |
|
||||||
| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | provenance | MaD:21 |
|
| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | provenance | MaD:22 |
|
||||||
| test.rs:467:44:467:50 | reader2 | test.rs:467:39:467:50 | &mut reader2 [&ref] | provenance | |
|
| test.rs:467:44:467:50 | reader2 | test.rs:467:39:467:50 | &mut reader2 [&ref] | provenance | |
|
||||||
| test.rs:468:19:468:24 | pinned | test.rs:468:18:468:24 | &pinned | provenance | |
|
| test.rs:468:19:468:24 | pinned | test.rs:468:18:468:24 | &pinned | provenance | |
|
||||||
| test.rs:468:19:468:24 | pinned [Pin, &ref] | test.rs:468:18:468:24 | &pinned | provenance | |
|
| test.rs:468:19:468:24 | pinned [Pin, &ref] | test.rs:468:18:468:24 | &pinned | provenance | |
|
||||||
| test.rs:470:17:470:22 | buffer [Ready, Ok] | test.rs:471:19:471:24 | buffer [Ready, Ok] | provenance | |
|
| test.rs:470:17:470:22 | buffer [Ready, Ok] | test.rs:471:19:471:24 | buffer [Ready, Ok] | provenance | |
|
||||||
| test.rs:470:17:470:22 | buffer [Ready, Ok] | test.rs:472:20:472:39 | ...::Ready(...) [Ready, Ok] | provenance | |
|
| test.rs:470:17:470:22 | buffer [Ready, Ok] | test.rs:472:20:472:39 | ...::Ready(...) [Ready, Ok] | provenance | |
|
||||||
| test.rs:470:26:470:31 | pinned | test.rs:470:26:470:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 |
|
| test.rs:470:26:470:31 | pinned | test.rs:470:26:470:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:9 |
|
||||||
| test.rs:470:26:470:54 | pinned.poll_fill_buf(...) [Ready, Ok] | test.rs:470:17:470:22 | buffer [Ready, Ok] | provenance | |
|
| test.rs:470:26:470:54 | pinned.poll_fill_buf(...) [Ready, Ok] | test.rs:470:17:470:22 | buffer [Ready, Ok] | provenance | |
|
||||||
| test.rs:471:19:471:24 | buffer [Ready, Ok] | test.rs:471:18:471:24 | &buffer | provenance | |
|
| test.rs:471:19:471:24 | buffer [Ready, Ok] | test.rs:471:18:471:24 | &buffer | provenance | |
|
||||||
| test.rs:472:20:472:39 | ...::Ready(...) [Ready, Ok] | test.rs:472:32:472:38 | Ok(...) [Ok] | provenance | |
|
| test.rs:472:20:472:39 | ...::Ready(...) [Ready, Ok] | test.rs:472:32:472:38 | Ok(...) [Ok] | provenance | |
|
||||||
| test.rs:472:32:472:38 | Ok(...) [Ok] | test.rs:472:35:472:37 | buf | provenance | |
|
| test.rs:472:32:472:38 | Ok(...) [Ok] | test.rs:472:35:472:37 | buf | provenance | |
|
||||||
| test.rs:472:35:472:37 | buf | test.rs:473:22:473:24 | buf | provenance | |
|
| test.rs:472:35:472:37 | buf | test.rs:473:22:473:24 | buf | provenance | |
|
||||||
| test.rs:479:17:479:22 | buffer | test.rs:480:18:480:23 | buffer | provenance | |
|
| test.rs:479:17:479:22 | buffer | test.rs:480:18:480:23 | buffer | provenance | |
|
||||||
| test.rs:479:26:479:32 | reader2 | test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:10 |
|
| test.rs:479:26:479:32 | reader2 | test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:11 |
|
||||||
| test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | test.rs:479:26:479:49 | await ... [Ok] | provenance | |
|
| test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | test.rs:479:26:479:49 | await ... [Ok] | provenance | |
|
||||||
| test.rs:479:26:479:49 | await ... [Ok] | test.rs:479:26:479:50 | TryExpr | provenance | |
|
| test.rs:479:26:479:49 | await ... [Ok] | test.rs:479:26:479:50 | TryExpr | provenance | |
|
||||||
| test.rs:479:26:479:50 | TryExpr | test.rs:479:17:479:22 | buffer | provenance | |
|
| test.rs:479:26:479:50 | TryExpr | test.rs:479:17:479:22 | buffer | provenance | |
|
||||||
| test.rs:486:31:486:37 | reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:12 |
|
| test.rs:486:31:486:37 | reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:13 |
|
||||||
| test.rs:486:57:486:65 | [post] &mut line [&ref] | test.rs:486:62:486:65 | [post] line | provenance | |
|
| test.rs:486:57:486:65 | [post] &mut line [&ref] | test.rs:486:62:486:65 | [post] line | provenance | |
|
||||||
| test.rs:486:62:486:65 | [post] line | test.rs:487:19:487:22 | line | provenance | |
|
| test.rs:486:62:486:65 | [post] line | test.rs:487:19:487:22 | line | provenance | |
|
||||||
| test.rs:487:19:487:22 | line | test.rs:487:18:487:22 | &line | provenance | |
|
| test.rs:487:19:487:22 | line | test.rs:487:18:487:22 | &line | provenance | |
|
||||||
| test.rs:493:31:493:37 | reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:11 |
|
| test.rs:493:31:493:37 | reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:12 |
|
||||||
| test.rs:493:49:493:57 | [post] &mut line [&ref] | test.rs:493:54:493:57 | [post] line | provenance | |
|
| test.rs:493:49:493:57 | [post] &mut line [&ref] | test.rs:493:54:493:57 | [post] line | provenance | |
|
||||||
| test.rs:493:54:493:57 | [post] line | test.rs:494:19:494:22 | line | provenance | |
|
| test.rs:493:54:493:57 | [post] line | test.rs:494:19:494:22 | line | provenance | |
|
||||||
| test.rs:494:19:494:22 | line | test.rs:494:18:494:22 | &line | provenance | |
|
| test.rs:494:19:494:22 | line | test.rs:494:18:494:22 | &line | provenance | |
|
||||||
| test.rs:500:31:500:37 | reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:14 |
|
| test.rs:500:31:500:37 | reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:15 |
|
||||||
| test.rs:500:51:500:61 | [post] &mut buffer [&ref] | test.rs:500:56:500:61 | [post] buffer | provenance | |
|
| test.rs:500:51:500:61 | [post] &mut buffer [&ref] | test.rs:500:56:500:61 | [post] buffer | provenance | |
|
||||||
| test.rs:500:56:500:61 | [post] buffer | test.rs:501:19:501:24 | buffer | provenance | |
|
| test.rs:500:56:500:61 | [post] buffer | test.rs:501:19:501:24 | buffer | provenance | |
|
||||||
| test.rs:501:19:501:24 | buffer | test.rs:501:18:501:24 | &buffer | provenance | |
|
| test.rs:501:19:501:24 | buffer | test.rs:501:18:501:24 | &buffer | provenance | |
|
||||||
@@ -389,6 +405,7 @@ nodes
|
|||||||
| test.rs:162:34:162:39 | [post] buffer | semmle.label | [post] buffer |
|
| test.rs:162:34:162:39 | [post] buffer | semmle.label | [post] buffer |
|
||||||
| test.rs:165:14:165:20 | &buffer | semmle.label | &buffer |
|
| test.rs:165:14:165:20 | &buffer | semmle.label | &buffer |
|
||||||
| test.rs:165:15:165:20 | buffer | semmle.label | buffer |
|
| test.rs:165:15:165:20 | buffer | semmle.label | buffer |
|
||||||
|
| test.rs:166:14:166:19 | buffer | semmle.label | buffer |
|
||||||
| test.rs:166:14:166:22 | buffer[0] | semmle.label | buffer[0] |
|
| test.rs:166:14:166:22 | buffer[0] | semmle.label | buffer[0] |
|
||||||
| test.rs:174:13:174:22 | mut stream | semmle.label | mut stream |
|
| test.rs:174:13:174:22 | mut stream | semmle.label | mut stream |
|
||||||
| test.rs:174:26:174:61 | ...::connect_timeout | semmle.label | ...::connect_timeout |
|
| test.rs:174:26:174:61 | ...::connect_timeout | semmle.label | ...::connect_timeout |
|
||||||
@@ -416,9 +433,11 @@ nodes
|
|||||||
| test.rs:236:41:236:47 | [post] buffer2 | semmle.label | [post] buffer2 |
|
| test.rs:236:41:236:47 | [post] buffer2 | semmle.label | [post] buffer2 |
|
||||||
| test.rs:239:14:239:21 | &buffer1 | semmle.label | &buffer1 |
|
| test.rs:239:14:239:21 | &buffer1 | semmle.label | &buffer1 |
|
||||||
| test.rs:239:15:239:21 | buffer1 | semmle.label | buffer1 |
|
| test.rs:239:15:239:21 | buffer1 | semmle.label | buffer1 |
|
||||||
|
| test.rs:240:14:240:20 | buffer1 | semmle.label | buffer1 |
|
||||||
| test.rs:240:14:240:23 | buffer1[0] | semmle.label | buffer1[0] |
|
| test.rs:240:14:240:23 | buffer1[0] | semmle.label | buffer1[0] |
|
||||||
| test.rs:243:14:243:21 | &buffer2 | semmle.label | &buffer2 |
|
| test.rs:243:14:243:21 | &buffer2 | semmle.label | &buffer2 |
|
||||||
| test.rs:243:15:243:21 | buffer2 | semmle.label | buffer2 |
|
| test.rs:243:15:243:21 | buffer2 | semmle.label | buffer2 |
|
||||||
|
| test.rs:244:14:244:20 | buffer2 | semmle.label | buffer2 |
|
||||||
| test.rs:244:14:244:23 | buffer2[0] | semmle.label | buffer2[0] |
|
| test.rs:244:14:244:23 | buffer2[0] | semmle.label | buffer2[0] |
|
||||||
| test.rs:252:19:252:30 | tokio_stream | semmle.label | tokio_stream |
|
| test.rs:252:19:252:30 | tokio_stream | semmle.label | tokio_stream |
|
||||||
| test.rs:252:41:252:51 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] |
|
| test.rs:252:41:252:51 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] |
|
||||||
@@ -459,17 +478,20 @@ nodes
|
|||||||
| test.rs:391:22:391:28 | &buffer | semmle.label | &buffer |
|
| test.rs:391:22:391:28 | &buffer | semmle.label | &buffer |
|
||||||
| test.rs:391:23:391:28 | buffer | semmle.label | buffer |
|
| test.rs:391:23:391:28 | buffer | semmle.label | buffer |
|
||||||
| test.rs:392:22:392:33 | &... | semmle.label | &... |
|
| test.rs:392:22:392:33 | &... | semmle.label | &... |
|
||||||
|
| test.rs:392:23:392:28 | buffer | semmle.label | buffer |
|
||||||
| test.rs:392:23:392:33 | buffer[...] | semmle.label | buffer[...] |
|
| test.rs:392:23:392:33 | buffer[...] | semmle.label | buffer[...] |
|
||||||
| test.rs:399:63:399:73 | &mut reader [&ref] | semmle.label | &mut reader [&ref] |
|
| test.rs:399:63:399:73 | &mut reader [&ref] | semmle.label | &mut reader [&ref] |
|
||||||
| test.rs:399:68:399:73 | reader | semmle.label | reader |
|
| test.rs:399:68:399:73 | reader | semmle.label | reader |
|
||||||
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
|
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
|
||||||
| test.rs:399:81:399:87 | [post] buffer1 | semmle.label | [post] buffer1 |
|
| test.rs:399:81:399:87 | [post] buffer1 | semmle.label | [post] buffer1 |
|
||||||
| test.rs:400:18:400:40 | &... | semmle.label | &... |
|
| test.rs:400:18:400:40 | &... | semmle.label | &... |
|
||||||
|
| test.rs:400:19:400:25 | buffer1 | semmle.label | buffer1 |
|
||||||
| test.rs:400:19:400:40 | buffer1[...] | semmle.label | buffer1[...] |
|
| test.rs:400:19:400:40 | buffer1[...] | semmle.label | buffer1[...] |
|
||||||
| test.rs:403:31:403:36 | reader | semmle.label | reader |
|
| test.rs:403:31:403:36 | reader | semmle.label | reader |
|
||||||
| test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | semmle.label | [post] &mut buffer2 [&ref] |
|
| test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | semmle.label | [post] &mut buffer2 [&ref] |
|
||||||
| test.rs:403:48:403:54 | [post] buffer2 | semmle.label | [post] buffer2 |
|
| test.rs:403:48:403:54 | [post] buffer2 | semmle.label | [post] buffer2 |
|
||||||
| test.rs:405:18:405:40 | &... | semmle.label | &... |
|
| test.rs:405:18:405:40 | &... | semmle.label | &... |
|
||||||
|
| test.rs:405:19:405:25 | buffer2 | semmle.label | buffer2 |
|
||||||
| test.rs:405:19:405:40 | buffer2[...] | semmle.label | buffer2[...] |
|
| test.rs:405:19:405:40 | buffer2[...] | semmle.label | buffer2[...] |
|
||||||
| test.rs:408:13:408:23 | mut reader2 | semmle.label | mut reader2 |
|
| test.rs:408:13:408:23 | mut reader2 | semmle.label | mut reader2 |
|
||||||
| test.rs:408:27:408:61 | ...::new(...) | semmle.label | ...::new(...) |
|
| test.rs:408:27:408:61 | ...::new(...) | semmle.label | ...::new(...) |
|
||||||
@@ -527,17 +549,20 @@ nodes
|
|||||||
| test.rs:448:18:448:24 | &buffer | semmle.label | &buffer |
|
| test.rs:448:18:448:24 | &buffer | semmle.label | &buffer |
|
||||||
| test.rs:448:19:448:24 | buffer | semmle.label | buffer |
|
| test.rs:448:19:448:24 | buffer | semmle.label | buffer |
|
||||||
| test.rs:450:22:450:33 | &... | semmle.label | &... |
|
| test.rs:450:22:450:33 | &... | semmle.label | &... |
|
||||||
|
| test.rs:450:23:450:28 | buffer | semmle.label | buffer |
|
||||||
| test.rs:450:23:450:33 | buffer[...] | semmle.label | buffer[...] |
|
| test.rs:450:23:450:33 | buffer[...] | semmle.label | buffer[...] |
|
||||||
| test.rs:457:63:457:74 | &mut reader2 [&ref] | semmle.label | &mut reader2 [&ref] |
|
| test.rs:457:63:457:74 | &mut reader2 [&ref] | semmle.label | &mut reader2 [&ref] |
|
||||||
| test.rs:457:68:457:74 | reader2 | semmle.label | reader2 |
|
| test.rs:457:68:457:74 | reader2 | semmle.label | reader2 |
|
||||||
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
|
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
|
||||||
| test.rs:457:82:457:88 | [post] buffer1 | semmle.label | [post] buffer1 |
|
| test.rs:457:82:457:88 | [post] buffer1 | semmle.label | [post] buffer1 |
|
||||||
| test.rs:458:18:458:40 | &... | semmle.label | &... |
|
| test.rs:458:18:458:40 | &... | semmle.label | &... |
|
||||||
|
| test.rs:458:19:458:25 | buffer1 | semmle.label | buffer1 |
|
||||||
| test.rs:458:19:458:40 | buffer1[...] | semmle.label | buffer1[...] |
|
| test.rs:458:19:458:40 | buffer1[...] | semmle.label | buffer1[...] |
|
||||||
| test.rs:461:31:461:37 | reader2 | semmle.label | reader2 |
|
| test.rs:461:31:461:37 | reader2 | semmle.label | reader2 |
|
||||||
| test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | semmle.label | [post] &mut buffer2 [&ref] |
|
| test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | semmle.label | [post] &mut buffer2 [&ref] |
|
||||||
| test.rs:461:49:461:55 | [post] buffer2 | semmle.label | [post] buffer2 |
|
| test.rs:461:49:461:55 | [post] buffer2 | semmle.label | [post] buffer2 |
|
||||||
| test.rs:462:18:462:40 | &... | semmle.label | &... |
|
| test.rs:462:18:462:40 | &... | semmle.label | &... |
|
||||||
|
| test.rs:462:19:462:25 | buffer2 | semmle.label | buffer2 |
|
||||||
| test.rs:462:19:462:40 | buffer2[...] | semmle.label | buffer2[...] |
|
| test.rs:462:19:462:40 | buffer2[...] | semmle.label | buffer2[...] |
|
||||||
| test.rs:467:17:467:26 | mut pinned | semmle.label | mut pinned |
|
| test.rs:467:17:467:26 | mut pinned | semmle.label | mut pinned |
|
||||||
| test.rs:467:17:467:26 | mut pinned [Pin, &ref] | semmle.label | mut pinned [Pin, &ref] |
|
| test.rs:467:17:467:26 | mut pinned [Pin, &ref] | semmle.label | mut pinned [Pin, &ref] |
|
||||||
|
|||||||
@@ -1,149 +1,151 @@
|
|||||||
models
|
models
|
||||||
| 1 | Source: std::io::stdio::stdin; ReturnValue; stdin |
|
| 1 | Source: std::io::stdio::stdin; ReturnValue; stdin |
|
||||||
| 2 | Source: tokio::io::stdin::stdin; ReturnValue; stdin |
|
| 2 | Source: tokio::io::stdin::stdin; ReturnValue; stdin |
|
||||||
| 3 | Summary: <_ as std::io::BufRead>::fill_buf; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
| 3 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 4 | Summary: <_ as std::io::BufRead>::lines; Argument[self]; ReturnValue; taint |
|
| 4 | Summary: <_ as std::io::BufRead>::fill_buf; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 5 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
| 5 | Summary: <_ as std::io::BufRead>::lines; Argument[self]; ReturnValue; taint |
|
||||||
| 6 | Summary: <_ as std::io::BufRead>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
| 6 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 7 | Summary: <_ as std::io::BufRead>::split; Argument[self]; ReturnValue; taint |
|
| 7 | Summary: <_ as std::io::BufRead>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
||||||
| 8 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint |
|
| 8 | Summary: <_ as std::io::BufRead>::split; Argument[self]; ReturnValue; taint |
|
||||||
| 9 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 9 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint |
|
||||||
| 10 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint |
|
| 10 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 11 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
| 11 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 12 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint |
|
| 12 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 13 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::fill_buf; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 13 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 14 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::lines; Argument[self]; ReturnValue; taint |
|
| 14 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::fill_buf; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 15 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
| 15 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::lines; Argument[self]; ReturnValue; taint |
|
||||||
| 16 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
| 16 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 17 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::split; Argument[self]; ReturnValue; taint |
|
| 17 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint |
|
||||||
| 18 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
| 18 | Summary: <_ as tokio::io::util::async_buf_read_ext::AsyncBufReadExt>::split; Argument[self]; ReturnValue; taint |
|
||||||
| 19 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint |
|
| 19 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 20 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint |
|
| 20 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 21 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 21 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 22 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 22 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 23 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 23 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 24 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
| 24 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 25 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint |
|
| 25 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 26 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
| 26 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint |
|
||||||
| 27 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
| 27 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint |
|
||||||
| 28 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
| 28 | Summary: <core::option::Option>::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value |
|
||||||
| 29 | Summary: <std::io::Split as core::iter::traits::iterator::Iterator>::next; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; value |
|
| 29 | Summary: <core::result::Result>::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value |
|
||||||
| 30 | Summary: <std::io::buffered::bufreader::BufReader>::buffer; Argument[self].Reference; ReturnValue.Reference; taint |
|
| 30 | Summary: <std::io::Split as core::iter::traits::iterator::Iterator>::next; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; value |
|
||||||
| 31 | Summary: <std::io::buffered::bufreader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
| 31 | Summary: <std::io::buffered::bufreader::BufReader>::buffer; Argument[self].Reference; ReturnValue.Reference; taint |
|
||||||
| 32 | Summary: <std::io::stdio::Stdin>::lock; Argument[self].Reference; ReturnValue; taint |
|
| 32 | Summary: <std::io::buffered::bufreader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
||||||
| 33 | Summary: <tokio::io::util::buf_reader::BufReader>::buffer; Argument[self].Reference; ReturnValue.Reference; taint |
|
| 33 | Summary: <std::io::stdio::Stdin>::lock; Argument[self].Reference; ReturnValue; taint |
|
||||||
| 34 | Summary: <tokio::io::util::buf_reader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
| 34 | Summary: <tokio::io::util::buf_reader::BufReader>::buffer; Argument[self].Reference; ReturnValue.Reference; taint |
|
||||||
| 35 | Summary: <tokio::io::util::lines::Lines>::next_line; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
| 35 | Summary: <tokio::io::util::buf_reader::BufReader>::new; Argument[0]; ReturnValue; taint |
|
||||||
| 36 | Summary: <tokio::io::util::split::Split>::next_segment; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
| 36 | Summary: <tokio::io::util::lines::Lines>::next_line; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
||||||
|
| 37 | Summary: <tokio::io::util::split::Split>::next_segment; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint |
|
||||||
edges
|
edges
|
||||||
| test.rs:13:22:13:35 | ...::stdin | test.rs:13:22:13:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:13:22:13:35 | ...::stdin | test.rs:13:22:13:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:13:22:13:37 | ...::stdin(...) | test.rs:13:44:13:54 | [post] &mut buffer [&ref] | provenance | MaD:9 |
|
| test.rs:13:22:13:37 | ...::stdin(...) | test.rs:13:44:13:54 | [post] &mut buffer [&ref] | provenance | MaD:10 |
|
||||||
| test.rs:13:44:13:54 | [post] &mut buffer [&ref] | test.rs:13:49:13:54 | [post] buffer | provenance | |
|
| test.rs:13:44:13:54 | [post] &mut buffer [&ref] | test.rs:13:49:13:54 | [post] buffer | provenance | |
|
||||||
| test.rs:13:49:13:54 | [post] buffer | test.rs:14:15:14:20 | buffer | provenance | |
|
| test.rs:13:49:13:54 | [post] buffer | test.rs:14:15:14:20 | buffer | provenance | |
|
||||||
| test.rs:14:15:14:20 | buffer | test.rs:14:14:14:20 | &buffer | provenance | |
|
| test.rs:14:15:14:20 | buffer | test.rs:14:14:14:20 | &buffer | provenance | |
|
||||||
| test.rs:19:22:19:35 | ...::stdin | test.rs:19:22:19:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:19:22:19:35 | ...::stdin | test.rs:19:22:19:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:19:22:19:37 | ...::stdin(...) | test.rs:19:51:19:61 | [post] &mut buffer [&ref] | provenance | MaD:11 |
|
| test.rs:19:22:19:37 | ...::stdin(...) | test.rs:19:51:19:61 | [post] &mut buffer [&ref] | provenance | MaD:12 |
|
||||||
| test.rs:19:51:19:61 | [post] &mut buffer [&ref] | test.rs:19:56:19:61 | [post] buffer | provenance | |
|
| test.rs:19:51:19:61 | [post] &mut buffer [&ref] | test.rs:19:56:19:61 | [post] buffer | provenance | |
|
||||||
| test.rs:19:56:19:61 | [post] buffer | test.rs:20:15:20:20 | buffer | provenance | |
|
| test.rs:19:56:19:61 | [post] buffer | test.rs:20:15:20:20 | buffer | provenance | |
|
||||||
| test.rs:20:15:20:20 | buffer | test.rs:20:14:20:20 | &buffer | provenance | |
|
| test.rs:20:15:20:20 | buffer | test.rs:20:14:20:20 | &buffer | provenance | |
|
||||||
| test.rs:25:22:25:35 | ...::stdin | test.rs:25:22:25:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:25:22:25:35 | ...::stdin | test.rs:25:22:25:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:25:22:25:37 | ...::stdin(...) | test.rs:25:54:25:64 | [post] &mut buffer [&ref] | provenance | MaD:12 |
|
| test.rs:25:22:25:37 | ...::stdin(...) | test.rs:25:54:25:64 | [post] &mut buffer [&ref] | provenance | MaD:13 |
|
||||||
| test.rs:25:54:25:64 | [post] &mut buffer [&ref] | test.rs:25:59:25:64 | [post] buffer | provenance | |
|
| test.rs:25:54:25:64 | [post] &mut buffer [&ref] | test.rs:25:59:25:64 | [post] buffer | provenance | |
|
||||||
| test.rs:25:59:25:64 | [post] buffer | test.rs:26:15:26:20 | buffer | provenance | |
|
| test.rs:25:59:25:64 | [post] buffer | test.rs:26:15:26:20 | buffer | provenance | |
|
||||||
| test.rs:26:15:26:20 | buffer | test.rs:26:14:26:20 | &buffer | provenance | |
|
| test.rs:26:15:26:20 | buffer | test.rs:26:14:26:20 | &buffer | provenance | |
|
||||||
| test.rs:31:22:31:35 | ...::stdin | test.rs:31:22:31:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:31:22:31:35 | ...::stdin | test.rs:31:22:31:37 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:31:22:31:37 | ...::stdin(...) | test.rs:31:22:31:44 | ... .lock() | provenance | MaD:32 |
|
| test.rs:31:22:31:37 | ...::stdin(...) | test.rs:31:22:31:44 | ... .lock() | provenance | MaD:33 |
|
||||||
| test.rs:31:22:31:44 | ... .lock() | test.rs:31:61:31:71 | [post] &mut buffer [&ref] | provenance | MaD:12 |
|
| test.rs:31:22:31:44 | ... .lock() | test.rs:31:61:31:71 | [post] &mut buffer [&ref] | provenance | MaD:13 |
|
||||||
| test.rs:31:61:31:71 | [post] &mut buffer [&ref] | test.rs:31:66:31:71 | [post] buffer | provenance | |
|
| test.rs:31:61:31:71 | [post] &mut buffer [&ref] | test.rs:31:66:31:71 | [post] buffer | provenance | |
|
||||||
| test.rs:31:66:31:71 | [post] buffer | test.rs:32:15:32:20 | buffer | provenance | |
|
| test.rs:31:66:31:71 | [post] buffer | test.rs:32:15:32:20 | buffer | provenance | |
|
||||||
| test.rs:32:15:32:20 | buffer | test.rs:32:14:32:20 | &buffer | provenance | |
|
| test.rs:32:15:32:20 | buffer | test.rs:32:14:32:20 | &buffer | provenance | |
|
||||||
| test.rs:37:9:37:22 | ...::stdin | test.rs:37:9:37:24 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:37:9:37:22 | ...::stdin | test.rs:37:9:37:24 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:37:9:37:24 | ...::stdin(...) | test.rs:37:37:37:47 | [post] &mut buffer [&ref] | provenance | MaD:10 |
|
| test.rs:37:9:37:24 | ...::stdin(...) | test.rs:37:37:37:47 | [post] &mut buffer [&ref] | provenance | MaD:11 |
|
||||||
| test.rs:37:37:37:47 | [post] &mut buffer [&ref] | test.rs:37:42:37:47 | [post] buffer | provenance | |
|
| test.rs:37:37:37:47 | [post] &mut buffer [&ref] | test.rs:37:42:37:47 | [post] buffer | provenance | |
|
||||||
| test.rs:37:42:37:47 | [post] buffer | test.rs:38:15:38:20 | buffer | provenance | |
|
| test.rs:37:42:37:47 | [post] buffer | test.rs:38:15:38:20 | buffer | provenance | |
|
||||||
| test.rs:38:15:38:20 | buffer | test.rs:38:14:38:20 | &buffer | provenance | |
|
| test.rs:38:15:38:20 | buffer | test.rs:38:14:38:20 | &buffer | provenance | |
|
||||||
| test.rs:41:17:41:30 | ...::stdin | test.rs:41:17:41:32 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:41:17:41:30 | ...::stdin | test.rs:41:17:41:32 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:41:17:41:32 | ...::stdin(...) | test.rs:41:17:41:40 | ... .bytes() | provenance | MaD:8 |
|
| test.rs:41:17:41:32 | ...::stdin(...) | test.rs:41:17:41:40 | ... .bytes() | provenance | MaD:9 |
|
||||||
| test.rs:41:17:41:40 | ... .bytes() | test.rs:42:14:42:17 | byte | provenance | |
|
| test.rs:41:17:41:40 | ... .bytes() | test.rs:42:14:42:17 | byte | provenance | |
|
||||||
| test.rs:48:13:48:22 | mut reader | test.rs:49:20:49:25 | reader | provenance | |
|
| test.rs:48:13:48:22 | mut reader | test.rs:49:20:49:25 | reader | provenance | |
|
||||||
| test.rs:48:26:48:66 | ...::new(...) | test.rs:48:13:48:22 | mut reader | provenance | |
|
| test.rs:48:26:48:66 | ...::new(...) | test.rs:48:13:48:22 | mut reader | provenance | |
|
||||||
| test.rs:48:50:48:63 | ...::stdin | test.rs:48:50:48:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:48:50:48:63 | ...::stdin | test.rs:48:50:48:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:48:50:48:65 | ...::stdin(...) | test.rs:48:26:48:66 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:48:50:48:65 | ...::stdin(...) | test.rs:48:26:48:66 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:49:13:49:16 | data | test.rs:50:15:50:18 | data | provenance | |
|
| test.rs:49:13:49:16 | data | test.rs:50:15:50:18 | data | provenance | |
|
||||||
| test.rs:49:20:49:25 | reader | test.rs:49:20:49:36 | reader.fill_buf() [Ok] | provenance | MaD:3 |
|
| test.rs:49:20:49:25 | reader | test.rs:49:20:49:36 | reader.fill_buf() [Ok] | provenance | MaD:4 |
|
||||||
| test.rs:49:20:49:36 | reader.fill_buf() [Ok] | test.rs:49:20:49:37 | TryExpr | provenance | |
|
| test.rs:49:20:49:36 | reader.fill_buf() [Ok] | test.rs:49:20:49:37 | TryExpr | provenance | |
|
||||||
| test.rs:49:20:49:37 | TryExpr | test.rs:49:13:49:16 | data | provenance | |
|
| test.rs:49:20:49:37 | TryExpr | test.rs:49:13:49:16 | data | provenance | |
|
||||||
| test.rs:50:15:50:18 | data | test.rs:50:14:50:18 | &data | provenance | |
|
| test.rs:50:15:50:18 | data | test.rs:50:14:50:18 | &data | provenance | |
|
||||||
| test.rs:54:13:54:18 | reader | test.rs:55:20:55:25 | reader | provenance | |
|
| test.rs:54:13:54:18 | reader | test.rs:55:20:55:25 | reader | provenance | |
|
||||||
| test.rs:54:22:54:62 | ...::new(...) | test.rs:54:13:54:18 | reader | provenance | |
|
| test.rs:54:22:54:62 | ...::new(...) | test.rs:54:13:54:18 | reader | provenance | |
|
||||||
| test.rs:54:46:54:59 | ...::stdin | test.rs:54:46:54:61 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:54:46:54:59 | ...::stdin | test.rs:54:46:54:61 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:54:46:54:61 | ...::stdin(...) | test.rs:54:22:54:62 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:54:46:54:61 | ...::stdin(...) | test.rs:54:22:54:62 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:55:13:55:16 | data [&ref] | test.rs:56:15:56:18 | data [&ref] | provenance | |
|
| test.rs:55:13:55:16 | data [&ref] | test.rs:56:15:56:18 | data [&ref] | provenance | |
|
||||||
| test.rs:55:20:55:25 | reader | test.rs:55:20:55:34 | reader.buffer() [&ref] | provenance | MaD:30 |
|
| test.rs:55:20:55:25 | reader | test.rs:55:20:55:34 | reader.buffer() [&ref] | provenance | MaD:31 |
|
||||||
| test.rs:55:20:55:34 | reader.buffer() [&ref] | test.rs:55:13:55:16 | data [&ref] | provenance | |
|
| test.rs:55:20:55:34 | reader.buffer() [&ref] | test.rs:55:13:55:16 | data [&ref] | provenance | |
|
||||||
| test.rs:56:15:56:18 | data [&ref] | test.rs:56:14:56:18 | &data | provenance | |
|
| test.rs:56:15:56:18 | data [&ref] | test.rs:56:14:56:18 | &data | provenance | |
|
||||||
| test.rs:61:13:61:22 | mut reader | test.rs:62:9:62:14 | reader | provenance | |
|
| test.rs:61:13:61:22 | mut reader | test.rs:62:9:62:14 | reader | provenance | |
|
||||||
| test.rs:61:26:61:66 | ...::new(...) | test.rs:61:13:61:22 | mut reader | provenance | |
|
| test.rs:61:26:61:66 | ...::new(...) | test.rs:61:13:61:22 | mut reader | provenance | |
|
||||||
| test.rs:61:50:61:63 | ...::stdin | test.rs:61:50:61:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:61:50:61:63 | ...::stdin | test.rs:61:50:61:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:61:50:61:65 | ...::stdin(...) | test.rs:61:26:61:66 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:61:50:61:65 | ...::stdin(...) | test.rs:61:26:61:66 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:62:9:62:14 | reader | test.rs:62:26:62:36 | [post] &mut buffer [&ref] | provenance | MaD:5 |
|
| test.rs:62:9:62:14 | reader | test.rs:62:26:62:36 | [post] &mut buffer [&ref] | provenance | MaD:6 |
|
||||||
| test.rs:62:26:62:36 | [post] &mut buffer [&ref] | test.rs:62:31:62:36 | [post] buffer | provenance | |
|
| test.rs:62:26:62:36 | [post] &mut buffer [&ref] | test.rs:62:31:62:36 | [post] buffer | provenance | |
|
||||||
| test.rs:62:31:62:36 | [post] buffer | test.rs:63:15:63:20 | buffer | provenance | |
|
| test.rs:62:31:62:36 | [post] buffer | test.rs:63:15:63:20 | buffer | provenance | |
|
||||||
| test.rs:63:15:63:20 | buffer | test.rs:63:14:63:20 | &buffer | provenance | |
|
| test.rs:63:15:63:20 | buffer | test.rs:63:14:63:20 | &buffer | provenance | |
|
||||||
| test.rs:68:13:68:22 | mut reader | test.rs:69:9:69:14 | reader | provenance | |
|
| test.rs:68:13:68:22 | mut reader | test.rs:69:9:69:14 | reader | provenance | |
|
||||||
| test.rs:68:26:68:66 | ...::new(...) | test.rs:68:13:68:22 | mut reader | provenance | |
|
| test.rs:68:26:68:66 | ...::new(...) | test.rs:68:13:68:22 | mut reader | provenance | |
|
||||||
| test.rs:68:50:68:63 | ...::stdin | test.rs:68:50:68:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:68:50:68:63 | ...::stdin | test.rs:68:50:68:65 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:68:50:68:65 | ...::stdin(...) | test.rs:68:26:68:66 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:68:50:68:65 | ...::stdin(...) | test.rs:68:26:68:66 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:69:9:69:14 | reader | test.rs:69:33:69:43 | [post] &mut buffer [&ref] | provenance | MaD:6 |
|
| test.rs:69:9:69:14 | reader | test.rs:69:33:69:43 | [post] &mut buffer [&ref] | provenance | MaD:7 |
|
||||||
| test.rs:69:33:69:43 | [post] &mut buffer [&ref] | test.rs:69:38:69:43 | [post] buffer | provenance | |
|
| test.rs:69:33:69:43 | [post] &mut buffer [&ref] | test.rs:69:38:69:43 | [post] buffer | provenance | |
|
||||||
| test.rs:69:38:69:43 | [post] buffer | test.rs:70:15:70:20 | buffer | provenance | |
|
| test.rs:69:38:69:43 | [post] buffer | test.rs:70:15:70:20 | buffer | provenance | |
|
||||||
| test.rs:69:38:69:43 | [post] buffer | test.rs:71:14:71:22 | buffer[0] | provenance | |
|
| test.rs:69:38:69:43 | [post] buffer | test.rs:71:14:71:19 | buffer | provenance | |
|
||||||
| test.rs:70:15:70:20 | buffer | test.rs:70:14:70:20 | &buffer | provenance | |
|
| test.rs:70:15:70:20 | buffer | test.rs:70:14:70:20 | &buffer | provenance | |
|
||||||
|
| test.rs:71:14:71:19 | buffer | test.rs:71:14:71:22 | buffer[0] | provenance | MaD:3 |
|
||||||
| test.rs:75:13:75:28 | mut reader_split | test.rs:76:14:76:25 | reader_split | provenance | |
|
| test.rs:75:13:75:28 | mut reader_split | test.rs:76:14:76:25 | reader_split | provenance | |
|
||||||
| test.rs:75:13:75:28 | mut reader_split | test.rs:77:33:77:44 | reader_split | provenance | |
|
| test.rs:75:13:75:28 | mut reader_split | test.rs:77:33:77:44 | reader_split | provenance | |
|
||||||
| test.rs:75:32:75:72 | ...::new(...) | test.rs:75:32:75:84 | ... .split(...) | provenance | MaD:7 |
|
| test.rs:75:32:75:72 | ...::new(...) | test.rs:75:32:75:84 | ... .split(...) | provenance | MaD:8 |
|
||||||
| test.rs:75:32:75:84 | ... .split(...) | test.rs:75:13:75:28 | mut reader_split | provenance | |
|
| test.rs:75:32:75:84 | ... .split(...) | test.rs:75:13:75:28 | mut reader_split | provenance | |
|
||||||
| test.rs:75:56:75:69 | ...::stdin | test.rs:75:56:75:71 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:75:56:75:69 | ...::stdin | test.rs:75:56:75:71 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:75:56:75:71 | ...::stdin(...) | test.rs:75:32:75:72 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:75:56:75:71 | ...::stdin(...) | test.rs:75:32:75:72 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:76:14:76:25 | reader_split | test.rs:76:14:76:32 | reader_split.next() [Some, Ok] | provenance | MaD:29 |
|
| test.rs:76:14:76:25 | reader_split | test.rs:76:14:76:32 | reader_split.next() [Some, Ok] | provenance | MaD:30 |
|
||||||
| test.rs:76:14:76:32 | reader_split.next() [Some, Ok] | test.rs:76:14:76:41 | ... .unwrap() [Ok] | provenance | MaD:27 |
|
| test.rs:76:14:76:32 | reader_split.next() [Some, Ok] | test.rs:76:14:76:41 | ... .unwrap() [Ok] | provenance | MaD:28 |
|
||||||
| test.rs:76:14:76:41 | ... .unwrap() [Ok] | test.rs:76:14:76:50 | ... .unwrap() | provenance | MaD:28 |
|
| test.rs:76:14:76:41 | ... .unwrap() [Ok] | test.rs:76:14:76:50 | ... .unwrap() | provenance | MaD:29 |
|
||||||
| test.rs:77:19:77:29 | Some(...) [Some, Ok] | test.rs:77:24:77:28 | chunk [Ok] | provenance | |
|
| test.rs:77:19:77:29 | Some(...) [Some, Ok] | test.rs:77:24:77:28 | chunk [Ok] | provenance | |
|
||||||
| test.rs:77:24:77:28 | chunk [Ok] | test.rs:78:18:78:22 | chunk [Ok] | provenance | |
|
| test.rs:77:24:77:28 | chunk [Ok] | test.rs:78:18:78:22 | chunk [Ok] | provenance | |
|
||||||
| test.rs:77:33:77:44 | reader_split | test.rs:77:33:77:51 | reader_split.next() [Some, Ok] | provenance | MaD:29 |
|
| test.rs:77:33:77:44 | reader_split | test.rs:77:33:77:51 | reader_split.next() [Some, Ok] | provenance | MaD:30 |
|
||||||
| test.rs:77:33:77:51 | reader_split.next() [Some, Ok] | test.rs:77:19:77:29 | Some(...) [Some, Ok] | provenance | |
|
| test.rs:77:33:77:51 | reader_split.next() [Some, Ok] | test.rs:77:19:77:29 | Some(...) [Some, Ok] | provenance | |
|
||||||
| test.rs:78:18:78:22 | chunk [Ok] | test.rs:78:18:78:31 | chunk.unwrap() | provenance | MaD:28 |
|
| test.rs:78:18:78:22 | chunk [Ok] | test.rs:78:18:78:31 | chunk.unwrap() | provenance | MaD:29 |
|
||||||
| test.rs:83:13:83:18 | reader | test.rs:84:21:84:26 | reader | provenance | |
|
| test.rs:83:13:83:18 | reader | test.rs:84:21:84:26 | reader | provenance | |
|
||||||
| test.rs:83:22:83:62 | ...::new(...) | test.rs:83:13:83:18 | reader | provenance | |
|
| test.rs:83:22:83:62 | ...::new(...) | test.rs:83:13:83:18 | reader | provenance | |
|
||||||
| test.rs:83:46:83:59 | ...::stdin | test.rs:83:46:83:61 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
| test.rs:83:46:83:59 | ...::stdin | test.rs:83:46:83:61 | ...::stdin(...) | provenance | Src:MaD:1 MaD:1 |
|
||||||
| test.rs:83:46:83:61 | ...::stdin(...) | test.rs:83:22:83:62 | ...::new(...) | provenance | MaD:31 |
|
| test.rs:83:46:83:61 | ...::stdin(...) | test.rs:83:22:83:62 | ...::new(...) | provenance | MaD:32 |
|
||||||
| test.rs:84:21:84:26 | reader | test.rs:84:21:84:34 | reader.lines() | provenance | MaD:4 |
|
| test.rs:84:21:84:26 | reader | test.rs:84:21:84:34 | reader.lines() | provenance | MaD:5 |
|
||||||
| test.rs:84:21:84:34 | reader.lines() | test.rs:85:18:85:21 | line | provenance | |
|
| test.rs:84:21:84:34 | reader.lines() | test.rs:85:18:85:21 | line | provenance | |
|
||||||
| test.rs:109:13:109:21 | mut stdin | test.rs:111:22:111:26 | stdin | provenance | |
|
| test.rs:109:13:109:21 | mut stdin | test.rs:111:22:111:26 | stdin | provenance | |
|
||||||
| test.rs:109:25:109:40 | ...::stdin | test.rs:109:25:109:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:109:25:109:40 | ...::stdin | test.rs:109:25:109:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:109:25:109:42 | ...::stdin(...) | test.rs:109:13:109:21 | mut stdin | provenance | |
|
| test.rs:109:25:109:42 | ...::stdin(...) | test.rs:109:13:109:21 | mut stdin | provenance | |
|
||||||
| test.rs:111:22:111:26 | stdin | test.rs:111:33:111:43 | [post] &mut buffer [&ref] | provenance | MaD:18 |
|
| test.rs:111:22:111:26 | stdin | test.rs:111:33:111:43 | [post] &mut buffer [&ref] | provenance | MaD:19 |
|
||||||
| test.rs:111:33:111:43 | [post] &mut buffer [&ref] | test.rs:111:38:111:43 | [post] buffer | provenance | |
|
| test.rs:111:33:111:43 | [post] &mut buffer [&ref] | test.rs:111:38:111:43 | [post] buffer | provenance | |
|
||||||
| test.rs:111:38:111:43 | [post] buffer | test.rs:112:15:112:20 | buffer | provenance | |
|
| test.rs:111:38:111:43 | [post] buffer | test.rs:112:15:112:20 | buffer | provenance | |
|
||||||
| test.rs:112:15:112:20 | buffer | test.rs:112:14:112:20 | &buffer | provenance | |
|
| test.rs:112:15:112:20 | buffer | test.rs:112:14:112:20 | &buffer | provenance | |
|
||||||
| test.rs:116:13:116:21 | mut stdin | test.rs:118:22:118:26 | stdin | provenance | |
|
| test.rs:116:13:116:21 | mut stdin | test.rs:118:22:118:26 | stdin | provenance | |
|
||||||
| test.rs:116:25:116:40 | ...::stdin | test.rs:116:25:116:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:116:25:116:40 | ...::stdin | test.rs:116:25:116:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:116:25:116:42 | ...::stdin(...) | test.rs:116:13:116:21 | mut stdin | provenance | |
|
| test.rs:116:25:116:42 | ...::stdin(...) | test.rs:116:13:116:21 | mut stdin | provenance | |
|
||||||
| test.rs:118:22:118:26 | stdin | test.rs:118:40:118:50 | [post] &mut buffer [&ref] | provenance | MaD:24 |
|
| test.rs:118:22:118:26 | stdin | test.rs:118:40:118:50 | [post] &mut buffer [&ref] | provenance | MaD:25 |
|
||||||
| test.rs:118:40:118:50 | [post] &mut buffer [&ref] | test.rs:118:45:118:50 | [post] buffer | provenance | |
|
| test.rs:118:40:118:50 | [post] &mut buffer [&ref] | test.rs:118:45:118:50 | [post] buffer | provenance | |
|
||||||
| test.rs:118:45:118:50 | [post] buffer | test.rs:119:15:119:20 | buffer | provenance | |
|
| test.rs:118:45:118:50 | [post] buffer | test.rs:119:15:119:20 | buffer | provenance | |
|
||||||
| test.rs:119:15:119:20 | buffer | test.rs:119:14:119:20 | &buffer | provenance | |
|
| test.rs:119:15:119:20 | buffer | test.rs:119:14:119:20 | &buffer | provenance | |
|
||||||
| test.rs:123:13:123:21 | mut stdin | test.rs:125:22:125:26 | stdin | provenance | |
|
| test.rs:123:13:123:21 | mut stdin | test.rs:125:22:125:26 | stdin | provenance | |
|
||||||
| test.rs:123:25:123:40 | ...::stdin | test.rs:123:25:123:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:123:25:123:40 | ...::stdin | test.rs:123:25:123:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:123:25:123:42 | ...::stdin(...) | test.rs:123:13:123:21 | mut stdin | provenance | |
|
| test.rs:123:25:123:42 | ...::stdin(...) | test.rs:123:13:123:21 | mut stdin | provenance | |
|
||||||
| test.rs:125:22:125:26 | stdin | test.rs:125:43:125:53 | [post] &mut buffer [&ref] | provenance | MaD:25 |
|
| test.rs:125:22:125:26 | stdin | test.rs:125:43:125:53 | [post] &mut buffer [&ref] | provenance | MaD:26 |
|
||||||
| test.rs:125:43:125:53 | [post] &mut buffer [&ref] | test.rs:125:48:125:53 | [post] buffer | provenance | |
|
| test.rs:125:43:125:53 | [post] &mut buffer [&ref] | test.rs:125:48:125:53 | [post] buffer | provenance | |
|
||||||
| test.rs:125:48:125:53 | [post] buffer | test.rs:126:15:126:20 | buffer | provenance | |
|
| test.rs:125:48:125:53 | [post] buffer | test.rs:126:15:126:20 | buffer | provenance | |
|
||||||
| test.rs:126:15:126:20 | buffer | test.rs:126:14:126:20 | &buffer | provenance | |
|
| test.rs:126:15:126:20 | buffer | test.rs:126:14:126:20 | &buffer | provenance | |
|
||||||
| test.rs:130:13:130:21 | mut stdin | test.rs:132:9:132:13 | stdin | provenance | |
|
| test.rs:130:13:130:21 | mut stdin | test.rs:132:9:132:13 | stdin | provenance | |
|
||||||
| test.rs:130:25:130:40 | ...::stdin | test.rs:130:25:130:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:130:25:130:40 | ...::stdin | test.rs:130:25:130:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:130:25:130:42 | ...::stdin(...) | test.rs:130:13:130:21 | mut stdin | provenance | |
|
| test.rs:130:25:130:42 | ...::stdin(...) | test.rs:130:13:130:21 | mut stdin | provenance | |
|
||||||
| test.rs:132:9:132:13 | stdin | test.rs:132:26:132:36 | [post] &mut buffer [&ref] | provenance | MaD:20 |
|
| test.rs:132:9:132:13 | stdin | test.rs:132:26:132:36 | [post] &mut buffer [&ref] | provenance | MaD:21 |
|
||||||
| test.rs:132:26:132:36 | [post] &mut buffer [&ref] | test.rs:132:31:132:36 | [post] buffer | provenance | |
|
| test.rs:132:26:132:36 | [post] &mut buffer [&ref] | test.rs:132:31:132:36 | [post] buffer | provenance | |
|
||||||
| test.rs:132:31:132:36 | [post] buffer | test.rs:133:15:133:20 | buffer | provenance | |
|
| test.rs:132:31:132:36 | [post] buffer | test.rs:133:15:133:20 | buffer | provenance | |
|
||||||
| test.rs:133:15:133:20 | buffer | test.rs:133:14:133:20 | &buffer | provenance | |
|
| test.rs:133:15:133:20 | buffer | test.rs:133:14:133:20 | &buffer | provenance | |
|
||||||
@@ -154,38 +156,38 @@ edges
|
|||||||
| test.rs:137:25:137:40 | ...::stdin | test.rs:137:25:137:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:137:25:137:40 | ...::stdin | test.rs:137:25:137:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:137:25:137:42 | ...::stdin(...) | test.rs:137:13:137:21 | mut stdin | provenance | |
|
| test.rs:137:25:137:42 | ...::stdin(...) | test.rs:137:13:137:21 | mut stdin | provenance | |
|
||||||
| test.rs:138:13:138:14 | v1 | test.rs:142:14:142:15 | v1 | provenance | |
|
| test.rs:138:13:138:14 | v1 | test.rs:142:14:142:15 | v1 | provenance | |
|
||||||
| test.rs:138:18:138:22 | stdin | test.rs:138:18:138:32 | stdin.read_u8() [future, Ok] | provenance | MaD:26 |
|
| test.rs:138:18:138:22 | stdin | test.rs:138:18:138:32 | stdin.read_u8() [future, Ok] | provenance | MaD:27 |
|
||||||
| test.rs:138:18:138:32 | stdin.read_u8() [future, Ok] | test.rs:138:18:138:38 | await ... [Ok] | provenance | |
|
| test.rs:138:18:138:32 | stdin.read_u8() [future, Ok] | test.rs:138:18:138:38 | await ... [Ok] | provenance | |
|
||||||
| test.rs:138:18:138:38 | await ... [Ok] | test.rs:138:18:138:39 | TryExpr | provenance | |
|
| test.rs:138:18:138:38 | await ... [Ok] | test.rs:138:18:138:39 | TryExpr | provenance | |
|
||||||
| test.rs:138:18:138:39 | TryExpr | test.rs:138:13:138:14 | v1 | provenance | |
|
| test.rs:138:18:138:39 | TryExpr | test.rs:138:13:138:14 | v1 | provenance | |
|
||||||
| test.rs:139:13:139:14 | v2 | test.rs:143:14:143:15 | v2 | provenance | |
|
| test.rs:139:13:139:14 | v2 | test.rs:143:14:143:15 | v2 | provenance | |
|
||||||
| test.rs:139:18:139:22 | stdin | test.rs:139:18:139:33 | stdin.read_i16() [future, Ok] | provenance | MaD:22 |
|
| test.rs:139:18:139:22 | stdin | test.rs:139:18:139:33 | stdin.read_i16() [future, Ok] | provenance | MaD:23 |
|
||||||
| test.rs:139:18:139:33 | stdin.read_i16() [future, Ok] | test.rs:139:18:139:39 | await ... [Ok] | provenance | |
|
| test.rs:139:18:139:33 | stdin.read_i16() [future, Ok] | test.rs:139:18:139:39 | await ... [Ok] | provenance | |
|
||||||
| test.rs:139:18:139:39 | await ... [Ok] | test.rs:139:18:139:40 | TryExpr | provenance | |
|
| test.rs:139:18:139:39 | await ... [Ok] | test.rs:139:18:139:40 | TryExpr | provenance | |
|
||||||
| test.rs:139:18:139:40 | TryExpr | test.rs:139:13:139:14 | v2 | provenance | |
|
| test.rs:139:18:139:40 | TryExpr | test.rs:139:13:139:14 | v2 | provenance | |
|
||||||
| test.rs:140:13:140:14 | v3 | test.rs:144:14:144:15 | v3 | provenance | |
|
| test.rs:140:13:140:14 | v3 | test.rs:144:14:144:15 | v3 | provenance | |
|
||||||
| test.rs:140:18:140:22 | stdin | test.rs:140:18:140:33 | stdin.read_f32() [future, Ok] | provenance | MaD:21 |
|
| test.rs:140:18:140:22 | stdin | test.rs:140:18:140:33 | stdin.read_f32() [future, Ok] | provenance | MaD:22 |
|
||||||
| test.rs:140:18:140:33 | stdin.read_f32() [future, Ok] | test.rs:140:18:140:39 | await ... [Ok] | provenance | |
|
| test.rs:140:18:140:33 | stdin.read_f32() [future, Ok] | test.rs:140:18:140:39 | await ... [Ok] | provenance | |
|
||||||
| test.rs:140:18:140:39 | await ... [Ok] | test.rs:140:18:140:40 | TryExpr | provenance | |
|
| test.rs:140:18:140:39 | await ... [Ok] | test.rs:140:18:140:40 | TryExpr | provenance | |
|
||||||
| test.rs:140:18:140:40 | TryExpr | test.rs:140:13:140:14 | v3 | provenance | |
|
| test.rs:140:18:140:40 | TryExpr | test.rs:140:13:140:14 | v3 | provenance | |
|
||||||
| test.rs:141:13:141:14 | v4 | test.rs:145:14:145:15 | v4 | provenance | |
|
| test.rs:141:13:141:14 | v4 | test.rs:145:14:145:15 | v4 | provenance | |
|
||||||
| test.rs:141:18:141:22 | stdin | test.rs:141:18:141:36 | stdin.read_i64_le() [future, Ok] | provenance | MaD:23 |
|
| test.rs:141:18:141:22 | stdin | test.rs:141:18:141:36 | stdin.read_i64_le() [future, Ok] | provenance | MaD:24 |
|
||||||
| test.rs:141:18:141:36 | stdin.read_i64_le() [future, Ok] | test.rs:141:18:141:42 | await ... [Ok] | provenance | |
|
| test.rs:141:18:141:36 | stdin.read_i64_le() [future, Ok] | test.rs:141:18:141:42 | await ... [Ok] | provenance | |
|
||||||
| test.rs:141:18:141:42 | await ... [Ok] | test.rs:141:18:141:43 | TryExpr | provenance | |
|
| test.rs:141:18:141:42 | await ... [Ok] | test.rs:141:18:141:43 | TryExpr | provenance | |
|
||||||
| test.rs:141:18:141:43 | TryExpr | test.rs:141:13:141:14 | v4 | provenance | |
|
| test.rs:141:18:141:43 | TryExpr | test.rs:141:13:141:14 | v4 | provenance | |
|
||||||
| test.rs:149:13:149:21 | mut stdin | test.rs:151:9:151:13 | stdin | provenance | |
|
| test.rs:149:13:149:21 | mut stdin | test.rs:151:9:151:13 | stdin | provenance | |
|
||||||
| test.rs:149:25:149:40 | ...::stdin | test.rs:149:25:149:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:149:25:149:40 | ...::stdin | test.rs:149:25:149:42 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:149:25:149:42 | ...::stdin(...) | test.rs:149:13:149:21 | mut stdin | provenance | |
|
| test.rs:149:25:149:42 | ...::stdin(...) | test.rs:149:13:149:21 | mut stdin | provenance | |
|
||||||
| test.rs:151:9:151:13 | stdin | test.rs:151:24:151:34 | [post] &mut buffer [&ref] | provenance | MaD:19 |
|
| test.rs:151:9:151:13 | stdin | test.rs:151:24:151:34 | [post] &mut buffer [&ref] | provenance | MaD:20 |
|
||||||
| test.rs:151:24:151:34 | [post] &mut buffer [&ref] | test.rs:151:29:151:34 | [post] buffer | provenance | |
|
| test.rs:151:24:151:34 | [post] &mut buffer [&ref] | test.rs:151:29:151:34 | [post] buffer | provenance | |
|
||||||
| test.rs:151:29:151:34 | [post] buffer | test.rs:152:15:152:20 | buffer | provenance | |
|
| test.rs:151:29:151:34 | [post] buffer | test.rs:152:15:152:20 | buffer | provenance | |
|
||||||
| test.rs:152:15:152:20 | buffer | test.rs:152:14:152:20 | &buffer | provenance | |
|
| test.rs:152:15:152:20 | buffer | test.rs:152:14:152:20 | &buffer | provenance | |
|
||||||
| test.rs:158:13:158:22 | mut reader | test.rs:159:20:159:25 | reader | provenance | |
|
| test.rs:158:13:158:22 | mut reader | test.rs:159:20:159:25 | reader | provenance | |
|
||||||
| test.rs:158:26:158:70 | ...::new(...) | test.rs:158:13:158:22 | mut reader | provenance | |
|
| test.rs:158:26:158:70 | ...::new(...) | test.rs:158:13:158:22 | mut reader | provenance | |
|
||||||
| test.rs:158:52:158:67 | ...::stdin | test.rs:158:52:158:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:158:52:158:67 | ...::stdin | test.rs:158:52:158:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:158:52:158:69 | ...::stdin(...) | test.rs:158:26:158:70 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:158:52:158:69 | ...::stdin(...) | test.rs:158:26:158:70 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:159:13:159:16 | data | test.rs:160:15:160:18 | data | provenance | |
|
| test.rs:159:13:159:16 | data | test.rs:160:15:160:18 | data | provenance | |
|
||||||
| test.rs:159:20:159:25 | reader | test.rs:159:20:159:36 | reader.fill_buf() [future, Ok] | provenance | MaD:13 |
|
| test.rs:159:20:159:25 | reader | test.rs:159:20:159:36 | reader.fill_buf() [future, Ok] | provenance | MaD:14 |
|
||||||
| test.rs:159:20:159:36 | reader.fill_buf() [future, Ok] | test.rs:159:20:159:42 | await ... [Ok] | provenance | |
|
| test.rs:159:20:159:36 | reader.fill_buf() [future, Ok] | test.rs:159:20:159:42 | await ... [Ok] | provenance | |
|
||||||
| test.rs:159:20:159:42 | await ... [Ok] | test.rs:159:20:159:43 | TryExpr | provenance | |
|
| test.rs:159:20:159:42 | await ... [Ok] | test.rs:159:20:159:43 | TryExpr | provenance | |
|
||||||
| test.rs:159:20:159:43 | TryExpr | test.rs:159:13:159:16 | data | provenance | |
|
| test.rs:159:20:159:43 | TryExpr | test.rs:159:13:159:16 | data | provenance | |
|
||||||
@@ -193,59 +195,60 @@ edges
|
|||||||
| test.rs:164:13:164:18 | reader | test.rs:165:20:165:25 | reader | provenance | |
|
| test.rs:164:13:164:18 | reader | test.rs:165:20:165:25 | reader | provenance | |
|
||||||
| test.rs:164:22:164:66 | ...::new(...) | test.rs:164:13:164:18 | reader | provenance | |
|
| test.rs:164:22:164:66 | ...::new(...) | test.rs:164:13:164:18 | reader | provenance | |
|
||||||
| test.rs:164:48:164:63 | ...::stdin | test.rs:164:48:164:65 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:164:48:164:63 | ...::stdin | test.rs:164:48:164:65 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:164:48:164:65 | ...::stdin(...) | test.rs:164:22:164:66 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:164:48:164:65 | ...::stdin(...) | test.rs:164:22:164:66 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:165:13:165:16 | data [&ref] | test.rs:166:15:166:18 | data [&ref] | provenance | |
|
| test.rs:165:13:165:16 | data [&ref] | test.rs:166:15:166:18 | data [&ref] | provenance | |
|
||||||
| test.rs:165:20:165:25 | reader | test.rs:165:20:165:34 | reader.buffer() [&ref] | provenance | MaD:33 |
|
| test.rs:165:20:165:25 | reader | test.rs:165:20:165:34 | reader.buffer() [&ref] | provenance | MaD:34 |
|
||||||
| test.rs:165:20:165:34 | reader.buffer() [&ref] | test.rs:165:13:165:16 | data [&ref] | provenance | |
|
| test.rs:165:20:165:34 | reader.buffer() [&ref] | test.rs:165:13:165:16 | data [&ref] | provenance | |
|
||||||
| test.rs:166:15:166:18 | data [&ref] | test.rs:166:14:166:18 | &data | provenance | |
|
| test.rs:166:15:166:18 | data [&ref] | test.rs:166:14:166:18 | &data | provenance | |
|
||||||
| test.rs:171:13:171:22 | mut reader | test.rs:172:9:172:14 | reader | provenance | |
|
| test.rs:171:13:171:22 | mut reader | test.rs:172:9:172:14 | reader | provenance | |
|
||||||
| test.rs:171:26:171:70 | ...::new(...) | test.rs:171:13:171:22 | mut reader | provenance | |
|
| test.rs:171:26:171:70 | ...::new(...) | test.rs:171:13:171:22 | mut reader | provenance | |
|
||||||
| test.rs:171:52:171:67 | ...::stdin | test.rs:171:52:171:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:171:52:171:67 | ...::stdin | test.rs:171:52:171:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:171:52:171:69 | ...::stdin(...) | test.rs:171:26:171:70 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:171:52:171:69 | ...::stdin(...) | test.rs:171:26:171:70 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:172:9:172:14 | reader | test.rs:172:26:172:36 | [post] &mut buffer [&ref] | provenance | MaD:15 |
|
| test.rs:172:9:172:14 | reader | test.rs:172:26:172:36 | [post] &mut buffer [&ref] | provenance | MaD:16 |
|
||||||
| test.rs:172:26:172:36 | [post] &mut buffer [&ref] | test.rs:172:31:172:36 | [post] buffer | provenance | |
|
| test.rs:172:26:172:36 | [post] &mut buffer [&ref] | test.rs:172:31:172:36 | [post] buffer | provenance | |
|
||||||
| test.rs:172:31:172:36 | [post] buffer | test.rs:173:15:173:20 | buffer | provenance | |
|
| test.rs:172:31:172:36 | [post] buffer | test.rs:173:15:173:20 | buffer | provenance | |
|
||||||
| test.rs:173:15:173:20 | buffer | test.rs:173:14:173:20 | &buffer | provenance | |
|
| test.rs:173:15:173:20 | buffer | test.rs:173:14:173:20 | &buffer | provenance | |
|
||||||
| test.rs:178:13:178:22 | mut reader | test.rs:179:9:179:14 | reader | provenance | |
|
| test.rs:178:13:178:22 | mut reader | test.rs:179:9:179:14 | reader | provenance | |
|
||||||
| test.rs:178:26:178:70 | ...::new(...) | test.rs:178:13:178:22 | mut reader | provenance | |
|
| test.rs:178:26:178:70 | ...::new(...) | test.rs:178:13:178:22 | mut reader | provenance | |
|
||||||
| test.rs:178:52:178:67 | ...::stdin | test.rs:178:52:178:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:178:52:178:67 | ...::stdin | test.rs:178:52:178:69 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:178:52:178:69 | ...::stdin(...) | test.rs:178:26:178:70 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:178:52:178:69 | ...::stdin(...) | test.rs:178:26:178:70 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:179:9:179:14 | reader | test.rs:179:33:179:43 | [post] &mut buffer [&ref] | provenance | MaD:16 |
|
| test.rs:179:9:179:14 | reader | test.rs:179:33:179:43 | [post] &mut buffer [&ref] | provenance | MaD:17 |
|
||||||
| test.rs:179:33:179:43 | [post] &mut buffer [&ref] | test.rs:179:38:179:43 | [post] buffer | provenance | |
|
| test.rs:179:33:179:43 | [post] &mut buffer [&ref] | test.rs:179:38:179:43 | [post] buffer | provenance | |
|
||||||
| test.rs:179:38:179:43 | [post] buffer | test.rs:180:15:180:20 | buffer | provenance | |
|
| test.rs:179:38:179:43 | [post] buffer | test.rs:180:15:180:20 | buffer | provenance | |
|
||||||
| test.rs:179:38:179:43 | [post] buffer | test.rs:181:14:181:22 | buffer[0] | provenance | |
|
| test.rs:179:38:179:43 | [post] buffer | test.rs:181:14:181:19 | buffer | provenance | |
|
||||||
| test.rs:180:15:180:20 | buffer | test.rs:180:14:180:20 | &buffer | provenance | |
|
| test.rs:180:15:180:20 | buffer | test.rs:180:14:180:20 | &buffer | provenance | |
|
||||||
|
| test.rs:181:14:181:19 | buffer | test.rs:181:14:181:22 | buffer[0] | provenance | MaD:3 |
|
||||||
| test.rs:185:13:185:28 | mut reader_split | test.rs:186:14:186:25 | reader_split | provenance | |
|
| test.rs:185:13:185:28 | mut reader_split | test.rs:186:14:186:25 | reader_split | provenance | |
|
||||||
| test.rs:185:13:185:28 | mut reader_split | test.rs:187:33:187:44 | reader_split | provenance | |
|
| test.rs:185:13:185:28 | mut reader_split | test.rs:187:33:187:44 | reader_split | provenance | |
|
||||||
| test.rs:185:32:185:76 | ...::new(...) | test.rs:185:32:185:88 | ... .split(...) | provenance | MaD:17 |
|
| test.rs:185:32:185:76 | ...::new(...) | test.rs:185:32:185:88 | ... .split(...) | provenance | MaD:18 |
|
||||||
| test.rs:185:32:185:88 | ... .split(...) | test.rs:185:13:185:28 | mut reader_split | provenance | |
|
| test.rs:185:32:185:88 | ... .split(...) | test.rs:185:13:185:28 | mut reader_split | provenance | |
|
||||||
| test.rs:185:58:185:73 | ...::stdin | test.rs:185:58:185:75 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:185:58:185:73 | ...::stdin | test.rs:185:58:185:75 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:185:58:185:75 | ...::stdin(...) | test.rs:185:32:185:76 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:185:58:185:75 | ...::stdin(...) | test.rs:185:32:185:76 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:186:14:186:25 | reader_split | test.rs:186:14:186:40 | reader_split.next_segment() [future, Ok, Some] | provenance | MaD:36 |
|
| test.rs:186:14:186:25 | reader_split | test.rs:186:14:186:40 | reader_split.next_segment() [future, Ok, Some] | provenance | MaD:37 |
|
||||||
| test.rs:186:14:186:40 | reader_split.next_segment() [future, Ok, Some] | test.rs:186:14:186:46 | await ... [Ok, Some] | provenance | |
|
| test.rs:186:14:186:40 | reader_split.next_segment() [future, Ok, Some] | test.rs:186:14:186:46 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:186:14:186:46 | await ... [Ok, Some] | test.rs:186:14:186:47 | TryExpr [Some] | provenance | |
|
| test.rs:186:14:186:46 | await ... [Ok, Some] | test.rs:186:14:186:47 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:186:14:186:47 | TryExpr [Some] | test.rs:186:14:186:56 | ... .unwrap() | provenance | MaD:27 |
|
| test.rs:186:14:186:47 | TryExpr [Some] | test.rs:186:14:186:56 | ... .unwrap() | provenance | MaD:28 |
|
||||||
| test.rs:187:19:187:29 | Some(...) [Some] | test.rs:187:24:187:28 | chunk | provenance | |
|
| test.rs:187:19:187:29 | Some(...) [Some] | test.rs:187:24:187:28 | chunk | provenance | |
|
||||||
| test.rs:187:24:187:28 | chunk | test.rs:188:18:188:22 | chunk | provenance | |
|
| test.rs:187:24:187:28 | chunk | test.rs:188:18:188:22 | chunk | provenance | |
|
||||||
| test.rs:187:33:187:44 | reader_split | test.rs:187:33:187:59 | reader_split.next_segment() [future, Ok, Some] | provenance | MaD:36 |
|
| test.rs:187:33:187:44 | reader_split | test.rs:187:33:187:59 | reader_split.next_segment() [future, Ok, Some] | provenance | MaD:37 |
|
||||||
| test.rs:187:33:187:59 | reader_split.next_segment() [future, Ok, Some] | test.rs:187:33:187:65 | await ... [Ok, Some] | provenance | |
|
| test.rs:187:33:187:59 | reader_split.next_segment() [future, Ok, Some] | test.rs:187:33:187:65 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:187:33:187:65 | await ... [Ok, Some] | test.rs:187:33:187:66 | TryExpr [Some] | provenance | |
|
| test.rs:187:33:187:65 | await ... [Ok, Some] | test.rs:187:33:187:66 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:187:33:187:66 | TryExpr [Some] | test.rs:187:19:187:29 | Some(...) [Some] | provenance | |
|
| test.rs:187:33:187:66 | TryExpr [Some] | test.rs:187:19:187:29 | Some(...) [Some] | provenance | |
|
||||||
| test.rs:193:13:193:18 | reader | test.rs:194:25:194:30 | reader | provenance | |
|
| test.rs:193:13:193:18 | reader | test.rs:194:25:194:30 | reader | provenance | |
|
||||||
| test.rs:193:22:193:66 | ...::new(...) | test.rs:193:13:193:18 | reader | provenance | |
|
| test.rs:193:22:193:66 | ...::new(...) | test.rs:193:13:193:18 | reader | provenance | |
|
||||||
| test.rs:193:48:193:63 | ...::stdin | test.rs:193:48:193:65 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
| test.rs:193:48:193:63 | ...::stdin | test.rs:193:48:193:65 | ...::stdin(...) | provenance | Src:MaD:2 MaD:2 |
|
||||||
| test.rs:193:48:193:65 | ...::stdin(...) | test.rs:193:22:193:66 | ...::new(...) | provenance | MaD:34 |
|
| test.rs:193:48:193:65 | ...::stdin(...) | test.rs:193:22:193:66 | ...::new(...) | provenance | MaD:35 |
|
||||||
| test.rs:194:13:194:21 | mut lines | test.rs:195:14:195:18 | lines | provenance | |
|
| test.rs:194:13:194:21 | mut lines | test.rs:195:14:195:18 | lines | provenance | |
|
||||||
| test.rs:194:13:194:21 | mut lines | test.rs:196:32:196:36 | lines | provenance | |
|
| test.rs:194:13:194:21 | mut lines | test.rs:196:32:196:36 | lines | provenance | |
|
||||||
| test.rs:194:25:194:30 | reader | test.rs:194:25:194:38 | reader.lines() | provenance | MaD:14 |
|
| test.rs:194:25:194:30 | reader | test.rs:194:25:194:38 | reader.lines() | provenance | MaD:15 |
|
||||||
| test.rs:194:25:194:38 | reader.lines() | test.rs:194:13:194:21 | mut lines | provenance | |
|
| test.rs:194:25:194:38 | reader.lines() | test.rs:194:13:194:21 | mut lines | provenance | |
|
||||||
| test.rs:195:14:195:18 | lines | test.rs:195:14:195:30 | lines.next_line() [future, Ok, Some] | provenance | MaD:35 |
|
| test.rs:195:14:195:18 | lines | test.rs:195:14:195:30 | lines.next_line() [future, Ok, Some] | provenance | MaD:36 |
|
||||||
| test.rs:195:14:195:30 | lines.next_line() [future, Ok, Some] | test.rs:195:14:195:36 | await ... [Ok, Some] | provenance | |
|
| test.rs:195:14:195:30 | lines.next_line() [future, Ok, Some] | test.rs:195:14:195:36 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:195:14:195:36 | await ... [Ok, Some] | test.rs:195:14:195:37 | TryExpr [Some] | provenance | |
|
| test.rs:195:14:195:36 | await ... [Ok, Some] | test.rs:195:14:195:37 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:195:14:195:37 | TryExpr [Some] | test.rs:195:14:195:46 | ... .unwrap() | provenance | MaD:27 |
|
| test.rs:195:14:195:37 | TryExpr [Some] | test.rs:195:14:195:46 | ... .unwrap() | provenance | MaD:28 |
|
||||||
| test.rs:196:19:196:28 | Some(...) [Some] | test.rs:196:24:196:27 | line | provenance | |
|
| test.rs:196:19:196:28 | Some(...) [Some] | test.rs:196:24:196:27 | line | provenance | |
|
||||||
| test.rs:196:24:196:27 | line | test.rs:197:18:197:21 | line | provenance | |
|
| test.rs:196:24:196:27 | line | test.rs:197:18:197:21 | line | provenance | |
|
||||||
| test.rs:196:32:196:36 | lines | test.rs:196:32:196:48 | lines.next_line() [future, Ok, Some] | provenance | MaD:35 |
|
| test.rs:196:32:196:36 | lines | test.rs:196:32:196:48 | lines.next_line() [future, Ok, Some] | provenance | MaD:36 |
|
||||||
| test.rs:196:32:196:48 | lines.next_line() [future, Ok, Some] | test.rs:196:32:196:54 | await ... [Ok, Some] | provenance | |
|
| test.rs:196:32:196:48 | lines.next_line() [future, Ok, Some] | test.rs:196:32:196:54 | await ... [Ok, Some] | provenance | |
|
||||||
| test.rs:196:32:196:54 | await ... [Ok, Some] | test.rs:196:32:196:55 | TryExpr [Some] | provenance | |
|
| test.rs:196:32:196:54 | await ... [Ok, Some] | test.rs:196:32:196:55 | TryExpr [Some] | provenance | |
|
||||||
| test.rs:196:32:196:55 | TryExpr [Some] | test.rs:196:19:196:28 | Some(...) [Some] | provenance | |
|
| test.rs:196:32:196:55 | TryExpr [Some] | test.rs:196:19:196:28 | Some(...) [Some] | provenance | |
|
||||||
@@ -322,6 +325,7 @@ nodes
|
|||||||
| test.rs:69:38:69:43 | [post] buffer | semmle.label | [post] buffer |
|
| test.rs:69:38:69:43 | [post] buffer | semmle.label | [post] buffer |
|
||||||
| test.rs:70:14:70:20 | &buffer | semmle.label | &buffer |
|
| test.rs:70:14:70:20 | &buffer | semmle.label | &buffer |
|
||||||
| test.rs:70:15:70:20 | buffer | semmle.label | buffer |
|
| test.rs:70:15:70:20 | buffer | semmle.label | buffer |
|
||||||
|
| test.rs:71:14:71:19 | buffer | semmle.label | buffer |
|
||||||
| test.rs:71:14:71:22 | buffer[0] | semmle.label | buffer[0] |
|
| test.rs:71:14:71:22 | buffer[0] | semmle.label | buffer[0] |
|
||||||
| test.rs:75:13:75:28 | mut reader_split | semmle.label | mut reader_split |
|
| test.rs:75:13:75:28 | mut reader_split | semmle.label | mut reader_split |
|
||||||
| test.rs:75:32:75:72 | ...::new(...) | semmle.label | ...::new(...) |
|
| test.rs:75:32:75:72 | ...::new(...) | semmle.label | ...::new(...) |
|
||||||
@@ -450,6 +454,7 @@ nodes
|
|||||||
| test.rs:179:38:179:43 | [post] buffer | semmle.label | [post] buffer |
|
| test.rs:179:38:179:43 | [post] buffer | semmle.label | [post] buffer |
|
||||||
| test.rs:180:14:180:20 | &buffer | semmle.label | &buffer |
|
| test.rs:180:14:180:20 | &buffer | semmle.label | &buffer |
|
||||||
| test.rs:180:15:180:20 | buffer | semmle.label | buffer |
|
| test.rs:180:15:180:20 | buffer | semmle.label | buffer |
|
||||||
|
| test.rs:181:14:181:19 | buffer | semmle.label | buffer |
|
||||||
| test.rs:181:14:181:22 | buffer[0] | semmle.label | buffer[0] |
|
| test.rs:181:14:181:22 | buffer[0] | semmle.label | buffer[0] |
|
||||||
| test.rs:185:13:185:28 | mut reader_split | semmle.label | mut reader_split |
|
| test.rs:185:13:185:28 | mut reader_split | semmle.label | mut reader_split |
|
||||||
| test.rs:185:32:185:76 | ...::new(...) | semmle.label | ...::new(...) |
|
| test.rs:185:32:185:76 | ...::new(...) | semmle.label | ...::new(...) |
|
||||||
|
|||||||
@@ -3,23 +3,26 @@ models
|
|||||||
| 2 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
| 2 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint |
|
||||||
| 3 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint |
|
| 3 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint |
|
||||||
| 4 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint |
|
| 4 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint |
|
||||||
| 5 | Summary: <alloc::string::String as core::convert::From>::from; Argument[0].Reference; ReturnValue; value |
|
| 5 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
| 6 | Summary: <alloc::string::String as core::ops::arith::Add>::add; Argument[self]; ReturnValue; value |
|
| 6 | Summary: <alloc::string::String as core::convert::From>::from; Argument[0].Reference; ReturnValue; value |
|
||||||
| 7 | Summary: <alloc::string::String>::as_str; Argument[self]; ReturnValue; value |
|
| 7 | Summary: <alloc::string::String as core::ops::arith::Add>::add; Argument[self]; ReturnValue; value |
|
||||||
| 8 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint |
|
| 8 | Summary: <alloc::string::String>::as_str; Argument[self]; ReturnValue; value |
|
||||||
| 9 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value |
|
| 9 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint |
|
||||||
|
| 10 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value |
|
||||||
edges
|
edges
|
||||||
|
| main.rs:26:9:26:9 | s | main.rs:27:19:27:19 | s | provenance | |
|
||||||
| main.rs:26:9:26:9 | s | main.rs:27:19:27:25 | s[...] | provenance | |
|
| main.rs:26:9:26:9 | s | main.rs:27:19:27:25 | s[...] | provenance | |
|
||||||
| main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | s | provenance | |
|
| main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | s | provenance | |
|
||||||
| main.rs:27:9:27:14 | sliced [&ref] | main.rs:28:16:28:21 | sliced | provenance | |
|
| main.rs:27:9:27:14 | sliced [&ref] | main.rs:28:16:28:21 | sliced | provenance | |
|
||||||
| main.rs:27:18:27:25 | &... [&ref] | main.rs:27:9:27:14 | sliced [&ref] | provenance | |
|
| main.rs:27:18:27:25 | &... [&ref] | main.rs:27:9:27:14 | sliced [&ref] | provenance | |
|
||||||
|
| main.rs:27:19:27:19 | s | main.rs:27:19:27:25 | s[...] | provenance | MaD:5 |
|
||||||
| main.rs:27:19:27:25 | s[...] | main.rs:27:18:27:25 | &... [&ref] | provenance | |
|
| main.rs:27:19:27:25 | s[...] | main.rs:27:18:27:25 | &... [&ref] | provenance | |
|
||||||
| main.rs:32:9:32:10 | s1 | main.rs:35:9:35:10 | s4 | provenance | |
|
| main.rs:32:9:32:10 | s1 | main.rs:35:9:35:10 | s4 | provenance | |
|
||||||
| main.rs:32:9:32:10 | s1 | main.rs:35:14:35:15 | s1 | provenance | |
|
| main.rs:32:9:32:10 | s1 | main.rs:35:14:35:15 | s1 | provenance | |
|
||||||
| main.rs:32:14:32:23 | source(...) | main.rs:32:9:32:10 | s1 | provenance | |
|
| main.rs:32:14:32:23 | source(...) | main.rs:32:9:32:10 | s1 | provenance | |
|
||||||
| main.rs:35:9:35:10 | s4 | main.rs:38:10:38:11 | s4 | provenance | |
|
| main.rs:35:9:35:10 | s4 | main.rs:38:10:38:11 | s4 | provenance | |
|
||||||
| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:4 |
|
| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:4 |
|
||||||
| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:6 |
|
| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:7 |
|
||||||
| main.rs:35:14:35:20 | ... + ... | main.rs:35:9:35:10 | s4 | provenance | |
|
| main.rs:35:14:35:20 | ... + ... | main.rs:35:9:35:10 | s4 | provenance | |
|
||||||
| main.rs:43:9:43:10 | s1 | main.rs:46:34:46:35 | s1 | provenance | |
|
| main.rs:43:9:43:10 | s1 | main.rs:46:34:46:35 | s1 | provenance | |
|
||||||
| main.rs:43:14:43:23 | source(...) | main.rs:43:9:43:10 | s1 | provenance | |
|
| main.rs:43:14:43:23 | source(...) | main.rs:43:9:43:10 | s1 | provenance | |
|
||||||
@@ -30,7 +33,7 @@ edges
|
|||||||
| main.rs:52:9:52:10 | s2 | main.rs:53:10:53:11 | s2 | provenance | |
|
| main.rs:52:9:52:10 | s2 | main.rs:53:10:53:11 | s2 | provenance | |
|
||||||
| main.rs:52:14:52:29 | ...::from(...) | main.rs:52:9:52:10 | s2 | provenance | |
|
| main.rs:52:14:52:29 | ...::from(...) | main.rs:52:9:52:10 | s2 | provenance | |
|
||||||
| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:2 |
|
| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:2 |
|
||||||
| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:5 |
|
| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:6 |
|
||||||
| main.rs:57:9:57:10 | s1 | main.rs:58:14:58:15 | s1 | provenance | |
|
| main.rs:57:9:57:10 | s1 | main.rs:58:14:58:15 | s1 | provenance | |
|
||||||
| main.rs:57:14:57:29 | source_slice(...) | main.rs:57:9:57:10 | s1 | provenance | |
|
| main.rs:57:14:57:29 | source_slice(...) | main.rs:57:9:57:10 | s1 | provenance | |
|
||||||
| main.rs:58:9:58:10 | s2 | main.rs:59:10:59:11 | s2 | provenance | |
|
| main.rs:58:9:58:10 | s2 | main.rs:59:10:59:11 | s2 | provenance | |
|
||||||
@@ -38,37 +41,38 @@ edges
|
|||||||
| main.rs:58:14:58:27 | s1.to_string() | main.rs:58:9:58:10 | s2 | provenance | |
|
| main.rs:58:14:58:27 | s1.to_string() | main.rs:58:9:58:10 | s2 | provenance | |
|
||||||
| main.rs:63:9:63:9 | s | main.rs:64:16:64:16 | s | provenance | |
|
| main.rs:63:9:63:9 | s | main.rs:64:16:64:16 | s | provenance | |
|
||||||
| main.rs:63:13:63:22 | source(...) | main.rs:63:9:63:9 | s | provenance | |
|
| main.rs:63:13:63:22 | source(...) | main.rs:63:9:63:9 | s | provenance | |
|
||||||
| main.rs:64:16:64:16 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:7 |
|
| main.rs:64:16:64:16 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:8 |
|
||||||
| main.rs:68:9:68:9 | s | main.rs:70:34:70:61 | MacroExpr | provenance | |
|
| main.rs:68:9:68:9 | s | main.rs:70:34:70:61 | MacroExpr | provenance | |
|
||||||
| main.rs:68:9:68:9 | s | main.rs:73:34:73:59 | MacroExpr | provenance | |
|
| main.rs:68:9:68:9 | s | main.rs:73:34:73:59 | MacroExpr | provenance | |
|
||||||
| main.rs:68:13:68:22 | source(...) | main.rs:68:9:68:9 | s | provenance | |
|
| main.rs:68:13:68:22 | source(...) | main.rs:68:9:68:9 | s | provenance | |
|
||||||
| main.rs:70:9:70:18 | formatted1 | main.rs:71:10:71:19 | formatted1 | provenance | |
|
| main.rs:70:9:70:18 | formatted1 | main.rs:71:10:71:19 | formatted1 | provenance | |
|
||||||
| main.rs:70:22:70:62 | ...::format(...) | main.rs:70:9:70:18 | formatted1 | provenance | |
|
| main.rs:70:22:70:62 | ...::format(...) | main.rs:70:9:70:18 | formatted1 | provenance | |
|
||||||
| main.rs:70:34:70:61 | MacroExpr | main.rs:70:22:70:62 | ...::format(...) | provenance | MaD:8 |
|
| main.rs:70:34:70:61 | MacroExpr | main.rs:70:22:70:62 | ...::format(...) | provenance | MaD:9 |
|
||||||
| main.rs:73:9:73:18 | formatted2 | main.rs:74:10:74:19 | formatted2 | provenance | |
|
| main.rs:73:9:73:18 | formatted2 | main.rs:74:10:74:19 | formatted2 | provenance | |
|
||||||
| main.rs:73:22:73:60 | ...::format(...) | main.rs:73:9:73:18 | formatted2 | provenance | |
|
| main.rs:73:22:73:60 | ...::format(...) | main.rs:73:9:73:18 | formatted2 | provenance | |
|
||||||
| main.rs:73:34:73:59 | MacroExpr | main.rs:73:22:73:60 | ...::format(...) | provenance | MaD:8 |
|
| main.rs:73:34:73:59 | MacroExpr | main.rs:73:22:73:60 | ...::format(...) | provenance | MaD:9 |
|
||||||
| main.rs:76:9:76:13 | width | main.rs:77:34:77:74 | MacroExpr | provenance | |
|
| main.rs:76:9:76:13 | width | main.rs:77:34:77:74 | MacroExpr | provenance | |
|
||||||
| main.rs:76:17:76:32 | source_usize(...) | main.rs:76:9:76:13 | width | provenance | |
|
| main.rs:76:17:76:32 | source_usize(...) | main.rs:76:9:76:13 | width | provenance | |
|
||||||
| main.rs:77:9:77:18 | formatted3 | main.rs:78:10:78:19 | formatted3 | provenance | |
|
| main.rs:77:9:77:18 | formatted3 | main.rs:78:10:78:19 | formatted3 | provenance | |
|
||||||
| main.rs:77:22:77:75 | ...::format(...) | main.rs:77:9:77:18 | formatted3 | provenance | |
|
| main.rs:77:22:77:75 | ...::format(...) | main.rs:77:9:77:18 | formatted3 | provenance | |
|
||||||
| main.rs:77:34:77:74 | MacroExpr | main.rs:77:22:77:75 | ...::format(...) | provenance | MaD:8 |
|
| main.rs:77:34:77:74 | MacroExpr | main.rs:77:22:77:75 | ...::format(...) | provenance | MaD:9 |
|
||||||
| main.rs:82:9:82:10 | s1 | main.rs:86:18:86:25 | MacroExpr | provenance | |
|
| main.rs:82:9:82:10 | s1 | main.rs:86:18:86:25 | MacroExpr | provenance | |
|
||||||
| main.rs:82:9:82:10 | s1 | main.rs:87:18:87:32 | MacroExpr | provenance | |
|
| main.rs:82:9:82:10 | s1 | main.rs:87:18:87:32 | MacroExpr | provenance | |
|
||||||
| main.rs:82:14:82:23 | source(...) | main.rs:82:9:82:10 | s1 | provenance | |
|
| main.rs:82:14:82:23 | source(...) | main.rs:82:9:82:10 | s1 | provenance | |
|
||||||
| main.rs:86:18:86:25 | ...::format(...) | main.rs:86:18:86:25 | { ... } | provenance | |
|
| main.rs:86:18:86:25 | ...::format(...) | main.rs:86:18:86:25 | { ... } | provenance | |
|
||||||
| main.rs:86:18:86:25 | ...::must_use(...) | main.rs:86:10:86:26 | MacroExpr | provenance | |
|
| main.rs:86:18:86:25 | ...::must_use(...) | main.rs:86:10:86:26 | MacroExpr | provenance | |
|
||||||
| main.rs:86:18:86:25 | MacroExpr | main.rs:86:18:86:25 | ...::format(...) | provenance | MaD:8 |
|
| main.rs:86:18:86:25 | MacroExpr | main.rs:86:18:86:25 | ...::format(...) | provenance | MaD:9 |
|
||||||
| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:9 |
|
| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:10 |
|
||||||
| main.rs:87:18:87:32 | ...::format(...) | main.rs:87:18:87:32 | { ... } | provenance | |
|
| main.rs:87:18:87:32 | ...::format(...) | main.rs:87:18:87:32 | { ... } | provenance | |
|
||||||
| main.rs:87:18:87:32 | ...::must_use(...) | main.rs:87:10:87:33 | MacroExpr | provenance | |
|
| main.rs:87:18:87:32 | ...::must_use(...) | main.rs:87:10:87:33 | MacroExpr | provenance | |
|
||||||
| main.rs:87:18:87:32 | MacroExpr | main.rs:87:18:87:32 | ...::format(...) | provenance | MaD:8 |
|
| main.rs:87:18:87:32 | MacroExpr | main.rs:87:18:87:32 | ...::format(...) | provenance | MaD:9 |
|
||||||
| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:9 |
|
| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:10 |
|
||||||
nodes
|
nodes
|
||||||
| main.rs:26:9:26:9 | s | semmle.label | s |
|
| main.rs:26:9:26:9 | s | semmle.label | s |
|
||||||
| main.rs:26:13:26:22 | source(...) | semmle.label | source(...) |
|
| main.rs:26:13:26:22 | source(...) | semmle.label | source(...) |
|
||||||
| main.rs:27:9:27:14 | sliced [&ref] | semmle.label | sliced [&ref] |
|
| main.rs:27:9:27:14 | sliced [&ref] | semmle.label | sliced [&ref] |
|
||||||
| main.rs:27:18:27:25 | &... [&ref] | semmle.label | &... [&ref] |
|
| main.rs:27:18:27:25 | &... [&ref] | semmle.label | &... [&ref] |
|
||||||
|
| main.rs:27:19:27:19 | s | semmle.label | s |
|
||||||
| main.rs:27:19:27:25 | s[...] | semmle.label | s[...] |
|
| main.rs:27:19:27:25 | s[...] | semmle.label | s[...] |
|
||||||
| main.rs:28:16:28:21 | sliced | semmle.label | sliced |
|
| main.rs:28:16:28:21 | sliced | semmle.label | sliced |
|
||||||
| main.rs:32:9:32:10 | s1 | semmle.label | s1 |
|
| main.rs:32:9:32:10 | s1 | semmle.label | s1 |
|
||||||
|
|||||||
@@ -11,11 +11,12 @@
|
|||||||
| main.rs:33:24:33:24 | s | main.rs:33:18:33:24 | FormatArgsExpr |
|
| main.rs:33:24:33:24 | s | main.rs:33:18:33:24 | FormatArgsExpr |
|
||||||
| main.rs:38:23:38:23 | [post] s [borrowed] | main.rs:38:23:38:23 | [post] s |
|
| main.rs:38:23:38:23 | [post] s [borrowed] | main.rs:38:23:38:23 | [post] s |
|
||||||
| main.rs:38:23:38:23 | s | main.rs:38:23:38:29 | s[...] |
|
| main.rs:38:23:38:23 | s | main.rs:38:23:38:29 | s[...] |
|
||||||
|
| main.rs:38:23:38:29 | s[...] [pre-dereferenced] | main.rs:38:23:38:29 | s[...] |
|
||||||
| main.rs:49:24:49:24 | i | main.rs:49:18:49:24 | FormatArgsExpr |
|
| main.rs:49:24:49:24 | i | main.rs:49:18:49:24 | FormatArgsExpr |
|
||||||
| main.rs:54:14:54:16 | [post] arr [borrowed] | main.rs:54:14:54:16 | [post] arr |
|
| main.rs:54:14:54:16 | [post] arr [borrowed] | main.rs:54:14:54:16 | [post] arr |
|
||||||
| main.rs:54:14:54:16 | arr | main.rs:54:14:54:19 | arr[1] |
|
| main.rs:54:14:54:19 | arr[1] [pre-dereferenced] | main.rs:54:14:54:19 | arr[1] |
|
||||||
| main.rs:64:24:64:24 | [post] s [borrowed] | main.rs:64:24:64:24 | [post] s |
|
| main.rs:64:24:64:24 | [post] s [borrowed] | main.rs:64:24:64:24 | [post] s |
|
||||||
| main.rs:64:24:64:24 | s | main.rs:64:24:64:27 | s[1] |
|
|
||||||
| main.rs:64:24:64:27 | s[1] | main.rs:64:18:64:27 | FormatArgsExpr |
|
| main.rs:64:24:64:27 | s[1] | main.rs:64:18:64:27 | FormatArgsExpr |
|
||||||
|
| main.rs:64:24:64:27 | s[1] [pre-dereferenced] | main.rs:64:24:64:27 | s[1] |
|
||||||
| main.rs:69:9:69:12 | [post] arr2 [borrowed] | main.rs:69:9:69:12 | [post] arr2 |
|
| main.rs:69:9:69:12 | [post] arr2 [borrowed] | main.rs:69:9:69:12 | [post] arr2 |
|
||||||
| main.rs:69:9:69:12 | arr2 | main.rs:69:9:69:15 | arr2[1] |
|
| main.rs:69:9:69:15 | arr2[1] [pre-dereferenced] | main.rs:69:9:69:15 | arr2[1] |
|
||||||
|
|||||||
@@ -1,22 +1,26 @@
|
|||||||
models
|
models
|
||||||
| 1 | Summary: <core::i64 as core::ops::arith::Neg>::neg; Argument[self]; ReturnValue; taint |
|
| 1 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value |
|
||||||
|
| 2 | Summary: <core::i64 as core::ops::arith::Neg>::neg; Argument[self]; ReturnValue; taint |
|
||||||
edges
|
edges
|
||||||
| main.rs:12:9:12:9 | a | main.rs:13:10:13:14 | ... + ... | provenance | |
|
| main.rs:12:9:12:9 | a | main.rs:13:10:13:14 | ... + ... | provenance | |
|
||||||
| main.rs:12:13:12:22 | source(...) | main.rs:12:9:12:9 | a | provenance | |
|
| main.rs:12:13:12:22 | source(...) | main.rs:12:9:12:9 | a | provenance | |
|
||||||
| main.rs:17:9:17:9 | a | main.rs:18:10:18:11 | - ... | provenance | |
|
| main.rs:17:9:17:9 | a | main.rs:18:10:18:11 | - ... | provenance | |
|
||||||
| main.rs:17:9:17:9 | a | main.rs:18:11:18:11 | a | provenance | |
|
| main.rs:17:9:17:9 | a | main.rs:18:11:18:11 | a | provenance | |
|
||||||
| main.rs:17:13:17:22 | source(...) | main.rs:17:9:17:9 | a | provenance | |
|
| main.rs:17:13:17:22 | source(...) | main.rs:17:9:17:9 | a | provenance | |
|
||||||
| main.rs:18:11:18:11 | a | main.rs:18:10:18:11 | - ... | provenance | MaD:1 |
|
| main.rs:18:11:18:11 | a | main.rs:18:10:18:11 | - ... | provenance | MaD:2 |
|
||||||
| main.rs:22:9:22:9 | a | main.rs:23:9:23:9 | b | provenance | |
|
| main.rs:22:9:22:9 | a | main.rs:23:9:23:9 | b | provenance | |
|
||||||
| main.rs:22:13:22:22 | source(...) | main.rs:22:9:22:9 | a | provenance | |
|
| main.rs:22:13:22:22 | source(...) | main.rs:22:9:22:9 | a | provenance | |
|
||||||
| main.rs:23:9:23:9 | b | main.rs:24:10:24:17 | b as i64 | provenance | |
|
| main.rs:23:9:23:9 | b | main.rs:24:10:24:17 | b as i64 | provenance | |
|
||||||
|
| main.rs:37:13:37:13 | s | main.rs:38:23:38:23 | s | provenance | |
|
||||||
| main.rs:37:13:37:13 | s | main.rs:38:23:38:29 | s[...] | provenance | |
|
| main.rs:37:13:37:13 | s | main.rs:38:23:38:29 | s[...] | provenance | |
|
||||||
| main.rs:37:17:37:26 | source(...) | main.rs:37:13:37:13 | s | provenance | |
|
| main.rs:37:17:37:26 | source(...) | main.rs:37:13:37:13 | s | provenance | |
|
||||||
| main.rs:38:13:38:18 | sliced [&ref] | main.rs:39:14:39:19 | sliced | provenance | |
|
| main.rs:38:13:38:18 | sliced [&ref] | main.rs:39:14:39:19 | sliced | provenance | |
|
||||||
| main.rs:38:22:38:29 | &... [&ref] | main.rs:38:13:38:18 | sliced [&ref] | provenance | |
|
| main.rs:38:22:38:29 | &... [&ref] | main.rs:38:13:38:18 | sliced [&ref] | provenance | |
|
||||||
|
| main.rs:38:23:38:23 | s | main.rs:38:23:38:29 | s[...] | provenance | MaD:1 |
|
||||||
| main.rs:38:23:38:29 | s[...] | main.rs:38:22:38:29 | &... [&ref] | provenance | |
|
| main.rs:38:23:38:29 | s[...] | main.rs:38:22:38:29 | &... [&ref] | provenance | |
|
||||||
| main.rs:53:13:53:15 | arr | main.rs:54:14:54:19 | arr[1] | provenance | |
|
| main.rs:53:13:53:15 | arr | main.rs:54:14:54:16 | arr | provenance | |
|
||||||
| main.rs:53:19:53:28 | source(...) | main.rs:53:13:53:15 | arr | provenance | |
|
| main.rs:53:19:53:28 | source(...) | main.rs:53:13:53:15 | arr | provenance | |
|
||||||
|
| main.rs:54:14:54:16 | arr | main.rs:54:14:54:19 | arr[1] | provenance | MaD:1 |
|
||||||
| main.rs:69:9:69:12 | [post] arr2 [element] | main.rs:70:14:70:17 | arr2 | provenance | |
|
| main.rs:69:9:69:12 | [post] arr2 [element] | main.rs:70:14:70:17 | arr2 | provenance | |
|
||||||
| main.rs:69:19:69:28 | source(...) | main.rs:69:9:69:12 | [post] arr2 [element] | provenance | |
|
| main.rs:69:19:69:28 | source(...) | main.rs:69:9:69:12 | [post] arr2 [element] | provenance | |
|
||||||
nodes
|
nodes
|
||||||
@@ -35,10 +39,12 @@ nodes
|
|||||||
| main.rs:37:17:37:26 | source(...) | semmle.label | source(...) |
|
| main.rs:37:17:37:26 | source(...) | semmle.label | source(...) |
|
||||||
| main.rs:38:13:38:18 | sliced [&ref] | semmle.label | sliced [&ref] |
|
| main.rs:38:13:38:18 | sliced [&ref] | semmle.label | sliced [&ref] |
|
||||||
| main.rs:38:22:38:29 | &... [&ref] | semmle.label | &... [&ref] |
|
| main.rs:38:22:38:29 | &... [&ref] | semmle.label | &... [&ref] |
|
||||||
|
| main.rs:38:23:38:23 | s | semmle.label | s |
|
||||||
| main.rs:38:23:38:29 | s[...] | semmle.label | s[...] |
|
| main.rs:38:23:38:29 | s[...] | semmle.label | s[...] |
|
||||||
| main.rs:39:14:39:19 | sliced | semmle.label | sliced |
|
| main.rs:39:14:39:19 | sliced | semmle.label | sliced |
|
||||||
| main.rs:53:13:53:15 | arr | semmle.label | arr |
|
| main.rs:53:13:53:15 | arr | semmle.label | arr |
|
||||||
| main.rs:53:19:53:28 | source(...) | semmle.label | source(...) |
|
| main.rs:53:19:53:28 | source(...) | semmle.label | source(...) |
|
||||||
|
| main.rs:54:14:54:16 | arr | semmle.label | arr |
|
||||||
| main.rs:54:14:54:19 | arr[1] | semmle.label | arr[1] |
|
| main.rs:54:14:54:19 | arr[1] | semmle.label | arr[1] |
|
||||||
| main.rs:69:9:69:12 | [post] arr2 [element] | semmle.label | [post] arr2 [element] |
|
| main.rs:69:9:69:12 | [post] arr2 [element] | semmle.label | [post] arr2 [element] |
|
||||||
| main.rs:69:19:69:28 | source(...) | semmle.label | source(...) |
|
| main.rs:69:19:69:28 | source(...) | semmle.label | source(...) |
|
||||||
|
|||||||
Reference in New Issue
Block a user