mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
Merge pull request #18675 from hvitved/rust/struct-tuple-field
Rust: Implement data flow through tuple structs
This commit is contained in:
3
rust/ql/.generated.list
generated
3
rust/ql/.generated.list
generated
@@ -368,12 +368,10 @@ lib/codeql/rust/elements/internal/RecordExprFieldConstructor.qll 11620bc4e2dc7b3
|
||||
lib/codeql/rust/elements/internal/RecordExprFieldListConstructor.qll 3a0d6ec872792c400d3a0a5ed1c5051b248a597a4b17ada1a078ea5d972b6721 52bae8222e7aa5bc89b73bec3fd1c3c1de0fe11bf30ccf5668454f63fbfc9b83
|
||||
lib/codeql/rust/elements/internal/RecordExprFieldListImpl.qll 1210c23c0495f5d1a72409afc8c559f8da2b8c71340ff2944af9d1f684d0a856 fea96b053cad4135ab09b1c070a4c9f26507dd890a62c30772cf3e2358686640
|
||||
lib/codeql/rust/elements/internal/RecordFieldConstructor.qll 9fc05f5101e48a45a028c479b35ec3d2f1a3cc33f0938667fcb813c5a4ab9526 98791dcf7f3209524f6132f9c26980e499cbcf94c1559e95c67544732245f05b
|
||||
lib/codeql/rust/elements/internal/RecordFieldImpl.qll 2612dae3c95c9064420a3494872213f7fd7a3e1133243f4adea8a30808a209ae 143b75bb539a1bfea16e1c764a1f549522ef9c8d6d5de3fef377bbf67ba42075
|
||||
lib/codeql/rust/elements/internal/RecordFieldListConstructor.qll 9f1d916f3784092dcbff7224451c8f4f0daf6f8293a466b0a30ec9b92cd41358 8aafe377714a134287362c4b96439c1c6baa5a31c2c36a544bd5f73e9213477a
|
||||
lib/codeql/rust/elements/internal/RecordFieldListImpl.qll 1fa89578a1e27a7d6dd84c1cabbff08b38a3160ea0864c7be660984cf96fda1e 9fa6a775f0609f557548168424f02d068abb3978ba20a716c21619e904bd99f3
|
||||
lib/codeql/rust/elements/internal/RecordPatConstructor.qll a5507e0db7cb297c74faa9d571e613799d7b3327584e4696d1d5c219d1ea84ba aa5c8042a88e99dca09a6ea7775bd6963825a3c2dd5d61f118dbbc57a336c4a1
|
||||
lib/codeql/rust/elements/internal/RecordPatFieldConstructor.qll 6e1880ed05401b39c1e5e1a4eedb0a8a18c857aeb79c44c812cdc879eb3af1f4 1f7a5a2d4df22f7d7479fe348665d8a1411de47f8cc5b95b30ba4c3490ed8f61
|
||||
lib/codeql/rust/elements/internal/RecordPatFieldImpl.qll 04bc31b857c8250096d9d1bf3fad1e556a28d83bb3f3b48a3f049048d1e6785f 5853105e55650d05a4b196f17b89baf12b898df0a010e4f88289ce01d16a0379
|
||||
lib/codeql/rust/elements/internal/RecordPatFieldListConstructor.qll b8f0ef9b75ffe6be6ce7e601d528f0a1b871123c63e39cead3fd13b8bd4f54b7 166f07c708ab8b3de6bfaf193bac93081b2aacad046aa86de7441085dd20a8c5
|
||||
lib/codeql/rust/elements/internal/RecordPatFieldListImpl.qll 2d1dd9910480eb65c59fcef2e1576ce639be85c35d90e4bce721ce22ec742ba3 1e788a2d7d00e9f96dbf7e93d3a18d5bfb4d7749194ff8e9810e9053fa88a94b
|
||||
lib/codeql/rust/elements/internal/RefExprConstructor.qll 9ad08c0f3d980a56a2af8857cb84db589941d20ab3ae5c8ece004ccaccaaf950 4cac3ace31b7ed77a72e989fce9cdbae2247f03c28a3f0c50d67385d02c7f193
|
||||
@@ -413,7 +411,6 @@ lib/codeql/rust/elements/internal/TryExprImpl.qll 00635685db339557cfb89fad0bfc13
|
||||
lib/codeql/rust/elements/internal/TupleExprConstructor.qll 71c38786723225d3d90399b8a085b2b2664c62256654db9e1288fadd56745b9d 639ad70b49ebadc027127fbdc9de14e5180169a4285908233bc38ccac6f14110
|
||||
lib/codeql/rust/elements/internal/TupleExprImpl.qll 23a0e4367fbcfcec3e2cf4a429f329a222b399c6729dd60f7ea42550273a6132 615f3b4897fdcbfddcf5c58e6edd64bf6e395923af89cc4e2a336099168bb6ad
|
||||
lib/codeql/rust/elements/internal/TupleFieldConstructor.qll 89d3cf2540235044ed5a89706cfbdebc5cdf9180fd5b6d3376c79a1b2c0430c0 16861fe089aac8e42a5a90d81dd48d5015391d0a06c78ca02bd876d65378699f
|
||||
lib/codeql/rust/elements/internal/TupleFieldImpl.qll f86d5df1598b9276bf2d6cb21a1daec8b27cef7a98db2b2ce91e4e0f9b3870ec b6db10ba5f6351bc1874daf47047ba74ada8b0011f355a44b6d529a1e9003657
|
||||
lib/codeql/rust/elements/internal/TupleFieldListConstructor.qll 4335ba2061b6e4968db9ec05c0b4d3e6a564db89a2df69e036f317672a7900b1 0b8dded875dbf696cf588e8c21acc27332a2ff66ced7bfabdfc1ad621991f888
|
||||
lib/codeql/rust/elements/internal/TupleFieldListImpl.qll ec17ddfe1d03210b7737f9c96b9d4003a91e504f3174e4b0eeba8a429eda2d6e ef6fb91c0d6b14b4d6bea6e516d5425d51d490956075ef314c72da59bfff5621
|
||||
lib/codeql/rust/elements/internal/TuplePatConstructor.qll 2a5e83ad5b8713a732e610128aeddf14e9b344402d6cf30ff0b43aa39e838418 6d467f7141307523994f03ed7b8e8b1a5bcf860963c9934b90e54582ea38096a
|
||||
|
||||
3
rust/ql/.gitattributes
generated
vendored
3
rust/ql/.gitattributes
generated
vendored
@@ -370,12 +370,10 @@
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordExprFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RecordPatFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RefExprConstructor.qll linguist-generated
|
||||
@@ -415,7 +413,6 @@
|
||||
/lib/codeql/rust/elements/internal/TupleExprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleExprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldListConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TupleFieldListImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/TuplePatConstructor.qll linguist-generated
|
||||
|
||||
@@ -265,12 +265,8 @@ final class RecordPatCfgNode extends Nodes::RecordPatCfgNode {
|
||||
PatCfgNode getFieldPat(string field) {
|
||||
exists(RecordPatField rpf |
|
||||
rpf = node.getRecordPatFieldList().getAField() and
|
||||
any(ChildMapping mapping).hasCfgChild(node, rpf.getPat(), this, result)
|
||||
|
|
||||
field = rpf.getNameRef().getText()
|
||||
or
|
||||
not rpf.hasNameRef() and
|
||||
field = result.(IdentPatCfgNode).getName().getText()
|
||||
any(ChildMapping mapping).hasCfgChild(node, rpf.getPat(), this, result) and
|
||||
field = rpf.getFieldName()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,8 +25,6 @@ module DataFlow {
|
||||
|
||||
final class Content = DataFlowImpl::Content;
|
||||
|
||||
final class VariantContent = DataFlowImpl::VariantContent;
|
||||
|
||||
final class ContentSet = DataFlowImpl::ContentSet;
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,7 +14,6 @@ private import codeql.rust.controlflow.CfgNodes
|
||||
private import codeql.rust.dataflow.Ssa
|
||||
private import codeql.rust.dataflow.FlowSummary
|
||||
private import FlowSummaryImpl as FlowSummaryImpl
|
||||
private import codeql.rust.elements.internal.PathResolution as PathResolution
|
||||
|
||||
/**
|
||||
* A return kind. A return kind describes how a value can be returned from a
|
||||
@@ -661,7 +660,7 @@ private module VariantInLib {
|
||||
}
|
||||
|
||||
/** A tuple variant from library code. */
|
||||
class VariantInLibTupleFieldContent extends VariantContent, TVariantInLibTupleFieldContent {
|
||||
class VariantInLibTupleFieldContent extends Content, TVariantInLibTupleFieldContent {
|
||||
private VariantInLib::VariantInLib v;
|
||||
private int pos_;
|
||||
|
||||
@@ -740,82 +739,73 @@ abstract class Content extends TContent {
|
||||
abstract Location getLocation();
|
||||
}
|
||||
|
||||
/**
|
||||
* A variant of an `enum`. In addition to the variant itself, this also includes the
|
||||
* position (for tuple variants) or the field name (for record variants).
|
||||
*/
|
||||
abstract class VariantContent extends Content { }
|
||||
|
||||
private TupleField getVariantTupleField(Variant v, int i) {
|
||||
result = v.getFieldList().(TupleFieldList).getField(i)
|
||||
/** A field belonging to either a variant or a struct. */
|
||||
abstract class FieldContent extends Content {
|
||||
/** Gets an access to this field. */
|
||||
pragma[nomagic]
|
||||
abstract FieldExprCfgNode getAnAccess();
|
||||
}
|
||||
|
||||
/** A tuple variant. */
|
||||
private class VariantTupleFieldContent extends VariantContent, TVariantTupleFieldContent {
|
||||
private Variant v;
|
||||
private int pos_;
|
||||
/** A tuple field belonging to either a variant or a struct. */
|
||||
class TupleFieldContent extends FieldContent, TTupleFieldContent {
|
||||
private TupleField field;
|
||||
|
||||
VariantTupleFieldContent() { this = TVariantTupleFieldContent(v, pos_) }
|
||||
TupleFieldContent() { this = TTupleFieldContent(field) }
|
||||
|
||||
Variant getVariant(int pos) { result = v and pos = pos_ }
|
||||
predicate isVariantField(Variant v, int pos) { field.isVariantField(v, pos) }
|
||||
|
||||
predicate isStructField(Struct s, int pos) { field.isStructField(s, pos) }
|
||||
|
||||
override FieldExprCfgNode getAnAccess() { none() } // TODO
|
||||
|
||||
final override string toString() {
|
||||
exists(string name |
|
||||
name = v.getName().getText() and
|
||||
exists(Variant v, int pos, string vname |
|
||||
this.isVariantField(v, pos) and
|
||||
vname = v.getName().getText() and
|
||||
// only print indices when the arity is > 1
|
||||
if exists(getVariantTupleField(v, 1)) then result = name + "(" + pos_ + ")" else result = name
|
||||
if exists(v.getTupleField(1)) then result = vname + "(" + pos + ")" else result = vname
|
||||
)
|
||||
or
|
||||
exists(Struct s, int pos, string sname |
|
||||
this.isStructField(s, pos) and
|
||||
sname = s.getName().getText() and
|
||||
// only print indices when the arity is > 1
|
||||
if exists(s.getTupleField(1)) then result = sname + "(" + pos + ")" else result = sname
|
||||
)
|
||||
}
|
||||
|
||||
final override Location getLocation() { result = getVariantTupleField(v, pos_).getLocation() }
|
||||
final override Location getLocation() { result = field.getLocation() }
|
||||
}
|
||||
|
||||
private RecordField getVariantRecordField(Variant v, string field) {
|
||||
result = v.getFieldList().(RecordFieldList).getAField() and
|
||||
field = result.getName().getText()
|
||||
}
|
||||
/** A record field belonging to either a variant or a struct. */
|
||||
class RecordFieldContent extends FieldContent, TRecordFieldContent {
|
||||
private RecordField field;
|
||||
|
||||
/** A record variant. */
|
||||
private class VariantRecordFieldContent extends VariantContent, TVariantRecordFieldContent {
|
||||
private Variant v;
|
||||
private string field_;
|
||||
RecordFieldContent() { this = TRecordFieldContent(field) }
|
||||
|
||||
VariantRecordFieldContent() { this = TVariantRecordFieldContent(v, field_) }
|
||||
predicate isVariantField(Variant v, string name) { field.isVariantField(v, name) }
|
||||
|
||||
Variant getVariant(string field) { result = v and field = field_ }
|
||||
predicate isStructField(Struct s, string name) { field.isStructField(s, name) }
|
||||
|
||||
override FieldExprCfgNode getAnAccess() { none() } // TODO
|
||||
|
||||
final override string toString() {
|
||||
exists(string name |
|
||||
name = v.getName().getText() and
|
||||
exists(Variant v, string name, string vname |
|
||||
this.isVariantField(v, name) and
|
||||
vname = v.getName().getText() and
|
||||
// only print field when the arity is > 1
|
||||
if strictcount(string f | exists(getVariantRecordField(v, f))) > 1
|
||||
then result = name + "{" + field_ + "}"
|
||||
else result = name
|
||||
if strictcount(v.getRecordField(_)) > 1 then result = vname + "." + name else result = vname
|
||||
)
|
||||
or
|
||||
exists(Struct s, string name, string sname |
|
||||
this.isStructField(s, name) and
|
||||
sname = s.getName().getText() and
|
||||
// only print field when the arity is > 1
|
||||
if strictcount(s.getRecordField(_)) > 1 then result = sname + "." + name else result = sname
|
||||
)
|
||||
}
|
||||
|
||||
final override Location getLocation() {
|
||||
result = getVariantRecordField(v, field_).getName().getLocation()
|
||||
}
|
||||
}
|
||||
|
||||
/** Content stored in a field on a struct. */
|
||||
class StructFieldContent extends Content, TStructFieldContent {
|
||||
private Struct s;
|
||||
private string field_;
|
||||
|
||||
StructFieldContent() { this = TStructFieldContent(s, field_) }
|
||||
|
||||
Struct getStruct(string field) { result = s and field = field_ }
|
||||
|
||||
override string toString() { result = s.getName().getText() + "." + field_.toString() }
|
||||
|
||||
override Location getLocation() {
|
||||
exists(Name f | f = s.getFieldList().(RecordFieldList).getAField().getName() |
|
||||
f.getText() = field_ and
|
||||
result = f.getLocation()
|
||||
)
|
||||
}
|
||||
final override Location getLocation() { result = field.getLocation() }
|
||||
}
|
||||
|
||||
/** A captured variable. */
|
||||
@@ -859,13 +849,18 @@ final class ElementContent extends Content, TElementContent {
|
||||
* NOTE: Unlike `struct`s and `enum`s tuples are structural and not nominal,
|
||||
* hence we don't store a canonical path for them.
|
||||
*/
|
||||
final class TuplePositionContent extends Content, TTuplePositionContent {
|
||||
final class TuplePositionContent extends FieldContent, TTuplePositionContent {
|
||||
private int pos;
|
||||
|
||||
TuplePositionContent() { this = TTuplePositionContent(pos) }
|
||||
|
||||
int getPosition() { result = pos }
|
||||
|
||||
override FieldExprCfgNode getAnAccess() {
|
||||
// TODO: limit to tuple types
|
||||
result.getNameRef().getText().toInt() = pos
|
||||
}
|
||||
|
||||
override string toString() { result = "tuple." + pos.toString() }
|
||||
|
||||
override Location getLocation() { result instanceof EmptyLocation }
|
||||
@@ -901,11 +896,6 @@ final class FunctionCallReturnContent extends Content, TFunctionCallReturnConten
|
||||
override Location getLocation() { result instanceof EmptyLocation }
|
||||
}
|
||||
|
||||
/** Holds if `access` indexes a tuple at an index corresponding to `c`. */
|
||||
private predicate fieldTuplePositionContent(FieldExprCfgNode access, TuplePositionContent c) {
|
||||
access.getNameRef().getText().toInt() = c.getPosition()
|
||||
}
|
||||
|
||||
/** A value that represents a set of `Content`s. */
|
||||
abstract class ContentSet extends TContentSet {
|
||||
/** Gets a textual representation of this element. */
|
||||
@@ -1128,23 +1118,6 @@ module RustDataFlow implements InputSig<Location> {
|
||||
node2.(Node::FlowSummaryNode).getSummaryNode())
|
||||
}
|
||||
|
||||
/** Gets the item that `p` resolves to, if any. */
|
||||
private PathResolution::ItemNode resolvePath(PathAstNode p) {
|
||||
result = PathResolution::resolvePath(p.getPath())
|
||||
}
|
||||
|
||||
/** Holds if `p` destructs an enum variant `v`. */
|
||||
pragma[nomagic]
|
||||
private predicate tupleVariantDestruction(TupleStructPat p, Variant v) { v = resolvePath(p) }
|
||||
|
||||
/** Holds if `p` destructs an enum variant `v`. */
|
||||
pragma[nomagic]
|
||||
private predicate recordVariantDestruction(RecordPat p, Variant v) { v = resolvePath(p) }
|
||||
|
||||
/** Holds if `p` destructs a struct `s`. */
|
||||
pragma[nomagic]
|
||||
private predicate structDestruction(RecordPat p, Struct s) { s = resolvePath(p) }
|
||||
|
||||
/**
|
||||
* Holds if data can flow from `node1` to `node2` via a read of `c`. Thus,
|
||||
* `node1` references an object with a content `c.getAReadContent()` whose
|
||||
@@ -1156,7 +1129,7 @@ module RustDataFlow implements InputSig<Location> {
|
||||
pat = node1.asPat() and
|
||||
node2.asPat() = pat.getField(pos)
|
||||
|
|
||||
tupleVariantDestruction(pat.getPat(), c.(VariantTupleFieldContent).getVariant(pos))
|
||||
c = TTupleFieldContent(pat.getTupleStructPat().getTupleField(pos))
|
||||
or
|
||||
VariantInLib::tupleVariantCanonicalDestruction(pat.getPat(), c, pos)
|
||||
)
|
||||
@@ -1169,13 +1142,7 @@ module RustDataFlow implements InputSig<Location> {
|
||||
or
|
||||
exists(RecordPatCfgNode pat, string field |
|
||||
pat = node1.asPat() and
|
||||
(
|
||||
// Pattern destructs a struct-like variant.
|
||||
recordVariantDestruction(pat.getPat(), c.(VariantRecordFieldContent).getVariant(field))
|
||||
or
|
||||
// Pattern destructs a struct.
|
||||
structDestruction(pat.getPat(), c.(StructFieldContent).getStruct(field))
|
||||
) and
|
||||
c = TRecordFieldContent(pat.getRecordPat().getRecordField(field)) and
|
||||
node2.asPat() = pat.getFieldPat(field)
|
||||
)
|
||||
or
|
||||
@@ -1183,11 +1150,9 @@ module RustDataFlow implements InputSig<Location> {
|
||||
node1.asPat().(RefPatCfgNode).getPat() = node2.asPat()
|
||||
or
|
||||
exists(FieldExprCfgNode access |
|
||||
// Read of a tuple entry
|
||||
fieldTuplePositionContent(access, c) and
|
||||
// TODO: Handle read of a struct field.
|
||||
node1.asExpr() = access.getExpr() and
|
||||
node2.asExpr() = access
|
||||
node2.asExpr() = access and
|
||||
access = c.(FieldContent).getAnAccess()
|
||||
)
|
||||
or
|
||||
exists(IndexExprCfgNode arr |
|
||||
@@ -1236,49 +1201,29 @@ module RustDataFlow implements InputSig<Location> {
|
||||
cs, node2.(Node::FlowSummaryNode).getSummaryNode())
|
||||
}
|
||||
|
||||
/** Holds if `ce` constructs an enum value of type `v`. */
|
||||
pragma[nomagic]
|
||||
private predicate tupleVariantConstruction(CallExpr ce, Variant v) {
|
||||
v = resolvePath(ce.getFunction().(PathExpr))
|
||||
}
|
||||
|
||||
/** Holds if `re` constructs an enum value of type `v`. */
|
||||
pragma[nomagic]
|
||||
private predicate recordVariantConstruction(RecordExpr re, Variant v) { v = resolvePath(re) }
|
||||
|
||||
/** Holds if `re` constructs a struct value of type `s`. */
|
||||
pragma[nomagic]
|
||||
private predicate structConstruction(RecordExpr re, Struct s) { s = resolvePath(re) }
|
||||
|
||||
private predicate tupleAssignment(Node node1, Node node2, TuplePositionContent c) {
|
||||
private predicate fieldAssignment(Node node1, Node node2, FieldContent c) {
|
||||
exists(AssignmentExprCfgNode assignment, FieldExprCfgNode access |
|
||||
assignment.getLhs() = access and
|
||||
fieldTuplePositionContent(access, c) and
|
||||
node1.asExpr() = assignment.getRhs() and
|
||||
node2.asExpr() = access.getExpr()
|
||||
node2.asExpr() = access.getExpr() and
|
||||
access = c.getAnAccess()
|
||||
)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate storeContentStep(Node node1, Content c, Node node2) {
|
||||
exists(CallExprCfgNode call, int pos |
|
||||
node1.asExpr() = call.getArgument(pos) and
|
||||
node1.asExpr() = call.getArgument(pragma[only_bind_into](pos)) and
|
||||
node2.asExpr() = call
|
||||
|
|
||||
tupleVariantConstruction(call.getCallExpr(), c.(VariantTupleFieldContent).getVariant(pos))
|
||||
c = TTupleFieldContent(call.getCallExpr().getTupleField(pragma[only_bind_into](pos)))
|
||||
or
|
||||
VariantInLib::tupleVariantCanonicalConstruction(call.getCallExpr(), c, pos)
|
||||
)
|
||||
or
|
||||
exists(RecordExprCfgNode re, string field |
|
||||
(
|
||||
// Expression is for a struct-like enum variant.
|
||||
recordVariantConstruction(re.getRecordExpr(),
|
||||
c.(VariantRecordFieldContent).getVariant(field))
|
||||
or
|
||||
// Expression is for a struct.
|
||||
structConstruction(re.getRecordExpr(), c.(StructFieldContent).getStruct(field))
|
||||
) and
|
||||
c = TRecordFieldContent(re.getRecordExpr().getRecordField(field)) and
|
||||
node1.asExpr() = re.getFieldExpr(field) and
|
||||
node2.asExpr() = re
|
||||
)
|
||||
@@ -1295,7 +1240,7 @@ module RustDataFlow implements InputSig<Location> {
|
||||
node2.asExpr().(ArrayListExprCfgNode).getAnExpr()
|
||||
]
|
||||
or
|
||||
tupleAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
|
||||
fieldAssignment(node1, node2.(PostUpdateNode).getPreUpdateNode(), c)
|
||||
or
|
||||
exists(AssignmentExprCfgNode assignment, IndexExprCfgNode index |
|
||||
c instanceof ElementContent and
|
||||
@@ -1338,7 +1283,7 @@ module RustDataFlow implements InputSig<Location> {
|
||||
* in `x.f = newValue`.
|
||||
*/
|
||||
predicate clearsContent(Node n, ContentSet cs) {
|
||||
tupleAssignment(_, n, cs.(SingletonContentSet).getContent())
|
||||
fieldAssignment(_, n, cs.(SingletonContentSet).getContent())
|
||||
or
|
||||
FlowSummaryImpl::Private::Steps::summaryClearsContent(n.(Node::FlowSummaryNode).getSummaryNode(),
|
||||
cs)
|
||||
@@ -1644,10 +1589,10 @@ private module Cached {
|
||||
|
||||
cached
|
||||
newtype TContent =
|
||||
TVariantTupleFieldContent(Variant v, int pos) { exists(getVariantTupleField(v, pos)) } or
|
||||
TTupleFieldContent(TupleField field) or
|
||||
TRecordFieldContent(RecordField field) or
|
||||
// TODO: Remove once library types are extracted
|
||||
TVariantInLibTupleFieldContent(VariantInLib::VariantInLib v, int pos) { pos = v.getAPosition() } or
|
||||
TVariantRecordFieldContent(Variant v, string field) { exists(getVariantRecordField(v, field)) } or
|
||||
TElementContent() or
|
||||
TTuplePositionContent(int pos) {
|
||||
pos in [0 .. max([
|
||||
@@ -1656,9 +1601,6 @@ private module Cached {
|
||||
]
|
||||
)]
|
||||
} or
|
||||
TStructFieldContent(Struct s, string field) {
|
||||
field = s.getFieldList().(RecordFieldList).getAField().getName().getText()
|
||||
} or
|
||||
TFunctionCallReturnContent() or
|
||||
TFunctionCallArgumentContent(int pos) {
|
||||
pos in [0 .. any(CallExpr c).getArgList().getNumberOfArgs() - 1]
|
||||
|
||||
@@ -61,18 +61,26 @@ module Input implements InputSig<Location, RustDataFlow> {
|
||||
|
||||
string encodeContent(ContentSet cs, string arg) {
|
||||
exists(Content c | cs = TSingletonContentSet(c) |
|
||||
exists(Variant v | result = "Variant" |
|
||||
exists(int pos |
|
||||
c = TVariantTupleFieldContent(v, pos) and
|
||||
// TODO: calculate in QL
|
||||
arg = v.getExtendedCanonicalPath() + "(" + pos + ")"
|
||||
)
|
||||
exists(Addressable a, int pos |
|
||||
// TODO: calculate in QL
|
||||
arg = a.getExtendedCanonicalPath() + "(" + pos + ")"
|
||||
|
|
||||
result = "Struct" and
|
||||
c.(TupleFieldContent).isStructField(a, pos)
|
||||
or
|
||||
exists(string field |
|
||||
// TODO: calculate in QL
|
||||
c = TVariantRecordFieldContent(v, field) and
|
||||
arg = v.getExtendedCanonicalPath() + "::" + field
|
||||
)
|
||||
result = "Variant" and
|
||||
c.(TupleFieldContent).isVariantField(a, pos)
|
||||
)
|
||||
or
|
||||
exists(Addressable a, string field |
|
||||
// TODO: calculate in QL
|
||||
arg = a.getExtendedCanonicalPath() + "::" + field
|
||||
|
|
||||
result = "Struct" and
|
||||
c.(RecordFieldContent).isStructField(a, field)
|
||||
or
|
||||
result = "Variant" and
|
||||
c.(RecordFieldContent).isVariantField(a, field)
|
||||
)
|
||||
or
|
||||
result = "Variant" and
|
||||
@@ -81,13 +89,6 @@ module Input implements InputSig<Location, RustDataFlow> {
|
||||
arg = v.getExtendedCanonicalPath() + "(" + v.getPosition() + ")"
|
||||
)
|
||||
or
|
||||
exists(Struct s, string field |
|
||||
result = "Struct" and
|
||||
c = TStructFieldContent(s, field) and
|
||||
// TODO: calculate in QL
|
||||
arg = s.getExtendedCanonicalPath() + "::" + field
|
||||
)
|
||||
or
|
||||
result = "Element" and
|
||||
c = TElementContent() and
|
||||
arg = ""
|
||||
|
||||
@@ -12,6 +12,9 @@ private import codeql.rust.elements.PathExpr
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
private import PathResolution as PathResolution
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A function call expression. For example:
|
||||
@@ -24,5 +27,25 @@ module Impl {
|
||||
*/
|
||||
class CallExpr extends Generated::CallExpr {
|
||||
override string toString() { result = this.getFunction().toAbbreviatedString() + "(...)" }
|
||||
|
||||
pragma[nomagic]
|
||||
private PathResolution::ItemNode getResolvedFunction(int pos) {
|
||||
result = PathResolution::resolvePath(this.getFunction().(PathExpr).getPath()) and
|
||||
exists(this.getArgList().getArg(pos))
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the tuple field that matches the `pos`th argument of this call, if any.
|
||||
*
|
||||
* For example, if this call is `Option::Some(42)`, then the tuple field matching
|
||||
* `42` is the first field of `Option::Some`.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
TupleField getTupleField(int pos) {
|
||||
exists(PathResolution::ItemNode i | i = this.getResolvedFunction(pos) |
|
||||
result.isStructField(i, pos) or
|
||||
result.isVariantField(i, pos)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ abstract private class ImplOrTraitItemNode extends ItemNode {
|
||||
private class ImplItemNode extends ImplOrTraitItemNode instanceof Impl {
|
||||
override string getName() { result = "(impl)" }
|
||||
|
||||
override Visibility getVisibility() { none() }
|
||||
override Visibility getVisibility() { result = Impl.super.getVisibility() }
|
||||
}
|
||||
|
||||
private class MacroCallItemNode extends ItemNode instanceof MacroCall {
|
||||
|
||||
@@ -11,6 +11,9 @@ private import codeql.rust.elements.internal.generated.RecordExpr
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
private import PathResolution as PathResolution
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A record expression. For example:
|
||||
@@ -23,5 +26,17 @@ module Impl {
|
||||
*/
|
||||
class RecordExpr extends Generated::RecordExpr {
|
||||
override string toString() { result = this.getPath().toString() + " {...}" }
|
||||
|
||||
/** Gets the record field that matches the `name` field of this record expression. */
|
||||
pragma[nomagic]
|
||||
RecordField getRecordField(string name) {
|
||||
exists(PathResolution::ItemNode i |
|
||||
i = PathResolution::resolvePath(this.getPath()) and
|
||||
name = this.getRecordExprFieldList().getAField().getNameRef().getText()
|
||||
|
|
||||
result.isStructField(i, name) or
|
||||
result.isVariantField(i, name)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// generated by codegen, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `RecordField`.
|
||||
*
|
||||
@@ -12,11 +11,20 @@ private import codeql.rust.elements.internal.generated.RecordField
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A RecordField. For example:
|
||||
* ```rust
|
||||
* todo!()
|
||||
* ```
|
||||
*/
|
||||
class RecordField extends Generated::RecordField { }
|
||||
class RecordField extends Generated::RecordField {
|
||||
/** Holds if this record field is named `name` and belongs to the variant `v`. */
|
||||
predicate isVariantField(Variant v, string name) { this = v.getRecordField(name) }
|
||||
|
||||
/** Holds if this record field is named `name` and belongs to the struct `s`. */
|
||||
predicate isStructField(Struct s, string name) { this = s.getRecordField(name) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// generated by codegen, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `RecordPatField`.
|
||||
*
|
||||
@@ -12,11 +11,31 @@ private import codeql.rust.elements.internal.generated.RecordPatField
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A field in a record pattern. For example `a: 1` in:
|
||||
* ```rust
|
||||
* let Foo { a: 1, b: 2 } = foo;
|
||||
* ```
|
||||
*/
|
||||
class RecordPatField extends Generated::RecordPatField { }
|
||||
class RecordPatField extends Generated::RecordPatField {
|
||||
/**
|
||||
* Gets the name of the field. This includes the case when shorthand syntax is used:
|
||||
*
|
||||
* ```rust
|
||||
* match foo {
|
||||
* Foo { x: a, .. } => ..., // field name is `x`
|
||||
* Bar { y, .. } => ... // field name is `y`
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
string getFieldName() {
|
||||
result = this.getNameRef().getText()
|
||||
or
|
||||
not this.hasNameRef() and
|
||||
result = this.getPat().(IdentPat).getName().getText()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ private import codeql.rust.elements.internal.generated.RecordPat
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
private import PathResolution as PathResolution
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A record pattern. For example:
|
||||
@@ -23,5 +26,17 @@ module Impl {
|
||||
*/
|
||||
class RecordPat extends Generated::RecordPat {
|
||||
override string toString() { result = this.getPath().toAbbreviatedString() + " {...}" }
|
||||
|
||||
/** Gets the record field that matches the `name` pattern of this pattern. */
|
||||
pragma[nomagic]
|
||||
RecordField getRecordField(string name) {
|
||||
exists(PathResolution::ItemNode i |
|
||||
i = PathResolution::resolvePath(this.getPath()) and
|
||||
name = this.getRecordPatFieldList().getAField().getFieldName()
|
||||
|
|
||||
result.isStructField(i, name) or
|
||||
result.isVariantField(i, name)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
|
||||
private import rust
|
||||
private import codeql.rust.elements.internal.generated.Struct
|
||||
|
||||
/**
|
||||
@@ -20,5 +21,16 @@ module Impl {
|
||||
*/
|
||||
class Struct extends Generated::Struct {
|
||||
override string toString() { result = "struct " + this.getName().getText() }
|
||||
|
||||
/** Gets the record field named `name`, if any. */
|
||||
pragma[nomagic]
|
||||
RecordField getRecordField(string name) {
|
||||
result = this.getFieldList().(RecordFieldList).getAField() and
|
||||
result.getName().getText() = name
|
||||
}
|
||||
|
||||
/** Gets the `i`th tuple field, if any. */
|
||||
pragma[nomagic]
|
||||
TupleField getTupleField(int i) { result = this.getFieldList().(TupleFieldList).getField(i) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// generated by codegen, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `TupleField`.
|
||||
*
|
||||
@@ -12,11 +11,20 @@ private import codeql.rust.elements.internal.generated.TupleField
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A TupleField. For example:
|
||||
* ```rust
|
||||
* todo!()
|
||||
* ```
|
||||
*/
|
||||
class TupleField extends Generated::TupleField { }
|
||||
class TupleField extends Generated::TupleField {
|
||||
/** Holds if this tuple field is the `pos`th field of variant `v`. */
|
||||
predicate isVariantField(Variant v, int pos) { this = v.getTupleField(pos) }
|
||||
|
||||
/** Holds if this tuple field is the `pos`th field of struct `s`. */
|
||||
predicate isStructField(Struct s, int pos) { this = s.getTupleField(pos) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ private import codeql.rust.elements.internal.generated.TupleStructPat
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import rust
|
||||
private import PathResolution as PathResolution
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* A tuple struct pattern. For example:
|
||||
@@ -24,5 +27,20 @@ module Impl {
|
||||
*/
|
||||
class TupleStructPat extends Generated::TupleStructPat {
|
||||
override string toString() { result = this.getPath().toAbbreviatedString() + "(...)" }
|
||||
|
||||
pragma[nomagic]
|
||||
private PathResolution::ItemNode getResolvedPath(int pos) {
|
||||
result = PathResolution::resolvePath(this.getPath()) and
|
||||
exists(this.getField(pragma[only_bind_into](pos)))
|
||||
}
|
||||
|
||||
/** Gets the tuple field that matches the `pos`th pattern of this pattern. */
|
||||
pragma[nomagic]
|
||||
TupleField getTupleField(int pos) {
|
||||
exists(PathResolution::ItemNode i | i = this.getResolvedPath(pos) |
|
||||
result.isStructField(i, pos) or
|
||||
result.isVariantField(i, pos)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
|
||||
private import rust
|
||||
private import codeql.rust.elements.internal.generated.Variant
|
||||
|
||||
/**
|
||||
@@ -20,5 +21,16 @@ module Impl {
|
||||
*/
|
||||
class Variant extends Generated::Variant {
|
||||
override string toString() { result = this.getName().getText() }
|
||||
|
||||
/** Gets the record field named `name`, if any. */
|
||||
pragma[nomagic]
|
||||
RecordField getRecordField(string name) {
|
||||
result = this.getFieldList().(RecordFieldList).getAField() and
|
||||
result.getName().getText() = name
|
||||
}
|
||||
|
||||
/** Gets the `i`th tuple field, if any. */
|
||||
pragma[nomagic]
|
||||
TupleField getTupleField(int i) { result = this.getFieldList().(TupleFieldList).getField(i) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ module ModelGeneratorInput implements ModelGeneratorInputSig<Location, RustDataF
|
||||
predicate isAdditionalContentFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { none() }
|
||||
|
||||
predicate isField(DataFlow::ContentSet c) {
|
||||
c.(SingletonContentSet).getContent() instanceof StructFieldContent
|
||||
c.(SingletonContentSet).getContent() instanceof FieldContent
|
||||
}
|
||||
|
||||
predicate isCallback(DataFlow::ContentSet cs) {
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
identityLocalStep
|
||||
| main.rs:412:9:412:20 | phi(default_name) | Node steps to itself |
|
||||
| main.rs:427:9:427:20 | phi(default_name) | Node steps to itself |
|
||||
|
||||
@@ -185,318 +185,332 @@ localStep
|
||||
| main.rs:185:13:185:13 | [SSA] z | main.rs:189:18:189:18 | z | |
|
||||
| main.rs:185:13:185:13 | z | main.rs:185:13:185:13 | [SSA] z | |
|
||||
| main.rs:186:14:190:9 | { ... } | main.rs:182:5:191:5 | match p { ... } | |
|
||||
| main.rs:198:9:198:10 | [SSA] s1 | main.rs:200:11:200:12 | s1 | |
|
||||
| main.rs:198:9:198:10 | s1 | main.rs:198:9:198:10 | [SSA] s1 | |
|
||||
| main.rs:198:14:198:37 | ...::Some(...) | main.rs:198:9:198:10 | s1 | |
|
||||
| main.rs:199:9:199:10 | [SSA] s2 | main.rs:204:11:204:12 | s2 | |
|
||||
| main.rs:199:9:199:10 | s2 | main.rs:199:9:199:10 | [SSA] s2 | |
|
||||
| main.rs:199:14:199:28 | ...::Some(...) | main.rs:199:9:199:10 | s2 | |
|
||||
| main.rs:200:11:200:12 | s1 | main.rs:201:9:201:23 | ...::Some(...) | |
|
||||
| main.rs:200:11:200:12 | s1 | main.rs:202:9:202:20 | ...::None | |
|
||||
| main.rs:201:22:201:22 | [SSA] n | main.rs:201:33:201:33 | n | |
|
||||
| main.rs:201:22:201:22 | n | main.rs:201:22:201:22 | [SSA] n | |
|
||||
| main.rs:201:28:201:34 | sink(...) | main.rs:200:5:203:5 | match s1 { ... } | |
|
||||
| main.rs:202:25:202:31 | sink(...) | main.rs:200:5:203:5 | match s1 { ... } | |
|
||||
| main.rs:204:5:207:5 | match s2 { ... } | main.rs:197:37:208:1 | { ... } | |
|
||||
| main.rs:204:11:204:12 | s2 | main.rs:205:9:205:23 | ...::Some(...) | |
|
||||
| main.rs:204:11:204:12 | s2 | main.rs:206:9:206:20 | ...::None | |
|
||||
| main.rs:205:22:205:22 | [SSA] n | main.rs:205:33:205:33 | n | |
|
||||
| main.rs:205:22:205:22 | n | main.rs:205:22:205:22 | [SSA] n | |
|
||||
| main.rs:205:28:205:34 | sink(...) | main.rs:204:5:207:5 | match s2 { ... } | |
|
||||
| main.rs:206:25:206:31 | sink(...) | main.rs:204:5:207:5 | match s2 { ... } | |
|
||||
| main.rs:211:9:211:10 | [SSA] s1 | main.rs:213:11:213:12 | s1 | |
|
||||
| main.rs:211:9:211:10 | s1 | main.rs:211:9:211:10 | [SSA] s1 | |
|
||||
| main.rs:211:14:211:29 | Some(...) | main.rs:211:9:211:10 | s1 | |
|
||||
| main.rs:212:9:212:10 | [SSA] s2 | main.rs:217:11:217:12 | s2 | |
|
||||
| main.rs:212:9:212:10 | s2 | main.rs:212:9:212:10 | [SSA] s2 | |
|
||||
| main.rs:212:14:212:20 | Some(...) | main.rs:212:9:212:10 | s2 | |
|
||||
| main.rs:213:11:213:12 | s1 | main.rs:214:9:214:15 | Some(...) | |
|
||||
| main.rs:213:11:213:12 | s1 | main.rs:215:9:215:12 | None | |
|
||||
| main.rs:214:14:214:14 | [SSA] n | main.rs:214:25:214:25 | n | |
|
||||
| main.rs:214:14:214:14 | n | main.rs:214:14:214:14 | [SSA] n | |
|
||||
| main.rs:214:20:214:26 | sink(...) | main.rs:213:5:216:5 | match s1 { ... } | |
|
||||
| main.rs:215:17:215:23 | sink(...) | main.rs:213:5:216:5 | match s1 { ... } | |
|
||||
| main.rs:217:5:220:5 | match s2 { ... } | main.rs:210:39:221:1 | { ... } | |
|
||||
| main.rs:217:11:217:12 | s2 | main.rs:218:9:218:15 | Some(...) | |
|
||||
| main.rs:217:11:217:12 | s2 | main.rs:219:9:219:12 | None | |
|
||||
| main.rs:218:14:218:14 | [SSA] n | main.rs:218:25:218:25 | n | |
|
||||
| main.rs:218:14:218:14 | n | main.rs:218:14:218:14 | [SSA] n | |
|
||||
| main.rs:218:20:218:26 | sink(...) | main.rs:217:5:220:5 | match s2 { ... } | |
|
||||
| main.rs:219:17:219:23 | sink(...) | main.rs:217:5:220:5 | match s2 { ... } | |
|
||||
| main.rs:224:9:224:10 | [SSA] s1 | main.rs:225:10:225:11 | s1 | |
|
||||
| main.rs:224:9:224:10 | s1 | main.rs:224:9:224:10 | [SSA] s1 | |
|
||||
| main.rs:224:14:224:29 | Some(...) | main.rs:224:9:224:10 | s1 | |
|
||||
| main.rs:229:9:229:10 | [SSA] s1 | main.rs:230:10:230:11 | s1 | |
|
||||
| main.rs:229:9:229:10 | s1 | main.rs:229:9:229:10 | [SSA] s1 | |
|
||||
| main.rs:229:14:229:29 | Some(...) | main.rs:229:9:229:10 | s1 | |
|
||||
| main.rs:232:9:232:10 | [SSA] s2 | main.rs:233:10:233:11 | s2 | |
|
||||
| main.rs:232:9:232:10 | s2 | main.rs:232:9:232:10 | [SSA] s2 | |
|
||||
| main.rs:232:14:232:20 | Some(...) | main.rs:232:9:232:10 | s2 | |
|
||||
| main.rs:237:9:237:10 | [SSA] s1 | main.rs:238:10:238:11 | s1 | |
|
||||
| main.rs:237:9:237:10 | s1 | main.rs:237:9:237:10 | [SSA] s1 | |
|
||||
| main.rs:237:14:237:29 | Some(...) | main.rs:237:9:237:10 | s1 | |
|
||||
| main.rs:240:9:240:10 | [SSA] s2 | main.rs:241:10:241:11 | s2 | |
|
||||
| main.rs:240:9:240:10 | s2 | main.rs:240:9:240:10 | [SSA] s2 | |
|
||||
| main.rs:240:14:240:17 | None | main.rs:240:9:240:10 | s2 | |
|
||||
| main.rs:245:9:245:10 | [SSA] s1 | main.rs:247:14:247:15 | s1 | |
|
||||
| main.rs:245:9:245:10 | s1 | main.rs:245:9:245:10 | [SSA] s1 | |
|
||||
| main.rs:245:14:245:29 | Some(...) | main.rs:245:9:245:10 | s1 | |
|
||||
| main.rs:246:9:246:10 | [SSA] s2 | main.rs:249:10:249:11 | s2 | |
|
||||
| main.rs:246:9:246:10 | s2 | main.rs:246:9:246:10 | [SSA] s2 | |
|
||||
| main.rs:246:14:246:20 | Some(...) | main.rs:246:9:246:10 | s2 | |
|
||||
| main.rs:247:9:247:10 | [SSA] i1 | main.rs:248:10:248:11 | i1 | |
|
||||
| main.rs:247:9:247:10 | i1 | main.rs:247:9:247:10 | [SSA] i1 | |
|
||||
| main.rs:247:14:247:16 | TryExpr | main.rs:247:9:247:10 | i1 | |
|
||||
| main.rs:250:5:250:11 | Some(...) | main.rs:244:41:251:1 | { ... } | |
|
||||
| main.rs:254:9:254:10 | [SSA] s1 | main.rs:257:14:257:15 | s1 | |
|
||||
| main.rs:254:9:254:10 | s1 | main.rs:254:9:254:10 | [SSA] s1 | |
|
||||
| main.rs:254:32:254:45 | Ok(...) | main.rs:254:9:254:10 | s1 | |
|
||||
| main.rs:255:9:255:10 | [SSA] s2 | main.rs:258:14:258:15 | s2 | |
|
||||
| main.rs:197:9:197:9 | [SSA] s | main.rs:198:10:198:10 | s | |
|
||||
| main.rs:197:9:197:9 | s | main.rs:197:9:197:9 | [SSA] s | |
|
||||
| main.rs:197:13:197:40 | MyTupleStruct(...) | main.rs:197:9:197:9 | s | |
|
||||
| main.rs:198:10:198:10 | [post] s | main.rs:199:10:199:10 | s | |
|
||||
| main.rs:198:10:198:10 | s | main.rs:199:10:199:10 | s | |
|
||||
| main.rs:199:10:199:10 | [post] s | main.rs:201:11:201:11 | s | |
|
||||
| main.rs:199:10:199:10 | s | main.rs:201:11:201:11 | s | |
|
||||
| main.rs:201:5:206:5 | match s { ... } | main.rs:196:19:207:1 | { ... } | |
|
||||
| main.rs:201:11:201:11 | s | main.rs:202:9:202:27 | MyTupleStruct(...) | |
|
||||
| main.rs:202:23:202:23 | [SSA] x | main.rs:203:18:203:18 | x | |
|
||||
| main.rs:202:23:202:23 | x | main.rs:202:23:202:23 | [SSA] x | |
|
||||
| main.rs:202:26:202:26 | [SSA] y | main.rs:204:18:204:18 | y | |
|
||||
| main.rs:202:26:202:26 | y | main.rs:202:26:202:26 | [SSA] y | |
|
||||
| main.rs:202:32:205:9 | { ... } | main.rs:201:5:206:5 | match s { ... } | |
|
||||
| main.rs:213:9:213:10 | [SSA] s1 | main.rs:215:11:215:12 | s1 | |
|
||||
| main.rs:213:9:213:10 | s1 | main.rs:213:9:213:10 | [SSA] s1 | |
|
||||
| main.rs:213:14:213:37 | ...::Some(...) | main.rs:213:9:213:10 | s1 | |
|
||||
| main.rs:214:9:214:10 | [SSA] s2 | main.rs:219:11:219:12 | s2 | |
|
||||
| main.rs:214:9:214:10 | s2 | main.rs:214:9:214:10 | [SSA] s2 | |
|
||||
| main.rs:214:14:214:28 | ...::Some(...) | main.rs:214:9:214:10 | s2 | |
|
||||
| main.rs:215:11:215:12 | s1 | main.rs:216:9:216:23 | ...::Some(...) | |
|
||||
| main.rs:215:11:215:12 | s1 | main.rs:217:9:217:20 | ...::None | |
|
||||
| main.rs:216:22:216:22 | [SSA] n | main.rs:216:33:216:33 | n | |
|
||||
| main.rs:216:22:216:22 | n | main.rs:216:22:216:22 | [SSA] n | |
|
||||
| main.rs:216:28:216:34 | sink(...) | main.rs:215:5:218:5 | match s1 { ... } | |
|
||||
| main.rs:217:25:217:31 | sink(...) | main.rs:215:5:218:5 | match s1 { ... } | |
|
||||
| main.rs:219:5:222:5 | match s2 { ... } | main.rs:212:37:223:1 | { ... } | |
|
||||
| main.rs:219:11:219:12 | s2 | main.rs:220:9:220:23 | ...::Some(...) | |
|
||||
| main.rs:219:11:219:12 | s2 | main.rs:221:9:221:20 | ...::None | |
|
||||
| main.rs:220:22:220:22 | [SSA] n | main.rs:220:33:220:33 | n | |
|
||||
| main.rs:220:22:220:22 | n | main.rs:220:22:220:22 | [SSA] n | |
|
||||
| main.rs:220:28:220:34 | sink(...) | main.rs:219:5:222:5 | match s2 { ... } | |
|
||||
| main.rs:221:25:221:31 | sink(...) | main.rs:219:5:222:5 | match s2 { ... } | |
|
||||
| main.rs:226:9:226:10 | [SSA] s1 | main.rs:228:11:228:12 | s1 | |
|
||||
| main.rs:226:9:226:10 | s1 | main.rs:226:9:226:10 | [SSA] s1 | |
|
||||
| main.rs:226:14:226:29 | Some(...) | main.rs:226:9:226:10 | s1 | |
|
||||
| main.rs:227:9:227:10 | [SSA] s2 | main.rs:232:11:232:12 | s2 | |
|
||||
| main.rs:227:9:227:10 | s2 | main.rs:227:9:227:10 | [SSA] s2 | |
|
||||
| main.rs:227:14:227:20 | Some(...) | main.rs:227:9:227:10 | s2 | |
|
||||
| main.rs:228:11:228:12 | s1 | main.rs:229:9:229:15 | Some(...) | |
|
||||
| main.rs:228:11:228:12 | s1 | main.rs:230:9:230:12 | None | |
|
||||
| main.rs:229:14:229:14 | [SSA] n | main.rs:229:25:229:25 | n | |
|
||||
| main.rs:229:14:229:14 | n | main.rs:229:14:229:14 | [SSA] n | |
|
||||
| main.rs:229:20:229:26 | sink(...) | main.rs:228:5:231:5 | match s1 { ... } | |
|
||||
| main.rs:230:17:230:23 | sink(...) | main.rs:228:5:231:5 | match s1 { ... } | |
|
||||
| main.rs:232:5:235:5 | match s2 { ... } | main.rs:225:39:236:1 | { ... } | |
|
||||
| main.rs:232:11:232:12 | s2 | main.rs:233:9:233:15 | Some(...) | |
|
||||
| main.rs:232:11:232:12 | s2 | main.rs:234:9:234:12 | None | |
|
||||
| main.rs:233:14:233:14 | [SSA] n | main.rs:233:25:233:25 | n | |
|
||||
| main.rs:233:14:233:14 | n | main.rs:233:14:233:14 | [SSA] n | |
|
||||
| main.rs:233:20:233:26 | sink(...) | main.rs:232:5:235:5 | match s2 { ... } | |
|
||||
| main.rs:234:17:234:23 | sink(...) | main.rs:232:5:235:5 | match s2 { ... } | |
|
||||
| main.rs:239:9:239:10 | [SSA] s1 | main.rs:240:10:240:11 | s1 | |
|
||||
| main.rs:239:9:239:10 | s1 | main.rs:239:9:239:10 | [SSA] s1 | |
|
||||
| main.rs:239:14:239:29 | Some(...) | main.rs:239:9:239:10 | s1 | |
|
||||
| main.rs:244:9:244:10 | [SSA] s1 | main.rs:245:10:245:11 | s1 | |
|
||||
| main.rs:244:9:244:10 | s1 | main.rs:244:9:244:10 | [SSA] s1 | |
|
||||
| main.rs:244:14:244:29 | Some(...) | main.rs:244:9:244:10 | s1 | |
|
||||
| main.rs:247:9:247:10 | [SSA] s2 | main.rs:248:10:248:11 | s2 | |
|
||||
| main.rs:247:9:247:10 | s2 | main.rs:247:9:247:10 | [SSA] s2 | |
|
||||
| main.rs:247:14:247:20 | Some(...) | main.rs:247:9:247:10 | s2 | |
|
||||
| main.rs:252:9:252:10 | [SSA] s1 | main.rs:253:10:253:11 | s1 | |
|
||||
| main.rs:252:9:252:10 | s1 | main.rs:252:9:252:10 | [SSA] s1 | |
|
||||
| main.rs:252:14:252:29 | Some(...) | main.rs:252:9:252:10 | s1 | |
|
||||
| main.rs:255:9:255:10 | [SSA] s2 | main.rs:256:10:256:11 | s2 | |
|
||||
| main.rs:255:9:255:10 | s2 | main.rs:255:9:255:10 | [SSA] s2 | |
|
||||
| main.rs:255:32:255:36 | Ok(...) | main.rs:255:9:255:10 | s2 | |
|
||||
| main.rs:256:9:256:10 | [SSA] s3 | main.rs:261:14:261:15 | s3 | |
|
||||
| main.rs:256:9:256:10 | s3 | main.rs:256:9:256:10 | [SSA] s3 | |
|
||||
| main.rs:256:32:256:46 | Err(...) | main.rs:256:9:256:10 | s3 | |
|
||||
| main.rs:257:9:257:10 | [SSA] i1 | main.rs:259:10:259:11 | i1 | |
|
||||
| main.rs:257:9:257:10 | i1 | main.rs:257:9:257:10 | [SSA] i1 | |
|
||||
| main.rs:257:14:257:16 | TryExpr | main.rs:257:9:257:10 | i1 | |
|
||||
| main.rs:258:9:258:10 | [SSA] i2 | main.rs:260:10:260:11 | i2 | |
|
||||
| main.rs:258:9:258:10 | i2 | main.rs:258:9:258:10 | [SSA] i2 | |
|
||||
| main.rs:258:14:258:16 | TryExpr | main.rs:258:9:258:10 | i2 | |
|
||||
| main.rs:261:9:261:10 | [SSA] i3 | main.rs:262:10:262:11 | i3 | |
|
||||
| main.rs:261:9:261:10 | i3 | main.rs:261:9:261:10 | [SSA] i3 | |
|
||||
| main.rs:261:14:261:16 | TryExpr | main.rs:261:9:261:10 | i3 | |
|
||||
| main.rs:263:5:263:9 | Ok(...) | main.rs:253:46:264:1 | { ... } | |
|
||||
| main.rs:267:9:267:10 | [SSA] s1 | main.rs:268:10:268:11 | s1 | |
|
||||
| main.rs:267:9:267:10 | s1 | main.rs:267:9:267:10 | [SSA] s1 | |
|
||||
| main.rs:267:32:267:45 | Ok(...) | main.rs:267:9:267:10 | s1 | |
|
||||
| main.rs:268:10:268:11 | [post] s1 | main.rs:269:10:269:11 | s1 | |
|
||||
| main.rs:268:10:268:11 | s1 | main.rs:269:10:269:11 | s1 | |
|
||||
| main.rs:271:9:271:10 | [SSA] s2 | main.rs:272:10:272:11 | s2 | |
|
||||
| main.rs:271:9:271:10 | s2 | main.rs:271:9:271:10 | [SSA] s2 | |
|
||||
| main.rs:271:32:271:46 | Err(...) | main.rs:271:9:271:10 | s2 | |
|
||||
| main.rs:272:10:272:11 | [post] s2 | main.rs:273:10:273:11 | s2 | |
|
||||
| main.rs:272:10:272:11 | s2 | main.rs:273:10:273:11 | s2 | |
|
||||
| main.rs:282:9:282:10 | [SSA] s1 | main.rs:284:11:284:12 | s1 | |
|
||||
| main.rs:255:14:255:17 | None | main.rs:255:9:255:10 | s2 | |
|
||||
| main.rs:260:9:260:10 | [SSA] s1 | main.rs:262:14:262:15 | s1 | |
|
||||
| main.rs:260:9:260:10 | s1 | main.rs:260:9:260:10 | [SSA] s1 | |
|
||||
| main.rs:260:14:260:29 | Some(...) | main.rs:260:9:260:10 | s1 | |
|
||||
| main.rs:261:9:261:10 | [SSA] s2 | main.rs:264:10:264:11 | s2 | |
|
||||
| main.rs:261:9:261:10 | s2 | main.rs:261:9:261:10 | [SSA] s2 | |
|
||||
| main.rs:261:14:261:20 | Some(...) | main.rs:261:9:261:10 | s2 | |
|
||||
| main.rs:262:9:262:10 | [SSA] i1 | main.rs:263:10:263:11 | i1 | |
|
||||
| main.rs:262:9:262:10 | i1 | main.rs:262:9:262:10 | [SSA] i1 | |
|
||||
| main.rs:262:14:262:16 | TryExpr | main.rs:262:9:262:10 | i1 | |
|
||||
| main.rs:265:5:265:11 | Some(...) | main.rs:259:41:266:1 | { ... } | |
|
||||
| main.rs:269:9:269:10 | [SSA] s1 | main.rs:272:14:272:15 | s1 | |
|
||||
| main.rs:269:9:269:10 | s1 | main.rs:269:9:269:10 | [SSA] s1 | |
|
||||
| main.rs:269:32:269:45 | Ok(...) | main.rs:269:9:269:10 | s1 | |
|
||||
| main.rs:270:9:270:10 | [SSA] s2 | main.rs:273:14:273:15 | s2 | |
|
||||
| main.rs:270:9:270:10 | s2 | main.rs:270:9:270:10 | [SSA] s2 | |
|
||||
| main.rs:270:32:270:36 | Ok(...) | main.rs:270:9:270:10 | s2 | |
|
||||
| main.rs:271:9:271:10 | [SSA] s3 | main.rs:276:14:276:15 | s3 | |
|
||||
| main.rs:271:9:271:10 | s3 | main.rs:271:9:271:10 | [SSA] s3 | |
|
||||
| main.rs:271:32:271:46 | Err(...) | main.rs:271:9:271:10 | s3 | |
|
||||
| main.rs:272:9:272:10 | [SSA] i1 | main.rs:274:10:274:11 | i1 | |
|
||||
| main.rs:272:9:272:10 | i1 | main.rs:272:9:272:10 | [SSA] i1 | |
|
||||
| main.rs:272:14:272:16 | TryExpr | main.rs:272:9:272:10 | i1 | |
|
||||
| main.rs:273:9:273:10 | [SSA] i2 | main.rs:275:10:275:11 | i2 | |
|
||||
| main.rs:273:9:273:10 | i2 | main.rs:273:9:273:10 | [SSA] i2 | |
|
||||
| main.rs:273:14:273:16 | TryExpr | main.rs:273:9:273:10 | i2 | |
|
||||
| main.rs:276:9:276:10 | [SSA] i3 | main.rs:277:10:277:11 | i3 | |
|
||||
| main.rs:276:9:276:10 | i3 | main.rs:276:9:276:10 | [SSA] i3 | |
|
||||
| main.rs:276:14:276:16 | TryExpr | main.rs:276:9:276:10 | i3 | |
|
||||
| main.rs:278:5:278:9 | Ok(...) | main.rs:268:46:279:1 | { ... } | |
|
||||
| main.rs:282:9:282:10 | [SSA] s1 | main.rs:283:10:283:11 | s1 | |
|
||||
| main.rs:282:9:282:10 | s1 | main.rs:282:9:282:10 | [SSA] s1 | |
|
||||
| main.rs:282:14:282:39 | ...::A(...) | main.rs:282:9:282:10 | s1 | |
|
||||
| main.rs:283:9:283:10 | [SSA] s2 | main.rs:291:11:291:12 | s2 | |
|
||||
| main.rs:283:9:283:10 | s2 | main.rs:283:9:283:10 | [SSA] s2 | |
|
||||
| main.rs:283:14:283:30 | ...::B(...) | main.rs:283:9:283:10 | s2 | |
|
||||
| main.rs:284:11:284:12 | s1 | main.rs:285:9:285:25 | ...::A(...) | |
|
||||
| main.rs:284:11:284:12 | s1 | main.rs:286:9:286:25 | ...::B(...) | |
|
||||
| main.rs:284:11:284:12 | s1 | main.rs:288:11:288:12 | s1 | |
|
||||
| main.rs:285:24:285:24 | [SSA] n | main.rs:285:35:285:35 | n | |
|
||||
| main.rs:285:24:285:24 | n | main.rs:285:24:285:24 | [SSA] n | |
|
||||
| main.rs:285:30:285:36 | sink(...) | main.rs:284:5:287:5 | match s1 { ... } | |
|
||||
| main.rs:286:24:286:24 | [SSA] n | main.rs:286:35:286:35 | n | |
|
||||
| main.rs:286:24:286:24 | n | main.rs:286:24:286:24 | [SSA] n | |
|
||||
| main.rs:286:30:286:36 | sink(...) | main.rs:284:5:287:5 | match s1 { ... } | |
|
||||
| main.rs:288:11:288:12 | s1 | main.rs:289:9:289:45 | ... \| ... | |
|
||||
| main.rs:289:9:289:45 | ... \| ... | main.rs:289:9:289:25 | ...::A(...) | |
|
||||
| main.rs:289:9:289:45 | ... \| ... | main.rs:289:29:289:45 | ...::B(...) | |
|
||||
| main.rs:289:9:289:45 | [SSA] [match(true)] phi | main.rs:289:55:289:55 | n | |
|
||||
| main.rs:289:24:289:24 | [SSA] [input] [match(true)] phi | main.rs:289:9:289:45 | [SSA] [match(true)] phi | |
|
||||
| main.rs:289:24:289:24 | [SSA] n | main.rs:289:24:289:24 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:289:24:289:24 | n | main.rs:289:24:289:24 | [SSA] n | |
|
||||
| main.rs:289:44:289:44 | [SSA] [input] [match(true)] phi | main.rs:289:9:289:45 | [SSA] [match(true)] phi | |
|
||||
| main.rs:289:44:289:44 | [SSA] n | main.rs:289:44:289:44 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:289:44:289:44 | n | main.rs:289:44:289:44 | [SSA] n | |
|
||||
| main.rs:289:50:289:56 | sink(...) | main.rs:288:5:290:5 | match s1 { ... } | |
|
||||
| main.rs:291:5:294:5 | match s2 { ... } | main.rs:281:48:295:1 | { ... } | |
|
||||
| main.rs:291:11:291:12 | s2 | main.rs:292:9:292:25 | ...::A(...) | |
|
||||
| main.rs:291:11:291:12 | s2 | main.rs:293:9:293:25 | ...::B(...) | |
|
||||
| main.rs:292:24:292:24 | [SSA] n | main.rs:292:35:292:35 | n | |
|
||||
| main.rs:292:24:292:24 | n | main.rs:292:24:292:24 | [SSA] n | |
|
||||
| main.rs:292:30:292:36 | sink(...) | main.rs:291:5:294:5 | match s2 { ... } | |
|
||||
| main.rs:293:24:293:24 | [SSA] n | main.rs:293:35:293:35 | n | |
|
||||
| main.rs:293:24:293:24 | n | main.rs:293:24:293:24 | [SSA] n | |
|
||||
| main.rs:293:30:293:36 | sink(...) | main.rs:291:5:294:5 | match s2 { ... } | |
|
||||
| main.rs:300:9:300:10 | [SSA] s1 | main.rs:302:11:302:12 | s1 | |
|
||||
| main.rs:300:9:300:10 | s1 | main.rs:300:9:300:10 | [SSA] s1 | |
|
||||
| main.rs:300:14:300:26 | A(...) | main.rs:300:9:300:10 | s1 | |
|
||||
| main.rs:301:9:301:10 | [SSA] s2 | main.rs:309:11:309:12 | s2 | |
|
||||
| main.rs:301:9:301:10 | s2 | main.rs:301:9:301:10 | [SSA] s2 | |
|
||||
| main.rs:301:14:301:17 | B(...) | main.rs:301:9:301:10 | s2 | |
|
||||
| main.rs:302:11:302:12 | s1 | main.rs:303:9:303:12 | A(...) | |
|
||||
| main.rs:302:11:302:12 | s1 | main.rs:304:9:304:12 | B(...) | |
|
||||
| main.rs:302:11:302:12 | s1 | main.rs:306:11:306:12 | s1 | |
|
||||
| main.rs:303:11:303:11 | [SSA] n | main.rs:303:22:303:22 | n | |
|
||||
| main.rs:303:11:303:11 | n | main.rs:303:11:303:11 | [SSA] n | |
|
||||
| main.rs:303:17:303:23 | sink(...) | main.rs:302:5:305:5 | match s1 { ... } | |
|
||||
| main.rs:304:11:304:11 | [SSA] n | main.rs:304:22:304:22 | n | |
|
||||
| main.rs:304:11:304:11 | n | main.rs:304:11:304:11 | [SSA] n | |
|
||||
| main.rs:304:17:304:23 | sink(...) | main.rs:302:5:305:5 | match s1 { ... } | |
|
||||
| main.rs:306:11:306:12 | s1 | main.rs:307:9:307:19 | ... \| ... | |
|
||||
| main.rs:307:9:307:19 | ... \| ... | main.rs:307:9:307:12 | A(...) | |
|
||||
| main.rs:307:9:307:19 | ... \| ... | main.rs:307:16:307:19 | B(...) | |
|
||||
| main.rs:307:9:307:19 | [SSA] [match(true)] phi | main.rs:307:29:307:29 | n | |
|
||||
| main.rs:307:11:307:11 | [SSA] [input] [match(true)] phi | main.rs:307:9:307:19 | [SSA] [match(true)] phi | |
|
||||
| main.rs:307:11:307:11 | [SSA] n | main.rs:307:11:307:11 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:307:11:307:11 | n | main.rs:307:11:307:11 | [SSA] n | |
|
||||
| main.rs:307:18:307:18 | [SSA] [input] [match(true)] phi | main.rs:307:9:307:19 | [SSA] [match(true)] phi | |
|
||||
| main.rs:307:18:307:18 | [SSA] n | main.rs:307:18:307:18 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:307:18:307:18 | n | main.rs:307:18:307:18 | [SSA] n | |
|
||||
| main.rs:307:24:307:30 | sink(...) | main.rs:306:5:308:5 | match s1 { ... } | |
|
||||
| main.rs:309:5:312:5 | match s2 { ... } | main.rs:299:50:313:1 | { ... } | |
|
||||
| main.rs:309:11:309:12 | s2 | main.rs:310:9:310:12 | A(...) | |
|
||||
| main.rs:309:11:309:12 | s2 | main.rs:311:9:311:12 | B(...) | |
|
||||
| main.rs:310:11:310:11 | [SSA] n | main.rs:310:22:310:22 | n | |
|
||||
| main.rs:310:11:310:11 | n | main.rs:310:11:310:11 | [SSA] n | |
|
||||
| main.rs:310:17:310:23 | sink(...) | main.rs:309:5:312:5 | match s2 { ... } | |
|
||||
| main.rs:311:11:311:11 | [SSA] n | main.rs:311:22:311:22 | n | |
|
||||
| main.rs:311:11:311:11 | n | main.rs:311:11:311:11 | [SSA] n | |
|
||||
| main.rs:311:17:311:23 | sink(...) | main.rs:309:5:312:5 | match s2 { ... } | |
|
||||
| main.rs:321:9:321:10 | [SSA] s1 | main.rs:325:11:325:12 | s1 | |
|
||||
| main.rs:321:9:321:10 | s1 | main.rs:321:9:321:10 | [SSA] s1 | |
|
||||
| main.rs:321:14:323:5 | ...::C {...} | main.rs:321:9:321:10 | s1 | |
|
||||
| main.rs:324:9:324:10 | [SSA] s2 | main.rs:332:11:332:12 | s2 | |
|
||||
| main.rs:324:9:324:10 | s2 | main.rs:324:9:324:10 | [SSA] s2 | |
|
||||
| main.rs:324:14:324:43 | ...::D {...} | main.rs:324:9:324:10 | s2 | |
|
||||
| main.rs:325:11:325:12 | s1 | main.rs:326:9:326:38 | ...::C {...} | |
|
||||
| main.rs:325:11:325:12 | s1 | main.rs:327:9:327:38 | ...::D {...} | |
|
||||
| main.rs:325:11:325:12 | s1 | main.rs:329:11:329:12 | s1 | |
|
||||
| main.rs:326:36:326:36 | [SSA] n | main.rs:326:48:326:48 | n | |
|
||||
| main.rs:326:36:326:36 | n | main.rs:326:36:326:36 | [SSA] n | |
|
||||
| main.rs:326:43:326:49 | sink(...) | main.rs:325:5:328:5 | match s1 { ... } | |
|
||||
| main.rs:327:36:327:36 | [SSA] n | main.rs:327:48:327:48 | n | |
|
||||
| main.rs:327:36:327:36 | n | main.rs:327:36:327:36 | [SSA] n | |
|
||||
| main.rs:327:43:327:49 | sink(...) | main.rs:325:5:328:5 | match s1 { ... } | |
|
||||
| main.rs:329:11:329:12 | s1 | main.rs:330:9:330:71 | ... \| ... | |
|
||||
| main.rs:330:9:330:71 | ... \| ... | main.rs:330:9:330:38 | ...::C {...} | |
|
||||
| main.rs:330:9:330:71 | ... \| ... | main.rs:330:42:330:71 | ...::D {...} | |
|
||||
| main.rs:330:9:330:71 | [SSA] [match(true)] phi | main.rs:330:81:330:81 | n | |
|
||||
| main.rs:330:36:330:36 | [SSA] [input] [match(true)] phi | main.rs:330:9:330:71 | [SSA] [match(true)] phi | |
|
||||
| main.rs:330:36:330:36 | [SSA] n | main.rs:330:36:330:36 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:330:36:330:36 | n | main.rs:330:36:330:36 | [SSA] n | |
|
||||
| main.rs:330:69:330:69 | [SSA] [input] [match(true)] phi | main.rs:330:9:330:71 | [SSA] [match(true)] phi | |
|
||||
| main.rs:330:69:330:69 | [SSA] n | main.rs:330:69:330:69 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:330:69:330:69 | n | main.rs:330:69:330:69 | [SSA] n | |
|
||||
| main.rs:330:76:330:82 | sink(...) | main.rs:329:5:331:5 | match s1 { ... } | |
|
||||
| main.rs:332:5:335:5 | match s2 { ... } | main.rs:320:49:336:1 | { ... } | |
|
||||
| main.rs:332:11:332:12 | s2 | main.rs:333:9:333:38 | ...::C {...} | |
|
||||
| main.rs:332:11:332:12 | s2 | main.rs:334:9:334:38 | ...::D {...} | |
|
||||
| main.rs:333:36:333:36 | [SSA] n | main.rs:333:48:333:48 | n | |
|
||||
| main.rs:333:36:333:36 | n | main.rs:333:36:333:36 | [SSA] n | |
|
||||
| main.rs:333:43:333:49 | sink(...) | main.rs:332:5:335:5 | match s2 { ... } | |
|
||||
| main.rs:334:36:334:36 | [SSA] n | main.rs:334:48:334:48 | n | |
|
||||
| main.rs:334:36:334:36 | n | main.rs:334:36:334:36 | [SSA] n | |
|
||||
| main.rs:334:43:334:49 | sink(...) | main.rs:332:5:335:5 | match s2 { ... } | |
|
||||
| main.rs:341:9:341:10 | [SSA] s1 | main.rs:345:11:345:12 | s1 | |
|
||||
| main.rs:341:9:341:10 | s1 | main.rs:341:9:341:10 | [SSA] s1 | |
|
||||
| main.rs:341:14:343:5 | C {...} | main.rs:341:9:341:10 | s1 | |
|
||||
| main.rs:344:9:344:10 | [SSA] s2 | main.rs:352:11:352:12 | s2 | |
|
||||
| main.rs:344:9:344:10 | s2 | main.rs:344:9:344:10 | [SSA] s2 | |
|
||||
| main.rs:344:14:344:29 | D {...} | main.rs:344:9:344:10 | s2 | |
|
||||
| main.rs:345:11:345:12 | s1 | main.rs:346:9:346:24 | C {...} | |
|
||||
| main.rs:345:11:345:12 | s1 | main.rs:347:9:347:24 | D {...} | |
|
||||
| main.rs:345:11:345:12 | s1 | main.rs:349:11:349:12 | s1 | |
|
||||
| main.rs:346:22:346:22 | [SSA] n | main.rs:346:34:346:34 | n | |
|
||||
| main.rs:346:22:346:22 | n | main.rs:346:22:346:22 | [SSA] n | |
|
||||
| main.rs:346:29:346:35 | sink(...) | main.rs:345:5:348:5 | match s1 { ... } | |
|
||||
| main.rs:347:22:347:22 | [SSA] n | main.rs:347:34:347:34 | n | |
|
||||
| main.rs:347:22:347:22 | n | main.rs:347:22:347:22 | [SSA] n | |
|
||||
| main.rs:347:29:347:35 | sink(...) | main.rs:345:5:348:5 | match s1 { ... } | |
|
||||
| main.rs:349:11:349:12 | s1 | main.rs:350:9:350:43 | ... \| ... | |
|
||||
| main.rs:350:9:350:43 | ... \| ... | main.rs:350:9:350:24 | C {...} | |
|
||||
| main.rs:350:9:350:43 | ... \| ... | main.rs:350:28:350:43 | D {...} | |
|
||||
| main.rs:350:9:350:43 | [SSA] [match(true)] phi | main.rs:350:53:350:53 | n | |
|
||||
| main.rs:350:22:350:22 | [SSA] [input] [match(true)] phi | main.rs:350:9:350:43 | [SSA] [match(true)] phi | |
|
||||
| main.rs:350:22:350:22 | [SSA] n | main.rs:350:22:350:22 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:350:22:350:22 | n | main.rs:350:22:350:22 | [SSA] n | |
|
||||
| main.rs:350:41:350:41 | [SSA] [input] [match(true)] phi | main.rs:350:9:350:43 | [SSA] [match(true)] phi | |
|
||||
| main.rs:350:41:350:41 | [SSA] n | main.rs:350:41:350:41 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:350:41:350:41 | n | main.rs:350:41:350:41 | [SSA] n | |
|
||||
| main.rs:350:48:350:54 | sink(...) | main.rs:349:5:351:5 | match s1 { ... } | |
|
||||
| main.rs:352:5:355:5 | match s2 { ... } | main.rs:340:51:356:1 | { ... } | |
|
||||
| main.rs:352:11:352:12 | s2 | main.rs:353:9:353:24 | C {...} | |
|
||||
| main.rs:352:11:352:12 | s2 | main.rs:354:9:354:24 | D {...} | |
|
||||
| main.rs:353:22:353:22 | [SSA] n | main.rs:353:34:353:34 | n | |
|
||||
| main.rs:353:22:353:22 | n | main.rs:353:22:353:22 | [SSA] n | |
|
||||
| main.rs:353:29:353:35 | sink(...) | main.rs:352:5:355:5 | match s2 { ... } | |
|
||||
| main.rs:354:22:354:22 | [SSA] n | main.rs:354:34:354:34 | n | |
|
||||
| main.rs:354:22:354:22 | n | main.rs:354:22:354:22 | [SSA] n | |
|
||||
| main.rs:354:29:354:35 | sink(...) | main.rs:352:5:355:5 | match s2 { ... } | |
|
||||
| main.rs:362:9:362:12 | [SSA] arr1 | main.rs:363:14:363:17 | arr1 | |
|
||||
| main.rs:362:9:362:12 | arr1 | main.rs:362:9:362:12 | [SSA] arr1 | |
|
||||
| main.rs:362:16:362:33 | [...] | main.rs:362:9:362:12 | arr1 | |
|
||||
| main.rs:363:9:363:10 | [SSA] n1 | main.rs:364:10:364:11 | n1 | |
|
||||
| main.rs:363:9:363:10 | n1 | main.rs:363:9:363:10 | [SSA] n1 | |
|
||||
| main.rs:363:14:363:20 | arr1[2] | main.rs:363:9:363:10 | n1 | |
|
||||
| main.rs:366:9:366:12 | [SSA] arr2 | main.rs:367:14:367:17 | arr2 | |
|
||||
| main.rs:366:9:366:12 | arr2 | main.rs:366:9:366:12 | [SSA] arr2 | |
|
||||
| main.rs:366:16:366:31 | [...; 10] | main.rs:366:9:366:12 | arr2 | |
|
||||
| main.rs:367:9:367:10 | [SSA] n2 | main.rs:368:10:368:11 | n2 | |
|
||||
| main.rs:367:9:367:10 | n2 | main.rs:367:9:367:10 | [SSA] n2 | |
|
||||
| main.rs:367:14:367:20 | arr2[4] | main.rs:367:9:367:10 | n2 | |
|
||||
| main.rs:370:9:370:12 | [SSA] arr3 | main.rs:371:14:371:17 | arr3 | |
|
||||
| main.rs:370:9:370:12 | arr3 | main.rs:370:9:370:12 | [SSA] arr3 | |
|
||||
| main.rs:370:16:370:24 | [...] | main.rs:370:9:370:12 | arr3 | |
|
||||
| main.rs:371:9:371:10 | [SSA] n3 | main.rs:372:10:372:11 | n3 | |
|
||||
| main.rs:371:9:371:10 | n3 | main.rs:371:9:371:10 | [SSA] n3 | |
|
||||
| main.rs:371:14:371:20 | arr3[2] | main.rs:371:9:371:10 | n3 | |
|
||||
| main.rs:376:9:376:12 | [SSA] arr1 | main.rs:377:15:377:18 | arr1 | |
|
||||
| main.rs:376:9:376:12 | arr1 | main.rs:376:9:376:12 | [SSA] arr1 | |
|
||||
| main.rs:376:16:376:33 | [...] | main.rs:376:9:376:12 | arr1 | |
|
||||
| main.rs:377:9:377:10 | [SSA] n1 | main.rs:378:14:378:15 | n1 | |
|
||||
| main.rs:377:9:377:10 | n1 | main.rs:377:9:377:10 | [SSA] n1 | |
|
||||
| main.rs:381:9:381:12 | [SSA] arr2 | main.rs:382:15:382:18 | arr2 | |
|
||||
| main.rs:282:32:282:45 | Ok(...) | main.rs:282:9:282:10 | s1 | |
|
||||
| main.rs:283:10:283:11 | [post] s1 | main.rs:284:10:284:11 | s1 | |
|
||||
| main.rs:283:10:283:11 | s1 | main.rs:284:10:284:11 | s1 | |
|
||||
| main.rs:286:9:286:10 | [SSA] s2 | main.rs:287:10:287:11 | s2 | |
|
||||
| main.rs:286:9:286:10 | s2 | main.rs:286:9:286:10 | [SSA] s2 | |
|
||||
| main.rs:286:32:286:46 | Err(...) | main.rs:286:9:286:10 | s2 | |
|
||||
| main.rs:287:10:287:11 | [post] s2 | main.rs:288:10:288:11 | s2 | |
|
||||
| main.rs:287:10:287:11 | s2 | main.rs:288:10:288:11 | s2 | |
|
||||
| main.rs:297:9:297:10 | [SSA] s1 | main.rs:299:11:299:12 | s1 | |
|
||||
| main.rs:297:9:297:10 | s1 | main.rs:297:9:297:10 | [SSA] s1 | |
|
||||
| main.rs:297:14:297:39 | ...::A(...) | main.rs:297:9:297:10 | s1 | |
|
||||
| main.rs:298:9:298:10 | [SSA] s2 | main.rs:306:11:306:12 | s2 | |
|
||||
| main.rs:298:9:298:10 | s2 | main.rs:298:9:298:10 | [SSA] s2 | |
|
||||
| main.rs:298:14:298:30 | ...::B(...) | main.rs:298:9:298:10 | s2 | |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:300:9:300:25 | ...::A(...) | |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:301:9:301:25 | ...::B(...) | |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:303:11:303:12 | s1 | |
|
||||
| main.rs:300:24:300:24 | [SSA] n | main.rs:300:35:300:35 | n | |
|
||||
| main.rs:300:24:300:24 | n | main.rs:300:24:300:24 | [SSA] n | |
|
||||
| main.rs:300:30:300:36 | sink(...) | main.rs:299:5:302:5 | match s1 { ... } | |
|
||||
| main.rs:301:24:301:24 | [SSA] n | main.rs:301:35:301:35 | n | |
|
||||
| main.rs:301:24:301:24 | n | main.rs:301:24:301:24 | [SSA] n | |
|
||||
| main.rs:301:30:301:36 | sink(...) | main.rs:299:5:302:5 | match s1 { ... } | |
|
||||
| main.rs:303:11:303:12 | s1 | main.rs:304:9:304:45 | ... \| ... | |
|
||||
| main.rs:304:9:304:45 | ... \| ... | main.rs:304:9:304:25 | ...::A(...) | |
|
||||
| main.rs:304:9:304:45 | ... \| ... | main.rs:304:29:304:45 | ...::B(...) | |
|
||||
| main.rs:304:9:304:45 | [SSA] [match(true)] phi | main.rs:304:55:304:55 | n | |
|
||||
| main.rs:304:24:304:24 | [SSA] [input] [match(true)] phi | main.rs:304:9:304:45 | [SSA] [match(true)] phi | |
|
||||
| main.rs:304:24:304:24 | [SSA] n | main.rs:304:24:304:24 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:304:24:304:24 | n | main.rs:304:24:304:24 | [SSA] n | |
|
||||
| main.rs:304:44:304:44 | [SSA] [input] [match(true)] phi | main.rs:304:9:304:45 | [SSA] [match(true)] phi | |
|
||||
| main.rs:304:44:304:44 | [SSA] n | main.rs:304:44:304:44 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:304:44:304:44 | n | main.rs:304:44:304:44 | [SSA] n | |
|
||||
| main.rs:304:50:304:56 | sink(...) | main.rs:303:5:305:5 | match s1 { ... } | |
|
||||
| main.rs:306:5:309:5 | match s2 { ... } | main.rs:296:48:310:1 | { ... } | |
|
||||
| main.rs:306:11:306:12 | s2 | main.rs:307:9:307:25 | ...::A(...) | |
|
||||
| main.rs:306:11:306:12 | s2 | main.rs:308:9:308:25 | ...::B(...) | |
|
||||
| main.rs:307:24:307:24 | [SSA] n | main.rs:307:35:307:35 | n | |
|
||||
| main.rs:307:24:307:24 | n | main.rs:307:24:307:24 | [SSA] n | |
|
||||
| main.rs:307:30:307:36 | sink(...) | main.rs:306:5:309:5 | match s2 { ... } | |
|
||||
| main.rs:308:24:308:24 | [SSA] n | main.rs:308:35:308:35 | n | |
|
||||
| main.rs:308:24:308:24 | n | main.rs:308:24:308:24 | [SSA] n | |
|
||||
| main.rs:308:30:308:36 | sink(...) | main.rs:306:5:309:5 | match s2 { ... } | |
|
||||
| main.rs:315:9:315:10 | [SSA] s1 | main.rs:317:11:317:12 | s1 | |
|
||||
| main.rs:315:9:315:10 | s1 | main.rs:315:9:315:10 | [SSA] s1 | |
|
||||
| main.rs:315:14:315:26 | A(...) | main.rs:315:9:315:10 | s1 | |
|
||||
| main.rs:316:9:316:10 | [SSA] s2 | main.rs:324:11:324:12 | s2 | |
|
||||
| main.rs:316:9:316:10 | s2 | main.rs:316:9:316:10 | [SSA] s2 | |
|
||||
| main.rs:316:14:316:17 | B(...) | main.rs:316:9:316:10 | s2 | |
|
||||
| main.rs:317:11:317:12 | s1 | main.rs:318:9:318:12 | A(...) | |
|
||||
| main.rs:317:11:317:12 | s1 | main.rs:319:9:319:12 | B(...) | |
|
||||
| main.rs:317:11:317:12 | s1 | main.rs:321:11:321:12 | s1 | |
|
||||
| main.rs:318:11:318:11 | [SSA] n | main.rs:318:22:318:22 | n | |
|
||||
| main.rs:318:11:318:11 | n | main.rs:318:11:318:11 | [SSA] n | |
|
||||
| main.rs:318:17:318:23 | sink(...) | main.rs:317:5:320:5 | match s1 { ... } | |
|
||||
| main.rs:319:11:319:11 | [SSA] n | main.rs:319:22:319:22 | n | |
|
||||
| main.rs:319:11:319:11 | n | main.rs:319:11:319:11 | [SSA] n | |
|
||||
| main.rs:319:17:319:23 | sink(...) | main.rs:317:5:320:5 | match s1 { ... } | |
|
||||
| main.rs:321:11:321:12 | s1 | main.rs:322:9:322:19 | ... \| ... | |
|
||||
| main.rs:322:9:322:19 | ... \| ... | main.rs:322:9:322:12 | A(...) | |
|
||||
| main.rs:322:9:322:19 | ... \| ... | main.rs:322:16:322:19 | B(...) | |
|
||||
| main.rs:322:9:322:19 | [SSA] [match(true)] phi | main.rs:322:29:322:29 | n | |
|
||||
| main.rs:322:11:322:11 | [SSA] [input] [match(true)] phi | main.rs:322:9:322:19 | [SSA] [match(true)] phi | |
|
||||
| main.rs:322:11:322:11 | [SSA] n | main.rs:322:11:322:11 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:322:11:322:11 | n | main.rs:322:11:322:11 | [SSA] n | |
|
||||
| main.rs:322:18:322:18 | [SSA] [input] [match(true)] phi | main.rs:322:9:322:19 | [SSA] [match(true)] phi | |
|
||||
| main.rs:322:18:322:18 | [SSA] n | main.rs:322:18:322:18 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:322:18:322:18 | n | main.rs:322:18:322:18 | [SSA] n | |
|
||||
| main.rs:322:24:322:30 | sink(...) | main.rs:321:5:323:5 | match s1 { ... } | |
|
||||
| main.rs:324:5:327:5 | match s2 { ... } | main.rs:314:50:328:1 | { ... } | |
|
||||
| main.rs:324:11:324:12 | s2 | main.rs:325:9:325:12 | A(...) | |
|
||||
| main.rs:324:11:324:12 | s2 | main.rs:326:9:326:12 | B(...) | |
|
||||
| main.rs:325:11:325:11 | [SSA] n | main.rs:325:22:325:22 | n | |
|
||||
| main.rs:325:11:325:11 | n | main.rs:325:11:325:11 | [SSA] n | |
|
||||
| main.rs:325:17:325:23 | sink(...) | main.rs:324:5:327:5 | match s2 { ... } | |
|
||||
| main.rs:326:11:326:11 | [SSA] n | main.rs:326:22:326:22 | n | |
|
||||
| main.rs:326:11:326:11 | n | main.rs:326:11:326:11 | [SSA] n | |
|
||||
| main.rs:326:17:326:23 | sink(...) | main.rs:324:5:327:5 | match s2 { ... } | |
|
||||
| main.rs:336:9:336:10 | [SSA] s1 | main.rs:340:11:340:12 | s1 | |
|
||||
| main.rs:336:9:336:10 | s1 | main.rs:336:9:336:10 | [SSA] s1 | |
|
||||
| main.rs:336:14:338:5 | ...::C {...} | main.rs:336:9:336:10 | s1 | |
|
||||
| main.rs:339:9:339:10 | [SSA] s2 | main.rs:347:11:347:12 | s2 | |
|
||||
| main.rs:339:9:339:10 | s2 | main.rs:339:9:339:10 | [SSA] s2 | |
|
||||
| main.rs:339:14:339:43 | ...::D {...} | main.rs:339:9:339:10 | s2 | |
|
||||
| main.rs:340:11:340:12 | s1 | main.rs:341:9:341:38 | ...::C {...} | |
|
||||
| main.rs:340:11:340:12 | s1 | main.rs:342:9:342:38 | ...::D {...} | |
|
||||
| main.rs:340:11:340:12 | s1 | main.rs:344:11:344:12 | s1 | |
|
||||
| main.rs:341:36:341:36 | [SSA] n | main.rs:341:48:341:48 | n | |
|
||||
| main.rs:341:36:341:36 | n | main.rs:341:36:341:36 | [SSA] n | |
|
||||
| main.rs:341:43:341:49 | sink(...) | main.rs:340:5:343:5 | match s1 { ... } | |
|
||||
| main.rs:342:36:342:36 | [SSA] n | main.rs:342:48:342:48 | n | |
|
||||
| main.rs:342:36:342:36 | n | main.rs:342:36:342:36 | [SSA] n | |
|
||||
| main.rs:342:43:342:49 | sink(...) | main.rs:340:5:343:5 | match s1 { ... } | |
|
||||
| main.rs:344:11:344:12 | s1 | main.rs:345:9:345:71 | ... \| ... | |
|
||||
| main.rs:345:9:345:71 | ... \| ... | main.rs:345:9:345:38 | ...::C {...} | |
|
||||
| main.rs:345:9:345:71 | ... \| ... | main.rs:345:42:345:71 | ...::D {...} | |
|
||||
| main.rs:345:9:345:71 | [SSA] [match(true)] phi | main.rs:345:81:345:81 | n | |
|
||||
| main.rs:345:36:345:36 | [SSA] [input] [match(true)] phi | main.rs:345:9:345:71 | [SSA] [match(true)] phi | |
|
||||
| main.rs:345:36:345:36 | [SSA] n | main.rs:345:36:345:36 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:345:36:345:36 | n | main.rs:345:36:345:36 | [SSA] n | |
|
||||
| main.rs:345:69:345:69 | [SSA] [input] [match(true)] phi | main.rs:345:9:345:71 | [SSA] [match(true)] phi | |
|
||||
| main.rs:345:69:345:69 | [SSA] n | main.rs:345:69:345:69 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:345:69:345:69 | n | main.rs:345:69:345:69 | [SSA] n | |
|
||||
| main.rs:345:76:345:82 | sink(...) | main.rs:344:5:346:5 | match s1 { ... } | |
|
||||
| main.rs:347:5:350:5 | match s2 { ... } | main.rs:335:49:351:1 | { ... } | |
|
||||
| main.rs:347:11:347:12 | s2 | main.rs:348:9:348:38 | ...::C {...} | |
|
||||
| main.rs:347:11:347:12 | s2 | main.rs:349:9:349:38 | ...::D {...} | |
|
||||
| main.rs:348:36:348:36 | [SSA] n | main.rs:348:48:348:48 | n | |
|
||||
| main.rs:348:36:348:36 | n | main.rs:348:36:348:36 | [SSA] n | |
|
||||
| main.rs:348:43:348:49 | sink(...) | main.rs:347:5:350:5 | match s2 { ... } | |
|
||||
| main.rs:349:36:349:36 | [SSA] n | main.rs:349:48:349:48 | n | |
|
||||
| main.rs:349:36:349:36 | n | main.rs:349:36:349:36 | [SSA] n | |
|
||||
| main.rs:349:43:349:49 | sink(...) | main.rs:347:5:350:5 | match s2 { ... } | |
|
||||
| main.rs:356:9:356:10 | [SSA] s1 | main.rs:360:11:360:12 | s1 | |
|
||||
| main.rs:356:9:356:10 | s1 | main.rs:356:9:356:10 | [SSA] s1 | |
|
||||
| main.rs:356:14:358:5 | C {...} | main.rs:356:9:356:10 | s1 | |
|
||||
| main.rs:359:9:359:10 | [SSA] s2 | main.rs:367:11:367:12 | s2 | |
|
||||
| main.rs:359:9:359:10 | s2 | main.rs:359:9:359:10 | [SSA] s2 | |
|
||||
| main.rs:359:14:359:29 | D {...} | main.rs:359:9:359:10 | s2 | |
|
||||
| main.rs:360:11:360:12 | s1 | main.rs:361:9:361:24 | C {...} | |
|
||||
| main.rs:360:11:360:12 | s1 | main.rs:362:9:362:24 | D {...} | |
|
||||
| main.rs:360:11:360:12 | s1 | main.rs:364:11:364:12 | s1 | |
|
||||
| main.rs:361:22:361:22 | [SSA] n | main.rs:361:34:361:34 | n | |
|
||||
| main.rs:361:22:361:22 | n | main.rs:361:22:361:22 | [SSA] n | |
|
||||
| main.rs:361:29:361:35 | sink(...) | main.rs:360:5:363:5 | match s1 { ... } | |
|
||||
| main.rs:362:22:362:22 | [SSA] n | main.rs:362:34:362:34 | n | |
|
||||
| main.rs:362:22:362:22 | n | main.rs:362:22:362:22 | [SSA] n | |
|
||||
| main.rs:362:29:362:35 | sink(...) | main.rs:360:5:363:5 | match s1 { ... } | |
|
||||
| main.rs:364:11:364:12 | s1 | main.rs:365:9:365:43 | ... \| ... | |
|
||||
| main.rs:365:9:365:43 | ... \| ... | main.rs:365:9:365:24 | C {...} | |
|
||||
| main.rs:365:9:365:43 | ... \| ... | main.rs:365:28:365:43 | D {...} | |
|
||||
| main.rs:365:9:365:43 | [SSA] [match(true)] phi | main.rs:365:53:365:53 | n | |
|
||||
| main.rs:365:22:365:22 | [SSA] [input] [match(true)] phi | main.rs:365:9:365:43 | [SSA] [match(true)] phi | |
|
||||
| main.rs:365:22:365:22 | [SSA] n | main.rs:365:22:365:22 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:365:22:365:22 | n | main.rs:365:22:365:22 | [SSA] n | |
|
||||
| main.rs:365:41:365:41 | [SSA] [input] [match(true)] phi | main.rs:365:9:365:43 | [SSA] [match(true)] phi | |
|
||||
| main.rs:365:41:365:41 | [SSA] n | main.rs:365:41:365:41 | [SSA] [input] [match(true)] phi | |
|
||||
| main.rs:365:41:365:41 | n | main.rs:365:41:365:41 | [SSA] n | |
|
||||
| main.rs:365:48:365:54 | sink(...) | main.rs:364:5:366:5 | match s1 { ... } | |
|
||||
| main.rs:367:5:370:5 | match s2 { ... } | main.rs:355:51:371:1 | { ... } | |
|
||||
| main.rs:367:11:367:12 | s2 | main.rs:368:9:368:24 | C {...} | |
|
||||
| main.rs:367:11:367:12 | s2 | main.rs:369:9:369:24 | D {...} | |
|
||||
| main.rs:368:22:368:22 | [SSA] n | main.rs:368:34:368:34 | n | |
|
||||
| main.rs:368:22:368:22 | n | main.rs:368:22:368:22 | [SSA] n | |
|
||||
| main.rs:368:29:368:35 | sink(...) | main.rs:367:5:370:5 | match s2 { ... } | |
|
||||
| main.rs:369:22:369:22 | [SSA] n | main.rs:369:34:369:34 | n | |
|
||||
| main.rs:369:22:369:22 | n | main.rs:369:22:369:22 | [SSA] n | |
|
||||
| main.rs:369:29:369:35 | sink(...) | main.rs:367:5:370:5 | match s2 { ... } | |
|
||||
| main.rs:377:9:377:12 | [SSA] arr1 | main.rs:378:14:378:17 | arr1 | |
|
||||
| main.rs:377:9:377:12 | arr1 | main.rs:377:9:377:12 | [SSA] arr1 | |
|
||||
| main.rs:377:16:377:33 | [...] | main.rs:377:9:377:12 | arr1 | |
|
||||
| main.rs:378:9:378:10 | [SSA] n1 | main.rs:379:10:379:11 | n1 | |
|
||||
| main.rs:378:9:378:10 | n1 | main.rs:378:9:378:10 | [SSA] n1 | |
|
||||
| main.rs:378:14:378:20 | arr1[2] | main.rs:378:9:378:10 | n1 | |
|
||||
| main.rs:381:9:381:12 | [SSA] arr2 | main.rs:382:14:382:17 | arr2 | |
|
||||
| main.rs:381:9:381:12 | arr2 | main.rs:381:9:381:12 | [SSA] arr2 | |
|
||||
| main.rs:381:16:381:24 | [...] | main.rs:381:9:381:12 | arr2 | |
|
||||
| main.rs:382:5:384:5 | for ... in ... { ... } | main.rs:375:21:385:1 | { ... } | |
|
||||
| main.rs:382:9:382:10 | [SSA] n2 | main.rs:383:14:383:15 | n2 | |
|
||||
| main.rs:381:16:381:31 | [...; 10] | main.rs:381:9:381:12 | arr2 | |
|
||||
| main.rs:382:9:382:10 | [SSA] n2 | main.rs:383:10:383:11 | n2 | |
|
||||
| main.rs:382:9:382:10 | n2 | main.rs:382:9:382:10 | [SSA] n2 | |
|
||||
| main.rs:388:9:388:12 | [SSA] arr1 | main.rs:389:11:389:14 | arr1 | |
|
||||
| main.rs:388:9:388:12 | arr1 | main.rs:388:9:388:12 | [SSA] arr1 | |
|
||||
| main.rs:388:16:388:33 | [...] | main.rs:388:9:388:12 | arr1 | |
|
||||
| main.rs:389:5:395:5 | match arr1 { ... } | main.rs:387:26:396:1 | { ... } | |
|
||||
| main.rs:389:11:389:14 | arr1 | main.rs:390:9:390:17 | SlicePat | |
|
||||
| main.rs:390:10:390:10 | [SSA] a | main.rs:391:18:391:18 | a | |
|
||||
| main.rs:390:10:390:10 | a | main.rs:390:10:390:10 | [SSA] a | |
|
||||
| main.rs:390:13:390:13 | [SSA] b | main.rs:392:18:392:18 | b | |
|
||||
| main.rs:390:13:390:13 | b | main.rs:390:13:390:13 | [SSA] b | |
|
||||
| main.rs:390:16:390:16 | [SSA] c | main.rs:393:18:393:18 | c | |
|
||||
| main.rs:390:16:390:16 | c | main.rs:390:16:390:16 | [SSA] c | |
|
||||
| main.rs:390:22:394:9 | { ... } | main.rs:389:5:395:5 | match arr1 { ... } | |
|
||||
| main.rs:399:9:399:19 | [SSA] mut_arr | main.rs:400:10:400:16 | mut_arr | |
|
||||
| main.rs:399:9:399:19 | mut_arr | main.rs:399:9:399:19 | [SSA] mut_arr | |
|
||||
| main.rs:399:23:399:31 | [...] | main.rs:399:9:399:19 | mut_arr | |
|
||||
| main.rs:400:10:400:16 | [post] mut_arr | main.rs:402:5:402:11 | mut_arr | |
|
||||
| main.rs:400:10:400:16 | mut_arr | main.rs:402:5:402:11 | mut_arr | |
|
||||
| main.rs:402:5:402:11 | [post] mut_arr | main.rs:403:13:403:19 | mut_arr | |
|
||||
| main.rs:402:5:402:11 | mut_arr | main.rs:403:13:403:19 | mut_arr | |
|
||||
| main.rs:402:18:402:27 | source(...) | main.rs:402:5:402:14 | mut_arr[1] | |
|
||||
| main.rs:403:9:403:9 | [SSA] d | main.rs:404:10:404:10 | d | |
|
||||
| main.rs:403:9:403:9 | d | main.rs:403:9:403:9 | [SSA] d | |
|
||||
| main.rs:403:13:403:19 | [post] mut_arr | main.rs:405:10:405:16 | mut_arr | |
|
||||
| main.rs:403:13:403:19 | mut_arr | main.rs:405:10:405:16 | mut_arr | |
|
||||
| main.rs:403:13:403:22 | mut_arr[1] | main.rs:403:9:403:9 | d | |
|
||||
| main.rs:410:39:410:43 | [SSA] names | main.rs:412:25:412:29 | names | |
|
||||
| main.rs:410:39:410:43 | names | main.rs:410:39:410:43 | [SSA] names | |
|
||||
| main.rs:410:39:410:72 | ...: Vec::<...> | main.rs:410:39:410:43 | names | |
|
||||
| main.rs:411:9:411:20 | default_name | main.rs:411:9:411:20 | [SSA] default_name | |
|
||||
| main.rs:411:24:411:45 | ... .to_string(...) | main.rs:411:9:411:20 | default_name | |
|
||||
| main.rs:411:24:411:45 | ... .to_string(...) | main.rs:412:9:412:20 | phi(default_name) | |
|
||||
| main.rs:412:5:418:5 | for ... in ... { ... } | main.rs:410:75:419:1 | { ... } | |
|
||||
| main.rs:412:9:412:20 | phi(default_name) | main.rs:412:9:412:20 | phi(default_name) | |
|
||||
| main.rs:412:9:412:20 | phi(default_name) | main.rs:414:41:414:67 | default_name | |
|
||||
| main.rs:412:10:412:13 | [SSA] cond | main.rs:413:12:413:15 | cond | |
|
||||
| main.rs:412:10:412:13 | cond | main.rs:412:10:412:13 | [SSA] cond | |
|
||||
| main.rs:412:16:412:19 | [SSA] name | main.rs:414:21:414:24 | name | |
|
||||
| main.rs:412:16:412:19 | name | main.rs:412:16:412:19 | [SSA] name | |
|
||||
| main.rs:413:9:417:9 | if cond {...} | main.rs:412:31:418:5 | { ... } | |
|
||||
| main.rs:414:17:414:17 | [SSA] n | main.rs:415:18:415:18 | n | |
|
||||
| main.rs:414:17:414:17 | n | main.rs:414:17:414:17 | [SSA] n | |
|
||||
| main.rs:414:21:414:68 | name.unwrap_or_else(...) | main.rs:414:17:414:17 | n | |
|
||||
| main.rs:414:41:414:67 | [post] default_name | main.rs:412:9:412:20 | phi(default_name) | |
|
||||
| main.rs:414:41:414:67 | closure self in \|...\| ... | main.rs:414:44:414:55 | this | |
|
||||
| main.rs:414:41:414:67 | default_name | main.rs:412:9:412:20 | phi(default_name) | |
|
||||
| main.rs:428:9:428:9 | [SSA] s | main.rs:429:10:429:10 | s | |
|
||||
| main.rs:428:9:428:9 | s | main.rs:428:9:428:9 | [SSA] s | |
|
||||
| main.rs:428:13:428:27 | MacroExpr | main.rs:428:9:428:9 | s | |
|
||||
| main.rs:428:25:428:26 | source(...) | main.rs:428:13:428:27 | MacroExpr | |
|
||||
| main.rs:454:13:454:33 | result_questionmark(...) | main.rs:454:9:454:9 | _ | |
|
||||
| main.rs:466:36:466:41 | ...::new(...) | main.rs:466:36:466:41 | MacroExpr | |
|
||||
| main.rs:382:14:382:20 | arr2[4] | main.rs:382:9:382:10 | n2 | |
|
||||
| main.rs:385:9:385:12 | [SSA] arr3 | main.rs:386:14:386:17 | arr3 | |
|
||||
| main.rs:385:9:385:12 | arr3 | main.rs:385:9:385:12 | [SSA] arr3 | |
|
||||
| main.rs:385:16:385:24 | [...] | main.rs:385:9:385:12 | arr3 | |
|
||||
| main.rs:386:9:386:10 | [SSA] n3 | main.rs:387:10:387:11 | n3 | |
|
||||
| main.rs:386:9:386:10 | n3 | main.rs:386:9:386:10 | [SSA] n3 | |
|
||||
| main.rs:386:14:386:20 | arr3[2] | main.rs:386:9:386:10 | n3 | |
|
||||
| main.rs:391:9:391:12 | [SSA] arr1 | main.rs:392:15:392:18 | arr1 | |
|
||||
| main.rs:391:9:391:12 | arr1 | main.rs:391:9:391:12 | [SSA] arr1 | |
|
||||
| main.rs:391:16:391:33 | [...] | main.rs:391:9:391:12 | arr1 | |
|
||||
| main.rs:392:9:392:10 | [SSA] n1 | main.rs:393:14:393:15 | n1 | |
|
||||
| main.rs:392:9:392:10 | n1 | main.rs:392:9:392:10 | [SSA] n1 | |
|
||||
| main.rs:396:9:396:12 | [SSA] arr2 | main.rs:397:15:397:18 | arr2 | |
|
||||
| main.rs:396:9:396:12 | arr2 | main.rs:396:9:396:12 | [SSA] arr2 | |
|
||||
| main.rs:396:16:396:24 | [...] | main.rs:396:9:396:12 | arr2 | |
|
||||
| main.rs:397:5:399:5 | for ... in ... { ... } | main.rs:390:21:400:1 | { ... } | |
|
||||
| main.rs:397:9:397:10 | [SSA] n2 | main.rs:398:14:398:15 | n2 | |
|
||||
| main.rs:397:9:397:10 | n2 | main.rs:397:9:397:10 | [SSA] n2 | |
|
||||
| main.rs:403:9:403:12 | [SSA] arr1 | main.rs:404:11:404:14 | arr1 | |
|
||||
| main.rs:403:9:403:12 | arr1 | main.rs:403:9:403:12 | [SSA] arr1 | |
|
||||
| main.rs:403:16:403:33 | [...] | main.rs:403:9:403:12 | arr1 | |
|
||||
| main.rs:404:5:410:5 | match arr1 { ... } | main.rs:402:26:411:1 | { ... } | |
|
||||
| main.rs:404:11:404:14 | arr1 | main.rs:405:9:405:17 | SlicePat | |
|
||||
| main.rs:405:10:405:10 | [SSA] a | main.rs:406:18:406:18 | a | |
|
||||
| main.rs:405:10:405:10 | a | main.rs:405:10:405:10 | [SSA] a | |
|
||||
| main.rs:405:13:405:13 | [SSA] b | main.rs:407:18:407:18 | b | |
|
||||
| main.rs:405:13:405:13 | b | main.rs:405:13:405:13 | [SSA] b | |
|
||||
| main.rs:405:16:405:16 | [SSA] c | main.rs:408:18:408:18 | c | |
|
||||
| main.rs:405:16:405:16 | c | main.rs:405:16:405:16 | [SSA] c | |
|
||||
| main.rs:405:22:409:9 | { ... } | main.rs:404:5:410:5 | match arr1 { ... } | |
|
||||
| main.rs:414:9:414:19 | [SSA] mut_arr | main.rs:415:10:415:16 | mut_arr | |
|
||||
| main.rs:414:9:414:19 | mut_arr | main.rs:414:9:414:19 | [SSA] mut_arr | |
|
||||
| main.rs:414:23:414:31 | [...] | main.rs:414:9:414:19 | mut_arr | |
|
||||
| main.rs:415:10:415:16 | [post] mut_arr | main.rs:417:5:417:11 | mut_arr | |
|
||||
| main.rs:415:10:415:16 | mut_arr | main.rs:417:5:417:11 | mut_arr | |
|
||||
| main.rs:417:5:417:11 | [post] mut_arr | main.rs:418:13:418:19 | mut_arr | |
|
||||
| main.rs:417:5:417:11 | mut_arr | main.rs:418:13:418:19 | mut_arr | |
|
||||
| main.rs:417:18:417:27 | source(...) | main.rs:417:5:417:14 | mut_arr[1] | |
|
||||
| main.rs:418:9:418:9 | [SSA] d | main.rs:419:10:419:10 | d | |
|
||||
| main.rs:418:9:418:9 | d | main.rs:418:9:418:9 | [SSA] d | |
|
||||
| main.rs:418:13:418:19 | [post] mut_arr | main.rs:420:10:420:16 | mut_arr | |
|
||||
| main.rs:418:13:418:19 | mut_arr | main.rs:420:10:420:16 | mut_arr | |
|
||||
| main.rs:418:13:418:22 | mut_arr[1] | main.rs:418:9:418:9 | d | |
|
||||
| main.rs:425:39:425:43 | [SSA] names | main.rs:427:25:427:29 | names | |
|
||||
| main.rs:425:39:425:43 | names | main.rs:425:39:425:43 | [SSA] names | |
|
||||
| main.rs:425:39:425:72 | ...: Vec::<...> | main.rs:425:39:425:43 | names | |
|
||||
| main.rs:426:9:426:20 | default_name | main.rs:426:9:426:20 | [SSA] default_name | |
|
||||
| main.rs:426:24:426:45 | ... .to_string(...) | main.rs:426:9:426:20 | default_name | |
|
||||
| main.rs:426:24:426:45 | ... .to_string(...) | main.rs:427:9:427:20 | phi(default_name) | |
|
||||
| main.rs:427:5:433:5 | for ... in ... { ... } | main.rs:425:75:434:1 | { ... } | |
|
||||
| main.rs:427:9:427:20 | phi(default_name) | main.rs:427:9:427:20 | phi(default_name) | |
|
||||
| main.rs:427:9:427:20 | phi(default_name) | main.rs:429:41:429:67 | default_name | |
|
||||
| main.rs:427:10:427:13 | [SSA] cond | main.rs:428:12:428:15 | cond | |
|
||||
| main.rs:427:10:427:13 | cond | main.rs:427:10:427:13 | [SSA] cond | |
|
||||
| main.rs:427:16:427:19 | [SSA] name | main.rs:429:21:429:24 | name | |
|
||||
| main.rs:427:16:427:19 | name | main.rs:427:16:427:19 | [SSA] name | |
|
||||
| main.rs:428:9:432:9 | if cond {...} | main.rs:427:31:433:5 | { ... } | |
|
||||
| main.rs:429:17:429:17 | [SSA] n | main.rs:430:18:430:18 | n | |
|
||||
| main.rs:429:17:429:17 | n | main.rs:429:17:429:17 | [SSA] n | |
|
||||
| main.rs:429:21:429:68 | name.unwrap_or_else(...) | main.rs:429:17:429:17 | n | |
|
||||
| main.rs:429:41:429:67 | [post] default_name | main.rs:427:9:427:20 | phi(default_name) | |
|
||||
| main.rs:429:41:429:67 | closure self in \|...\| ... | main.rs:429:44:429:55 | this | |
|
||||
| main.rs:429:41:429:67 | default_name | main.rs:427:9:427:20 | phi(default_name) | |
|
||||
| main.rs:443:9:443:9 | [SSA] s | main.rs:444:10:444:10 | s | |
|
||||
| main.rs:443:9:443:9 | s | main.rs:443:9:443:9 | [SSA] s | |
|
||||
| main.rs:443:13:443:27 | MacroExpr | main.rs:443:9:443:9 | s | |
|
||||
| main.rs:443:25:443:26 | source(...) | main.rs:443:13:443:27 | MacroExpr | |
|
||||
| main.rs:470:13:470:33 | result_questionmark(...) | main.rs:470:9:470:9 | _ | |
|
||||
| main.rs:482:36:482:41 | ...::new(...) | main.rs:482:36:482:41 | MacroExpr | |
|
||||
models
|
||||
| 1 | Sink: lang:std; crate::io::stdio::_print; log-injection; Argument[0] |
|
||||
| 2 | Summary: lang:core; <crate::option::Option>::expect; Argument[self].Variant[crate::option::Option::Some(0)]; ReturnValue; value |
|
||||
@@ -555,53 +569,55 @@ storeStep
|
||||
| main.rs:177:16:177:16 | 2 | Point.x | main.rs:176:16:179:9 | Point {...} |
|
||||
| main.rs:178:16:178:25 | source(...) | Point.y | main.rs:176:16:179:9 | Point {...} |
|
||||
| main.rs:180:12:180:12 | 4 | Point3D.z | main.rs:175:13:181:5 | Point3D {...} |
|
||||
| main.rs:198:27:198:36 | source(...) | Some | main.rs:198:14:198:37 | ...::Some(...) |
|
||||
| main.rs:199:27:199:27 | 2 | Some | main.rs:199:14:199:28 | ...::Some(...) |
|
||||
| main.rs:211:19:211:28 | source(...) | Some | main.rs:211:14:211:29 | Some(...) |
|
||||
| main.rs:212:19:212:19 | 2 | Some | main.rs:212:14:212:20 | Some(...) |
|
||||
| main.rs:224:19:224:28 | source(...) | Some | main.rs:224:14:224:29 | Some(...) |
|
||||
| main.rs:229:19:229:28 | source(...) | Some | main.rs:229:14:229:29 | Some(...) |
|
||||
| main.rs:232:19:232:19 | 0 | Some | main.rs:232:14:232:20 | Some(...) |
|
||||
| main.rs:237:19:237:28 | source(...) | Some | main.rs:237:14:237:29 | Some(...) |
|
||||
| main.rs:245:19:245:28 | source(...) | Some | main.rs:245:14:245:29 | Some(...) |
|
||||
| main.rs:246:19:246:19 | 2 | Some | main.rs:246:14:246:20 | Some(...) |
|
||||
| main.rs:250:10:250:10 | 0 | Some | main.rs:250:5:250:11 | Some(...) |
|
||||
| main.rs:254:35:254:44 | source(...) | Ok | main.rs:254:32:254:45 | Ok(...) |
|
||||
| main.rs:255:35:255:35 | 2 | Ok | main.rs:255:32:255:36 | Ok(...) |
|
||||
| main.rs:256:36:256:45 | source(...) | Err | main.rs:256:32:256:46 | Err(...) |
|
||||
| main.rs:263:8:263:8 | 0 | Ok | main.rs:263:5:263:9 | Ok(...) |
|
||||
| main.rs:267:35:267:44 | source(...) | Ok | main.rs:267:32:267:45 | Ok(...) |
|
||||
| main.rs:197:27:197:36 | source(...) | MyTupleStruct(0) | main.rs:197:13:197:40 | MyTupleStruct(...) |
|
||||
| main.rs:197:39:197:39 | 2 | MyTupleStruct(1) | main.rs:197:13:197:40 | MyTupleStruct(...) |
|
||||
| main.rs:213:27:213:36 | source(...) | Some | main.rs:213:14:213:37 | ...::Some(...) |
|
||||
| main.rs:214:27:214:27 | 2 | Some | main.rs:214:14:214:28 | ...::Some(...) |
|
||||
| main.rs:226:19:226:28 | source(...) | Some | main.rs:226:14:226:29 | Some(...) |
|
||||
| main.rs:227:19:227:19 | 2 | Some | main.rs:227:14:227:20 | Some(...) |
|
||||
| main.rs:239:19:239:28 | source(...) | Some | main.rs:239:14:239:29 | Some(...) |
|
||||
| main.rs:244:19:244:28 | source(...) | Some | main.rs:244:14:244:29 | Some(...) |
|
||||
| main.rs:247:19:247:19 | 0 | Some | main.rs:247:14:247:20 | Some(...) |
|
||||
| main.rs:252:19:252:28 | source(...) | Some | main.rs:252:14:252:29 | Some(...) |
|
||||
| main.rs:260:19:260:28 | source(...) | Some | main.rs:260:14:260:29 | Some(...) |
|
||||
| main.rs:261:19:261:19 | 2 | Some | main.rs:261:14:261:20 | Some(...) |
|
||||
| main.rs:265:10:265:10 | 0 | Some | main.rs:265:5:265:11 | Some(...) |
|
||||
| main.rs:269:35:269:44 | source(...) | Ok | main.rs:269:32:269:45 | Ok(...) |
|
||||
| main.rs:270:35:270:35 | 2 | Ok | main.rs:270:32:270:36 | Ok(...) |
|
||||
| main.rs:271:36:271:45 | source(...) | Err | main.rs:271:32:271:46 | Err(...) |
|
||||
| main.rs:282:29:282:38 | source(...) | A | main.rs:282:14:282:39 | ...::A(...) |
|
||||
| main.rs:283:29:283:29 | 2 | B | main.rs:283:14:283:30 | ...::B(...) |
|
||||
| main.rs:300:16:300:25 | source(...) | A | main.rs:300:14:300:26 | A(...) |
|
||||
| main.rs:301:16:301:16 | 2 | B | main.rs:301:14:301:17 | B(...) |
|
||||
| main.rs:322:18:322:27 | source(...) | C | main.rs:321:14:323:5 | ...::C {...} |
|
||||
| main.rs:324:41:324:41 | 2 | D | main.rs:324:14:324:43 | ...::D {...} |
|
||||
| main.rs:342:18:342:27 | source(...) | C | main.rs:341:14:343:5 | C {...} |
|
||||
| main.rs:344:27:344:27 | 2 | D | main.rs:344:14:344:29 | D {...} |
|
||||
| main.rs:362:17:362:17 | 1 | element | main.rs:362:16:362:33 | [...] |
|
||||
| main.rs:362:20:362:20 | 2 | element | main.rs:362:16:362:33 | [...] |
|
||||
| main.rs:362:23:362:32 | source(...) | element | main.rs:362:16:362:33 | [...] |
|
||||
| main.rs:366:17:366:26 | source(...) | element | main.rs:366:16:366:31 | [...; 10] |
|
||||
| main.rs:370:17:370:17 | 1 | element | main.rs:370:16:370:24 | [...] |
|
||||
| main.rs:370:20:370:20 | 2 | element | main.rs:370:16:370:24 | [...] |
|
||||
| main.rs:370:23:370:23 | 3 | element | main.rs:370:16:370:24 | [...] |
|
||||
| main.rs:376:17:376:17 | 1 | element | main.rs:376:16:376:33 | [...] |
|
||||
| main.rs:376:20:376:20 | 2 | element | main.rs:376:16:376:33 | [...] |
|
||||
| main.rs:376:23:376:32 | source(...) | element | main.rs:376:16:376:33 | [...] |
|
||||
| main.rs:381:17:381:17 | 1 | element | main.rs:381:16:381:24 | [...] |
|
||||
| main.rs:381:20:381:20 | 2 | element | main.rs:381:16:381:24 | [...] |
|
||||
| main.rs:381:23:381:23 | 3 | element | main.rs:381:16:381:24 | [...] |
|
||||
| main.rs:388:17:388:17 | 1 | element | main.rs:388:16:388:33 | [...] |
|
||||
| main.rs:388:20:388:20 | 2 | element | main.rs:388:16:388:33 | [...] |
|
||||
| main.rs:388:23:388:32 | source(...) | element | main.rs:388:16:388:33 | [...] |
|
||||
| main.rs:399:24:399:24 | 1 | element | main.rs:399:23:399:31 | [...] |
|
||||
| main.rs:399:27:399:27 | 2 | element | main.rs:399:23:399:31 | [...] |
|
||||
| main.rs:399:30:399:30 | 3 | element | main.rs:399:23:399:31 | [...] |
|
||||
| main.rs:402:18:402:27 | source(...) | element | main.rs:402:5:402:11 | [post] mut_arr |
|
||||
| main.rs:414:41:414:67 | default_name | captured default_name | main.rs:414:41:414:67 | \|...\| ... |
|
||||
| main.rs:436:27:436:27 | 0 | Some | main.rs:436:22:436:28 | Some(...) |
|
||||
| main.rs:278:8:278:8 | 0 | Ok | main.rs:278:5:278:9 | Ok(...) |
|
||||
| main.rs:282:35:282:44 | source(...) | Ok | main.rs:282:32:282:45 | Ok(...) |
|
||||
| main.rs:286:36:286:45 | source(...) | Err | main.rs:286:32:286:46 | Err(...) |
|
||||
| main.rs:297:29:297:38 | source(...) | A | main.rs:297:14:297:39 | ...::A(...) |
|
||||
| main.rs:298:29:298:29 | 2 | B | main.rs:298:14:298:30 | ...::B(...) |
|
||||
| main.rs:315:16:315:25 | source(...) | A | main.rs:315:14:315:26 | A(...) |
|
||||
| main.rs:316:16:316:16 | 2 | B | main.rs:316:14:316:17 | B(...) |
|
||||
| main.rs:337:18:337:27 | source(...) | C | main.rs:336:14:338:5 | ...::C {...} |
|
||||
| main.rs:339:41:339:41 | 2 | D | main.rs:339:14:339:43 | ...::D {...} |
|
||||
| main.rs:357:18:357:27 | source(...) | C | main.rs:356:14:358:5 | C {...} |
|
||||
| main.rs:359:27:359:27 | 2 | D | main.rs:359:14:359:29 | D {...} |
|
||||
| main.rs:377:17:377:17 | 1 | element | main.rs:377:16:377:33 | [...] |
|
||||
| main.rs:377:20:377:20 | 2 | element | main.rs:377:16:377:33 | [...] |
|
||||
| main.rs:377:23:377:32 | source(...) | element | main.rs:377:16:377:33 | [...] |
|
||||
| main.rs:381:17:381:26 | source(...) | element | main.rs:381:16:381:31 | [...; 10] |
|
||||
| main.rs:385:17:385:17 | 1 | element | main.rs:385:16:385:24 | [...] |
|
||||
| main.rs:385:20:385:20 | 2 | element | main.rs:385:16:385:24 | [...] |
|
||||
| main.rs:385:23:385:23 | 3 | element | main.rs:385:16:385:24 | [...] |
|
||||
| main.rs:391:17:391:17 | 1 | element | main.rs:391:16:391:33 | [...] |
|
||||
| main.rs:391:20:391:20 | 2 | element | main.rs:391:16:391:33 | [...] |
|
||||
| main.rs:391:23:391:32 | source(...) | element | main.rs:391:16:391:33 | [...] |
|
||||
| main.rs:396:17:396:17 | 1 | element | main.rs:396:16:396:24 | [...] |
|
||||
| main.rs:396:20:396:20 | 2 | element | main.rs:396:16:396:24 | [...] |
|
||||
| main.rs:396:23:396:23 | 3 | element | main.rs:396:16:396:24 | [...] |
|
||||
| main.rs:403:17:403:17 | 1 | element | main.rs:403:16:403:33 | [...] |
|
||||
| main.rs:403:20:403:20 | 2 | element | main.rs:403:16:403:33 | [...] |
|
||||
| main.rs:403:23:403:32 | source(...) | element | main.rs:403:16:403:33 | [...] |
|
||||
| main.rs:414:24:414:24 | 1 | element | main.rs:414:23:414:31 | [...] |
|
||||
| main.rs:414:27:414:27 | 2 | element | main.rs:414:23:414:31 | [...] |
|
||||
| main.rs:414:30:414:30 | 3 | element | main.rs:414:23:414:31 | [...] |
|
||||
| main.rs:417:18:417:27 | source(...) | element | main.rs:417:5:417:11 | [post] mut_arr |
|
||||
| main.rs:429:41:429:67 | default_name | captured default_name | main.rs:429:41:429:67 | \|...\| ... |
|
||||
| main.rs:451:27:451:27 | 0 | Some | main.rs:451:22:451:28 | Some(...) |
|
||||
readStep
|
||||
| file://:0:0:0:0 | [summary param] 0 in lang:core::_::<crate::option::Option>::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::<crate::option::Option>::unwrap_or_else |
|
||||
| file://:0:0:0:0 | [summary param] 0 in lang:core::_::<crate::result::Result>::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::<crate::result::Result>::unwrap_or_else |
|
||||
@@ -644,58 +660,62 @@ readStep
|
||||
| main.rs:183:9:186:9 | Point3D {...} | Point3D.z | main.rs:185:13:185:13 | z |
|
||||
| main.rs:184:20:184:33 | Point {...} | Point.x | main.rs:184:28:184:28 | x |
|
||||
| main.rs:184:20:184:33 | Point {...} | Point.y | main.rs:184:31:184:31 | y |
|
||||
| main.rs:201:9:201:23 | ...::Some(...) | Some | main.rs:201:22:201:22 | n |
|
||||
| main.rs:205:9:205:23 | ...::Some(...) | Some | main.rs:205:22:205:22 | n |
|
||||
| main.rs:214:9:214:15 | Some(...) | Some | main.rs:214:14:214:14 | n |
|
||||
| main.rs:218:9:218:15 | Some(...) | Some | main.rs:218:14:218:14 | n |
|
||||
| main.rs:247:14:247:15 | s1 | Ok | main.rs:247:14:247:16 | TryExpr |
|
||||
| main.rs:247:14:247:15 | s1 | Some | main.rs:247:14:247:16 | TryExpr |
|
||||
| main.rs:249:10:249:11 | s2 | Ok | main.rs:249:10:249:12 | TryExpr |
|
||||
| main.rs:249:10:249:11 | s2 | Some | main.rs:249:10:249:12 | TryExpr |
|
||||
| main.rs:257:14:257:15 | s1 | Ok | main.rs:257:14:257:16 | TryExpr |
|
||||
| main.rs:257:14:257:15 | s1 | Some | main.rs:257:14:257:16 | TryExpr |
|
||||
| main.rs:258:14:258:15 | s2 | Ok | main.rs:258:14:258:16 | TryExpr |
|
||||
| main.rs:258:14:258:15 | s2 | Some | main.rs:258:14:258:16 | TryExpr |
|
||||
| main.rs:261:14:261:15 | s3 | Ok | main.rs:261:14:261:16 | TryExpr |
|
||||
| main.rs:261:14:261:15 | s3 | Some | main.rs:261:14:261:16 | TryExpr |
|
||||
| main.rs:285:9:285:25 | ...::A(...) | A | main.rs:285:24:285:24 | n |
|
||||
| main.rs:286:9:286:25 | ...::B(...) | B | main.rs:286:24:286:24 | n |
|
||||
| main.rs:289:9:289:25 | ...::A(...) | A | main.rs:289:24:289:24 | n |
|
||||
| main.rs:289:29:289:45 | ...::B(...) | B | main.rs:289:44:289:44 | n |
|
||||
| main.rs:292:9:292:25 | ...::A(...) | A | main.rs:292:24:292:24 | n |
|
||||
| main.rs:293:9:293:25 | ...::B(...) | B | main.rs:293:24:293:24 | n |
|
||||
| main.rs:303:9:303:12 | A(...) | A | main.rs:303:11:303:11 | n |
|
||||
| main.rs:304:9:304:12 | B(...) | B | main.rs:304:11:304:11 | n |
|
||||
| main.rs:307:9:307:12 | A(...) | A | main.rs:307:11:307:11 | n |
|
||||
| main.rs:307:16:307:19 | B(...) | B | main.rs:307:18:307:18 | n |
|
||||
| main.rs:310:9:310:12 | A(...) | A | main.rs:310:11:310:11 | n |
|
||||
| main.rs:311:9:311:12 | B(...) | B | main.rs:311:11:311:11 | n |
|
||||
| main.rs:326:9:326:38 | ...::C {...} | C | main.rs:326:36:326:36 | n |
|
||||
| main.rs:327:9:327:38 | ...::D {...} | D | main.rs:327:36:327:36 | n |
|
||||
| main.rs:330:9:330:38 | ...::C {...} | C | main.rs:330:36:330:36 | n |
|
||||
| main.rs:330:42:330:71 | ...::D {...} | D | main.rs:330:69:330:69 | n |
|
||||
| main.rs:333:9:333:38 | ...::C {...} | C | main.rs:333:36:333:36 | n |
|
||||
| main.rs:334:9:334:38 | ...::D {...} | D | main.rs:334:36:334:36 | n |
|
||||
| main.rs:346:9:346:24 | C {...} | C | main.rs:346:22:346:22 | n |
|
||||
| main.rs:347:9:347:24 | D {...} | D | main.rs:347:22:347:22 | n |
|
||||
| main.rs:350:9:350:24 | C {...} | C | main.rs:350:22:350:22 | n |
|
||||
| main.rs:350:28:350:43 | D {...} | D | main.rs:350:41:350:41 | n |
|
||||
| main.rs:353:9:353:24 | C {...} | C | main.rs:353:22:353:22 | n |
|
||||
| main.rs:354:9:354:24 | D {...} | D | main.rs:354:22:354:22 | n |
|
||||
| main.rs:363:14:363:17 | arr1 | element | main.rs:363:14:363:20 | arr1[2] |
|
||||
| main.rs:367:14:367:17 | arr2 | element | main.rs:367:14:367:20 | arr2[4] |
|
||||
| main.rs:371:14:371:17 | arr3 | element | main.rs:371:14:371:20 | arr3[2] |
|
||||
| main.rs:377:15:377:18 | arr1 | element | main.rs:377:9:377:10 | n1 |
|
||||
| main.rs:382:15:382:18 | arr2 | element | main.rs:382:9:382:10 | n2 |
|
||||
| main.rs:390:9:390:17 | SlicePat | element | main.rs:390:10:390:10 | a |
|
||||
| main.rs:390:9:390:17 | SlicePat | element | main.rs:390:13:390:13 | b |
|
||||
| main.rs:390:9:390:17 | SlicePat | element | main.rs:390:16:390:16 | c |
|
||||
| main.rs:400:10:400:16 | mut_arr | element | main.rs:400:10:400:19 | mut_arr[1] |
|
||||
| main.rs:402:5:402:11 | mut_arr | element | main.rs:402:5:402:14 | mut_arr[1] |
|
||||
| main.rs:403:13:403:19 | mut_arr | element | main.rs:403:13:403:22 | mut_arr[1] |
|
||||
| main.rs:405:10:405:16 | mut_arr | element | main.rs:405:10:405:19 | mut_arr[0] |
|
||||
| main.rs:412:9:412:20 | TuplePat | tuple.0 | main.rs:412:10:412:13 | cond |
|
||||
| main.rs:412:9:412:20 | TuplePat | tuple.1 | main.rs:412:16:412:19 | name |
|
||||
| main.rs:412:25:412:29 | names | element | main.rs:412:9:412:20 | TuplePat |
|
||||
| main.rs:414:41:414:67 | [post] \|...\| ... | captured default_name | main.rs:414:41:414:67 | [post] default_name |
|
||||
| main.rs:414:44:414:55 | this | captured default_name | main.rs:414:44:414:55 | default_name |
|
||||
| main.rs:198:10:198:10 | s | tuple.0 | main.rs:198:10:198:12 | s.0 |
|
||||
| main.rs:199:10:199:10 | s | tuple.1 | main.rs:199:10:199:12 | s.1 |
|
||||
| main.rs:202:9:202:27 | MyTupleStruct(...) | MyTupleStruct(0) | main.rs:202:23:202:23 | x |
|
||||
| main.rs:202:9:202:27 | MyTupleStruct(...) | MyTupleStruct(1) | main.rs:202:26:202:26 | y |
|
||||
| main.rs:216:9:216:23 | ...::Some(...) | Some | main.rs:216:22:216:22 | n |
|
||||
| main.rs:220:9:220:23 | ...::Some(...) | Some | main.rs:220:22:220:22 | n |
|
||||
| main.rs:229:9:229:15 | Some(...) | Some | main.rs:229:14:229:14 | n |
|
||||
| main.rs:233:9:233:15 | Some(...) | Some | main.rs:233:14:233:14 | n |
|
||||
| main.rs:262:14:262:15 | s1 | Ok | main.rs:262:14:262:16 | TryExpr |
|
||||
| main.rs:262:14:262:15 | s1 | Some | main.rs:262:14:262:16 | TryExpr |
|
||||
| main.rs:264:10:264:11 | s2 | Ok | main.rs:264:10:264:12 | TryExpr |
|
||||
| main.rs:264:10:264:11 | s2 | Some | main.rs:264:10:264:12 | TryExpr |
|
||||
| main.rs:272:14:272:15 | s1 | Ok | main.rs:272:14:272:16 | TryExpr |
|
||||
| main.rs:272:14:272:15 | s1 | Some | main.rs:272:14:272:16 | TryExpr |
|
||||
| main.rs:273:14:273:15 | s2 | Ok | main.rs:273:14:273:16 | TryExpr |
|
||||
| main.rs:273:14:273:15 | s2 | Some | main.rs:273:14:273:16 | TryExpr |
|
||||
| main.rs:276:14:276:15 | s3 | Ok | main.rs:276:14:276:16 | TryExpr |
|
||||
| main.rs:276:14:276:15 | s3 | Some | main.rs:276:14:276:16 | TryExpr |
|
||||
| main.rs:300:9:300:25 | ...::A(...) | A | main.rs:300:24:300:24 | n |
|
||||
| main.rs:301:9:301:25 | ...::B(...) | B | main.rs:301:24:301:24 | n |
|
||||
| main.rs:304:9:304:25 | ...::A(...) | A | main.rs:304:24:304:24 | n |
|
||||
| main.rs:304:29:304:45 | ...::B(...) | B | main.rs:304:44:304:44 | n |
|
||||
| main.rs:307:9:307:25 | ...::A(...) | A | main.rs:307:24:307:24 | n |
|
||||
| main.rs:308:9:308:25 | ...::B(...) | B | main.rs:308:24:308:24 | n |
|
||||
| main.rs:318:9:318:12 | A(...) | A | main.rs:318:11:318:11 | n |
|
||||
| main.rs:319:9:319:12 | B(...) | B | main.rs:319:11:319:11 | n |
|
||||
| main.rs:322:9:322:12 | A(...) | A | main.rs:322:11:322:11 | n |
|
||||
| main.rs:322:16:322:19 | B(...) | B | main.rs:322:18:322:18 | n |
|
||||
| main.rs:325:9:325:12 | A(...) | A | main.rs:325:11:325:11 | n |
|
||||
| main.rs:326:9:326:12 | B(...) | B | main.rs:326:11:326:11 | n |
|
||||
| main.rs:341:9:341:38 | ...::C {...} | C | main.rs:341:36:341:36 | n |
|
||||
| main.rs:342:9:342:38 | ...::D {...} | D | main.rs:342:36:342:36 | n |
|
||||
| main.rs:345:9:345:38 | ...::C {...} | C | main.rs:345:36:345:36 | n |
|
||||
| main.rs:345:42:345:71 | ...::D {...} | D | main.rs:345:69:345:69 | n |
|
||||
| main.rs:348:9:348:38 | ...::C {...} | C | main.rs:348:36:348:36 | n |
|
||||
| main.rs:349:9:349:38 | ...::D {...} | D | main.rs:349:36:349:36 | n |
|
||||
| main.rs:361:9:361:24 | C {...} | C | main.rs:361:22:361:22 | n |
|
||||
| main.rs:362:9:362:24 | D {...} | D | main.rs:362:22:362:22 | n |
|
||||
| main.rs:365:9:365:24 | C {...} | C | main.rs:365:22:365:22 | n |
|
||||
| main.rs:365:28:365:43 | D {...} | D | main.rs:365:41:365:41 | n |
|
||||
| main.rs:368:9:368:24 | C {...} | C | main.rs:368:22:368:22 | n |
|
||||
| main.rs:369:9:369:24 | D {...} | D | main.rs:369:22:369:22 | n |
|
||||
| main.rs:378:14:378:17 | arr1 | element | main.rs:378:14:378:20 | arr1[2] |
|
||||
| main.rs:382:14:382:17 | arr2 | element | main.rs:382:14:382:20 | arr2[4] |
|
||||
| main.rs:386:14:386:17 | arr3 | element | main.rs:386:14:386:20 | arr3[2] |
|
||||
| main.rs:392:15:392:18 | arr1 | element | main.rs:392:9:392:10 | n1 |
|
||||
| main.rs:397:15:397:18 | arr2 | element | main.rs:397:9:397:10 | n2 |
|
||||
| main.rs:405:9:405:17 | SlicePat | element | main.rs:405:10:405:10 | a |
|
||||
| main.rs:405:9:405:17 | SlicePat | element | main.rs:405:13:405:13 | b |
|
||||
| main.rs:405:9:405:17 | SlicePat | element | main.rs:405:16:405:16 | c |
|
||||
| main.rs:415:10:415:16 | mut_arr | element | main.rs:415:10:415:19 | mut_arr[1] |
|
||||
| main.rs:417:5:417:11 | mut_arr | element | main.rs:417:5:417:14 | mut_arr[1] |
|
||||
| main.rs:418:13:418:19 | mut_arr | element | main.rs:418:13:418:22 | mut_arr[1] |
|
||||
| main.rs:420:10:420:16 | mut_arr | element | main.rs:420:10:420:19 | mut_arr[0] |
|
||||
| main.rs:427:9:427:20 | TuplePat | tuple.0 | main.rs:427:10:427:13 | cond |
|
||||
| main.rs:427:9:427:20 | TuplePat | tuple.1 | main.rs:427:16:427:19 | name |
|
||||
| main.rs:427:25:427:29 | names | element | main.rs:427:9:427:20 | TuplePat |
|
||||
| main.rs:429:41:429:67 | [post] \|...\| ... | captured default_name | main.rs:429:41:429:67 | [post] default_name |
|
||||
| main.rs:429:44:429:55 | this | captured default_name | main.rs:429:44:429:55 | default_name |
|
||||
|
||||
@@ -57,128 +57,134 @@ edges
|
||||
| main.rs:183:9:186:9 | Point3D {...} [Point3D.plane, Point.y] | main.rs:184:20:184:33 | Point {...} [Point.y] | provenance | |
|
||||
| main.rs:184:20:184:33 | Point {...} [Point.y] | main.rs:184:31:184:31 | y | provenance | |
|
||||
| main.rs:184:31:184:31 | y | main.rs:188:18:188:18 | y | provenance | |
|
||||
| main.rs:198:9:198:10 | s1 [Some] | main.rs:200:11:200:12 | s1 [Some] | provenance | |
|
||||
| main.rs:198:14:198:37 | ...::Some(...) [Some] | main.rs:198:9:198:10 | s1 [Some] | provenance | |
|
||||
| main.rs:198:27:198:36 | source(...) | main.rs:198:14:198:37 | ...::Some(...) [Some] | provenance | |
|
||||
| main.rs:200:11:200:12 | s1 [Some] | main.rs:201:9:201:23 | ...::Some(...) [Some] | provenance | |
|
||||
| main.rs:201:9:201:23 | ...::Some(...) [Some] | main.rs:201:22:201:22 | n | provenance | |
|
||||
| main.rs:201:22:201:22 | n | main.rs:201:33:201:33 | n | provenance | |
|
||||
| main.rs:211:9:211:10 | s1 [Some] | main.rs:213:11:213:12 | s1 [Some] | provenance | |
|
||||
| main.rs:211:14:211:29 | Some(...) [Some] | main.rs:211:9:211:10 | s1 [Some] | provenance | |
|
||||
| main.rs:211:19:211:28 | source(...) | main.rs:211:14:211:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:213:11:213:12 | s1 [Some] | main.rs:214:9:214:15 | Some(...) [Some] | provenance | |
|
||||
| main.rs:214:9:214:15 | Some(...) [Some] | main.rs:214:14:214:14 | n | provenance | |
|
||||
| main.rs:214:14:214:14 | n | main.rs:214:25:214:25 | n | provenance | |
|
||||
| main.rs:224:9:224:10 | s1 [Some] | main.rs:225:10:225:11 | s1 [Some] | provenance | |
|
||||
| main.rs:224:14:224:29 | Some(...) [Some] | main.rs:224:9:224:10 | s1 [Some] | provenance | |
|
||||
| main.rs:224:19:224:28 | source(...) | main.rs:224:14:224:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:225:10:225:11 | s1 [Some] | main.rs:225:10:225:20 | s1.unwrap(...) | provenance | MaD:1 |
|
||||
| main.rs:229:9:229:10 | s1 [Some] | main.rs:230:10:230:11 | s1 [Some] | provenance | |
|
||||
| main.rs:229:14:229:29 | Some(...) [Some] | main.rs:229:9:229:10 | s1 [Some] | provenance | |
|
||||
| main.rs:229:19:229:28 | source(...) | main.rs:229:14:229:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:230:10:230:11 | s1 [Some] | main.rs:230:10:230:24 | s1.unwrap_or(...) | provenance | MaD:3 |
|
||||
| main.rs:233:23:233:32 | source(...) | main.rs:233:10:233:33 | s2.unwrap_or(...) | provenance | MaD:2 |
|
||||
| main.rs:237:9:237:10 | s1 [Some] | main.rs:238:10:238:11 | s1 [Some] | provenance | |
|
||||
| main.rs:237:14:237:29 | Some(...) [Some] | main.rs:237:9:237:10 | s1 [Some] | provenance | |
|
||||
| main.rs:237:19:237:28 | source(...) | main.rs:237:14:237:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:238:10:238:11 | s1 [Some] | main.rs:238:10:238:32 | s1.unwrap_or_else(...) | provenance | MaD:5 |
|
||||
| main.rs:241:31:241:40 | source(...) | main.rs:241:10:241:41 | s2.unwrap_or_else(...) | provenance | MaD:4 |
|
||||
| main.rs:245:9:245:10 | s1 [Some] | main.rs:247:14:247:15 | s1 [Some] | provenance | |
|
||||
| main.rs:245:14:245:29 | Some(...) [Some] | main.rs:245:9:245:10 | s1 [Some] | provenance | |
|
||||
| main.rs:245:19:245:28 | source(...) | main.rs:245:14:245:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:247:9:247:10 | i1 | main.rs:248:10:248:11 | i1 | provenance | |
|
||||
| main.rs:247:14:247:15 | s1 [Some] | main.rs:247:14:247:16 | TryExpr | provenance | |
|
||||
| main.rs:247:14:247:16 | TryExpr | main.rs:247:9:247:10 | i1 | provenance | |
|
||||
| main.rs:254:9:254:10 | s1 [Ok] | main.rs:257:14:257:15 | s1 [Ok] | provenance | |
|
||||
| main.rs:254:32:254:45 | Ok(...) [Ok] | main.rs:254:9:254:10 | s1 [Ok] | provenance | |
|
||||
| main.rs:254:35:254:44 | source(...) | main.rs:254:32:254:45 | Ok(...) [Ok] | provenance | |
|
||||
| main.rs:257:9:257:10 | i1 | main.rs:259:10:259:11 | i1 | provenance | |
|
||||
| main.rs:257:14:257:15 | s1 [Ok] | main.rs:257:14:257:16 | TryExpr | provenance | |
|
||||
| main.rs:257:14:257:16 | TryExpr | main.rs:257:9:257:10 | i1 | provenance | |
|
||||
| main.rs:267:9:267:10 | s1 [Ok] | main.rs:268:10:268:11 | s1 [Ok] | provenance | |
|
||||
| main.rs:267:32:267:45 | Ok(...) [Ok] | main.rs:267:9:267:10 | s1 [Ok] | provenance | |
|
||||
| main.rs:267:35:267:44 | source(...) | main.rs:267:32:267:45 | Ok(...) [Ok] | provenance | |
|
||||
| main.rs:268:10:268:11 | s1 [Ok] | main.rs:268:10:268:22 | s1.expect(...) | provenance | MaD:6 |
|
||||
| main.rs:271:9:271:10 | s2 [Err] | main.rs:273:10:273:11 | s2 [Err] | provenance | |
|
||||
| main.rs:271:32:271:46 | Err(...) [Err] | main.rs:271:9:271:10 | s2 [Err] | provenance | |
|
||||
| main.rs:271:36:271:45 | source(...) | main.rs:271:32:271:46 | Err(...) [Err] | provenance | |
|
||||
| main.rs:273:10:273:11 | s2 [Err] | main.rs:273:10:273:26 | s2.expect_err(...) | provenance | MaD:7 |
|
||||
| main.rs:282:9:282:10 | s1 [A] | main.rs:284:11:284:12 | s1 [A] | provenance | |
|
||||
| main.rs:282:14:282:39 | ...::A(...) [A] | main.rs:282:9:282:10 | s1 [A] | provenance | |
|
||||
| main.rs:282:29:282:38 | source(...) | main.rs:282:14:282:39 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:284:11:284:12 | s1 [A] | main.rs:285:9:285:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:284:11:284:12 | s1 [A] | main.rs:288:11:288:12 | s1 [A] | provenance | |
|
||||
| main.rs:285:9:285:25 | ...::A(...) [A] | main.rs:285:24:285:24 | n | provenance | |
|
||||
| main.rs:285:24:285:24 | n | main.rs:285:35:285:35 | n | provenance | |
|
||||
| main.rs:288:11:288:12 | s1 [A] | main.rs:289:9:289:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:289:9:289:25 | ...::A(...) [A] | main.rs:289:24:289:24 | n | provenance | |
|
||||
| main.rs:289:24:289:24 | n | main.rs:289:55:289:55 | n | provenance | |
|
||||
| main.rs:300:9:300:10 | s1 [A] | main.rs:302:11:302:12 | s1 [A] | provenance | |
|
||||
| main.rs:300:14:300:26 | A(...) [A] | main.rs:300:9:300:10 | s1 [A] | provenance | |
|
||||
| main.rs:300:16:300:25 | source(...) | main.rs:300:14:300:26 | A(...) [A] | provenance | |
|
||||
| main.rs:302:11:302:12 | s1 [A] | main.rs:303:9:303:12 | A(...) [A] | provenance | |
|
||||
| main.rs:302:11:302:12 | s1 [A] | main.rs:306:11:306:12 | s1 [A] | provenance | |
|
||||
| main.rs:303:9:303:12 | A(...) [A] | main.rs:303:11:303:11 | n | provenance | |
|
||||
| main.rs:303:11:303:11 | n | main.rs:303:22:303:22 | n | provenance | |
|
||||
| main.rs:306:11:306:12 | s1 [A] | main.rs:307:9:307:12 | A(...) [A] | provenance | |
|
||||
| main.rs:307:9:307:12 | A(...) [A] | main.rs:307:11:307:11 | n | provenance | |
|
||||
| main.rs:307:11:307:11 | n | main.rs:307:29:307:29 | n | provenance | |
|
||||
| main.rs:321:9:321:10 | s1 [C] | main.rs:325:11:325:12 | s1 [C] | provenance | |
|
||||
| main.rs:321:14:323:5 | ...::C {...} [C] | main.rs:321:9:321:10 | s1 [C] | provenance | |
|
||||
| main.rs:322:18:322:27 | source(...) | main.rs:321:14:323:5 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:325:11:325:12 | s1 [C] | main.rs:326:9:326:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:325:11:325:12 | s1 [C] | main.rs:329:11:329:12 | s1 [C] | provenance | |
|
||||
| main.rs:326:9:326:38 | ...::C {...} [C] | main.rs:326:36:326:36 | n | provenance | |
|
||||
| main.rs:326:36:326:36 | n | main.rs:326:48:326:48 | n | provenance | |
|
||||
| main.rs:329:11:329:12 | s1 [C] | main.rs:330:9:330:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:330:9:330:38 | ...::C {...} [C] | main.rs:330:36:330:36 | n | provenance | |
|
||||
| main.rs:330:36:330:36 | n | main.rs:330:81:330:81 | n | provenance | |
|
||||
| main.rs:341:9:341:10 | s1 [C] | main.rs:345:11:345:12 | s1 [C] | provenance | |
|
||||
| main.rs:341:14:343:5 | C {...} [C] | main.rs:341:9:341:10 | s1 [C] | provenance | |
|
||||
| main.rs:342:18:342:27 | source(...) | main.rs:341:14:343:5 | C {...} [C] | provenance | |
|
||||
| main.rs:345:11:345:12 | s1 [C] | main.rs:346:9:346:24 | C {...} [C] | provenance | |
|
||||
| main.rs:345:11:345:12 | s1 [C] | main.rs:349:11:349:12 | s1 [C] | provenance | |
|
||||
| main.rs:346:9:346:24 | C {...} [C] | main.rs:346:22:346:22 | n | provenance | |
|
||||
| main.rs:346:22:346:22 | n | main.rs:346:34:346:34 | n | provenance | |
|
||||
| main.rs:349:11:349:12 | s1 [C] | main.rs:350:9:350:24 | C {...} [C] | provenance | |
|
||||
| main.rs:350:9:350:24 | C {...} [C] | main.rs:350:22:350:22 | n | provenance | |
|
||||
| main.rs:350:22:350:22 | n | main.rs:350:53:350:53 | n | provenance | |
|
||||
| main.rs:362:9:362:12 | arr1 [element] | main.rs:363:14:363:17 | arr1 [element] | provenance | |
|
||||
| main.rs:362:16:362:33 | [...] [element] | main.rs:362:9:362:12 | arr1 [element] | provenance | |
|
||||
| main.rs:362:23:362:32 | source(...) | main.rs:362:16:362:33 | [...] [element] | provenance | |
|
||||
| main.rs:363:9:363:10 | n1 | main.rs:364:10:364:11 | n1 | provenance | |
|
||||
| main.rs:363:14:363:17 | arr1 [element] | main.rs:363:14:363:20 | arr1[2] | provenance | |
|
||||
| main.rs:363:14:363:20 | arr1[2] | main.rs:363:9:363:10 | n1 | provenance | |
|
||||
| main.rs:366:9:366:12 | arr2 [element] | main.rs:367:14:367:17 | arr2 [element] | provenance | |
|
||||
| main.rs:366:16:366:31 | [...; 10] [element] | main.rs:366:9:366:12 | arr2 [element] | provenance | |
|
||||
| main.rs:366:17:366:26 | source(...) | main.rs:366:16:366:31 | [...; 10] [element] | provenance | |
|
||||
| main.rs:367:9:367:10 | n2 | main.rs:368:10:368:11 | n2 | provenance | |
|
||||
| main.rs:367:14:367:17 | arr2 [element] | main.rs:367:14:367:20 | arr2[4] | provenance | |
|
||||
| main.rs:367:14:367:20 | arr2[4] | main.rs:367:9:367:10 | n2 | provenance | |
|
||||
| main.rs:376:9:376:12 | arr1 [element] | main.rs:377:15:377:18 | arr1 [element] | provenance | |
|
||||
| main.rs:376:16:376:33 | [...] [element] | main.rs:376:9:376:12 | arr1 [element] | provenance | |
|
||||
| main.rs:376:23:376:32 | source(...) | main.rs:376:16:376:33 | [...] [element] | provenance | |
|
||||
| main.rs:377:9:377:10 | n1 | main.rs:378:14:378:15 | n1 | provenance | |
|
||||
| main.rs:377:15:377:18 | arr1 [element] | main.rs:377:9:377:10 | n1 | provenance | |
|
||||
| main.rs:388:9:388:12 | arr1 [element] | main.rs:389:11:389:14 | arr1 [element] | provenance | |
|
||||
| main.rs:388:16:388:33 | [...] [element] | main.rs:388:9:388:12 | arr1 [element] | provenance | |
|
||||
| main.rs:388:23:388:32 | source(...) | main.rs:388:16:388:33 | [...] [element] | provenance | |
|
||||
| main.rs:389:11:389:14 | arr1 [element] | main.rs:390:9:390:17 | SlicePat [element] | provenance | |
|
||||
| main.rs:390:9:390:17 | SlicePat [element] | main.rs:390:10:390:10 | a | provenance | |
|
||||
| main.rs:390:9:390:17 | SlicePat [element] | main.rs:390:13:390:13 | b | provenance | |
|
||||
| main.rs:390:9:390:17 | SlicePat [element] | main.rs:390:16:390:16 | c | provenance | |
|
||||
| main.rs:390:10:390:10 | a | main.rs:391:18:391:18 | a | provenance | |
|
||||
| main.rs:390:13:390:13 | b | main.rs:392:18:392:18 | b | provenance | |
|
||||
| main.rs:390:16:390:16 | c | main.rs:393:18:393:18 | c | provenance | |
|
||||
| main.rs:402:5:402:11 | [post] mut_arr [element] | main.rs:403:13:403:19 | mut_arr [element] | provenance | |
|
||||
| main.rs:402:5:402:11 | [post] mut_arr [element] | main.rs:405:10:405:16 | mut_arr [element] | provenance | |
|
||||
| main.rs:402:18:402:27 | source(...) | main.rs:402:5:402:11 | [post] mut_arr [element] | provenance | |
|
||||
| main.rs:403:9:403:9 | d | main.rs:404:10:404:10 | d | provenance | |
|
||||
| main.rs:403:13:403:19 | mut_arr [element] | main.rs:403:13:403:22 | mut_arr[1] | provenance | |
|
||||
| main.rs:403:13:403:22 | mut_arr[1] | main.rs:403:9:403:9 | d | provenance | |
|
||||
| main.rs:405:10:405:16 | mut_arr [element] | main.rs:405:10:405:19 | mut_arr[0] | provenance | |
|
||||
| main.rs:428:9:428:9 | s | main.rs:429:10:429:10 | s | provenance | |
|
||||
| main.rs:428:25:428:26 | source(...) | main.rs:428:9:428:9 | s | provenance | |
|
||||
| main.rs:197:9:197:9 | s [MyTupleStruct(0)] | main.rs:201:11:201:11 | s [MyTupleStruct(0)] | provenance | |
|
||||
| main.rs:197:13:197:40 | MyTupleStruct(...) [MyTupleStruct(0)] | main.rs:197:9:197:9 | s [MyTupleStruct(0)] | provenance | |
|
||||
| main.rs:197:27:197:36 | source(...) | main.rs:197:13:197:40 | MyTupleStruct(...) [MyTupleStruct(0)] | provenance | |
|
||||
| main.rs:201:11:201:11 | s [MyTupleStruct(0)] | main.rs:202:9:202:27 | MyTupleStruct(...) [MyTupleStruct(0)] | provenance | |
|
||||
| main.rs:202:9:202:27 | MyTupleStruct(...) [MyTupleStruct(0)] | main.rs:202:23:202:23 | x | provenance | |
|
||||
| main.rs:202:23:202:23 | x | main.rs:203:18:203:18 | x | provenance | |
|
||||
| main.rs:213:9:213:10 | s1 [Some] | main.rs:215:11:215:12 | s1 [Some] | provenance | |
|
||||
| main.rs:213:14:213:37 | ...::Some(...) [Some] | main.rs:213:9:213:10 | s1 [Some] | provenance | |
|
||||
| main.rs:213:27:213:36 | source(...) | main.rs:213:14:213:37 | ...::Some(...) [Some] | provenance | |
|
||||
| main.rs:215:11:215:12 | s1 [Some] | main.rs:216:9:216:23 | ...::Some(...) [Some] | provenance | |
|
||||
| main.rs:216:9:216:23 | ...::Some(...) [Some] | main.rs:216:22:216:22 | n | provenance | |
|
||||
| main.rs:216:22:216:22 | n | main.rs:216:33:216:33 | n | provenance | |
|
||||
| main.rs:226:9:226:10 | s1 [Some] | main.rs:228:11:228:12 | s1 [Some] | provenance | |
|
||||
| main.rs:226:14:226:29 | Some(...) [Some] | main.rs:226:9:226:10 | s1 [Some] | provenance | |
|
||||
| main.rs:226:19:226:28 | source(...) | main.rs:226:14:226:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:228:11:228:12 | s1 [Some] | main.rs:229:9:229:15 | Some(...) [Some] | provenance | |
|
||||
| main.rs:229:9:229:15 | Some(...) [Some] | main.rs:229:14:229:14 | n | provenance | |
|
||||
| main.rs:229:14:229:14 | n | main.rs:229:25:229:25 | n | provenance | |
|
||||
| main.rs:239:9:239:10 | s1 [Some] | main.rs:240:10:240:11 | s1 [Some] | provenance | |
|
||||
| main.rs:239:14:239:29 | Some(...) [Some] | main.rs:239:9:239:10 | s1 [Some] | provenance | |
|
||||
| main.rs:239:19:239:28 | source(...) | main.rs:239:14:239:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:240:10:240:11 | s1 [Some] | main.rs:240:10:240:20 | s1.unwrap(...) | provenance | MaD:1 |
|
||||
| main.rs:244:9:244:10 | s1 [Some] | main.rs:245:10:245:11 | s1 [Some] | provenance | |
|
||||
| main.rs:244:14:244:29 | Some(...) [Some] | main.rs:244:9:244:10 | s1 [Some] | provenance | |
|
||||
| main.rs:244:19:244:28 | source(...) | main.rs:244:14:244:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:245:10:245:11 | s1 [Some] | main.rs:245:10:245:24 | s1.unwrap_or(...) | provenance | MaD:3 |
|
||||
| main.rs:248:23:248:32 | source(...) | main.rs:248:10:248:33 | s2.unwrap_or(...) | provenance | MaD:2 |
|
||||
| main.rs:252:9:252:10 | s1 [Some] | main.rs:253:10:253:11 | s1 [Some] | provenance | |
|
||||
| main.rs:252:14:252:29 | Some(...) [Some] | main.rs:252:9:252:10 | s1 [Some] | provenance | |
|
||||
| main.rs:252:19:252:28 | source(...) | main.rs:252:14:252:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:253:10:253:11 | s1 [Some] | main.rs:253:10:253:32 | s1.unwrap_or_else(...) | provenance | MaD:5 |
|
||||
| main.rs:256:31:256:40 | source(...) | main.rs:256:10:256:41 | s2.unwrap_or_else(...) | provenance | MaD:4 |
|
||||
| main.rs:260:9:260:10 | s1 [Some] | main.rs:262:14:262:15 | s1 [Some] | provenance | |
|
||||
| main.rs:260:14:260:29 | Some(...) [Some] | main.rs:260:9:260:10 | s1 [Some] | provenance | |
|
||||
| main.rs:260:19:260:28 | source(...) | main.rs:260:14:260:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:262:9:262:10 | i1 | main.rs:263:10:263:11 | i1 | provenance | |
|
||||
| main.rs:262:14:262:15 | s1 [Some] | main.rs:262:14:262:16 | TryExpr | provenance | |
|
||||
| main.rs:262:14:262:16 | TryExpr | main.rs:262:9:262:10 | i1 | provenance | |
|
||||
| main.rs:269:9:269:10 | s1 [Ok] | main.rs:272:14:272:15 | s1 [Ok] | provenance | |
|
||||
| main.rs:269:32:269:45 | Ok(...) [Ok] | main.rs:269:9:269:10 | s1 [Ok] | provenance | |
|
||||
| main.rs:269:35:269:44 | source(...) | main.rs:269:32:269:45 | Ok(...) [Ok] | provenance | |
|
||||
| main.rs:272:9:272:10 | i1 | main.rs:274:10:274:11 | i1 | provenance | |
|
||||
| main.rs:272:14:272:15 | s1 [Ok] | main.rs:272:14:272:16 | TryExpr | provenance | |
|
||||
| main.rs:272:14:272:16 | TryExpr | main.rs:272:9:272:10 | i1 | provenance | |
|
||||
| main.rs:282:9:282:10 | s1 [Ok] | main.rs:283:10:283:11 | s1 [Ok] | provenance | |
|
||||
| main.rs:282:32:282:45 | Ok(...) [Ok] | main.rs:282:9:282:10 | s1 [Ok] | provenance | |
|
||||
| main.rs:282:35:282:44 | source(...) | main.rs:282:32:282:45 | Ok(...) [Ok] | provenance | |
|
||||
| main.rs:283:10:283:11 | s1 [Ok] | main.rs:283:10:283:22 | s1.expect(...) | provenance | MaD:6 |
|
||||
| main.rs:286:9:286:10 | s2 [Err] | main.rs:288:10:288:11 | s2 [Err] | provenance | |
|
||||
| main.rs:286:32:286:46 | Err(...) [Err] | main.rs:286:9:286:10 | s2 [Err] | provenance | |
|
||||
| main.rs:286:36:286:45 | source(...) | main.rs:286:32:286:46 | Err(...) [Err] | provenance | |
|
||||
| main.rs:288:10:288:11 | s2 [Err] | main.rs:288:10:288:26 | s2.expect_err(...) | provenance | MaD:7 |
|
||||
| main.rs:297:9:297:10 | s1 [A] | main.rs:299:11:299:12 | s1 [A] | provenance | |
|
||||
| main.rs:297:14:297:39 | ...::A(...) [A] | main.rs:297:9:297:10 | s1 [A] | provenance | |
|
||||
| main.rs:297:29:297:38 | source(...) | main.rs:297:14:297:39 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:299:11:299:12 | s1 [A] | main.rs:300:9:300:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:299:11:299:12 | s1 [A] | main.rs:303:11:303:12 | s1 [A] | provenance | |
|
||||
| main.rs:300:9:300:25 | ...::A(...) [A] | main.rs:300:24:300:24 | n | provenance | |
|
||||
| main.rs:300:24:300:24 | n | main.rs:300:35:300:35 | n | provenance | |
|
||||
| main.rs:303:11:303:12 | s1 [A] | main.rs:304:9:304:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:304:9:304:25 | ...::A(...) [A] | main.rs:304:24:304:24 | n | provenance | |
|
||||
| main.rs:304:24:304:24 | n | main.rs:304:55:304:55 | n | provenance | |
|
||||
| main.rs:315:9:315:10 | s1 [A] | main.rs:317:11:317:12 | s1 [A] | provenance | |
|
||||
| main.rs:315:14:315:26 | A(...) [A] | main.rs:315:9:315:10 | s1 [A] | provenance | |
|
||||
| main.rs:315:16:315:25 | source(...) | main.rs:315:14:315:26 | A(...) [A] | provenance | |
|
||||
| main.rs:317:11:317:12 | s1 [A] | main.rs:318:9:318:12 | A(...) [A] | provenance | |
|
||||
| main.rs:317:11:317:12 | s1 [A] | main.rs:321:11:321:12 | s1 [A] | provenance | |
|
||||
| main.rs:318:9:318:12 | A(...) [A] | main.rs:318:11:318:11 | n | provenance | |
|
||||
| main.rs:318:11:318:11 | n | main.rs:318:22:318:22 | n | provenance | |
|
||||
| main.rs:321:11:321:12 | s1 [A] | main.rs:322:9:322:12 | A(...) [A] | provenance | |
|
||||
| main.rs:322:9:322:12 | A(...) [A] | main.rs:322:11:322:11 | n | provenance | |
|
||||
| main.rs:322:11:322:11 | n | main.rs:322:29:322:29 | n | provenance | |
|
||||
| main.rs:336:9:336:10 | s1 [C] | main.rs:340:11:340:12 | s1 [C] | provenance | |
|
||||
| main.rs:336:14:338:5 | ...::C {...} [C] | main.rs:336:9:336:10 | s1 [C] | provenance | |
|
||||
| main.rs:337:18:337:27 | source(...) | main.rs:336:14:338:5 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:340:11:340:12 | s1 [C] | main.rs:341:9:341:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:340:11:340:12 | s1 [C] | main.rs:344:11:344:12 | s1 [C] | provenance | |
|
||||
| main.rs:341:9:341:38 | ...::C {...} [C] | main.rs:341:36:341:36 | n | provenance | |
|
||||
| main.rs:341:36:341:36 | n | main.rs:341:48:341:48 | n | provenance | |
|
||||
| main.rs:344:11:344:12 | s1 [C] | main.rs:345:9:345:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:345:9:345:38 | ...::C {...} [C] | main.rs:345:36:345:36 | n | provenance | |
|
||||
| main.rs:345:36:345:36 | n | main.rs:345:81:345:81 | n | provenance | |
|
||||
| main.rs:356:9:356:10 | s1 [C] | main.rs:360:11:360:12 | s1 [C] | provenance | |
|
||||
| main.rs:356:14:358:5 | C {...} [C] | main.rs:356:9:356:10 | s1 [C] | provenance | |
|
||||
| main.rs:357:18:357:27 | source(...) | main.rs:356:14:358:5 | C {...} [C] | provenance | |
|
||||
| main.rs:360:11:360:12 | s1 [C] | main.rs:361:9:361:24 | C {...} [C] | provenance | |
|
||||
| main.rs:360:11:360:12 | s1 [C] | main.rs:364:11:364:12 | s1 [C] | provenance | |
|
||||
| main.rs:361:9:361:24 | C {...} [C] | main.rs:361:22:361:22 | n | provenance | |
|
||||
| main.rs:361:22:361:22 | n | main.rs:361:34:361:34 | n | provenance | |
|
||||
| main.rs:364:11:364:12 | s1 [C] | main.rs:365:9:365:24 | C {...} [C] | provenance | |
|
||||
| main.rs:365:9:365:24 | C {...} [C] | main.rs:365:22:365:22 | n | provenance | |
|
||||
| main.rs:365:22:365:22 | n | main.rs:365:53:365:53 | n | provenance | |
|
||||
| main.rs:377:9:377:12 | arr1 [element] | main.rs:378:14:378:17 | arr1 [element] | provenance | |
|
||||
| main.rs:377:16:377:33 | [...] [element] | main.rs:377:9:377:12 | arr1 [element] | provenance | |
|
||||
| main.rs:377:23:377:32 | source(...) | main.rs:377:16:377:33 | [...] [element] | provenance | |
|
||||
| main.rs:378:9:378:10 | n1 | main.rs:379:10:379:11 | n1 | provenance | |
|
||||
| main.rs:378:14:378:17 | arr1 [element] | main.rs:378:14:378:20 | arr1[2] | provenance | |
|
||||
| main.rs:378:14:378:20 | arr1[2] | main.rs:378:9:378:10 | n1 | provenance | |
|
||||
| main.rs:381:9:381:12 | arr2 [element] | main.rs:382:14:382:17 | arr2 [element] | provenance | |
|
||||
| main.rs:381:16:381:31 | [...; 10] [element] | main.rs:381:9:381:12 | arr2 [element] | provenance | |
|
||||
| main.rs:381:17:381:26 | source(...) | main.rs:381:16:381:31 | [...; 10] [element] | provenance | |
|
||||
| main.rs:382:9:382:10 | n2 | main.rs:383:10:383:11 | n2 | provenance | |
|
||||
| main.rs:382:14:382:17 | arr2 [element] | main.rs:382:14:382:20 | arr2[4] | provenance | |
|
||||
| main.rs:382:14:382:20 | arr2[4] | main.rs:382:9:382:10 | n2 | provenance | |
|
||||
| main.rs:391:9:391:12 | arr1 [element] | main.rs:392:15:392:18 | arr1 [element] | provenance | |
|
||||
| main.rs:391:16:391:33 | [...] [element] | main.rs:391:9:391:12 | arr1 [element] | provenance | |
|
||||
| main.rs:391:23:391:32 | source(...) | main.rs:391:16:391:33 | [...] [element] | provenance | |
|
||||
| main.rs:392:9:392:10 | n1 | main.rs:393:14:393:15 | n1 | provenance | |
|
||||
| main.rs:392:15:392:18 | arr1 [element] | main.rs:392:9:392:10 | n1 | provenance | |
|
||||
| main.rs:403:9:403:12 | arr1 [element] | main.rs:404:11:404:14 | arr1 [element] | provenance | |
|
||||
| main.rs:403:16:403:33 | [...] [element] | main.rs:403:9:403:12 | arr1 [element] | provenance | |
|
||||
| main.rs:403:23:403:32 | source(...) | main.rs:403:16:403:33 | [...] [element] | provenance | |
|
||||
| main.rs:404:11:404:14 | arr1 [element] | main.rs:405:9:405:17 | SlicePat [element] | provenance | |
|
||||
| main.rs:405:9:405:17 | SlicePat [element] | main.rs:405:10:405:10 | a | provenance | |
|
||||
| main.rs:405:9:405:17 | SlicePat [element] | main.rs:405:13:405:13 | b | provenance | |
|
||||
| main.rs:405:9:405:17 | SlicePat [element] | main.rs:405:16:405:16 | c | provenance | |
|
||||
| main.rs:405:10:405:10 | a | main.rs:406:18:406:18 | a | provenance | |
|
||||
| main.rs:405:13:405:13 | b | main.rs:407:18:407:18 | b | provenance | |
|
||||
| main.rs:405:16:405:16 | c | main.rs:408:18:408:18 | c | provenance | |
|
||||
| main.rs:417:5:417:11 | [post] mut_arr [element] | main.rs:418:13:418:19 | mut_arr [element] | provenance | |
|
||||
| main.rs:417:5:417:11 | [post] mut_arr [element] | main.rs:420:10:420:16 | mut_arr [element] | provenance | |
|
||||
| main.rs:417:18:417:27 | source(...) | main.rs:417:5:417:11 | [post] mut_arr [element] | provenance | |
|
||||
| main.rs:418:9:418:9 | d | main.rs:419:10:419:10 | d | provenance | |
|
||||
| main.rs:418:13:418:19 | mut_arr [element] | main.rs:418:13:418:22 | mut_arr[1] | provenance | |
|
||||
| main.rs:418:13:418:22 | mut_arr[1] | main.rs:418:9:418:9 | d | provenance | |
|
||||
| main.rs:420:10:420:16 | mut_arr [element] | main.rs:420:10:420:19 | mut_arr[0] | provenance | |
|
||||
| main.rs:443:9:443:9 | s | main.rs:444:10:444:10 | s | provenance | |
|
||||
| main.rs:443:25:443:26 | source(...) | main.rs:443:9:443:9 | s | provenance | |
|
||||
nodes
|
||||
| main.rs:15:10:15:18 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:19:9:19:9 | s | semmle.label | s |
|
||||
@@ -243,149 +249,156 @@ nodes
|
||||
| main.rs:184:20:184:33 | Point {...} [Point.y] | semmle.label | Point {...} [Point.y] |
|
||||
| main.rs:184:31:184:31 | y | semmle.label | y |
|
||||
| main.rs:188:18:188:18 | y | semmle.label | y |
|
||||
| main.rs:198:9:198:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:198:14:198:37 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] |
|
||||
| main.rs:198:27:198:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:200:11:200:12 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:201:9:201:23 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] |
|
||||
| main.rs:201:22:201:22 | n | semmle.label | n |
|
||||
| main.rs:201:33:201:33 | n | semmle.label | n |
|
||||
| main.rs:211:9:211:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:211:14:211:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:211:19:211:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:213:11:213:12 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:214:9:214:15 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:214:14:214:14 | n | semmle.label | n |
|
||||
| main.rs:214:25:214:25 | n | semmle.label | n |
|
||||
| main.rs:224:9:224:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:224:14:224:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:224:19:224:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:225:10:225:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:225:10:225:20 | s1.unwrap(...) | semmle.label | s1.unwrap(...) |
|
||||
| main.rs:229:9:229:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:229:14:229:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:229:19:229:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:230:10:230:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:230:10:230:24 | s1.unwrap_or(...) | semmle.label | s1.unwrap_or(...) |
|
||||
| main.rs:233:10:233:33 | s2.unwrap_or(...) | semmle.label | s2.unwrap_or(...) |
|
||||
| main.rs:233:23:233:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:237:9:237:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:237:14:237:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:237:19:237:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:238:10:238:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:238:10:238:32 | s1.unwrap_or_else(...) | semmle.label | s1.unwrap_or_else(...) |
|
||||
| main.rs:241:10:241:41 | s2.unwrap_or_else(...) | semmle.label | s2.unwrap_or_else(...) |
|
||||
| main.rs:241:31:241:40 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:245:9:245:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:245:14:245:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:245:19:245:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:247:9:247:10 | i1 | semmle.label | i1 |
|
||||
| main.rs:247:14:247:15 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:247:14:247:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:248:10:248:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:254:9:254:10 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:254:32:254:45 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
||||
| main.rs:254:35:254:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:257:9:257:10 | i1 | semmle.label | i1 |
|
||||
| main.rs:257:14:257:15 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:257:14:257:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:259:10:259:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:267:9:267:10 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:267:32:267:45 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
||||
| main.rs:267:35:267:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:268:10:268:11 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:268:10:268:22 | s1.expect(...) | semmle.label | s1.expect(...) |
|
||||
| main.rs:271:9:271:10 | s2 [Err] | semmle.label | s2 [Err] |
|
||||
| main.rs:271:32:271:46 | Err(...) [Err] | semmle.label | Err(...) [Err] |
|
||||
| main.rs:271:36:271:45 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:273:10:273:11 | s2 [Err] | semmle.label | s2 [Err] |
|
||||
| main.rs:273:10:273:26 | s2.expect_err(...) | semmle.label | s2.expect_err(...) |
|
||||
| main.rs:282:9:282:10 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:282:14:282:39 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:282:29:282:38 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:284:11:284:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:285:9:285:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:285:24:285:24 | n | semmle.label | n |
|
||||
| main.rs:285:35:285:35 | n | semmle.label | n |
|
||||
| main.rs:288:11:288:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:289:9:289:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:289:24:289:24 | n | semmle.label | n |
|
||||
| main.rs:289:55:289:55 | n | semmle.label | n |
|
||||
| main.rs:300:9:300:10 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:300:14:300:26 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:300:16:300:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:302:11:302:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:303:9:303:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:303:11:303:11 | n | semmle.label | n |
|
||||
| main.rs:303:22:303:22 | n | semmle.label | n |
|
||||
| main.rs:306:11:306:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:307:9:307:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:307:11:307:11 | n | semmle.label | n |
|
||||
| main.rs:307:29:307:29 | n | semmle.label | n |
|
||||
| main.rs:321:9:321:10 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:321:14:323:5 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:322:18:322:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:325:11:325:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:326:9:326:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:326:36:326:36 | n | semmle.label | n |
|
||||
| main.rs:326:48:326:48 | n | semmle.label | n |
|
||||
| main.rs:329:11:329:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:330:9:330:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:330:36:330:36 | n | semmle.label | n |
|
||||
| main.rs:330:81:330:81 | n | semmle.label | n |
|
||||
| main.rs:341:9:341:10 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:341:14:343:5 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:342:18:342:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:345:11:345:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:346:9:346:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:346:22:346:22 | n | semmle.label | n |
|
||||
| main.rs:346:34:346:34 | n | semmle.label | n |
|
||||
| main.rs:349:11:349:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:350:9:350:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:350:22:350:22 | n | semmle.label | n |
|
||||
| main.rs:350:53:350:53 | n | semmle.label | n |
|
||||
| main.rs:362:9:362:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:362:16:362:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:362:23:362:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:363:9:363:10 | n1 | semmle.label | n1 |
|
||||
| main.rs:363:14:363:17 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:363:14:363:20 | arr1[2] | semmle.label | arr1[2] |
|
||||
| main.rs:364:10:364:11 | n1 | semmle.label | n1 |
|
||||
| main.rs:366:9:366:12 | arr2 [element] | semmle.label | arr2 [element] |
|
||||
| main.rs:366:16:366:31 | [...; 10] [element] | semmle.label | [...; 10] [element] |
|
||||
| main.rs:366:17:366:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:367:9:367:10 | n2 | semmle.label | n2 |
|
||||
| main.rs:367:14:367:17 | arr2 [element] | semmle.label | arr2 [element] |
|
||||
| main.rs:367:14:367:20 | arr2[4] | semmle.label | arr2[4] |
|
||||
| main.rs:368:10:368:11 | n2 | semmle.label | n2 |
|
||||
| main.rs:376:9:376:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:376:16:376:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:376:23:376:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:377:9:377:10 | n1 | semmle.label | n1 |
|
||||
| main.rs:377:15:377:18 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:378:14:378:15 | n1 | semmle.label | n1 |
|
||||
| main.rs:388:9:388:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:388:16:388:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:388:23:388:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:389:11:389:14 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:390:9:390:17 | SlicePat [element] | semmle.label | SlicePat [element] |
|
||||
| main.rs:390:10:390:10 | a | semmle.label | a |
|
||||
| main.rs:390:13:390:13 | b | semmle.label | b |
|
||||
| main.rs:390:16:390:16 | c | semmle.label | c |
|
||||
| main.rs:391:18:391:18 | a | semmle.label | a |
|
||||
| main.rs:392:18:392:18 | b | semmle.label | b |
|
||||
| main.rs:393:18:393:18 | c | semmle.label | c |
|
||||
| main.rs:402:5:402:11 | [post] mut_arr [element] | semmle.label | [post] mut_arr [element] |
|
||||
| main.rs:402:18:402:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:403:9:403:9 | d | semmle.label | d |
|
||||
| main.rs:403:13:403:19 | mut_arr [element] | semmle.label | mut_arr [element] |
|
||||
| main.rs:403:13:403:22 | mut_arr[1] | semmle.label | mut_arr[1] |
|
||||
| main.rs:404:10:404:10 | d | semmle.label | d |
|
||||
| main.rs:405:10:405:16 | mut_arr [element] | semmle.label | mut_arr [element] |
|
||||
| main.rs:405:10:405:19 | mut_arr[0] | semmle.label | mut_arr[0] |
|
||||
| main.rs:428:9:428:9 | s | semmle.label | s |
|
||||
| main.rs:428:25:428:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:429:10:429:10 | s | semmle.label | s |
|
||||
| main.rs:197:9:197:9 | s [MyTupleStruct(0)] | semmle.label | s [MyTupleStruct(0)] |
|
||||
| main.rs:197:13:197:40 | MyTupleStruct(...) [MyTupleStruct(0)] | semmle.label | MyTupleStruct(...) [MyTupleStruct(0)] |
|
||||
| main.rs:197:27:197:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:201:11:201:11 | s [MyTupleStruct(0)] | semmle.label | s [MyTupleStruct(0)] |
|
||||
| main.rs:202:9:202:27 | MyTupleStruct(...) [MyTupleStruct(0)] | semmle.label | MyTupleStruct(...) [MyTupleStruct(0)] |
|
||||
| main.rs:202:23:202:23 | x | semmle.label | x |
|
||||
| main.rs:203:18:203:18 | x | semmle.label | x |
|
||||
| main.rs:213:9:213:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:213:14:213:37 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] |
|
||||
| main.rs:213:27:213:36 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:215:11:215:12 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:216:9:216:23 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] |
|
||||
| main.rs:216:22:216:22 | n | semmle.label | n |
|
||||
| main.rs:216:33:216:33 | n | semmle.label | n |
|
||||
| main.rs:226:9:226:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:226:14:226:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:226:19:226:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:228:11:228:12 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:229:9:229:15 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:229:14:229:14 | n | semmle.label | n |
|
||||
| main.rs:229:25:229:25 | n | semmle.label | n |
|
||||
| main.rs:239:9:239:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:239:14:239:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:239:19:239:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:240:10:240:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:240:10:240:20 | s1.unwrap(...) | semmle.label | s1.unwrap(...) |
|
||||
| main.rs:244:9:244:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:244:14:244:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:244:19:244:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:245:10:245:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:245:10:245:24 | s1.unwrap_or(...) | semmle.label | s1.unwrap_or(...) |
|
||||
| main.rs:248:10:248:33 | s2.unwrap_or(...) | semmle.label | s2.unwrap_or(...) |
|
||||
| main.rs:248:23:248:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:252:9:252:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:252:14:252:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:252:19:252:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:253:10:253:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:253:10:253:32 | s1.unwrap_or_else(...) | semmle.label | s1.unwrap_or_else(...) |
|
||||
| main.rs:256:10:256:41 | s2.unwrap_or_else(...) | semmle.label | s2.unwrap_or_else(...) |
|
||||
| main.rs:256:31:256:40 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:260:9:260:10 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:260:14:260:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:260:19:260:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:262:9:262:10 | i1 | semmle.label | i1 |
|
||||
| main.rs:262:14:262:15 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:262:14:262:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:263:10:263:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:269:9:269:10 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:269:32:269:45 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
||||
| main.rs:269:35:269:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:272:9:272:10 | i1 | semmle.label | i1 |
|
||||
| main.rs:272:14:272:15 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:272:14:272:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:274:10:274:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:282:9:282:10 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:282:32:282:45 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
||||
| main.rs:282:35:282:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:283:10:283:11 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:283:10:283:22 | s1.expect(...) | semmle.label | s1.expect(...) |
|
||||
| main.rs:286:9:286:10 | s2 [Err] | semmle.label | s2 [Err] |
|
||||
| main.rs:286:32:286:46 | Err(...) [Err] | semmle.label | Err(...) [Err] |
|
||||
| main.rs:286:36:286:45 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:288:10:288:11 | s2 [Err] | semmle.label | s2 [Err] |
|
||||
| main.rs:288:10:288:26 | s2.expect_err(...) | semmle.label | s2.expect_err(...) |
|
||||
| main.rs:297:9:297:10 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:297:14:297:39 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:297:29:297:38 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:299:11:299:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:300:9:300:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:300:24:300:24 | n | semmle.label | n |
|
||||
| main.rs:300:35:300:35 | n | semmle.label | n |
|
||||
| main.rs:303:11:303:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:304:9:304:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:304:24:304:24 | n | semmle.label | n |
|
||||
| main.rs:304:55:304:55 | n | semmle.label | n |
|
||||
| main.rs:315:9:315:10 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:315:14:315:26 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:315:16:315:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:317:11:317:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:318:9:318:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:318:11:318:11 | n | semmle.label | n |
|
||||
| main.rs:318:22:318:22 | n | semmle.label | n |
|
||||
| main.rs:321:11:321:12 | s1 [A] | semmle.label | s1 [A] |
|
||||
| main.rs:322:9:322:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:322:11:322:11 | n | semmle.label | n |
|
||||
| main.rs:322:29:322:29 | n | semmle.label | n |
|
||||
| main.rs:336:9:336:10 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:336:14:338:5 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:337:18:337:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:340:11:340:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:341:9:341:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:341:36:341:36 | n | semmle.label | n |
|
||||
| main.rs:341:48:341:48 | n | semmle.label | n |
|
||||
| main.rs:344:11:344:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:345:9:345:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:345:36:345:36 | n | semmle.label | n |
|
||||
| main.rs:345:81:345:81 | n | semmle.label | n |
|
||||
| main.rs:356:9:356:10 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:356:14:358:5 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:357:18:357:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:360:11:360:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:361:9:361:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:361:22:361:22 | n | semmle.label | n |
|
||||
| main.rs:361:34:361:34 | n | semmle.label | n |
|
||||
| main.rs:364:11:364:12 | s1 [C] | semmle.label | s1 [C] |
|
||||
| main.rs:365:9:365:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:365:22:365:22 | n | semmle.label | n |
|
||||
| main.rs:365:53:365:53 | n | semmle.label | n |
|
||||
| main.rs:377:9:377:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:377:16:377:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:377:23:377:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:378:9:378:10 | n1 | semmle.label | n1 |
|
||||
| main.rs:378:14:378:17 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:378:14:378:20 | arr1[2] | semmle.label | arr1[2] |
|
||||
| main.rs:379:10:379:11 | n1 | semmle.label | n1 |
|
||||
| main.rs:381:9:381:12 | arr2 [element] | semmle.label | arr2 [element] |
|
||||
| main.rs:381:16:381:31 | [...; 10] [element] | semmle.label | [...; 10] [element] |
|
||||
| main.rs:381:17:381:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:382:9:382:10 | n2 | semmle.label | n2 |
|
||||
| main.rs:382:14:382:17 | arr2 [element] | semmle.label | arr2 [element] |
|
||||
| main.rs:382:14:382:20 | arr2[4] | semmle.label | arr2[4] |
|
||||
| main.rs:383:10:383:11 | n2 | semmle.label | n2 |
|
||||
| main.rs:391:9:391:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:391:16:391:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:391:23:391:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:392:9:392:10 | n1 | semmle.label | n1 |
|
||||
| main.rs:392:15:392:18 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:393:14:393:15 | n1 | semmle.label | n1 |
|
||||
| main.rs:403:9:403:12 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:403:16:403:33 | [...] [element] | semmle.label | [...] [element] |
|
||||
| main.rs:403:23:403:32 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:404:11:404:14 | arr1 [element] | semmle.label | arr1 [element] |
|
||||
| main.rs:405:9:405:17 | SlicePat [element] | semmle.label | SlicePat [element] |
|
||||
| main.rs:405:10:405:10 | a | semmle.label | a |
|
||||
| main.rs:405:13:405:13 | b | semmle.label | b |
|
||||
| main.rs:405:16:405:16 | c | semmle.label | c |
|
||||
| main.rs:406:18:406:18 | a | semmle.label | a |
|
||||
| main.rs:407:18:407:18 | b | semmle.label | b |
|
||||
| main.rs:408:18:408:18 | c | semmle.label | c |
|
||||
| main.rs:417:5:417:11 | [post] mut_arr [element] | semmle.label | [post] mut_arr [element] |
|
||||
| main.rs:417:18:417:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:418:9:418:9 | d | semmle.label | d |
|
||||
| main.rs:418:13:418:19 | mut_arr [element] | semmle.label | mut_arr [element] |
|
||||
| main.rs:418:13:418:22 | mut_arr[1] | semmle.label | mut_arr[1] |
|
||||
| main.rs:419:10:419:10 | d | semmle.label | d |
|
||||
| main.rs:420:10:420:16 | mut_arr [element] | semmle.label | mut_arr [element] |
|
||||
| main.rs:420:10:420:19 | mut_arr[0] | semmle.label | mut_arr[0] |
|
||||
| main.rs:443:9:443:9 | s | semmle.label | s |
|
||||
| main.rs:443:25:443:26 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:444:10:444:10 | s | semmle.label | s |
|
||||
subpaths
|
||||
testFailures
|
||||
#select
|
||||
@@ -402,31 +415,32 @@ testFailures
|
||||
| main.rs:121:10:121:15 | ... .1 | main.rs:118:17:118:26 | source(...) | main.rs:121:10:121:15 | ... .1 | $@ | main.rs:118:17:118:26 | source(...) | source(...) |
|
||||
| main.rs:152:10:152:10 | a | main.rs:148:12:148:21 | source(...) | main.rs:152:10:152:10 | a | $@ | main.rs:148:12:148:21 | source(...) | source(...) |
|
||||
| main.rs:188:18:188:18 | y | main.rs:178:16:178:25 | source(...) | main.rs:188:18:188:18 | y | $@ | main.rs:178:16:178:25 | source(...) | source(...) |
|
||||
| main.rs:201:33:201:33 | n | main.rs:198:27:198:36 | source(...) | main.rs:201:33:201:33 | n | $@ | main.rs:198:27:198:36 | source(...) | source(...) |
|
||||
| main.rs:214:25:214:25 | n | main.rs:211:19:211:28 | source(...) | main.rs:214:25:214:25 | n | $@ | main.rs:211:19:211:28 | source(...) | source(...) |
|
||||
| main.rs:225:10:225:20 | s1.unwrap(...) | main.rs:224:19:224:28 | source(...) | main.rs:225:10:225:20 | s1.unwrap(...) | $@ | main.rs:224:19:224:28 | source(...) | source(...) |
|
||||
| main.rs:230:10:230:24 | s1.unwrap_or(...) | main.rs:229:19:229:28 | source(...) | main.rs:230:10:230:24 | s1.unwrap_or(...) | $@ | main.rs:229:19:229:28 | source(...) | source(...) |
|
||||
| main.rs:233:10:233:33 | s2.unwrap_or(...) | main.rs:233:23:233:32 | source(...) | main.rs:233:10:233:33 | s2.unwrap_or(...) | $@ | main.rs:233:23:233:32 | source(...) | source(...) |
|
||||
| main.rs:238:10:238:32 | s1.unwrap_or_else(...) | main.rs:237:19:237:28 | source(...) | main.rs:238:10:238:32 | s1.unwrap_or_else(...) | $@ | main.rs:237:19:237:28 | source(...) | source(...) |
|
||||
| main.rs:241:10:241:41 | s2.unwrap_or_else(...) | main.rs:241:31:241:40 | source(...) | main.rs:241:10:241:41 | s2.unwrap_or_else(...) | $@ | main.rs:241:31:241:40 | source(...) | source(...) |
|
||||
| main.rs:248:10:248:11 | i1 | main.rs:245:19:245:28 | source(...) | main.rs:248:10:248:11 | i1 | $@ | main.rs:245:19:245:28 | source(...) | source(...) |
|
||||
| main.rs:259:10:259:11 | i1 | main.rs:254:35:254:44 | source(...) | main.rs:259:10:259:11 | i1 | $@ | main.rs:254:35:254:44 | source(...) | source(...) |
|
||||
| main.rs:268:10:268:22 | s1.expect(...) | main.rs:267:35:267:44 | source(...) | main.rs:268:10:268:22 | s1.expect(...) | $@ | main.rs:267:35:267:44 | source(...) | source(...) |
|
||||
| main.rs:273:10:273:26 | s2.expect_err(...) | main.rs:271:36:271:45 | source(...) | main.rs:273:10:273:26 | s2.expect_err(...) | $@ | main.rs:271:36:271:45 | source(...) | source(...) |
|
||||
| main.rs:285:35:285:35 | n | main.rs:282:29:282:38 | source(...) | main.rs:285:35:285:35 | n | $@ | main.rs:282:29:282:38 | source(...) | source(...) |
|
||||
| main.rs:289:55:289:55 | n | main.rs:282:29:282:38 | source(...) | main.rs:289:55:289:55 | n | $@ | main.rs:282:29:282:38 | source(...) | source(...) |
|
||||
| main.rs:303:22:303:22 | n | main.rs:300:16:300:25 | source(...) | main.rs:303:22:303:22 | n | $@ | main.rs:300:16:300:25 | source(...) | source(...) |
|
||||
| main.rs:307:29:307:29 | n | main.rs:300:16:300:25 | source(...) | main.rs:307:29:307:29 | n | $@ | main.rs:300:16:300:25 | source(...) | source(...) |
|
||||
| main.rs:326:48:326:48 | n | main.rs:322:18:322:27 | source(...) | main.rs:326:48:326:48 | n | $@ | main.rs:322:18:322:27 | source(...) | source(...) |
|
||||
| main.rs:330:81:330:81 | n | main.rs:322:18:322:27 | source(...) | main.rs:330:81:330:81 | n | $@ | main.rs:322:18:322:27 | source(...) | source(...) |
|
||||
| main.rs:346:34:346:34 | n | main.rs:342:18:342:27 | source(...) | main.rs:346:34:346:34 | n | $@ | main.rs:342:18:342:27 | source(...) | source(...) |
|
||||
| main.rs:350:53:350:53 | n | main.rs:342:18:342:27 | source(...) | main.rs:350:53:350:53 | n | $@ | main.rs:342:18:342:27 | source(...) | source(...) |
|
||||
| main.rs:364:10:364:11 | n1 | main.rs:362:23:362:32 | source(...) | main.rs:364:10:364:11 | n1 | $@ | main.rs:362:23:362:32 | source(...) | source(...) |
|
||||
| main.rs:368:10:368:11 | n2 | main.rs:366:17:366:26 | source(...) | main.rs:368:10:368:11 | n2 | $@ | main.rs:366:17:366:26 | source(...) | source(...) |
|
||||
| main.rs:378:14:378:15 | n1 | main.rs:376:23:376:32 | source(...) | main.rs:378:14:378:15 | n1 | $@ | main.rs:376:23:376:32 | source(...) | source(...) |
|
||||
| main.rs:391:18:391:18 | a | main.rs:388:23:388:32 | source(...) | main.rs:391:18:391:18 | a | $@ | main.rs:388:23:388:32 | source(...) | source(...) |
|
||||
| main.rs:392:18:392:18 | b | main.rs:388:23:388:32 | source(...) | main.rs:392:18:392:18 | b | $@ | main.rs:388:23:388:32 | source(...) | source(...) |
|
||||
| main.rs:393:18:393:18 | c | main.rs:388:23:388:32 | source(...) | main.rs:393:18:393:18 | c | $@ | main.rs:388:23:388:32 | source(...) | source(...) |
|
||||
| main.rs:404:10:404:10 | d | main.rs:402:18:402:27 | source(...) | main.rs:404:10:404:10 | d | $@ | main.rs:402:18:402:27 | source(...) | source(...) |
|
||||
| main.rs:405:10:405:19 | mut_arr[0] | main.rs:402:18:402:27 | source(...) | main.rs:405:10:405:19 | mut_arr[0] | $@ | main.rs:402:18:402:27 | source(...) | source(...) |
|
||||
| main.rs:429:10:429:10 | s | main.rs:428:25:428:26 | source(...) | main.rs:429:10:429:10 | s | $@ | main.rs:428:25:428:26 | source(...) | source(...) |
|
||||
| main.rs:203:18:203:18 | x | main.rs:197:27:197:36 | source(...) | main.rs:203:18:203:18 | x | $@ | main.rs:197:27:197:36 | source(...) | source(...) |
|
||||
| main.rs:216:33:216:33 | n | main.rs:213:27:213:36 | source(...) | main.rs:216:33:216:33 | n | $@ | main.rs:213:27:213:36 | source(...) | source(...) |
|
||||
| main.rs:229:25:229:25 | n | main.rs:226:19:226:28 | source(...) | main.rs:229:25:229:25 | n | $@ | main.rs:226:19:226:28 | source(...) | source(...) |
|
||||
| main.rs:240:10:240:20 | s1.unwrap(...) | main.rs:239:19:239:28 | source(...) | main.rs:240:10:240:20 | s1.unwrap(...) | $@ | main.rs:239:19:239:28 | source(...) | source(...) |
|
||||
| main.rs:245:10:245:24 | s1.unwrap_or(...) | main.rs:244:19:244:28 | source(...) | main.rs:245:10:245:24 | s1.unwrap_or(...) | $@ | main.rs:244:19:244:28 | source(...) | source(...) |
|
||||
| main.rs:248:10:248:33 | s2.unwrap_or(...) | main.rs:248:23:248:32 | source(...) | main.rs:248:10:248:33 | s2.unwrap_or(...) | $@ | main.rs:248:23:248:32 | source(...) | source(...) |
|
||||
| main.rs:253:10:253:32 | s1.unwrap_or_else(...) | main.rs:252:19:252:28 | source(...) | main.rs:253:10:253:32 | s1.unwrap_or_else(...) | $@ | main.rs:252:19:252:28 | source(...) | source(...) |
|
||||
| main.rs:256:10:256:41 | s2.unwrap_or_else(...) | main.rs:256:31:256:40 | source(...) | main.rs:256:10:256:41 | s2.unwrap_or_else(...) | $@ | main.rs:256:31:256:40 | source(...) | source(...) |
|
||||
| main.rs:263:10:263:11 | i1 | main.rs:260:19:260:28 | source(...) | main.rs:263:10:263:11 | i1 | $@ | main.rs:260:19:260:28 | source(...) | source(...) |
|
||||
| main.rs:274:10:274:11 | i1 | main.rs:269:35:269:44 | source(...) | main.rs:274:10:274:11 | i1 | $@ | main.rs:269:35:269:44 | source(...) | source(...) |
|
||||
| main.rs:283:10:283:22 | s1.expect(...) | main.rs:282:35:282:44 | source(...) | main.rs:283:10:283:22 | s1.expect(...) | $@ | main.rs:282:35:282:44 | source(...) | source(...) |
|
||||
| main.rs:288:10:288:26 | s2.expect_err(...) | main.rs:286:36:286:45 | source(...) | main.rs:288:10:288:26 | s2.expect_err(...) | $@ | main.rs:286:36:286:45 | source(...) | source(...) |
|
||||
| main.rs:300:35:300:35 | n | main.rs:297:29:297:38 | source(...) | main.rs:300:35:300:35 | n | $@ | main.rs:297:29:297:38 | source(...) | source(...) |
|
||||
| main.rs:304:55:304:55 | n | main.rs:297:29:297:38 | source(...) | main.rs:304:55:304:55 | n | $@ | main.rs:297:29:297:38 | source(...) | source(...) |
|
||||
| main.rs:318:22:318:22 | n | main.rs:315:16:315:25 | source(...) | main.rs:318:22:318:22 | n | $@ | main.rs:315:16:315:25 | source(...) | source(...) |
|
||||
| main.rs:322:29:322:29 | n | main.rs:315:16:315:25 | source(...) | main.rs:322:29:322:29 | n | $@ | main.rs:315:16:315:25 | source(...) | source(...) |
|
||||
| main.rs:341:48:341:48 | n | main.rs:337:18:337:27 | source(...) | main.rs:341:48:341:48 | n | $@ | main.rs:337:18:337:27 | source(...) | source(...) |
|
||||
| main.rs:345:81:345:81 | n | main.rs:337:18:337:27 | source(...) | main.rs:345:81:345:81 | n | $@ | main.rs:337:18:337:27 | source(...) | source(...) |
|
||||
| main.rs:361:34:361:34 | n | main.rs:357:18:357:27 | source(...) | main.rs:361:34:361:34 | n | $@ | main.rs:357:18:357:27 | source(...) | source(...) |
|
||||
| main.rs:365:53:365:53 | n | main.rs:357:18:357:27 | source(...) | main.rs:365:53:365:53 | n | $@ | main.rs:357:18:357:27 | source(...) | source(...) |
|
||||
| main.rs:379:10:379:11 | n1 | main.rs:377:23:377:32 | source(...) | main.rs:379:10:379:11 | n1 | $@ | main.rs:377:23:377:32 | source(...) | source(...) |
|
||||
| main.rs:383:10:383:11 | n2 | main.rs:381:17:381:26 | source(...) | main.rs:383:10:383:11 | n2 | $@ | main.rs:381:17:381:26 | source(...) | source(...) |
|
||||
| main.rs:393:14:393:15 | n1 | main.rs:391:23:391:32 | source(...) | main.rs:393:14:393:15 | n1 | $@ | main.rs:391:23:391:32 | source(...) | source(...) |
|
||||
| main.rs:406:18:406:18 | a | main.rs:403:23:403:32 | source(...) | main.rs:406:18:406:18 | a | $@ | main.rs:403:23:403:32 | source(...) | source(...) |
|
||||
| main.rs:407:18:407:18 | b | main.rs:403:23:403:32 | source(...) | main.rs:407:18:407:18 | b | $@ | main.rs:403:23:403:32 | source(...) | source(...) |
|
||||
| main.rs:408:18:408:18 | c | main.rs:403:23:403:32 | source(...) | main.rs:408:18:408:18 | c | $@ | main.rs:403:23:403:32 | source(...) | source(...) |
|
||||
| main.rs:419:10:419:10 | d | main.rs:417:18:417:27 | source(...) | main.rs:419:10:419:10 | d | $@ | main.rs:417:18:417:27 | source(...) | source(...) |
|
||||
| main.rs:420:10:420:19 | mut_arr[0] | main.rs:417:18:417:27 | source(...) | main.rs:420:10:420:19 | mut_arr[0] | $@ | main.rs:417:18:417:27 | source(...) | source(...) |
|
||||
| main.rs:444:10:444:10 | s | main.rs:443:25:443:26 | source(...) | main.rs:444:10:444:10 | s | $@ | main.rs:443:25:443:26 | source(...) | source(...) |
|
||||
|
||||
@@ -191,6 +191,21 @@ fn struct_nested_match() {
|
||||
}
|
||||
}
|
||||
|
||||
struct MyTupleStruct(i64, i64);
|
||||
|
||||
fn tuple_struct() {
|
||||
let s = MyTupleStruct(source(94), 2);
|
||||
sink(s.0); // $ MISSING: hasValueFlow=94
|
||||
sink(s.1);
|
||||
|
||||
match s {
|
||||
MyTupleStruct(x, y) => {
|
||||
sink(x); // $ hasValueFlow=94
|
||||
sink(y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Data flow through enums
|
||||
|
||||
@@ -442,6 +457,7 @@ fn main() {
|
||||
tuple_mutation();
|
||||
tuple_nested();
|
||||
struct_field();
|
||||
tuple_struct();
|
||||
struct_mutation();
|
||||
struct_pattern_match();
|
||||
struct_nested_field();
|
||||
|
||||
@@ -57,14 +57,14 @@ impl MyStruct {
|
||||
// summary=repo::test;<crate::summaries::MyStruct>::get_foo;Argument[self].Struct[crate::summaries::MyStruct::foo];ReturnValue;value;dfc-generated
|
||||
pub fn get_foo(self) -> i64 {
|
||||
match self {
|
||||
MyStruct { foo, bar: _ } => foo
|
||||
MyStruct { foo, bar: _ } => foo,
|
||||
}
|
||||
}
|
||||
|
||||
// summary=repo::test;<crate::summaries::MyStruct>::get_bar;Argument[self].Struct[crate::summaries::MyStruct::bar];ReturnValue;value;dfc-generated
|
||||
pub fn get_bar(self) -> f64 {
|
||||
match self {
|
||||
MyStruct { foo: _, bar } => bar
|
||||
MyStruct { foo: _, bar } => bar,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user