diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 003ede900234..87cd5eb48085 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -332,7 +332,6 @@ lib/codeql/rust/elements/internal/NeverTypeReprConstructor.qll 2e0a9c75e389e9ef4 lib/codeql/rust/elements/internal/OffsetOfExprConstructor.qll 616e146562adb3ac0fba4d6f55dd6ce60518ed377c0856f1f09ba49593e7bfab 80518ce90fc6d08011d6f5fc2a543958067739e1b0a6a5f2ed90fc9b1db078f0 lib/codeql/rust/elements/internal/OffsetOfExprImpl.qll e52d4596068cc54719438121f7d5afcaab04e0c70168ac5e4df1a3a0969817a6 6ab37e659d79e02fb2685d6802ae124157bf14b6f790b31688f437c87f40f52c lib/codeql/rust/elements/internal/OrPatConstructor.qll 4ef583e07298487c0c4c6d7c76ffcc04b1e5fe58aba0c1da3e2c8446a9e0c92b 980a6bd176ae5e5b11c134569910c5468ba91f480982d846e222d031a6a05f1a -lib/codeql/rust/elements/internal/ParamBaseImpl.qll fe11999c728c443c46c992e9bed7a2b3e23afa16ae99592e70054bc57ae371b8 df86fdb23266bdfb9ed8a8f02558a760b67f173943b9d075b081229eb5844f66 lib/codeql/rust/elements/internal/ParamConstructor.qll b98a2d8969f289fdcc8c0fb11cbd19a3b0c71be038c4a74f5988295a2bae52f0 77d81b31064167945b79b19d9697b57ca24462c3a7cc19e462c4693ce87db532 lib/codeql/rust/elements/internal/ParamListConstructor.qll 3123142ab3cab46fb53d7f3eff6ba2d3ff7a45b78839a53dc1979a9c6a54920e 165f3d777ea257cfcf142cc4ba9a0ebcd1902eb99842b8a6657c87087f3df6fe lib/codeql/rust/elements/internal/ParenExprConstructor.qll 104b67dc3fd53ab52e2a42ffde37f3a3a50647aa7bf35df9ba9528e9670da210 d1f5937756e87a477710c61698d141cdad0ccce8b07ecb51bab00330a1ca9835 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index d8004cb5b35e..6ea7d011a5d6 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -334,7 +334,6 @@ /lib/codeql/rust/elements/internal/OffsetOfExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/OffsetOfExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/OrPatConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/ParamBaseImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ParamConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ParamListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ParenExprConstructor.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements/internal/ParamBaseImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ParamBaseImpl.qll index 3b0f82eb6c3d..ed7f0dd5d5ef 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ParamBaseImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ParamBaseImpl.qll @@ -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 `ParamBase`. * @@ -6,14 +5,19 @@ */ private import codeql.rust.elements.internal.generated.ParamBase +private import codeql.rust.elements.Callable /** * INTERNAL: This module contains the customizable definition of `ParamBase` and should not * be referenced directly. */ module Impl { + // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * A normal parameter, `Param`, or a self parameter `SelfParam`. */ - class ParamBase extends Generated::ParamBase { } + class ParamBase extends Generated::ParamBase { + /** Gets the callable this parameter belongs to. */ + Callable getCallable() { this = result.getParamList().getAParamBase() } + } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll index 37a2e4dacc07..8e25ab3af3d5 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll @@ -1,71 +1,13 @@ private import rust +private import codeql.namebinding.LocalNameBinding private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.internal.PathResolution as PathResolution private import codeql.rust.elements.internal.generated.ParentChild as ParentChild private import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl private import codeql.rust.elements.internal.PathImpl::Impl as PathImpl private import codeql.rust.elements.internal.FormatTemplateVariableAccessImpl::Impl as FormatTemplateVariableAccessImpl -private import codeql.util.DenseRank module Impl { - /** - * A variable scope. Either a block `{ ... }`, the guard/rhs - * of a match arm, or the body of a closure. - */ - abstract class VariableScope extends AstNode { } - - class BlockExprScope extends VariableScope, BlockExpr { } - - class MatchArmExprScope extends VariableScope { - MatchArmExprScope() { this = any(MatchArm arm).getExpr() } - } - - class MatchArmGuardScope extends VariableScope { - MatchArmGuardScope() { this = any(MatchArm arm).getGuard() } - } - - class ClosureBodyScope extends VariableScope { - ClosureBodyScope() { this = any(ClosureExpr ce).getBody() } - } - - /** - * A scope for conditions, which may introduce variables using `let` expressions. - * - * Such variables are only available in the body guarded by the condition. - */ - class ConditionScope extends VariableScope { - private AstNode parent; - private AstNode body; - - ConditionScope() { - parent = - any(IfExpr ie | - this = ie.getCondition() and - body = ie.getThen() - ) - or - parent = - any(WhileExpr we | - this = we.getCondition() and - body = we.getLoopBody() - ) - or - parent = - any(MatchArm ma | - this = ma.getGuard() and - body = ma.getExpr() - ) - } - - /** Gets the parent of this condition. */ - AstNode getParent() { result = parent } - - /** - * Gets the body in which variables introduced in this scope are available. - */ - AstNode getBody() { result = body } - } - private Pat getAPatAncestor(Pat p) { (p instanceof IdentPat or p instanceof OrPat) and exists(Pat p0 | result = p0.getParentPat() | @@ -100,7 +42,7 @@ module Impl { */ cached predicate variableDecl(AstNode definingNode, Name name, string text) { - Cached::ref() and + CachedStage::ref() and exists(SelfParam sp | name = sp.getName() and definingNode = name and @@ -127,34 +69,195 @@ module Impl { ) } - /** A variable. */ - class Variable extends MkVariable { - private AstNode definingNode; - private string text; + /** + * `let` chains like + * + * ```rust + * if let x1 = ... && let x2 = ... && ... && let xn = ... { ... } + * ``` + * + * are parsed left-associatively, so the AST for the condition looks like + * + * ```rust + * ((let x1 = ... && let x2 = ...) && ...) & let xn = ... + * ``` + * + * This, however, does not work with scoping and shadowing, so we instead treat + * `let` chains as if there is just a single root `&&` node with `n` children, + * skipping all intermediate `&&` nodes. + */ + private module LetChains { + predicate isLetChainAncestor(LogicalAndExpr lae) { + lae.getAnOperand() instanceof LetExpr + or + isLetChainAncestor(lae.getLhs()) + } + + private predicate isLetChainRoot(LogicalAndExpr root) { + isLetChainAncestor(root) and + not root = any(LogicalAndExpr lae).getLhs() + } + + private predicate leftMostChildOfLetChainRoot(LogicalAndExpr left, LogicalAndExpr root) { + isLetChainRoot(root) and + left = root.getLhs*() and + not left.getLhs() instanceof LogicalAndExpr + } + + private AstNode getLetChainChild(LogicalAndExpr sub, LogicalAndExpr root, int i) { + leftMostChildOfLetChainRoot(sub, root) and + i = 1 and + result = sub.getRhs() + or + exists(LogicalAndExpr mid | + exists(getLetChainChild(mid, root, i - 1)) and + sub.getLhs() = mid and + result = sub.getRhs() + ) + } + + AstNode getLetChainChild(LogicalAndExpr lae, int i) { + exists(LogicalAndExpr left | + leftMostChildOfLetChainRoot(left, lae) and + i = 0 and + result = left.getLhs() + ) + or + result = getLetChainChild(_, lae, i) + } + } + + private import LetChains + + private module Input implements LocalNameBindingInputSig { + private import rust as Rust + + predicate cacheRevRef() { + (variableDecl(_, _, _) implies any()) + or + (exists(VariableReadAccess a) implies any()) + or + (exists(VariableWriteAccess a) implies any()) + or + (exists(any(Variable v).getParameter()) implies any()) + } + + class AstNode = Rust::AstNode; + + AstNode getChild(AstNode parent, int index) { + result = ParentChild::getImmediateChild(parent, index) and + not isLetChainAncestor(parent) + or + result = getLetChainChild(parent, index) + or + exists(Format f | + f = result.(FormatTemplateVariableAccess).getArgument().getParent() and + parent = f.getParent() and + index = f.getIndex() + ) + } + + class Conditional extends AstNode { + Conditional() { + this instanceof IfExpr + or + this instanceof WhileExpr + or + this instanceof MatchGuard + } + + AstNode getCondition() { + result = this.(IfExpr).getCondition() + or + result = this.(WhileExpr).getCondition() + or + result = this.(MatchGuard).getCondition() + } + + AstNode getThen() { + result = this.(IfExpr).getThen() + or + result = this.(WhileExpr).getLoopBody() + or + exists(MatchArm arm | + this = arm.getGuard() and + result = arm.getExpr() + ) + } + + AstNode getElse() { result = this.(IfExpr).getElse() } + } + + class ShadowingDecl extends AstNode { + ShadowingDecl() { this instanceof LetStmt or this instanceof LetExpr } + + AstNode getLhs() { + result = this.(LetStmt).getPat() + or + result = this.(LetExpr).getPat() + } + + AstNode getRhs() { + result = this.(LetStmt).getInitializer() + or + result = this.(LetExpr).getScrutinee() + } + + AstNode getElse() { result = this.(LetStmt).getLetElse() } + } - Variable() { this = MkVariable(definingNode, text) } + predicate declInScope(AstNode definingNode, string name, AstNode scope) { + // local variable + exists(Name n | variableDecl(definingNode, n, name) | + scope = any(SelfParam self | n = self.getName()).getCallable() + or + exists(Pat pat, Pat pat0 | + pat = getAPatAncestor*(pat0) and + (pat0 = definingNode or pat0.(IdentPat).getName() = n) + | + scope = any(MatchArm arm | pat = arm.getPat()) + or + scope = any(Input::ShadowingDecl let | pat = let.getLhs()) + or + scope = any(ForExpr fe | pat = fe.getPat()).getLoopBody() + or + scope = any(Param p | pat = p.getPat()).getCallable() + ) + ) + or + // local function; behave as if they are defined at the beginning of the scope + definingNode = scope.(BlockExpr).getStmtList().getAStatement() and + name = definingNode.(Function).getName().getText() + } - /** Gets the name of this variable as a string. */ - string getText() { result = text } + predicate accessCand(AstNode n, string name) { + name = n.(PathExpr).getPath().(PathImpl::IdentPath).getName() + or + name = n.(FormatTemplateVariableAccess).getName() + } + } - /** Gets the location of this variable. */ - Location getLocation() { result = definingNode.getLocation() } + private import LocalNameBinding - /** Gets a textual representation of this variable. */ - string toString() { result = this.getText() } + /** A variable. */ + class Variable extends Local { + Variable() { variableDecl(this.getDefiningNode(), _, _) } /** Gets an access to this variable. */ VariableAccess getAnAccess() { result.getVariable() = this } + /** Gets the name of this variable. */ + string getText() { result = super.getName() } + /** * Get the name of this variable. * * Normally, the name is unique, except when introduced in an or pattern. */ - Name getName() { variableDecl(definingNode, result, text) } + Name getName() { variableDecl(this.getDefiningNode(), result, super.getName()) } /** Gets the block that encloses this variable, if any. */ - BlockExpr getEnclosingBlock() { result = definingNode.getEnclosingBlock() } + BlockExpr getEnclosingBlock() { result = this.getDefiningNode().getEnclosingBlock() } /** Gets the `self` parameter that declares this variable, if any. */ SelfParam getSelfParam() { result.getName() = this.getName() } @@ -173,12 +276,20 @@ module Impl { IdentPat getPat() { result.getName() = this.getName() } /** Gets the enclosing CFG scope for this variable declaration. */ - CfgScope getEnclosingCfgScope() { result = definingNode.getEnclosingCfgScope() } + CfgScope getEnclosingCfgScope() { result = this.getDefiningNode().getEnclosingCfgScope() } - /** Gets the `let` statement that introduces this variable, if any. */ + /** + * Gets the `let` statement that introduces this variable, if any. + * + * This is restricted to simple `let` statements of the form `let x = ...;`. + */ LetStmt getLetStmt() { this.getPat() = result.getPat() } - /** Gets the `let` expression that introduces this variable, if any. */ + /** + * Gets the `let` expression that introduces this variable, if any. + * + * This is restricted to simple `let` expressions of the form `let x = ...`. + */ LetExpr getLetExpr() { this.getPat() = result.getPat() } /** Gets the initial value of this variable, if any. */ @@ -193,10 +304,10 @@ module Impl { /** Gets the parameter that introduces this variable, if any. */ cached ParamBase getParameter() { - Cached::ref() and + CachedStage::ref() and result = this.getSelfParam() or - result.(Param).getPat() = getAVariablePatAncestor(this) + result.(Param).getPat() = getAPatAncestor*(this.getPat()) } /** Hold is this variable is mutable. */ @@ -206,474 +317,17 @@ module Impl { predicate isImmutable() { not this.isMutable() } } - /** - * A path expression that may access a local variable. These are paths that - * only consist of a simple name (i.e., without generic arguments, - * qualifiers, etc.). - */ - private class VariableAccessCand extends PathExprBase { - string name_; - - VariableAccessCand() { - name_ = this.(PathExpr).getPath().(PathImpl::IdentPath).getName() - or - this.(FormatTemplateVariableAccess).getName() = name_ - } - - string toString() { result = name_ } - - string getName() { result = name_ } - } - - pragma[nomagic] - private Element getImmediateChildAdj(Element e, int preOrd, int index) { - result = ParentChild::getImmediateChild(e, index) and - preOrd = 0 and - not exists(ConditionScope cs | - e = cs.getParent() and - result = cs.getBody() - ) - or - result = e.(ConditionScope).getBody() and - preOrd = 1 and - index = 0 - } - - /** - * An adjusted version of `ParentChild::getImmediateChild`, which makes the following - * two adjustments: - * - * 1. For conditions like `if cond body`, instead of letting `body` be the second child - * of `if`, we make it the last child of `cond`. This ensures that variables - * introduced in the `cond` scope are available in `body`. - * - * 2. A similar adjustment is made for `while` loops: the body of the loop is made a - * child of the loop condition instead of the loop itself. - */ - pragma[nomagic] - private Element getImmediateChildAdj(Element e, int index) { - result = - rank[index + 1](Element res, int preOrd, int i | - res = getImmediateChildAdj(e, preOrd, i) - | - res order by preOrd, i - ) - } - - private Element getImmediateParentAdj(Element e) { e = getImmediateChildAdj(result, _) } - - private AstNode getAnAncestorInVariableScope(AstNode n) { - ( - n instanceof Pat or - n instanceof VariableAccessCand or - n instanceof LetStmt or - n = any(LetExpr le).getScrutinee() or - n instanceof VariableScope - ) and - exists(AstNode n0 | - result = getImmediateParentAdj(n0) or - result = n0.(FormatTemplateVariableAccess).getArgument().getParent().getParent() - | - n0 = n - or - n0 = getAnAncestorInVariableScope(n) and - not n0 instanceof VariableScope - ) - } - - /** Gets the immediately enclosing variable scope of `n`. */ - private VariableScope getEnclosingScope(AstNode n) { result = getAnAncestorInVariableScope(n) } - - /** - * Get all the pattern ancestors of this variable up to an including the - * root of the pattern. - */ - private Pat getAVariablePatAncestor(Variable v) { - result = v.getPat() - or - exists(Pat mid | - mid = getAVariablePatAncestor(v) and - result = mid.getParentPat() - ) - } - - /** - * Holds if a parameter declares the variable `v` inside variable scope `scope`. - */ - private predicate parameterDeclInScope(Variable v, VariableScope scope) { - exists(Callable f | - v.getParameter() = f.getParamList().getAParamBase() and - scope = f.getBody() - ) - } - - /** A subset of `Element`s for which we want to compute pre-order numbers. */ - private class RelevantElement extends Element { - RelevantElement() { - this instanceof VariableScope or - this instanceof VariableAccessCand or - this instanceof LetStmt or - this = any(LetExpr le).getScrutinee() or - getImmediateChildAdj(this, _) instanceof RelevantElement - } - - pragma[nomagic] - private RelevantElement getChild(int index) { result = getImmediateChildAdj(this, index) } - - pragma[nomagic] - private RelevantElement getImmediateChildAdjMin(int index) { - // A child may have multiple positions for different accessors, - // so always use the first - result = this.getChild(index) and - index = min(int i | result = this.getChild(i) | i) - } - - pragma[nomagic] - RelevantElement getImmediateChildAdj(int index) { - result = - rank[index + 1](Element res, int i | res = this.getImmediateChildAdjMin(i) | res order by i) - } - - pragma[nomagic] - RelevantElement getImmediateLastChild() { - exists(int last | - result = this.getImmediateChildAdj(last) and - not exists(this.getImmediateChildAdj(last + 1)) - ) - } - } - - /** - * Gets the pre-order numbering of `n`, where the immediately enclosing - * variable scope of `n` is `scope`. - */ - pragma[nomagic] - private int getPreOrderNumbering(VariableScope scope, RelevantElement n) { - n = scope and - result = 0 - or - exists(RelevantElement parent | - not parent instanceof VariableScope - or - parent = scope - | - // first child of a previously numbered node - result = getPreOrderNumbering(scope, parent) + 1 and - n = parent.getImmediateChildAdj(0) - or - // non-first child of a previously numbered node - exists(RelevantElement child, int i | - result = getLastPreOrderNumbering(scope, child) + 1 and - child = parent.getImmediateChildAdj(i) and - n = parent.getImmediateChildAdj(i + 1) - ) - ) - } - - /** - * Gets the pre-order numbering of the _last_ node nested under `n`, where the - * immediately enclosing variable scope of `n` (and the last node) is `scope`. - */ - pragma[nomagic] - private int getLastPreOrderNumbering(VariableScope scope, RelevantElement n) { - exists(RelevantElement leaf | - result = getPreOrderNumbering(scope, leaf) and - leaf != scope and - ( - not exists(leaf.getImmediateChildAdj(_)) - or - leaf instanceof VariableScope - ) - | - n = leaf - or - n.getImmediateLastChild() = leaf and - not n instanceof VariableScope - ) - or - exists(RelevantElement mid | - mid = n.getImmediateLastChild() and - result = getLastPreOrderNumbering(scope, mid) and - not mid instanceof VariableScope and - not n instanceof VariableScope - ) - } - - /** - * Holds if `v` is named `name` and is declared inside variable scope - * `scope`. The pre-order numbering of the binding site of `v`, amongst - * all nodes nested under `scope`, is `ord`. - */ - private predicate variableDeclInScope(Variable v, VariableScope scope, string name, int ord) { - name = v.getText() and - ( - parameterDeclInScope(v, scope) and - ord = getPreOrderNumbering(scope, scope) - or - exists(Pat pat | pat = getAVariablePatAncestor(v) | - exists(MatchArm arm | - pat = arm.getPat() and - ord = getPreOrderNumbering(scope, scope) - | - scope = arm.getGuard() - or - not arm.hasGuard() and scope = arm.getExpr() - ) - or - exists(LetStmt let | - let.getPat() = pat and - scope = getEnclosingScope(let) and - // for `let` statements, variables are bound _after_ the statement, i.e. - // not in the RHS - ord = getLastPreOrderNumbering(scope, let) + 1 - ) - or - exists(LetExpr let, Expr scrutinee | - let.getPat() = pat and - scrutinee = let.getScrutinee() and - scope = getEnclosingScope(scrutinee) and - // for `let` expressions, variables are bound _after_ the expression, i.e. - // not in the RHS - ord = getLastPreOrderNumbering(scope, scrutinee) + 1 - ) - or - exists(ForExpr fe | - fe.getPat() = pat and - scope = fe.getLoopBody() and - ord = getPreOrderNumbering(scope, scope) - ) - ) - ) - } - - /** - * Holds if `cand` may access a variable named `name` at pre-order number `ord` - * in the variable scope `scope`. - * - * `nestLevel` is the number of nested scopes that need to be traversed - * to reach `scope` from `cand`. - */ - private predicate variableAccessCandInScope( - VariableAccessCand cand, VariableScope scope, string name, int nestLevel, int ord - ) { - name = cand.getName() and - ( - scope = cand - or - not cand instanceof VariableScope and - scope = getEnclosingScope(cand) - ) and - ord = getPreOrderNumbering(scope, cand) and - nestLevel = 0 - or - exists(VariableScope inner | - variableAccessCandInScope(cand, inner, name, nestLevel - 1, _) and - scope = getEnclosingScope(inner) and - // Use the pre-order number of the inner scope as the number of the access. This allows - // us to collapse multiple accesses in inner scopes to a single entity - ord = getPreOrderNumbering(scope, inner) - ) - } - - private newtype TDefOrAccessCand = - TDefOrAccessCandNestedFunction(Function f, BlockExprScope scope) { - f = scope.getStmtList().getAStatement() - } or - TDefOrAccessCandVariable(Variable v) or - TDefOrAccessCandVariableAccessCand(VariableAccessCand va) - - /** - * A nested function declaration, variable declaration, or variable (or function) - * access candidate. - * - * In order to determine whether a candidate is an actual variable/function access, - * we rank declarations and candidates by their position in the AST. - * - * The ranking must take names into account, but also variable scopes; below a comment - * `rank(scope, name, i)` means that the declaration/access on the given line has rank - * `i` amongst all declarations/accesses inside variable scope `scope`, for name `name`: - * - * ```rust - * fn f() { // scope0 - * let x = 0; // rank(scope0, "x", 0) - * use(x); // rank(scope0, "x", 1) - * let x = // rank(scope0, "x", 3) - * x + 1; // rank(scope0, "x", 2) - * let y = // rank(scope0, "y", 0) - * x; // rank(scope0, "x", 4) - * - * { // scope1 - * use(x); // rank(scope1, "x", 0), rank(scope0, "x", 4) - * use(y); // rank(scope1, "y", 0), rank(scope0, "y", 1) - * let x = 2; // rank(scope1, "x", 1) - * use(x); // rank(scope1, "x", 2), rank(scope0, "x", 4) - * } - * } - * ``` - * - * Function/variable declarations are only ranked in the scope that they bind into, - * while accesses candidates propagate outwards through scopes, as they may access - * declarations from outer scopes. - * - * For an access candidate with ranks `{ rank(scope_i, name, rnk_i) | i in I }` and - * declarations `d in D` with ranks `rnk(scope_d, name, rnk_d)`, the target is - * calculated as - * ``` - * max_{i in I} ( - * max_{d in D | scope_d = scope_i and rnk_d < rnk_i} ( - * d - * ) - * ) - * ``` - * - * i.e., its the nearest declaration before the access in the same (or outer) scope - * as the access. - */ - abstract private class DefOrAccessCand extends TDefOrAccessCand { - abstract string toString(); - - abstract Location getLocation(); - - pragma[nomagic] - abstract predicate rankBy(string name, VariableScope scope, int ord, int kind); - } - - abstract private class NestedFunctionOrVariable extends DefOrAccessCand { } - - private class DefOrAccessCandNestedFunction extends NestedFunctionOrVariable, - TDefOrAccessCandNestedFunction - { - private Function f; - private BlockExprScope scope_; - - DefOrAccessCandNestedFunction() { this = TDefOrAccessCandNestedFunction(f, scope_) } - - override string toString() { result = f.toString() } - - override Location getLocation() { result = f.getLocation() } - - override predicate rankBy(string name, VariableScope scope, int ord, int kind) { - // nested functions behave as if they are defined at the beginning of the scope - name = f.getName().getText() and - scope = scope_ and - ord = 0 and - kind = 0 - } - } - - private class DefOrAccessCandVariable extends NestedFunctionOrVariable, TDefOrAccessCandVariable { - private Variable v; - - DefOrAccessCandVariable() { this = TDefOrAccessCandVariable(v) } - - override string toString() { result = v.toString() } - - override Location getLocation() { result = v.getLocation() } - - override predicate rankBy(string name, VariableScope scope, int ord, int kind) { - variableDeclInScope(v, scope, name, ord) and - kind = 1 - } - } - - private class DefOrAccessCandVariableAccessCand extends DefOrAccessCand, - TDefOrAccessCandVariableAccessCand - { - private VariableAccessCand va; - - DefOrAccessCandVariableAccessCand() { this = TDefOrAccessCandVariableAccessCand(va) } - - override string toString() { result = va.toString() } - - override Location getLocation() { result = va.getLocation() } - - override predicate rankBy(string name, VariableScope scope, int ord, int kind) { - variableAccessCandInScope(va, scope, name, _, ord) and - kind = 2 - } - } - - private module DenseRankInput implements DenseRankInputSig2 { - class C1 = VariableScope; - - class C2 = string; - - class Ranked = DefOrAccessCand; - - int getRank(VariableScope scope, string name, DefOrAccessCand v) { - v = - rank[result](DefOrAccessCand v0, int ord, int kind | - v0.rankBy(name, scope, ord, kind) - | - v0 order by ord, kind - ) - } - } - - /** - * Gets the rank of `v` amongst all other declarations or access candidates - * to a variable named `name` in the variable scope `scope`. - */ - private int rankVariableOrAccess(VariableScope scope, string name, DefOrAccessCand v) { - v = DenseRank2::denseRank(scope, name, result + 1) - } - - /** - * Holds if `v` can reach rank `rnk` in the variable scope `scope`. This is needed to - * take shadowing into account, for example in - * - * ```rust - * let x = 0; // rank 0 - * use(x); // rank 1 - * let x = ""; // rank 2 - * use(x); // rank 3 - * ``` - * - * the declaration at rank 0 can only reach the access at rank 1, while the declaration - * at rank 2 can only reach the access at rank 3. - */ - private predicate variableReachesRank( - VariableScope scope, string name, NestedFunctionOrVariable v, int rnk - ) { - rnk = rankVariableOrAccess(scope, name, v) - or - variableReachesRank(scope, name, v, rnk - 1) and - rnk = rankVariableOrAccess(scope, name, TDefOrAccessCandVariableAccessCand(_)) - } - - private predicate variableReachesCand( - VariableScope scope, string name, NestedFunctionOrVariable v, VariableAccessCand cand, - int nestLevel - ) { - exists(int rnk | - variableReachesRank(scope, name, v, rnk) and - rnk = rankVariableOrAccess(scope, name, TDefOrAccessCandVariableAccessCand(cand)) and - variableAccessCandInScope(cand, scope, name, nestLevel, _) - ) - } - - pragma[nomagic] - predicate access(string name, NestedFunctionOrVariable v, VariableAccessCand cand) { - v = - min(NestedFunctionOrVariable v0, int nestLevel | - variableReachesCand(_, name, v0, cand, nestLevel) - | - v0 order by nestLevel - ) - } - /** A variable access. */ - class VariableAccess extends PathExprBase { - private string name; - private Variable v; - - VariableAccess() { variableAccess(name, v, this) } + class VariableAccess extends LocalAccess { + VariableAccess() { this.getLocal() instanceof Variable } /** Gets the variable being accessed. */ - Variable getVariable() { result = v } + Variable getVariable() { result = super.getLocal() } /** Holds if this access is a capture. */ - predicate isCapture() { this.getEnclosingCfgScope() != v.getEnclosingCfgScope() } + predicate isCapture() { + this.getEnclosingCfgScope() != this.getVariable().getEnclosingCfgScope() + } } /** Holds if `e` occurs in the LHS of an assignment operation. */ @@ -682,7 +336,7 @@ module Impl { or exists(Expr mid | assignmentOperationDescendant(ao, mid) and - getImmediateParentAdj(e) = mid and + mid = e.getParentNode() and not mid instanceof DerefExpr and not mid instanceof FieldExpr and not mid instanceof IndexExpr @@ -695,7 +349,7 @@ module Impl { cached VariableWriteAccess() { - Cached::ref() and + CachedStage::ref() and assignmentOperationDescendant(ae, this) } @@ -707,7 +361,7 @@ module Impl { class VariableReadAccess extends VariableAccess { cached VariableReadAccess() { - Cached::ref() and + CachedStage::ref() and not this instanceof VariableWriteAccess and not this = any(RefExpr re).getExpr() and not this = any(CompoundAssignmentExpr cae).getLhs() @@ -715,47 +369,10 @@ module Impl { } /** A nested function access. */ - class NestedFunctionAccess extends PathExprBase { + class NestedFunctionAccess extends LocalAccess { private Function f; - NestedFunctionAccess() { nestedFunctionAccess(_, f, this) } - /** Gets the function being accessed. */ - Function getFunction() { result = f } - } - - cached - private module Cached { - cached - predicate ref() { 1 = 1 } - - cached - predicate backref() { - 1 = 1 - or - variableDecl(_, _, _) - or - exists(VariableReadAccess a) - or - exists(VariableWriteAccess a) - or - exists(any(Variable v).getParameter()) - } - - cached - newtype TVariable = - MkVariable(AstNode definingNode, string name) { variableDecl(definingNode, _, name) } - - cached - predicate variableAccess(string name, Variable v, VariableAccessCand cand) { - access(name, TDefOrAccessCandVariable(v), cand) - } - - cached - predicate nestedFunctionAccess(string name, Function f, VariableAccessCand cand) { - access(name, TDefOrAccessCandNestedFunction(f, _), cand) - } + Function getFunction() { result = super.getLocal().getDefiningNode() } } - - private import Cached } diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 47f846eb02b0..13e9d33f706d 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -16,6 +16,7 @@ dependencies: codeql/tutorial: ${workspace} codeql/typeinference: ${workspace} codeql/util: ${workspace} + codeql/namebinding: ${workspace} dataExtensions: - /**/*.model.yml warnOnImplicitThis: true diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index d3297eb8c30d..b64d4ad75596 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -272,1742 +272,1875 @@ edges | main.rs:109:5:109:16 | print_str(...) | main.rs:99:19:110:1 | { ... } | | | main.rs:109:5:109:17 | ExprStmt | main.rs:109:5:109:13 | print_str | | | main.rs:109:15:109:15 | x | main.rs:109:5:109:16 | print_str(...) | | -| main.rs:112:1:119:1 | enter fn let_pattern5 | main.rs:113:5:113:42 | let ... = ... | | +| main.rs:112:1:119:1 | enter fn let_pattern5 | main.rs:113:5:113:41 | let ... = ... | | | main.rs:112:1:119:1 | exit fn let_pattern5 (normal) | main.rs:112:1:119:1 | exit fn let_pattern5 | | | main.rs:112:19:119:1 | { ... } | main.rs:112:1:119:1 | exit fn let_pattern5 (normal) | | -| main.rs:113:5:113:42 | let ... = ... | main.rs:113:14:113:17 | Some | | -| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | | -| main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | match | -| main.rs:113:14:113:17 | Some | main.rs:113:19:113:30 | ...::from | | -| main.rs:113:14:113:41 | Some(...) | main.rs:113:9:113:10 | s1 | | -| main.rs:113:19:113:30 | ...::from | main.rs:113:32:113:39 | "Hello!" | | -| main.rs:113:19:113:40 | ...::from(...) | main.rs:113:14:113:41 | Some(...) | | -| main.rs:113:32:113:39 | "Hello!" | main.rs:113:19:113:40 | ...::from(...) | | +| main.rs:113:5:113:41 | let ... = ... | main.rs:113:13:113:16 | Some | | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | s | | +| main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | match | +| main.rs:113:13:113:16 | Some | main.rs:113:18:113:29 | ...::from | | +| main.rs:113:13:113:40 | Some(...) | main.rs:113:9:113:9 | s | | +| main.rs:113:18:113:29 | ...::from | main.rs:113:31:113:38 | "Hello!" | | +| main.rs:113:18:113:39 | ...::from(...) | main.rs:113:13:113:40 | Some(...) | | +| main.rs:113:31:113:38 | "Hello!" | main.rs:113:18:113:39 | ...::from(...) | | | main.rs:115:5:118:5 | while ... { ... } | main.rs:112:19:119:1 | { ... } | | -| main.rs:115:11:116:12 | [boolean(false)] let ... = s1 | main.rs:115:5:118:5 | while ... { ... } | false | -| main.rs:115:11:116:12 | [boolean(true)] let ... = s1 | main.rs:117:9:117:22 | ExprStmt | true | -| main.rs:115:15:115:26 | Some(...) | main.rs:115:11:116:12 | [boolean(false)] let ... = s1 | no-match | -| main.rs:115:15:115:26 | Some(...) | main.rs:115:24:115:25 | s2 | match | -| main.rs:115:20:115:25 | ref s2 | main.rs:115:11:116:12 | [boolean(true)] let ... = s1 | match | -| main.rs:115:24:115:25 | s2 | main.rs:115:20:115:25 | ref s2 | | -| main.rs:116:11:116:12 | s1 | main.rs:115:15:115:26 | Some(...) | | -| main.rs:116:14:118:5 | { ... } | main.rs:116:11:116:12 | s1 | | -| main.rs:117:9:117:17 | print_str | main.rs:117:19:117:20 | s2 | | -| main.rs:117:9:117:21 | print_str(...) | main.rs:116:14:118:5 | { ... } | | -| main.rs:117:9:117:22 | ExprStmt | main.rs:117:9:117:17 | print_str | | -| main.rs:117:19:117:20 | s2 | main.rs:117:9:117:21 | print_str(...) | | -| main.rs:121:1:136:1 | enter fn match_pattern1 | main.rs:122:5:122:21 | let ... = ... | | -| main.rs:121:1:136:1 | exit fn match_pattern1 (normal) | main.rs:121:1:136:1 | exit fn match_pattern1 | | -| main.rs:121:21:136:1 | { ... } | main.rs:121:1:136:1 | exit fn match_pattern1 (normal) | | -| main.rs:122:5:122:21 | let ... = ... | main.rs:122:14:122:17 | Some | | -| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | | -| main.rs:122:9:122:10 | x6 | main.rs:123:5:123:16 | let ... = 10 | match | -| main.rs:122:14:122:17 | Some | main.rs:122:19:122:19 | 5 | | -| main.rs:122:14:122:20 | Some(...) | main.rs:122:9:122:10 | x6 | | -| main.rs:122:19:122:19 | 5 | main.rs:122:14:122:20 | Some(...) | | -| main.rs:123:5:123:16 | let ... = 10 | main.rs:123:14:123:15 | 10 | | -| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | | -| main.rs:123:9:123:10 | y1 | main.rs:125:5:133:5 | ExprStmt | match | -| main.rs:123:14:123:15 | 10 | main.rs:123:9:123:10 | y1 | | -| main.rs:125:5:133:5 | ExprStmt | main.rs:125:11:125:12 | x6 | | -| main.rs:125:5:133:5 | match x6 { ... } | main.rs:135:5:135:18 | ExprStmt | | -| main.rs:125:11:125:12 | x6 | main.rs:126:9:126:16 | Some(...) | | -| main.rs:126:9:126:16 | Some(...) | main.rs:126:14:126:15 | 50 | match | -| main.rs:126:9:126:16 | Some(...) | main.rs:127:9:127:16 | Some(...) | no-match | -| main.rs:126:14:126:15 | 50 | main.rs:126:14:126:15 | 50 | | -| main.rs:126:14:126:15 | 50 | main.rs:126:21:126:29 | print_str | match | -| main.rs:126:14:126:15 | 50 | main.rs:127:9:127:16 | Some(...) | no-match | -| main.rs:126:21:126:29 | print_str | main.rs:126:31:126:38 | "Got 50" | | -| main.rs:126:21:126:39 | print_str(...) | main.rs:125:5:133:5 | match x6 { ... } | | -| main.rs:126:31:126:38 | "Got 50" | main.rs:126:21:126:39 | print_str(...) | | -| main.rs:127:9:127:16 | Some(...) | main.rs:127:14:127:15 | y1 | match | -| main.rs:127:9:127:16 | Some(...) | main.rs:132:9:132:12 | None | no-match | -| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | | -| main.rs:127:14:127:15 | y1 | main.rs:130:13:130:21 | print_i64 | match | -| main.rs:129:9:131:9 | { ... } | main.rs:125:5:133:5 | match x6 { ... } | | -| main.rs:130:13:130:21 | print_i64 | main.rs:130:23:130:24 | y1 | | -| main.rs:130:13:130:25 | print_i64(...) | main.rs:129:9:131:9 | { ... } | | -| main.rs:130:23:130:24 | y1 | main.rs:130:13:130:25 | print_i64(...) | | -| main.rs:132:9:132:12 | None | main.rs:132:9:132:12 | None | | -| main.rs:132:9:132:12 | None | main.rs:132:17:132:25 | print_str | match | -| main.rs:132:17:132:25 | print_str | main.rs:132:27:132:32 | "NONE" | | -| main.rs:132:17:132:33 | print_str(...) | main.rs:125:5:133:5 | match x6 { ... } | | -| main.rs:132:27:132:32 | "NONE" | main.rs:132:17:132:33 | print_str(...) | | -| main.rs:135:5:135:13 | print_i64 | main.rs:135:15:135:16 | y1 | | -| main.rs:135:5:135:17 | print_i64(...) | main.rs:121:21:136:1 | { ... } | | -| main.rs:135:5:135:18 | ExprStmt | main.rs:135:5:135:13 | print_i64 | | -| main.rs:135:15:135:16 | y1 | main.rs:135:5:135:17 | print_i64(...) | | -| main.rs:138:1:167:1 | enter fn match_pattern2 | main.rs:139:5:139:36 | let ... = ... | | -| main.rs:138:1:167:1 | exit fn match_pattern2 (normal) | main.rs:138:1:167:1 | exit fn match_pattern2 | | -| main.rs:138:21:167:1 | { ... } | main.rs:138:1:167:1 | exit fn match_pattern2 (normal) | | -| main.rs:139:5:139:36 | let ... = ... | main.rs:139:20:139:20 | 2 | | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | | -| main.rs:139:9:139:15 | numbers | main.rs:141:5:154:5 | ExprStmt | match | -| main.rs:139:19:139:35 | TupleExpr | main.rs:139:9:139:15 | numbers | | -| main.rs:139:20:139:20 | 2 | main.rs:139:23:139:23 | 4 | | -| main.rs:139:23:139:23 | 4 | main.rs:139:26:139:26 | 8 | | -| main.rs:139:26:139:26 | 8 | main.rs:139:29:139:30 | 16 | | -| main.rs:139:29:139:30 | 16 | main.rs:139:33:139:34 | 32 | | -| main.rs:139:33:139:34 | 32 | main.rs:139:19:139:35 | TupleExpr | | -| main.rs:141:5:154:5 | ExprStmt | main.rs:141:11:141:17 | numbers | | -| main.rs:141:5:154:5 | match numbers { ... } | main.rs:156:11:156:17 | numbers | | -| main.rs:141:11:141:17 | numbers | main.rs:143:9:149:9 | TuplePat | | -| main.rs:143:9:149:9 | TuplePat | main.rs:144:13:144:17 | first | match | -| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | | -| main.rs:144:13:144:17 | first | main.rs:145:13:145:13 | _ | match | -| main.rs:145:13:145:13 | _ | main.rs:146:13:146:17 | third | match | -| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | | -| main.rs:146:13:146:17 | third | main.rs:147:13:147:13 | _ | match | -| main.rs:147:13:147:13 | _ | main.rs:148:13:148:17 | fifth | match | -| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | | -| main.rs:148:13:148:17 | fifth | main.rs:150:13:150:29 | ExprStmt | match | -| main.rs:149:14:153:9 | { ... } | main.rs:141:5:154:5 | match numbers { ... } | | -| main.rs:150:13:150:21 | print_i64 | main.rs:150:23:150:27 | first | | -| main.rs:150:13:150:28 | print_i64(...) | main.rs:151:13:151:29 | ExprStmt | | -| main.rs:150:13:150:29 | ExprStmt | main.rs:150:13:150:21 | print_i64 | | -| main.rs:150:23:150:27 | first | main.rs:150:13:150:28 | print_i64(...) | | -| main.rs:151:13:151:21 | print_i64 | main.rs:151:23:151:27 | third | | -| main.rs:151:13:151:28 | print_i64(...) | main.rs:152:13:152:29 | ExprStmt | | -| main.rs:151:13:151:29 | ExprStmt | main.rs:151:13:151:21 | print_i64 | | -| main.rs:151:23:151:27 | third | main.rs:151:13:151:28 | print_i64(...) | | -| main.rs:152:13:152:21 | print_i64 | main.rs:152:23:152:27 | fifth | | -| main.rs:152:13:152:28 | print_i64(...) | main.rs:149:14:153:9 | { ... } | | -| main.rs:152:13:152:29 | ExprStmt | main.rs:152:13:152:21 | print_i64 | | -| main.rs:152:23:152:27 | fifth | main.rs:152:13:152:28 | print_i64(...) | | -| main.rs:156:5:166:5 | match numbers { ... } | main.rs:138:21:167:1 | { ... } | | -| main.rs:156:11:156:17 | numbers | main.rs:158:9:162:9 | TuplePat | | -| main.rs:158:9:162:9 | TuplePat | main.rs:159:13:159:17 | first | match | -| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | | -| main.rs:159:13:159:17 | first | main.rs:160:13:160:14 | .. | match | -| main.rs:160:13:160:14 | .. | main.rs:161:13:161:16 | last | match | -| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | | -| main.rs:161:13:161:16 | last | main.rs:163:13:163:29 | ExprStmt | match | -| main.rs:162:14:165:9 | { ... } | main.rs:156:5:166:5 | match numbers { ... } | | -| main.rs:163:13:163:21 | print_i64 | main.rs:163:23:163:27 | first | | -| main.rs:163:13:163:28 | print_i64(...) | main.rs:164:13:164:28 | ExprStmt | | -| main.rs:163:13:163:29 | ExprStmt | main.rs:163:13:163:21 | print_i64 | | -| main.rs:163:23:163:27 | first | main.rs:163:13:163:28 | print_i64(...) | | -| main.rs:164:13:164:21 | print_i64 | main.rs:164:23:164:26 | last | | -| main.rs:164:13:164:27 | print_i64(...) | main.rs:162:14:165:9 | { ... } | | -| main.rs:164:13:164:28 | ExprStmt | main.rs:164:13:164:21 | print_i64 | | -| main.rs:164:23:164:26 | last | main.rs:164:13:164:27 | print_i64(...) | | -| main.rs:169:1:177:1 | enter fn match_pattern3 | main.rs:170:5:170:38 | let ... = ... | | -| main.rs:169:1:177:1 | exit fn match_pattern3 (normal) | main.rs:169:1:177:1 | exit fn match_pattern3 | | -| main.rs:169:21:177:1 | { ... } | main.rs:169:1:177:1 | exit fn match_pattern3 (normal) | | -| main.rs:170:5:170:38 | let ... = ... | main.rs:170:25:170:27 | "x" | | -| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | | -| main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | match | -| main.rs:170:14:170:37 | Point {...} | main.rs:170:9:170:10 | p2 | | -| main.rs:170:25:170:27 | "x" | main.rs:170:33:170:35 | "y" | | -| main.rs:170:33:170:35 | "y" | main.rs:170:14:170:37 | Point {...} | | -| main.rs:172:5:176:5 | match p2 { ... } | main.rs:169:21:177:1 | { ... } | | -| main.rs:172:11:172:12 | p2 | main.rs:173:9:175:9 | Point {...} | | -| main.rs:173:9:175:9 | Point {...} | main.rs:174:16:174:17 | x7 | match | -| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | | -| main.rs:174:16:174:17 | x7 | main.rs:174:20:174:21 | .. | match | -| main.rs:174:20:174:21 | .. | main.rs:175:14:175:22 | print_str | match | -| main.rs:175:14:175:22 | print_str | main.rs:175:24:175:25 | x7 | | -| main.rs:175:14:175:26 | print_str(...) | main.rs:172:5:176:5 | match p2 { ... } | | -| main.rs:175:24:175:25 | x7 | main.rs:175:14:175:26 | print_str(...) | | -| main.rs:183:1:200:1 | enter fn match_pattern4 | main.rs:184:5:184:39 | let ... = ... | | -| main.rs:183:1:200:1 | exit fn match_pattern4 (normal) | main.rs:183:1:200:1 | exit fn match_pattern4 | | -| main.rs:183:21:200:1 | { ... } | main.rs:183:1:200:1 | exit fn match_pattern4 (normal) | | -| main.rs:184:5:184:39 | let ... = ... | main.rs:184:36:184:36 | 0 | | -| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | | -| main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | match | -| main.rs:184:15:184:38 | ...::Hello {...} | main.rs:184:9:184:11 | msg | | -| main.rs:184:36:184:36 | 0 | main.rs:184:15:184:38 | ...::Hello {...} | | -| main.rs:186:5:199:5 | match msg { ... } | main.rs:183:21:200:1 | { ... } | | -| main.rs:186:11:186:13 | msg | main.rs:188:9:190:9 | ...::Hello {...} | | -| main.rs:188:9:190:9 | ...::Hello {...} | main.rs:189:31:189:35 | RangePat | match | -| main.rs:188:9:190:9 | ...::Hello {...} | main.rs:191:9:191:38 | ...::Hello {...} | no-match | -| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:35 | id_variable @ ... | | -| main.rs:189:17:189:35 | id_variable @ ... | main.rs:190:14:190:22 | print_i64 | match | -| main.rs:189:31:189:31 | 3 | main.rs:189:31:189:31 | 3 | | -| main.rs:189:31:189:31 | 3 | main.rs:189:35:189:35 | 7 | match | -| main.rs:189:31:189:31 | 3 | main.rs:191:9:191:38 | ...::Hello {...} | no-match | -| main.rs:189:31:189:35 | RangePat | main.rs:189:31:189:31 | 3 | match | -| main.rs:189:35:189:35 | 7 | main.rs:189:17:189:27 | id_variable | match | -| main.rs:189:35:189:35 | 7 | main.rs:189:35:189:35 | 7 | | -| main.rs:189:35:189:35 | 7 | main.rs:191:9:191:38 | ...::Hello {...} | no-match | -| main.rs:190:14:190:22 | print_i64 | main.rs:190:24:190:34 | id_variable | | -| main.rs:190:14:190:35 | print_i64(...) | main.rs:186:5:199:5 | match msg { ... } | | -| main.rs:190:24:190:34 | id_variable | main.rs:190:14:190:35 | print_i64(...) | | -| main.rs:191:9:191:38 | ...::Hello {...} | main.rs:191:30:191:36 | RangePat | match | -| main.rs:191:9:191:38 | ...::Hello {...} | main.rs:194:9:194:29 | ...::Hello {...} | no-match | -| main.rs:191:30:191:31 | 10 | main.rs:191:30:191:31 | 10 | | -| main.rs:191:30:191:31 | 10 | main.rs:191:35:191:36 | 12 | match | -| main.rs:191:30:191:31 | 10 | main.rs:194:9:194:29 | ...::Hello {...} | no-match | -| main.rs:191:30:191:36 | RangePat | main.rs:191:30:191:31 | 10 | match | -| main.rs:191:35:191:36 | 12 | main.rs:191:35:191:36 | 12 | | -| main.rs:191:35:191:36 | 12 | main.rs:192:22:192:51 | ExprStmt | match | -| main.rs:191:35:191:36 | 12 | main.rs:194:9:194:29 | ...::Hello {...} | no-match | -| main.rs:191:43:193:9 | { ... } | main.rs:186:5:199:5 | match msg { ... } | | -| main.rs:192:13:192:20 | ...::_print | main.rs:192:22:192:51 | "Found an id in another range\\... | | -| main.rs:192:13:192:52 | MacroExpr | main.rs:191:43:193:9 | { ... } | | -| main.rs:192:13:192:52 | println!... | main.rs:192:13:192:52 | MacroExpr | | -| main.rs:192:22:192:51 | "Found an id in another range\\... | main.rs:192:22:192:51 | FormatArgsExpr | | -| main.rs:192:22:192:51 | ...::_print(...) | main.rs:192:22:192:51 | { ... } | | -| main.rs:192:22:192:51 | ...::format_args_nl!... | main.rs:192:22:192:51 | MacroExpr | | -| main.rs:192:22:192:51 | ExprStmt | main.rs:192:13:192:20 | ...::_print | | -| main.rs:192:22:192:51 | FormatArgsExpr | main.rs:192:22:192:51 | ...::format_args_nl!... | | -| main.rs:192:22:192:51 | MacroExpr | main.rs:192:22:192:51 | ...::_print(...) | | -| main.rs:192:22:192:51 | { ... } | main.rs:192:13:192:52 | println!... | | -| main.rs:192:22:192:51 | { ... } | main.rs:192:22:192:51 | { ... } | | -| main.rs:194:9:194:29 | ...::Hello {...} | main.rs:194:26:194:27 | id | match | -| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | | -| main.rs:194:26:194:27 | id | main.rs:197:13:197:21 | print_i64 | match | -| main.rs:196:9:198:9 | { ... } | main.rs:186:5:199:5 | match msg { ... } | | -| main.rs:197:13:197:21 | print_i64 | main.rs:197:23:197:24 | id | | -| main.rs:197:13:197:25 | print_i64(...) | main.rs:196:9:198:9 | { ... } | | -| main.rs:197:23:197:24 | id | main.rs:197:13:197:25 | print_i64(...) | | -| main.rs:207:1:213:1 | enter fn match_pattern5 | main.rs:208:5:208:34 | let ... = ... | | -| main.rs:207:1:213:1 | exit fn match_pattern5 (normal) | main.rs:207:1:213:1 | exit fn match_pattern5 | | -| main.rs:207:21:213:1 | { ... } | main.rs:207:1:213:1 | exit fn match_pattern5 (normal) | | -| main.rs:208:5:208:34 | let ... = ... | main.rs:208:18:208:29 | ...::Left | | -| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | | -| main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | match | -| main.rs:208:18:208:29 | ...::Left | main.rs:208:31:208:32 | 32 | | -| main.rs:208:18:208:33 | ...::Left(...) | main.rs:208:9:208:14 | either | | -| main.rs:208:31:208:32 | 32 | main.rs:208:18:208:33 | ...::Left(...) | | -| main.rs:209:5:212:5 | match either { ... } | main.rs:207:21:213:1 | { ... } | | -| main.rs:209:11:209:16 | either | main.rs:210:9:210:24 | ...::Left(...) | | -| main.rs:210:9:210:24 | ...::Left(...) | main.rs:210:22:210:23 | a3 | match | -| main.rs:210:9:210:24 | ...::Left(...) | main.rs:210:28:210:44 | ...::Right(...) | no-match | -| main.rs:210:9:210:44 | ... \| ... | main.rs:211:16:211:24 | print_i64 | match | -| main.rs:210:22:210:23 | a3 | main.rs:210:9:210:44 | ... \| ... | match | -| main.rs:210:22:210:23 | a3 | main.rs:210:22:210:23 | a3 | | -| main.rs:210:28:210:44 | ...::Right(...) | main.rs:210:42:210:43 | a3 | match | -| main.rs:210:42:210:43 | a3 | main.rs:210:9:210:44 | ... \| ... | match | -| main.rs:210:42:210:43 | a3 | main.rs:210:42:210:43 | a3 | | -| main.rs:211:16:211:24 | print_i64 | main.rs:211:26:211:27 | a3 | | -| main.rs:211:16:211:28 | print_i64(...) | main.rs:209:5:212:5 | match either { ... } | | -| main.rs:211:26:211:27 | a3 | main.rs:211:16:211:28 | print_i64(...) | | -| main.rs:221:1:235:1 | enter fn match_pattern6 | main.rs:222:5:222:37 | let ... = ... | | -| main.rs:221:1:235:1 | exit fn match_pattern6 (normal) | main.rs:221:1:235:1 | exit fn match_pattern6 | | -| main.rs:221:21:235:1 | { ... } | main.rs:221:1:235:1 | exit fn match_pattern6 (normal) | | -| main.rs:222:5:222:37 | let ... = ... | main.rs:222:14:222:32 | ...::Second | | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | | -| main.rs:222:9:222:10 | tv | main.rs:223:5:226:5 | ExprStmt | match | -| main.rs:222:14:222:32 | ...::Second | main.rs:222:34:222:35 | 62 | | -| main.rs:222:14:222:36 | ...::Second(...) | main.rs:222:9:222:10 | tv | | -| main.rs:222:34:222:35 | 62 | main.rs:222:14:222:36 | ...::Second(...) | | -| main.rs:223:5:226:5 | ExprStmt | main.rs:223:11:223:12 | tv | | -| main.rs:223:5:226:5 | match tv { ... } | main.rs:227:5:230:5 | ExprStmt | | -| main.rs:223:11:223:12 | tv | main.rs:224:9:224:30 | ...::First(...) | | -| main.rs:224:9:224:30 | ...::First(...) | main.rs:224:28:224:29 | a4 | match | -| main.rs:224:9:224:30 | ...::First(...) | main.rs:224:34:224:56 | ...::Second(...) | no-match | -| main.rs:224:9:224:81 | ... \| ... \| ... | main.rs:225:16:225:24 | print_i64 | match | -| main.rs:224:28:224:29 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | -| main.rs:224:28:224:29 | a4 | main.rs:224:28:224:29 | a4 | | -| main.rs:224:34:224:56 | ...::Second(...) | main.rs:224:54:224:55 | a4 | match | -| main.rs:224:34:224:56 | ...::Second(...) | main.rs:224:60:224:81 | ...::Third(...) | no-match | -| main.rs:224:54:224:55 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | -| main.rs:224:54:224:55 | a4 | main.rs:224:54:224:55 | a4 | | -| main.rs:224:60:224:81 | ...::Third(...) | main.rs:224:79:224:80 | a4 | match | -| main.rs:224:79:224:80 | a4 | main.rs:224:9:224:81 | ... \| ... \| ... | match | -| main.rs:224:79:224:80 | a4 | main.rs:224:79:224:80 | a4 | | -| main.rs:225:16:225:24 | print_i64 | main.rs:225:26:225:27 | a4 | | -| main.rs:225:16:225:28 | print_i64(...) | main.rs:223:5:226:5 | match tv { ... } | | -| main.rs:225:26:225:27 | a4 | main.rs:225:16:225:28 | print_i64(...) | | -| main.rs:227:5:230:5 | ExprStmt | main.rs:227:11:227:12 | tv | | -| main.rs:227:5:230:5 | match tv { ... } | main.rs:231:11:231:12 | tv | | -| main.rs:227:11:227:12 | tv | main.rs:228:10:228:31 | ...::First(...) | | -| main.rs:228:9:228:83 | ... \| ... | main.rs:229:16:229:24 | print_i64 | match | -| main.rs:228:10:228:31 | ...::First(...) | main.rs:228:29:228:30 | a5 | match | -| main.rs:228:10:228:31 | ...::First(...) | main.rs:228:35:228:57 | ...::Second(...) | no-match | -| main.rs:228:10:228:57 | [match(false)] ... \| ... | main.rs:228:62:228:83 | ...::Third(...) | no-match | -| main.rs:228:10:228:57 | [match(true)] ... \| ... | main.rs:228:9:228:83 | ... \| ... | match | -| main.rs:228:29:228:30 | a5 | main.rs:228:10:228:57 | [match(true)] ... \| ... | match | -| main.rs:228:29:228:30 | a5 | main.rs:228:29:228:30 | a5 | | -| main.rs:228:35:228:57 | ...::Second(...) | main.rs:228:10:228:57 | [match(false)] ... \| ... | no-match | -| main.rs:228:35:228:57 | ...::Second(...) | main.rs:228:55:228:56 | a5 | match | -| main.rs:228:55:228:56 | a5 | main.rs:228:10:228:57 | [match(true)] ... \| ... | match | -| main.rs:228:55:228:56 | a5 | main.rs:228:55:228:56 | a5 | | -| main.rs:228:62:228:83 | ...::Third(...) | main.rs:228:81:228:82 | a5 | match | -| main.rs:228:81:228:82 | a5 | main.rs:228:9:228:83 | ... \| ... | match | -| main.rs:228:81:228:82 | a5 | main.rs:228:81:228:82 | a5 | | -| main.rs:229:16:229:24 | print_i64 | main.rs:229:26:229:27 | a5 | | -| main.rs:229:16:229:28 | print_i64(...) | main.rs:227:5:230:5 | match tv { ... } | | -| main.rs:229:26:229:27 | a5 | main.rs:229:16:229:28 | print_i64(...) | | -| main.rs:231:5:234:5 | match tv { ... } | main.rs:221:21:235:1 | { ... } | | -| main.rs:231:11:231:12 | tv | main.rs:232:9:232:30 | ...::First(...) | | -| main.rs:232:9:232:30 | ...::First(...) | main.rs:232:28:232:29 | a6 | match | -| main.rs:232:9:232:30 | ...::First(...) | main.rs:232:35:232:57 | ...::Second(...) | no-match | -| main.rs:232:9:232:83 | ... \| ... | main.rs:233:16:233:24 | print_i64 | match | -| main.rs:232:28:232:29 | a6 | main.rs:232:9:232:83 | ... \| ... | match | -| main.rs:232:28:232:29 | a6 | main.rs:232:28:232:29 | a6 | | -| main.rs:232:35:232:57 | ...::Second(...) | main.rs:232:55:232:56 | a6 | match | -| main.rs:232:35:232:57 | ...::Second(...) | main.rs:232:61:232:82 | ...::Third(...) | no-match | -| main.rs:232:35:232:82 | ... \| ... | main.rs:232:9:232:83 | ... \| ... | match | -| main.rs:232:55:232:56 | a6 | main.rs:232:35:232:82 | ... \| ... | match | -| main.rs:232:55:232:56 | a6 | main.rs:232:55:232:56 | a6 | | -| main.rs:232:61:232:82 | ...::Third(...) | main.rs:232:80:232:81 | a6 | match | -| main.rs:232:80:232:81 | a6 | main.rs:232:35:232:82 | ... \| ... | match | -| main.rs:232:80:232:81 | a6 | main.rs:232:80:232:81 | a6 | | -| main.rs:233:16:233:24 | print_i64 | main.rs:233:26:233:27 | a6 | | -| main.rs:233:16:233:28 | print_i64(...) | main.rs:231:5:234:5 | match tv { ... } | | -| main.rs:233:26:233:27 | a6 | main.rs:233:16:233:28 | print_i64(...) | | -| main.rs:237:1:245:1 | enter fn match_pattern7 | main.rs:238:5:238:34 | let ... = ... | | -| main.rs:237:1:245:1 | exit fn match_pattern7 (normal) | main.rs:237:1:245:1 | exit fn match_pattern7 | | -| main.rs:237:21:245:1 | { ... } | main.rs:237:1:245:1 | exit fn match_pattern7 (normal) | | -| main.rs:238:5:238:34 | let ... = ... | main.rs:238:18:238:29 | ...::Left | | -| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | | -| main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | match | -| main.rs:238:18:238:29 | ...::Left | main.rs:238:31:238:32 | 32 | | -| main.rs:238:18:238:33 | ...::Left(...) | main.rs:238:9:238:14 | either | | -| main.rs:238:31:238:32 | 32 | main.rs:238:18:238:33 | ...::Left(...) | | -| main.rs:239:5:244:5 | match either { ... } | main.rs:237:21:245:1 | { ... } | | -| main.rs:239:11:239:16 | either | main.rs:240:9:240:24 | ...::Left(...) | | -| main.rs:240:9:240:24 | ...::Left(...) | main.rs:240:22:240:23 | a7 | match | -| main.rs:240:9:240:24 | ...::Left(...) | main.rs:240:28:240:44 | ...::Right(...) | no-match | -| main.rs:240:9:240:44 | [match(false)] ... \| ... | main.rs:243:9:243:9 | _ | no-match | -| main.rs:240:9:240:44 | [match(true)] ... \| ... | main.rs:241:16:241:17 | a7 | match | -| main.rs:240:22:240:23 | a7 | main.rs:240:9:240:44 | [match(true)] ... \| ... | match | -| main.rs:240:22:240:23 | a7 | main.rs:240:22:240:23 | a7 | | -| main.rs:240:28:240:44 | ...::Right(...) | main.rs:240:9:240:44 | [match(false)] ... \| ... | no-match | -| main.rs:240:28:240:44 | ...::Right(...) | main.rs:240:42:240:43 | a7 | match | -| main.rs:240:42:240:43 | a7 | main.rs:240:9:240:44 | [match(true)] ... \| ... | match | -| main.rs:240:42:240:43 | a7 | main.rs:240:42:240:43 | a7 | | -| main.rs:241:16:241:17 | a7 | main.rs:241:21:241:21 | 0 | | -| main.rs:241:16:241:21 | ... > ... | main.rs:242:16:242:24 | print_i64 | true | -| main.rs:241:16:241:21 | ... > ... | main.rs:243:9:243:9 | _ | false | -| main.rs:241:21:241:21 | 0 | main.rs:241:16:241:21 | ... > ... | | -| main.rs:242:16:242:24 | print_i64 | main.rs:242:26:242:27 | a7 | | -| main.rs:242:16:242:28 | print_i64(...) | main.rs:239:5:244:5 | match either { ... } | | -| main.rs:242:26:242:27 | a7 | main.rs:242:16:242:28 | print_i64(...) | | -| main.rs:243:9:243:9 | _ | main.rs:243:14:243:15 | TupleExpr | match | -| main.rs:243:14:243:15 | TupleExpr | main.rs:239:5:244:5 | match either { ... } | | -| main.rs:247:1:262:1 | enter fn match_pattern8 | main.rs:248:5:248:34 | let ... = ... | | -| main.rs:247:1:262:1 | exit fn match_pattern8 (normal) | main.rs:247:1:262:1 | exit fn match_pattern8 | | -| main.rs:247:21:262:1 | { ... } | main.rs:247:1:262:1 | exit fn match_pattern8 (normal) | | -| main.rs:248:5:248:34 | let ... = ... | main.rs:248:18:248:29 | ...::Left | | -| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | | -| main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | match | -| main.rs:248:18:248:29 | ...::Left | main.rs:248:31:248:32 | 32 | | -| main.rs:248:18:248:33 | ...::Left(...) | main.rs:248:9:248:14 | either | | -| main.rs:248:31:248:32 | 32 | main.rs:248:18:248:33 | ...::Left(...) | | -| main.rs:250:5:261:5 | match either { ... } | main.rs:247:21:262:1 | { ... } | | -| main.rs:250:11:250:16 | either | main.rs:252:14:252:30 | ...::Left(...) | | -| main.rs:251:9:252:52 | ref e @ ... | main.rs:254:13:254:27 | ExprStmt | match | -| main.rs:251:13:251:13 | e | main.rs:251:9:252:52 | ref e @ ... | | -| main.rs:252:14:252:30 | ...::Left(...) | main.rs:252:27:252:29 | a11 | match | -| main.rs:252:14:252:30 | ...::Left(...) | main.rs:252:34:252:51 | ...::Right(...) | no-match | -| main.rs:252:14:252:51 | [match(false)] ... \| ... | main.rs:260:9:260:9 | _ | no-match | -| main.rs:252:14:252:51 | [match(true)] ... \| ... | main.rs:251:13:251:13 | e | match | -| main.rs:252:27:252:29 | a11 | main.rs:252:14:252:51 | [match(true)] ... \| ... | match | -| main.rs:252:27:252:29 | a11 | main.rs:252:27:252:29 | a11 | | -| main.rs:252:34:252:51 | ...::Right(...) | main.rs:252:14:252:51 | [match(false)] ... \| ... | no-match | -| main.rs:252:34:252:51 | ...::Right(...) | main.rs:252:48:252:50 | a11 | match | -| main.rs:252:48:252:50 | a11 | main.rs:252:14:252:51 | [match(true)] ... \| ... | match | -| main.rs:252:48:252:50 | a11 | main.rs:252:48:252:50 | a11 | | -| main.rs:253:12:259:9 | { ... } | main.rs:250:5:261:5 | match either { ... } | | -| main.rs:254:13:254:21 | print_i64 | main.rs:254:23:254:25 | a11 | | -| main.rs:254:13:254:26 | print_i64(...) | main.rs:256:15:256:15 | e | | -| main.rs:254:13:254:27 | ExprStmt | main.rs:254:13:254:21 | print_i64 | | -| main.rs:254:23:254:25 | a11 | main.rs:254:13:254:26 | print_i64(...) | | -| main.rs:255:13:258:13 | if ... {...} | main.rs:253:12:259:9 | { ... } | | -| main.rs:255:16:256:15 | [boolean(false)] let ... = e | main.rs:255:13:258:13 | if ... {...} | false | -| main.rs:255:16:256:15 | [boolean(true)] let ... = e | main.rs:257:17:257:32 | ExprStmt | true | -| main.rs:255:20:255:36 | ...::Left(...) | main.rs:255:16:256:15 | [boolean(false)] let ... = e | no-match | -| main.rs:255:20:255:36 | ...::Left(...) | main.rs:255:33:255:35 | a12 | match | -| main.rs:255:33:255:35 | a12 | main.rs:255:16:256:15 | [boolean(true)] let ... = e | match | -| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | | -| main.rs:256:15:256:15 | e | main.rs:255:20:255:36 | ...::Left(...) | | -| main.rs:256:17:258:13 | { ... } | main.rs:255:13:258:13 | if ... {...} | | -| main.rs:257:17:257:25 | print_i64 | main.rs:257:28:257:30 | a12 | | -| main.rs:257:17:257:31 | print_i64(...) | main.rs:256:17:258:13 | { ... } | | -| main.rs:257:17:257:32 | ExprStmt | main.rs:257:17:257:25 | print_i64 | | -| main.rs:257:27:257:30 | * ... | main.rs:257:17:257:31 | print_i64(...) | | -| main.rs:257:28:257:30 | a12 | main.rs:257:27:257:30 | * ... | | -| main.rs:260:9:260:9 | _ | main.rs:260:14:260:15 | TupleExpr | match | -| main.rs:260:14:260:15 | TupleExpr | main.rs:250:5:261:5 | match either { ... } | | -| main.rs:271:1:277:1 | enter fn match_pattern9 | main.rs:272:5:272:36 | let ... = ... | | -| main.rs:271:1:277:1 | exit fn match_pattern9 (normal) | main.rs:271:1:277:1 | exit fn match_pattern9 | | -| main.rs:271:21:277:1 | { ... } | main.rs:271:1:277:1 | exit fn match_pattern9 (normal) | | -| main.rs:272:5:272:36 | let ... = ... | main.rs:272:14:272:31 | ...::Second | | -| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | | -| main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | match | -| main.rs:272:14:272:31 | ...::Second | main.rs:272:33:272:34 | 62 | | -| main.rs:272:14:272:35 | ...::Second(...) | main.rs:272:9:272:10 | fv | | -| main.rs:272:33:272:34 | 62 | main.rs:272:14:272:35 | ...::Second(...) | | -| main.rs:273:5:276:5 | match fv { ... } | main.rs:271:21:277:1 | { ... } | | -| main.rs:273:11:273:12 | fv | main.rs:274:9:274:30 | ...::First(...) | | -| main.rs:274:9:274:30 | ...::First(...) | main.rs:274:27:274:29 | a13 | match | -| main.rs:274:9:274:30 | ...::First(...) | main.rs:274:35:274:57 | ...::Second(...) | no-match | -| main.rs:274:9:274:109 | ... \| ... \| ... | main.rs:275:16:275:24 | print_i64 | match | -| main.rs:274:27:274:29 | a13 | main.rs:274:9:274:109 | ... \| ... \| ... | match | -| main.rs:274:27:274:29 | a13 | main.rs:274:27:274:29 | a13 | | -| main.rs:274:35:274:57 | ...::Second(...) | main.rs:274:54:274:56 | a13 | match | -| main.rs:274:35:274:57 | ...::Second(...) | main.rs:274:61:274:82 | ...::Third(...) | no-match | -| main.rs:274:35:274:82 | [match(false)] ... \| ... | main.rs:274:87:274:109 | ...::Fourth(...) | no-match | -| main.rs:274:35:274:82 | [match(true)] ... \| ... | main.rs:274:9:274:109 | ... \| ... \| ... | match | -| main.rs:274:54:274:56 | a13 | main.rs:274:35:274:82 | [match(true)] ... \| ... | match | -| main.rs:274:54:274:56 | a13 | main.rs:274:54:274:56 | a13 | | -| main.rs:274:61:274:82 | ...::Third(...) | main.rs:274:35:274:82 | [match(false)] ... \| ... | no-match | -| main.rs:274:61:274:82 | ...::Third(...) | main.rs:274:79:274:81 | a13 | match | -| main.rs:274:79:274:81 | a13 | main.rs:274:35:274:82 | [match(true)] ... \| ... | match | -| main.rs:274:79:274:81 | a13 | main.rs:274:79:274:81 | a13 | | -| main.rs:274:87:274:109 | ...::Fourth(...) | main.rs:274:106:274:108 | a13 | match | -| main.rs:274:106:274:108 | a13 | main.rs:274:9:274:109 | ... \| ... \| ... | match | -| main.rs:274:106:274:108 | a13 | main.rs:274:106:274:108 | a13 | | -| main.rs:275:16:275:24 | print_i64 | main.rs:275:26:275:28 | a13 | | -| main.rs:275:16:275:29 | print_i64(...) | main.rs:273:5:276:5 | match fv { ... } | | -| main.rs:275:26:275:28 | a13 | main.rs:275:16:275:29 | print_i64(...) | | -| main.rs:279:1:293:1 | enter fn match_pattern10 | main.rs:281:5:281:20 | let ... = ... | | -| main.rs:279:1:293:1 | exit fn match_pattern10 (normal) | main.rs:279:1:293:1 | exit fn match_pattern10 | | -| main.rs:280:22:293:1 | { ... } | main.rs:279:1:293:1 | exit fn match_pattern10 (normal) | | -| main.rs:281:5:281:20 | let ... = ... | main.rs:281:12:281:15 | Some | | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | | -| main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | match | -| main.rs:281:12:281:15 | Some | main.rs:281:17:281:18 | 42 | | -| main.rs:281:12:281:19 | Some(...) | main.rs:281:9:281:9 | x | | -| main.rs:281:17:281:18 | 42 | main.rs:281:12:281:19 | Some(...) | | -| main.rs:282:5:292:5 | if ... {...} else {...} | main.rs:280:22:293:1 | { ... } | | -| main.rs:282:8:283:7 | [boolean(false)] let ... = x | main.rs:282:8:285:9 | [boolean(false)] ... && ... | false | -| main.rs:282:8:283:7 | [boolean(true)] let ... = x | main.rs:285:5:285:5 | x | true | -| main.rs:282:8:285:9 | [boolean(false)] ... && ... | main.rs:289:9:290:14 | let ... = x | false | -| main.rs:282:8:285:9 | [boolean(true)] ... && ... | main.rs:287:9:287:21 | ExprStmt | true | -| main.rs:282:12:282:18 | Some(...) | main.rs:282:8:283:7 | [boolean(false)] let ... = x | no-match | -| main.rs:282:12:282:18 | Some(...) | main.rs:282:17:282:17 | x | match | -| main.rs:282:17:282:17 | x | main.rs:282:8:283:7 | [boolean(true)] let ... = x | match | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | | -| main.rs:283:7:283:7 | x | main.rs:282:12:282:18 | Some(...) | | -| main.rs:285:5:285:5 | x | main.rs:285:9:285:9 | 0 | | -| main.rs:285:5:285:9 | ... > ... | main.rs:282:8:285:9 | [boolean(false)] ... && ... | false | -| main.rs:285:5:285:9 | ... > ... | main.rs:282:8:285:9 | [boolean(true)] ... && ... | true | -| main.rs:285:9:285:9 | 0 | main.rs:285:5:285:9 | ... > ... | | -| main.rs:286:5:288:5 | { ... } | main.rs:282:5:292:5 | if ... {...} else {...} | | -| main.rs:287:9:287:17 | print_i64 | main.rs:287:19:287:19 | x | | -| main.rs:287:9:287:20 | print_i64(...) | main.rs:286:5:288:5 | { ... } | | -| main.rs:287:9:287:21 | ExprStmt | main.rs:287:9:287:17 | print_i64 | | -| main.rs:287:19:287:19 | x | main.rs:287:9:287:20 | print_i64(...) | | -| main.rs:288:12:292:5 | { ... } | main.rs:282:5:292:5 | if ... {...} else {...} | | -| main.rs:289:9:290:14 | let ... = x | main.rs:290:13:290:13 | x | | -| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | | -| main.rs:289:13:289:13 | x | main.rs:291:9:291:30 | ExprStmt | match | -| main.rs:290:13:290:13 | x | main.rs:289:13:289:13 | x | | -| main.rs:291:9:291:17 | print_i64 | main.rs:291:19:291:19 | x | | -| main.rs:291:9:291:29 | print_i64(...) | main.rs:288:12:292:5 | { ... } | | -| main.rs:291:9:291:30 | ExprStmt | main.rs:291:9:291:17 | print_i64 | | -| main.rs:291:19:291:19 | x | main.rs:291:19:291:28 | x.unwrap() | | -| main.rs:291:19:291:28 | x.unwrap() | main.rs:291:9:291:29 | print_i64(...) | | -| main.rs:295:1:312:1 | enter fn match_pattern11 | main.rs:297:5:297:21 | let ... = ... | | -| main.rs:295:1:312:1 | exit fn match_pattern11 (normal) | main.rs:295:1:312:1 | exit fn match_pattern11 | | -| main.rs:296:22:312:1 | { ... } | main.rs:295:1:312:1 | exit fn match_pattern11 (normal) | | -| main.rs:297:5:297:21 | let ... = ... | main.rs:297:13:297:16 | Some | | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | | -| main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | match | -| main.rs:297:13:297:16 | Some | main.rs:297:18:297:19 | 42 | | -| main.rs:297:13:297:20 | Some(...) | main.rs:297:9:297:9 | x | | -| main.rs:297:18:297:19 | 42 | main.rs:297:13:297:20 | Some(...) | | -| main.rs:298:5:311:5 | if ... {...} else {...} | main.rs:296:22:312:1 | { ... } | | -| main.rs:298:8:299:7 | [boolean(false)] let ... = x | main.rs:298:8:302:13 | [boolean(false)] ... && ... | false | -| main.rs:298:8:299:7 | [boolean(true)] let ... = x | main.rs:302:7:302:10 | Some | true | -| main.rs:298:8:302:13 | [boolean(false)] ... && ... | main.rs:298:8:304:9 | [boolean(false)] ... && ... | false | -| main.rs:298:8:302:13 | [boolean(true)] ... && ... | main.rs:304:5:304:5 | x | true | -| main.rs:298:8:304:9 | [boolean(false)] ... && ... | main.rs:308:9:309:14 | let ... = x | false | -| main.rs:298:8:304:9 | [boolean(true)] ... && ... | main.rs:306:9:306:21 | ExprStmt | true | -| main.rs:298:12:298:18 | Some(...) | main.rs:298:8:299:7 | [boolean(false)] let ... = x | no-match | -| main.rs:298:12:298:18 | Some(...) | main.rs:298:17:298:17 | x | match | -| main.rs:298:17:298:17 | x | main.rs:298:8:299:7 | [boolean(true)] let ... = x | match | -| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | | -| main.rs:299:7:299:7 | x | main.rs:298:12:298:18 | Some(...) | | -| main.rs:301:5:302:13 | [boolean(false)] let ... = ... | main.rs:298:8:302:13 | [boolean(false)] ... && ... | false | -| main.rs:301:5:302:13 | [boolean(true)] let ... = ... | main.rs:298:8:302:13 | [boolean(true)] ... && ... | true | -| main.rs:301:9:301:15 | Some(...) | main.rs:301:5:302:13 | [boolean(false)] let ... = ... | no-match | -| main.rs:301:9:301:15 | Some(...) | main.rs:301:14:301:14 | x | match | -| main.rs:301:14:301:14 | x | main.rs:301:5:302:13 | [boolean(true)] let ... = ... | match | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | | -| main.rs:302:7:302:10 | Some | main.rs:302:12:302:12 | x | | -| main.rs:302:7:302:13 | Some(...) | main.rs:301:9:301:15 | Some(...) | | -| main.rs:302:12:302:12 | x | main.rs:302:7:302:13 | Some(...) | | -| main.rs:304:5:304:5 | x | main.rs:304:9:304:9 | 0 | | -| main.rs:304:5:304:9 | ... > ... | main.rs:298:8:304:9 | [boolean(false)] ... && ... | false | -| main.rs:304:5:304:9 | ... > ... | main.rs:298:8:304:9 | [boolean(true)] ... && ... | true | -| main.rs:304:9:304:9 | 0 | main.rs:304:5:304:9 | ... > ... | | -| main.rs:305:5:307:5 | { ... } | main.rs:298:5:311:5 | if ... {...} else {...} | | -| main.rs:306:9:306:17 | print_i64 | main.rs:306:19:306:19 | x | | -| main.rs:306:9:306:20 | print_i64(...) | main.rs:305:5:307:5 | { ... } | | -| main.rs:306:9:306:21 | ExprStmt | main.rs:306:9:306:17 | print_i64 | | -| main.rs:306:19:306:19 | x | main.rs:306:9:306:20 | print_i64(...) | | -| main.rs:307:12:311:5 | { ... } | main.rs:298:5:311:5 | if ... {...} else {...} | | -| main.rs:308:9:309:14 | let ... = x | main.rs:309:13:309:13 | x | | -| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | | -| main.rs:308:13:308:13 | x | main.rs:310:9:310:30 | ExprStmt | match | -| main.rs:309:13:309:13 | x | main.rs:308:13:308:13 | x | | -| main.rs:310:9:310:17 | print_i64 | main.rs:310:19:310:19 | x | | -| main.rs:310:9:310:29 | print_i64(...) | main.rs:307:12:311:5 | { ... } | | -| main.rs:310:9:310:30 | ExprStmt | main.rs:310:9:310:17 | print_i64 | | -| main.rs:310:19:310:19 | x | main.rs:310:19:310:28 | x.unwrap() | | -| main.rs:310:19:310:28 | x.unwrap() | main.rs:310:9:310:29 | print_i64(...) | | -| main.rs:314:1:330:1 | enter fn match_pattern12 | main.rs:316:5:316:21 | let ... = ... | | -| main.rs:314:1:330:1 | exit fn match_pattern12 (normal) | main.rs:314:1:330:1 | exit fn match_pattern12 | | -| main.rs:315:22:330:1 | { ... } | main.rs:314:1:330:1 | exit fn match_pattern12 (normal) | | -| main.rs:316:5:316:21 | let ... = ... | main.rs:316:13:316:16 | Some | | +| main.rs:115:11:116:11 | [boolean(false)] let ... = s | main.rs:115:5:118:5 | while ... { ... } | false | +| main.rs:115:11:116:11 | [boolean(true)] let ... = s | main.rs:117:9:117:21 | ExprStmt | true | +| main.rs:115:15:115:25 | Some(...) | main.rs:115:11:116:11 | [boolean(false)] let ... = s | no-match | +| main.rs:115:15:115:25 | Some(...) | main.rs:115:24:115:24 | s | match | +| main.rs:115:20:115:24 | ref s | main.rs:115:11:116:11 | [boolean(true)] let ... = s | match | +| main.rs:115:24:115:24 | s | main.rs:115:20:115:24 | ref s | | +| main.rs:116:11:116:11 | s | main.rs:115:15:115:25 | Some(...) | | +| main.rs:116:13:118:5 | { ... } | main.rs:116:11:116:11 | s | | +| main.rs:117:9:117:17 | print_str | main.rs:117:19:117:19 | s | | +| main.rs:117:9:117:20 | print_str(...) | main.rs:116:13:118:5 | { ... } | | +| main.rs:117:9:117:21 | ExprStmt | main.rs:117:9:117:17 | print_str | | +| main.rs:117:19:117:19 | s | main.rs:117:9:117:20 | print_str(...) | | +| main.rs:121:1:129:1 | enter fn let_pattern6 | main.rs:123:22:123:25 | Some | | +| main.rs:121:1:129:1 | exit fn let_pattern6 (normal) | main.rs:121:1:129:1 | exit fn let_pattern6 | | +| main.rs:122:19:129:1 | { ... } | main.rs:121:1:129:1 | exit fn let_pattern6 (normal) | | +| main.rs:123:5:128:5 | if ... {...} | main.rs:122:19:129:1 | { ... } | | +| main.rs:123:8:123:29 | [boolean(false)] let ... = ... | main.rs:123:8:125:26 | [boolean(false)] ... && ... | false | +| main.rs:123:8:123:29 | [boolean(true)] let ... = ... | main.rs:125:13:125:23 | Ok::<...> | true | +| main.rs:123:8:125:26 | [boolean(false)] ... && ... | main.rs:123:5:128:5 | if ... {...} | false | +| main.rs:123:8:125:26 | [boolean(true)] ... && ... | main.rs:127:9:127:21 | ExprStmt | true | +| main.rs:123:12:123:18 | Some(...) | main.rs:123:8:123:29 | [boolean(false)] let ... = ... | no-match | +| main.rs:123:12:123:18 | Some(...) | main.rs:123:17:123:17 | x | match | +| main.rs:123:17:123:17 | x | main.rs:123:8:123:29 | [boolean(true)] let ... = ... | match | +| main.rs:123:17:123:17 | x | main.rs:123:17:123:17 | x | | +| main.rs:123:22:123:25 | Some | main.rs:123:27:123:28 | 43 | | +| main.rs:123:22:123:29 | Some(...) | main.rs:123:12:123:18 | Some(...) | | +| main.rs:123:27:123:28 | 43 | main.rs:123:22:123:29 | Some(...) | | +| main.rs:124:12:125:26 | [boolean(false)] let ... = ... | main.rs:123:8:125:26 | [boolean(false)] ... && ... | false | +| main.rs:124:12:125:26 | [boolean(true)] let ... = ... | main.rs:123:8:125:26 | [boolean(true)] ... && ... | true | +| main.rs:124:16:124:20 | Ok(...) | main.rs:124:12:125:26 | [boolean(false)] let ... = ... | no-match | +| main.rs:124:16:124:20 | Ok(...) | main.rs:124:19:124:19 | x | match | +| main.rs:124:19:124:19 | x | main.rs:124:12:125:26 | [boolean(true)] let ... = ... | match | +| main.rs:124:19:124:19 | x | main.rs:124:19:124:19 | x | | +| main.rs:125:13:125:23 | Ok::<...> | main.rs:125:25:125:25 | x | | +| main.rs:125:13:125:26 | Ok::<...>(...) | main.rs:124:16:124:20 | Ok(...) | | +| main.rs:125:25:125:25 | x | main.rs:125:13:125:26 | Ok::<...>(...) | | +| main.rs:126:5:128:5 | { ... } | main.rs:123:5:128:5 | if ... {...} | | +| main.rs:127:9:127:17 | print_i64 | main.rs:127:19:127:19 | x | | +| main.rs:127:9:127:20 | print_i64(...) | main.rs:126:5:128:5 | { ... } | | +| main.rs:127:9:127:21 | ExprStmt | main.rs:127:9:127:17 | print_i64 | | +| main.rs:127:19:127:19 | x | main.rs:127:9:127:20 | print_i64(...) | | +| main.rs:131:1:154:1 | enter fn let_pattern7 | main.rs:133:5:133:14 | let ... = 1 | | +| main.rs:131:1:154:1 | exit fn let_pattern7 (normal) | main.rs:131:1:154:1 | exit fn let_pattern7 | | +| main.rs:132:19:154:1 | { ... } | main.rs:131:1:154:1 | exit fn let_pattern7 (normal) | | +| main.rs:133:5:133:14 | let ... = 1 | main.rs:133:13:133:13 | 1 | | +| main.rs:133:9:133:9 | x | main.rs:133:9:133:9 | x | | +| main.rs:133:9:133:9 | x | main.rs:135:9:135:9 | x | match | +| main.rs:133:13:133:13 | 1 | main.rs:133:9:133:9 | x | | +| main.rs:134:5:153:5 | if ... {...} else {...} | main.rs:132:19:154:1 | { ... } | | +| main.rs:134:8:135:13 | [boolean(true)] let ... = ... | main.rs:137:9:137:9 | x | true | +| main.rs:134:8:137:13 | [boolean(true)] ... && ... | main.rs:139:9:139:9 | x | true | +| main.rs:134:8:139:13 | [boolean(true)] ... && ... | main.rs:141:9:141:9 | x | true | +| main.rs:134:8:141:13 | [boolean(true)] ... && ... | main.rs:143:9:143:9 | x | true | +| main.rs:134:8:143:13 | [boolean(true)] ... && ... | main.rs:145:9:145:9 | x | true | +| main.rs:134:8:145:13 | [boolean(true)] ... && ... | main.rs:147:9:147:9 | x | true | +| main.rs:134:8:147:13 | [boolean(true)] ... && ... | main.rs:149:9:149:21 | ExprStmt | true | +| main.rs:134:12:134:12 | x | main.rs:134:8:135:13 | [boolean(true)] let ... = ... | match | +| main.rs:134:12:134:12 | x | main.rs:134:12:134:12 | x | | +| main.rs:135:9:135:9 | x | main.rs:135:13:135:13 | 1 | | +| main.rs:135:9:135:13 | ... + ... | main.rs:134:12:134:12 | x | | +| main.rs:135:13:135:13 | 1 | main.rs:135:9:135:13 | ... + ... | | +| main.rs:136:8:137:13 | [boolean(true)] let ... = ... | main.rs:134:8:137:13 | [boolean(true)] ... && ... | true | +| main.rs:136:12:136:12 | x | main.rs:136:8:137:13 | [boolean(true)] let ... = ... | match | +| main.rs:136:12:136:12 | x | main.rs:136:12:136:12 | x | | +| main.rs:137:9:137:9 | x | main.rs:137:13:137:13 | 1 | | +| main.rs:137:9:137:13 | ... + ... | main.rs:136:12:136:12 | x | | +| main.rs:137:13:137:13 | 1 | main.rs:137:9:137:13 | ... + ... | | +| main.rs:138:8:139:13 | [boolean(true)] let ... = ... | main.rs:134:8:139:13 | [boolean(true)] ... && ... | true | +| main.rs:138:12:138:12 | x | main.rs:138:8:139:13 | [boolean(true)] let ... = ... | match | +| main.rs:138:12:138:12 | x | main.rs:138:12:138:12 | x | | +| main.rs:139:9:139:9 | x | main.rs:139:13:139:13 | 1 | | +| main.rs:139:9:139:13 | ... + ... | main.rs:138:12:138:12 | x | | +| main.rs:139:13:139:13 | 1 | main.rs:139:9:139:13 | ... + ... | | +| main.rs:140:8:141:13 | [boolean(true)] let ... = ... | main.rs:134:8:141:13 | [boolean(true)] ... && ... | true | +| main.rs:140:12:140:12 | x | main.rs:140:8:141:13 | [boolean(true)] let ... = ... | match | +| main.rs:140:12:140:12 | x | main.rs:140:12:140:12 | x | | +| main.rs:141:9:141:9 | x | main.rs:141:13:141:13 | 1 | | +| main.rs:141:9:141:13 | ... + ... | main.rs:140:12:140:12 | x | | +| main.rs:141:13:141:13 | 1 | main.rs:141:9:141:13 | ... + ... | | +| main.rs:142:8:143:13 | [boolean(true)] let ... = ... | main.rs:134:8:143:13 | [boolean(true)] ... && ... | true | +| main.rs:142:12:142:12 | x | main.rs:142:8:143:13 | [boolean(true)] let ... = ... | match | +| main.rs:142:12:142:12 | x | main.rs:142:12:142:12 | x | | +| main.rs:143:9:143:9 | x | main.rs:143:13:143:13 | 1 | | +| main.rs:143:9:143:13 | ... + ... | main.rs:142:12:142:12 | x | | +| main.rs:143:13:143:13 | 1 | main.rs:143:9:143:13 | ... + ... | | +| main.rs:144:8:145:13 | [boolean(true)] let ... = ... | main.rs:134:8:145:13 | [boolean(true)] ... && ... | true | +| main.rs:144:12:144:12 | x | main.rs:144:8:145:13 | [boolean(true)] let ... = ... | match | +| main.rs:144:12:144:12 | x | main.rs:144:12:144:12 | x | | +| main.rs:145:9:145:9 | x | main.rs:145:13:145:13 | 1 | | +| main.rs:145:9:145:13 | ... + ... | main.rs:144:12:144:12 | x | | +| main.rs:145:13:145:13 | 1 | main.rs:145:9:145:13 | ... + ... | | +| main.rs:146:8:147:13 | [boolean(true)] let ... = ... | main.rs:134:8:147:13 | [boolean(true)] ... && ... | true | +| main.rs:146:12:146:12 | x | main.rs:146:8:147:13 | [boolean(true)] let ... = ... | match | +| main.rs:146:12:146:12 | x | main.rs:146:12:146:12 | x | | +| main.rs:147:9:147:9 | x | main.rs:147:13:147:13 | 1 | | +| main.rs:147:9:147:13 | ... + ... | main.rs:146:12:146:12 | x | | +| main.rs:147:13:147:13 | 1 | main.rs:147:9:147:13 | ... + ... | | +| main.rs:148:5:150:5 | { ... } | main.rs:134:5:153:5 | if ... {...} else {...} | | +| main.rs:149:9:149:17 | print_i64 | main.rs:149:19:149:19 | x | | +| main.rs:149:9:149:20 | print_i64(...) | main.rs:148:5:150:5 | { ... } | | +| main.rs:149:9:149:21 | ExprStmt | main.rs:149:9:149:17 | print_i64 | | +| main.rs:149:19:149:19 | x | main.rs:149:9:149:20 | print_i64(...) | | +| main.rs:156:1:171:1 | enter fn match_pattern1 | main.rs:157:5:157:21 | let ... = ... | | +| main.rs:156:1:171:1 | exit fn match_pattern1 (normal) | main.rs:156:1:171:1 | exit fn match_pattern1 | | +| main.rs:156:21:171:1 | { ... } | main.rs:156:1:171:1 | exit fn match_pattern1 (normal) | | +| main.rs:157:5:157:21 | let ... = ... | main.rs:157:14:157:17 | Some | | +| main.rs:157:9:157:10 | x6 | main.rs:157:9:157:10 | x6 | | +| main.rs:157:9:157:10 | x6 | main.rs:158:5:158:16 | let ... = 10 | match | +| main.rs:157:14:157:17 | Some | main.rs:157:19:157:19 | 5 | | +| main.rs:157:14:157:20 | Some(...) | main.rs:157:9:157:10 | x6 | | +| main.rs:157:19:157:19 | 5 | main.rs:157:14:157:20 | Some(...) | | +| main.rs:158:5:158:16 | let ... = 10 | main.rs:158:14:158:15 | 10 | | +| main.rs:158:9:158:10 | y1 | main.rs:158:9:158:10 | y1 | | +| main.rs:158:9:158:10 | y1 | main.rs:160:5:168:5 | ExprStmt | match | +| main.rs:158:14:158:15 | 10 | main.rs:158:9:158:10 | y1 | | +| main.rs:160:5:168:5 | ExprStmt | main.rs:160:11:160:12 | x6 | | +| main.rs:160:5:168:5 | match x6 { ... } | main.rs:170:5:170:18 | ExprStmt | | +| main.rs:160:11:160:12 | x6 | main.rs:161:9:161:16 | Some(...) | | +| main.rs:161:9:161:16 | Some(...) | main.rs:161:14:161:15 | 50 | match | +| main.rs:161:9:161:16 | Some(...) | main.rs:162:9:162:16 | Some(...) | no-match | +| main.rs:161:14:161:15 | 50 | main.rs:161:14:161:15 | 50 | | +| main.rs:161:14:161:15 | 50 | main.rs:161:21:161:29 | print_str | match | +| main.rs:161:14:161:15 | 50 | main.rs:162:9:162:16 | Some(...) | no-match | +| main.rs:161:21:161:29 | print_str | main.rs:161:31:161:38 | "Got 50" | | +| main.rs:161:21:161:39 | print_str(...) | main.rs:160:5:168:5 | match x6 { ... } | | +| main.rs:161:31:161:38 | "Got 50" | main.rs:161:21:161:39 | print_str(...) | | +| main.rs:162:9:162:16 | Some(...) | main.rs:162:14:162:15 | y1 | match | +| main.rs:162:9:162:16 | Some(...) | main.rs:167:9:167:12 | None | no-match | +| main.rs:162:14:162:15 | y1 | main.rs:162:14:162:15 | y1 | | +| main.rs:162:14:162:15 | y1 | main.rs:165:13:165:21 | print_i64 | match | +| main.rs:164:9:166:9 | { ... } | main.rs:160:5:168:5 | match x6 { ... } | | +| main.rs:165:13:165:21 | print_i64 | main.rs:165:23:165:24 | y1 | | +| main.rs:165:13:165:25 | print_i64(...) | main.rs:164:9:166:9 | { ... } | | +| main.rs:165:23:165:24 | y1 | main.rs:165:13:165:25 | print_i64(...) | | +| main.rs:167:9:167:12 | None | main.rs:167:9:167:12 | None | | +| main.rs:167:9:167:12 | None | main.rs:167:17:167:25 | print_str | match | +| main.rs:167:17:167:25 | print_str | main.rs:167:27:167:32 | "NONE" | | +| main.rs:167:17:167:33 | print_str(...) | main.rs:160:5:168:5 | match x6 { ... } | | +| main.rs:167:27:167:32 | "NONE" | main.rs:167:17:167:33 | print_str(...) | | +| main.rs:170:5:170:13 | print_i64 | main.rs:170:15:170:16 | y1 | | +| main.rs:170:5:170:17 | print_i64(...) | main.rs:156:21:171:1 | { ... } | | +| main.rs:170:5:170:18 | ExprStmt | main.rs:170:5:170:13 | print_i64 | | +| main.rs:170:15:170:16 | y1 | main.rs:170:5:170:17 | print_i64(...) | | +| main.rs:173:1:202:1 | enter fn match_pattern2 | main.rs:174:5:174:36 | let ... = ... | | +| main.rs:173:1:202:1 | exit fn match_pattern2 (normal) | main.rs:173:1:202:1 | exit fn match_pattern2 | | +| main.rs:173:21:202:1 | { ... } | main.rs:173:1:202:1 | exit fn match_pattern2 (normal) | | +| main.rs:174:5:174:36 | let ... = ... | main.rs:174:20:174:20 | 2 | | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | | +| main.rs:174:9:174:15 | numbers | main.rs:176:5:189:5 | ExprStmt | match | +| main.rs:174:19:174:35 | TupleExpr | main.rs:174:9:174:15 | numbers | | +| main.rs:174:20:174:20 | 2 | main.rs:174:23:174:23 | 4 | | +| main.rs:174:23:174:23 | 4 | main.rs:174:26:174:26 | 8 | | +| main.rs:174:26:174:26 | 8 | main.rs:174:29:174:30 | 16 | | +| main.rs:174:29:174:30 | 16 | main.rs:174:33:174:34 | 32 | | +| main.rs:174:33:174:34 | 32 | main.rs:174:19:174:35 | TupleExpr | | +| main.rs:176:5:189:5 | ExprStmt | main.rs:176:11:176:17 | numbers | | +| main.rs:176:5:189:5 | match numbers { ... } | main.rs:191:11:191:17 | numbers | | +| main.rs:176:11:176:17 | numbers | main.rs:178:9:184:9 | TuplePat | | +| main.rs:178:9:184:9 | TuplePat | main.rs:179:13:179:17 | first | match | +| main.rs:179:13:179:17 | first | main.rs:179:13:179:17 | first | | +| main.rs:179:13:179:17 | first | main.rs:180:13:180:13 | _ | match | +| main.rs:180:13:180:13 | _ | main.rs:181:13:181:17 | third | match | +| main.rs:181:13:181:17 | third | main.rs:181:13:181:17 | third | | +| main.rs:181:13:181:17 | third | main.rs:182:13:182:13 | _ | match | +| main.rs:182:13:182:13 | _ | main.rs:183:13:183:17 | fifth | match | +| main.rs:183:13:183:17 | fifth | main.rs:183:13:183:17 | fifth | | +| main.rs:183:13:183:17 | fifth | main.rs:185:13:185:29 | ExprStmt | match | +| main.rs:184:14:188:9 | { ... } | main.rs:176:5:189:5 | match numbers { ... } | | +| main.rs:185:13:185:21 | print_i64 | main.rs:185:23:185:27 | first | | +| main.rs:185:13:185:28 | print_i64(...) | main.rs:186:13:186:29 | ExprStmt | | +| main.rs:185:13:185:29 | ExprStmt | main.rs:185:13:185:21 | print_i64 | | +| main.rs:185:23:185:27 | first | main.rs:185:13:185:28 | print_i64(...) | | +| main.rs:186:13:186:21 | print_i64 | main.rs:186:23:186:27 | third | | +| main.rs:186:13:186:28 | print_i64(...) | main.rs:187:13:187:29 | ExprStmt | | +| main.rs:186:13:186:29 | ExprStmt | main.rs:186:13:186:21 | print_i64 | | +| main.rs:186:23:186:27 | third | main.rs:186:13:186:28 | print_i64(...) | | +| main.rs:187:13:187:21 | print_i64 | main.rs:187:23:187:27 | fifth | | +| main.rs:187:13:187:28 | print_i64(...) | main.rs:184:14:188:9 | { ... } | | +| main.rs:187:13:187:29 | ExprStmt | main.rs:187:13:187:21 | print_i64 | | +| main.rs:187:23:187:27 | fifth | main.rs:187:13:187:28 | print_i64(...) | | +| main.rs:191:5:201:5 | match numbers { ... } | main.rs:173:21:202:1 | { ... } | | +| main.rs:191:11:191:17 | numbers | main.rs:193:9:197:9 | TuplePat | | +| main.rs:193:9:197:9 | TuplePat | main.rs:194:13:194:17 | first | match | +| main.rs:194:13:194:17 | first | main.rs:194:13:194:17 | first | | +| main.rs:194:13:194:17 | first | main.rs:195:13:195:14 | .. | match | +| main.rs:195:13:195:14 | .. | main.rs:196:13:196:16 | last | match | +| main.rs:196:13:196:16 | last | main.rs:196:13:196:16 | last | | +| main.rs:196:13:196:16 | last | main.rs:198:13:198:29 | ExprStmt | match | +| main.rs:197:14:200:9 | { ... } | main.rs:191:5:201:5 | match numbers { ... } | | +| main.rs:198:13:198:21 | print_i64 | main.rs:198:23:198:27 | first | | +| main.rs:198:13:198:28 | print_i64(...) | main.rs:199:13:199:28 | ExprStmt | | +| main.rs:198:13:198:29 | ExprStmt | main.rs:198:13:198:21 | print_i64 | | +| main.rs:198:23:198:27 | first | main.rs:198:13:198:28 | print_i64(...) | | +| main.rs:199:13:199:21 | print_i64 | main.rs:199:23:199:26 | last | | +| main.rs:199:13:199:27 | print_i64(...) | main.rs:197:14:200:9 | { ... } | | +| main.rs:199:13:199:28 | ExprStmt | main.rs:199:13:199:21 | print_i64 | | +| main.rs:199:23:199:26 | last | main.rs:199:13:199:27 | print_i64(...) | | +| main.rs:204:1:212:1 | enter fn match_pattern3 | main.rs:205:5:205:38 | let ... = ... | | +| main.rs:204:1:212:1 | exit fn match_pattern3 (normal) | main.rs:204:1:212:1 | exit fn match_pattern3 | | +| main.rs:204:21:212:1 | { ... } | main.rs:204:1:212:1 | exit fn match_pattern3 (normal) | | +| main.rs:205:5:205:38 | let ... = ... | main.rs:205:25:205:27 | "x" | | +| main.rs:205:9:205:10 | p2 | main.rs:205:9:205:10 | p2 | | +| main.rs:205:9:205:10 | p2 | main.rs:207:11:207:12 | p2 | match | +| main.rs:205:14:205:37 | Point {...} | main.rs:205:9:205:10 | p2 | | +| main.rs:205:25:205:27 | "x" | main.rs:205:33:205:35 | "y" | | +| main.rs:205:33:205:35 | "y" | main.rs:205:14:205:37 | Point {...} | | +| main.rs:207:5:211:5 | match p2 { ... } | main.rs:204:21:212:1 | { ... } | | +| main.rs:207:11:207:12 | p2 | main.rs:208:9:210:9 | Point {...} | | +| main.rs:208:9:210:9 | Point {...} | main.rs:209:16:209:17 | x7 | match | +| main.rs:209:16:209:17 | x7 | main.rs:209:16:209:17 | x7 | | +| main.rs:209:16:209:17 | x7 | main.rs:209:20:209:21 | .. | match | +| main.rs:209:20:209:21 | .. | main.rs:210:14:210:22 | print_str | match | +| main.rs:210:14:210:22 | print_str | main.rs:210:24:210:25 | x7 | | +| main.rs:210:14:210:26 | print_str(...) | main.rs:207:5:211:5 | match p2 { ... } | | +| main.rs:210:24:210:25 | x7 | main.rs:210:14:210:26 | print_str(...) | | +| main.rs:218:1:235:1 | enter fn match_pattern4 | main.rs:219:5:219:39 | let ... = ... | | +| main.rs:218:1:235:1 | exit fn match_pattern4 (normal) | main.rs:218:1:235:1 | exit fn match_pattern4 | | +| main.rs:218:21:235:1 | { ... } | main.rs:218:1:235:1 | exit fn match_pattern4 (normal) | | +| main.rs:219:5:219:39 | let ... = ... | main.rs:219:36:219:36 | 0 | | +| main.rs:219:9:219:11 | msg | main.rs:219:9:219:11 | msg | | +| main.rs:219:9:219:11 | msg | main.rs:221:11:221:13 | msg | match | +| main.rs:219:15:219:38 | ...::Hello {...} | main.rs:219:9:219:11 | msg | | +| main.rs:219:36:219:36 | 0 | main.rs:219:15:219:38 | ...::Hello {...} | | +| main.rs:221:5:234:5 | match msg { ... } | main.rs:218:21:235:1 | { ... } | | +| main.rs:221:11:221:13 | msg | main.rs:223:9:225:9 | ...::Hello {...} | | +| main.rs:223:9:225:9 | ...::Hello {...} | main.rs:224:31:224:35 | RangePat | match | +| main.rs:223:9:225:9 | ...::Hello {...} | main.rs:226:9:226:38 | ...::Hello {...} | no-match | +| main.rs:224:17:224:27 | id_variable | main.rs:224:17:224:35 | id_variable @ ... | | +| main.rs:224:17:224:35 | id_variable @ ... | main.rs:225:14:225:22 | print_i64 | match | +| main.rs:224:31:224:31 | 3 | main.rs:224:31:224:31 | 3 | | +| main.rs:224:31:224:31 | 3 | main.rs:224:35:224:35 | 7 | match | +| main.rs:224:31:224:31 | 3 | main.rs:226:9:226:38 | ...::Hello {...} | no-match | +| main.rs:224:31:224:35 | RangePat | main.rs:224:31:224:31 | 3 | match | +| main.rs:224:35:224:35 | 7 | main.rs:224:17:224:27 | id_variable | match | +| main.rs:224:35:224:35 | 7 | main.rs:224:35:224:35 | 7 | | +| main.rs:224:35:224:35 | 7 | main.rs:226:9:226:38 | ...::Hello {...} | no-match | +| main.rs:225:14:225:22 | print_i64 | main.rs:225:24:225:34 | id_variable | | +| main.rs:225:14:225:35 | print_i64(...) | main.rs:221:5:234:5 | match msg { ... } | | +| main.rs:225:24:225:34 | id_variable | main.rs:225:14:225:35 | print_i64(...) | | +| main.rs:226:9:226:38 | ...::Hello {...} | main.rs:226:30:226:36 | RangePat | match | +| main.rs:226:9:226:38 | ...::Hello {...} | main.rs:229:9:229:29 | ...::Hello {...} | no-match | +| main.rs:226:30:226:31 | 10 | main.rs:226:30:226:31 | 10 | | +| main.rs:226:30:226:31 | 10 | main.rs:226:35:226:36 | 12 | match | +| main.rs:226:30:226:31 | 10 | main.rs:229:9:229:29 | ...::Hello {...} | no-match | +| main.rs:226:30:226:36 | RangePat | main.rs:226:30:226:31 | 10 | match | +| main.rs:226:35:226:36 | 12 | main.rs:226:35:226:36 | 12 | | +| main.rs:226:35:226:36 | 12 | main.rs:227:22:227:51 | ExprStmt | match | +| main.rs:226:35:226:36 | 12 | main.rs:229:9:229:29 | ...::Hello {...} | no-match | +| main.rs:226:43:228:9 | { ... } | main.rs:221:5:234:5 | match msg { ... } | | +| main.rs:227:13:227:20 | ...::_print | main.rs:227:22:227:51 | "Found an id in another range\\... | | +| main.rs:227:13:227:52 | MacroExpr | main.rs:226:43:228:9 | { ... } | | +| main.rs:227:13:227:52 | println!... | main.rs:227:13:227:52 | MacroExpr | | +| main.rs:227:22:227:51 | "Found an id in another range\\... | main.rs:227:22:227:51 | FormatArgsExpr | | +| main.rs:227:22:227:51 | ...::_print(...) | main.rs:227:22:227:51 | { ... } | | +| main.rs:227:22:227:51 | ...::format_args_nl!... | main.rs:227:22:227:51 | MacroExpr | | +| main.rs:227:22:227:51 | ExprStmt | main.rs:227:13:227:20 | ...::_print | | +| main.rs:227:22:227:51 | FormatArgsExpr | main.rs:227:22:227:51 | ...::format_args_nl!... | | +| main.rs:227:22:227:51 | MacroExpr | main.rs:227:22:227:51 | ...::_print(...) | | +| main.rs:227:22:227:51 | { ... } | main.rs:227:13:227:52 | println!... | | +| main.rs:227:22:227:51 | { ... } | main.rs:227:22:227:51 | { ... } | | +| main.rs:229:9:229:29 | ...::Hello {...} | main.rs:229:26:229:27 | id | match | +| main.rs:229:26:229:27 | id | main.rs:229:26:229:27 | id | | +| main.rs:229:26:229:27 | id | main.rs:232:13:232:21 | print_i64 | match | +| main.rs:231:9:233:9 | { ... } | main.rs:221:5:234:5 | match msg { ... } | | +| main.rs:232:13:232:21 | print_i64 | main.rs:232:23:232:24 | id | | +| main.rs:232:13:232:25 | print_i64(...) | main.rs:231:9:233:9 | { ... } | | +| main.rs:232:23:232:24 | id | main.rs:232:13:232:25 | print_i64(...) | | +| main.rs:242:1:248:1 | enter fn match_pattern5 | main.rs:243:5:243:34 | let ... = ... | | +| main.rs:242:1:248:1 | exit fn match_pattern5 (normal) | main.rs:242:1:248:1 | exit fn match_pattern5 | | +| main.rs:242:21:248:1 | { ... } | main.rs:242:1:248:1 | exit fn match_pattern5 (normal) | | +| main.rs:243:5:243:34 | let ... = ... | main.rs:243:18:243:29 | ...::Left | | +| main.rs:243:9:243:14 | either | main.rs:243:9:243:14 | either | | +| main.rs:243:9:243:14 | either | main.rs:244:11:244:16 | either | match | +| main.rs:243:18:243:29 | ...::Left | main.rs:243:31:243:32 | 32 | | +| main.rs:243:18:243:33 | ...::Left(...) | main.rs:243:9:243:14 | either | | +| main.rs:243:31:243:32 | 32 | main.rs:243:18:243:33 | ...::Left(...) | | +| main.rs:244:5:247:5 | match either { ... } | main.rs:242:21:248:1 | { ... } | | +| main.rs:244:11:244:16 | either | main.rs:245:9:245:24 | ...::Left(...) | | +| main.rs:245:9:245:24 | ...::Left(...) | main.rs:245:22:245:23 | a3 | match | +| main.rs:245:9:245:24 | ...::Left(...) | main.rs:245:28:245:44 | ...::Right(...) | no-match | +| main.rs:245:9:245:44 | ... \| ... | main.rs:246:16:246:24 | print_i64 | match | +| main.rs:245:22:245:23 | a3 | main.rs:245:9:245:44 | ... \| ... | match | +| main.rs:245:22:245:23 | a3 | main.rs:245:22:245:23 | a3 | | +| main.rs:245:28:245:44 | ...::Right(...) | main.rs:245:42:245:43 | a3 | match | +| main.rs:245:42:245:43 | a3 | main.rs:245:9:245:44 | ... \| ... | match | +| main.rs:245:42:245:43 | a3 | main.rs:245:42:245:43 | a3 | | +| main.rs:246:16:246:24 | print_i64 | main.rs:246:26:246:27 | a3 | | +| main.rs:246:16:246:28 | print_i64(...) | main.rs:244:5:247:5 | match either { ... } | | +| main.rs:246:26:246:27 | a3 | main.rs:246:16:246:28 | print_i64(...) | | +| main.rs:256:1:270:1 | enter fn match_pattern6 | main.rs:257:5:257:37 | let ... = ... | | +| main.rs:256:1:270:1 | exit fn match_pattern6 (normal) | main.rs:256:1:270:1 | exit fn match_pattern6 | | +| main.rs:256:21:270:1 | { ... } | main.rs:256:1:270:1 | exit fn match_pattern6 (normal) | | +| main.rs:257:5:257:37 | let ... = ... | main.rs:257:14:257:32 | ...::Second | | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | | +| main.rs:257:9:257:10 | tv | main.rs:258:5:261:5 | ExprStmt | match | +| main.rs:257:14:257:32 | ...::Second | main.rs:257:34:257:35 | 62 | | +| main.rs:257:14:257:36 | ...::Second(...) | main.rs:257:9:257:10 | tv | | +| main.rs:257:34:257:35 | 62 | main.rs:257:14:257:36 | ...::Second(...) | | +| main.rs:258:5:261:5 | ExprStmt | main.rs:258:11:258:12 | tv | | +| main.rs:258:5:261:5 | match tv { ... } | main.rs:262:5:265:5 | ExprStmt | | +| main.rs:258:11:258:12 | tv | main.rs:259:9:259:30 | ...::First(...) | | +| main.rs:259:9:259:30 | ...::First(...) | main.rs:259:28:259:29 | a4 | match | +| main.rs:259:9:259:30 | ...::First(...) | main.rs:259:34:259:56 | ...::Second(...) | no-match | +| main.rs:259:9:259:81 | ... \| ... \| ... | main.rs:260:16:260:24 | print_i64 | match | +| main.rs:259:28:259:29 | a4 | main.rs:259:9:259:81 | ... \| ... \| ... | match | +| main.rs:259:28:259:29 | a4 | main.rs:259:28:259:29 | a4 | | +| main.rs:259:34:259:56 | ...::Second(...) | main.rs:259:54:259:55 | a4 | match | +| main.rs:259:34:259:56 | ...::Second(...) | main.rs:259:60:259:81 | ...::Third(...) | no-match | +| main.rs:259:54:259:55 | a4 | main.rs:259:9:259:81 | ... \| ... \| ... | match | +| main.rs:259:54:259:55 | a4 | main.rs:259:54:259:55 | a4 | | +| main.rs:259:60:259:81 | ...::Third(...) | main.rs:259:79:259:80 | a4 | match | +| main.rs:259:79:259:80 | a4 | main.rs:259:9:259:81 | ... \| ... \| ... | match | +| main.rs:259:79:259:80 | a4 | main.rs:259:79:259:80 | a4 | | +| main.rs:260:16:260:24 | print_i64 | main.rs:260:26:260:27 | a4 | | +| main.rs:260:16:260:28 | print_i64(...) | main.rs:258:5:261:5 | match tv { ... } | | +| main.rs:260:26:260:27 | a4 | main.rs:260:16:260:28 | print_i64(...) | | +| main.rs:262:5:265:5 | ExprStmt | main.rs:262:11:262:12 | tv | | +| main.rs:262:5:265:5 | match tv { ... } | main.rs:266:11:266:12 | tv | | +| main.rs:262:11:262:12 | tv | main.rs:263:10:263:31 | ...::First(...) | | +| main.rs:263:9:263:83 | ... \| ... | main.rs:264:16:264:24 | print_i64 | match | +| main.rs:263:10:263:31 | ...::First(...) | main.rs:263:29:263:30 | a5 | match | +| main.rs:263:10:263:31 | ...::First(...) | main.rs:263:35:263:57 | ...::Second(...) | no-match | +| main.rs:263:10:263:57 | [match(false)] ... \| ... | main.rs:263:62:263:83 | ...::Third(...) | no-match | +| main.rs:263:10:263:57 | [match(true)] ... \| ... | main.rs:263:9:263:83 | ... \| ... | match | +| main.rs:263:29:263:30 | a5 | main.rs:263:10:263:57 | [match(true)] ... \| ... | match | +| main.rs:263:29:263:30 | a5 | main.rs:263:29:263:30 | a5 | | +| main.rs:263:35:263:57 | ...::Second(...) | main.rs:263:10:263:57 | [match(false)] ... \| ... | no-match | +| main.rs:263:35:263:57 | ...::Second(...) | main.rs:263:55:263:56 | a5 | match | +| main.rs:263:55:263:56 | a5 | main.rs:263:10:263:57 | [match(true)] ... \| ... | match | +| main.rs:263:55:263:56 | a5 | main.rs:263:55:263:56 | a5 | | +| main.rs:263:62:263:83 | ...::Third(...) | main.rs:263:81:263:82 | a5 | match | +| main.rs:263:81:263:82 | a5 | main.rs:263:9:263:83 | ... \| ... | match | +| main.rs:263:81:263:82 | a5 | main.rs:263:81:263:82 | a5 | | +| main.rs:264:16:264:24 | print_i64 | main.rs:264:26:264:27 | a5 | | +| main.rs:264:16:264:28 | print_i64(...) | main.rs:262:5:265:5 | match tv { ... } | | +| main.rs:264:26:264:27 | a5 | main.rs:264:16:264:28 | print_i64(...) | | +| main.rs:266:5:269:5 | match tv { ... } | main.rs:256:21:270:1 | { ... } | | +| main.rs:266:11:266:12 | tv | main.rs:267:9:267:30 | ...::First(...) | | +| main.rs:267:9:267:30 | ...::First(...) | main.rs:267:28:267:29 | a6 | match | +| main.rs:267:9:267:30 | ...::First(...) | main.rs:267:35:267:57 | ...::Second(...) | no-match | +| main.rs:267:9:267:83 | ... \| ... | main.rs:268:16:268:24 | print_i64 | match | +| main.rs:267:28:267:29 | a6 | main.rs:267:9:267:83 | ... \| ... | match | +| main.rs:267:28:267:29 | a6 | main.rs:267:28:267:29 | a6 | | +| main.rs:267:35:267:57 | ...::Second(...) | main.rs:267:55:267:56 | a6 | match | +| main.rs:267:35:267:57 | ...::Second(...) | main.rs:267:61:267:82 | ...::Third(...) | no-match | +| main.rs:267:35:267:82 | ... \| ... | main.rs:267:9:267:83 | ... \| ... | match | +| main.rs:267:55:267:56 | a6 | main.rs:267:35:267:82 | ... \| ... | match | +| main.rs:267:55:267:56 | a6 | main.rs:267:55:267:56 | a6 | | +| main.rs:267:61:267:82 | ...::Third(...) | main.rs:267:80:267:81 | a6 | match | +| main.rs:267:80:267:81 | a6 | main.rs:267:35:267:82 | ... \| ... | match | +| main.rs:267:80:267:81 | a6 | main.rs:267:80:267:81 | a6 | | +| main.rs:268:16:268:24 | print_i64 | main.rs:268:26:268:27 | a6 | | +| main.rs:268:16:268:28 | print_i64(...) | main.rs:266:5:269:5 | match tv { ... } | | +| main.rs:268:26:268:27 | a6 | main.rs:268:16:268:28 | print_i64(...) | | +| main.rs:272:1:280:1 | enter fn match_pattern7 | main.rs:273:5:273:34 | let ... = ... | | +| main.rs:272:1:280:1 | exit fn match_pattern7 (normal) | main.rs:272:1:280:1 | exit fn match_pattern7 | | +| main.rs:272:21:280:1 | { ... } | main.rs:272:1:280:1 | exit fn match_pattern7 (normal) | | +| main.rs:273:5:273:34 | let ... = ... | main.rs:273:18:273:29 | ...::Left | | +| main.rs:273:9:273:14 | either | main.rs:273:9:273:14 | either | | +| main.rs:273:9:273:14 | either | main.rs:274:11:274:16 | either | match | +| main.rs:273:18:273:29 | ...::Left | main.rs:273:31:273:32 | 32 | | +| main.rs:273:18:273:33 | ...::Left(...) | main.rs:273:9:273:14 | either | | +| main.rs:273:31:273:32 | 32 | main.rs:273:18:273:33 | ...::Left(...) | | +| main.rs:274:5:279:5 | match either { ... } | main.rs:272:21:280:1 | { ... } | | +| main.rs:274:11:274:16 | either | main.rs:275:9:275:24 | ...::Left(...) | | +| main.rs:275:9:275:24 | ...::Left(...) | main.rs:275:22:275:23 | a7 | match | +| main.rs:275:9:275:24 | ...::Left(...) | main.rs:275:28:275:44 | ...::Right(...) | no-match | +| main.rs:275:9:275:44 | [match(false)] ... \| ... | main.rs:278:9:278:9 | _ | no-match | +| main.rs:275:9:275:44 | [match(true)] ... \| ... | main.rs:276:16:276:17 | a7 | match | +| main.rs:275:22:275:23 | a7 | main.rs:275:9:275:44 | [match(true)] ... \| ... | match | +| main.rs:275:22:275:23 | a7 | main.rs:275:22:275:23 | a7 | | +| main.rs:275:28:275:44 | ...::Right(...) | main.rs:275:9:275:44 | [match(false)] ... \| ... | no-match | +| main.rs:275:28:275:44 | ...::Right(...) | main.rs:275:42:275:43 | a7 | match | +| main.rs:275:42:275:43 | a7 | main.rs:275:9:275:44 | [match(true)] ... \| ... | match | +| main.rs:275:42:275:43 | a7 | main.rs:275:42:275:43 | a7 | | +| main.rs:276:16:276:17 | a7 | main.rs:276:21:276:21 | 0 | | +| main.rs:276:16:276:21 | ... > ... | main.rs:277:16:277:24 | print_i64 | true | +| main.rs:276:16:276:21 | ... > ... | main.rs:278:9:278:9 | _ | false | +| main.rs:276:21:276:21 | 0 | main.rs:276:16:276:21 | ... > ... | | +| main.rs:277:16:277:24 | print_i64 | main.rs:277:26:277:27 | a7 | | +| main.rs:277:16:277:28 | print_i64(...) | main.rs:274:5:279:5 | match either { ... } | | +| main.rs:277:26:277:27 | a7 | main.rs:277:16:277:28 | print_i64(...) | | +| main.rs:278:9:278:9 | _ | main.rs:278:14:278:15 | TupleExpr | match | +| main.rs:278:14:278:15 | TupleExpr | main.rs:274:5:279:5 | match either { ... } | | +| main.rs:282:1:297:1 | enter fn match_pattern8 | main.rs:283:5:283:34 | let ... = ... | | +| main.rs:282:1:297:1 | exit fn match_pattern8 (normal) | main.rs:282:1:297:1 | exit fn match_pattern8 | | +| main.rs:282:21:297:1 | { ... } | main.rs:282:1:297:1 | exit fn match_pattern8 (normal) | | +| main.rs:283:5:283:34 | let ... = ... | main.rs:283:18:283:29 | ...::Left | | +| main.rs:283:9:283:14 | either | main.rs:283:9:283:14 | either | | +| main.rs:283:9:283:14 | either | main.rs:285:11:285:16 | either | match | +| main.rs:283:18:283:29 | ...::Left | main.rs:283:31:283:32 | 32 | | +| main.rs:283:18:283:33 | ...::Left(...) | main.rs:283:9:283:14 | either | | +| main.rs:283:31:283:32 | 32 | main.rs:283:18:283:33 | ...::Left(...) | | +| main.rs:285:5:296:5 | match either { ... } | main.rs:282:21:297:1 | { ... } | | +| main.rs:285:11:285:16 | either | main.rs:287:14:287:30 | ...::Left(...) | | +| main.rs:286:9:287:52 | ref e @ ... | main.rs:289:13:289:27 | ExprStmt | match | +| main.rs:286:13:286:13 | e | main.rs:286:9:287:52 | ref e @ ... | | +| main.rs:287:14:287:30 | ...::Left(...) | main.rs:287:27:287:29 | a11 | match | +| main.rs:287:14:287:30 | ...::Left(...) | main.rs:287:34:287:51 | ...::Right(...) | no-match | +| main.rs:287:14:287:51 | [match(false)] ... \| ... | main.rs:295:9:295:9 | _ | no-match | +| main.rs:287:14:287:51 | [match(true)] ... \| ... | main.rs:286:13:286:13 | e | match | +| main.rs:287:27:287:29 | a11 | main.rs:287:14:287:51 | [match(true)] ... \| ... | match | +| main.rs:287:27:287:29 | a11 | main.rs:287:27:287:29 | a11 | | +| main.rs:287:34:287:51 | ...::Right(...) | main.rs:287:14:287:51 | [match(false)] ... \| ... | no-match | +| main.rs:287:34:287:51 | ...::Right(...) | main.rs:287:48:287:50 | a11 | match | +| main.rs:287:48:287:50 | a11 | main.rs:287:14:287:51 | [match(true)] ... \| ... | match | +| main.rs:287:48:287:50 | a11 | main.rs:287:48:287:50 | a11 | | +| main.rs:288:12:294:9 | { ... } | main.rs:285:5:296:5 | match either { ... } | | +| main.rs:289:13:289:21 | print_i64 | main.rs:289:23:289:25 | a11 | | +| main.rs:289:13:289:26 | print_i64(...) | main.rs:291:15:291:15 | e | | +| main.rs:289:13:289:27 | ExprStmt | main.rs:289:13:289:21 | print_i64 | | +| main.rs:289:23:289:25 | a11 | main.rs:289:13:289:26 | print_i64(...) | | +| main.rs:290:13:293:13 | if ... {...} | main.rs:288:12:294:9 | { ... } | | +| main.rs:290:16:291:15 | [boolean(false)] let ... = e | main.rs:290:13:293:13 | if ... {...} | false | +| main.rs:290:16:291:15 | [boolean(true)] let ... = e | main.rs:292:17:292:32 | ExprStmt | true | +| main.rs:290:20:290:36 | ...::Left(...) | main.rs:290:16:291:15 | [boolean(false)] let ... = e | no-match | +| main.rs:290:20:290:36 | ...::Left(...) | main.rs:290:33:290:35 | a12 | match | +| main.rs:290:33:290:35 | a12 | main.rs:290:16:291:15 | [boolean(true)] let ... = e | match | +| main.rs:290:33:290:35 | a12 | main.rs:290:33:290:35 | a12 | | +| main.rs:291:15:291:15 | e | main.rs:290:20:290:36 | ...::Left(...) | | +| main.rs:291:17:293:13 | { ... } | main.rs:290:13:293:13 | if ... {...} | | +| main.rs:292:17:292:25 | print_i64 | main.rs:292:28:292:30 | a12 | | +| main.rs:292:17:292:31 | print_i64(...) | main.rs:291:17:293:13 | { ... } | | +| main.rs:292:17:292:32 | ExprStmt | main.rs:292:17:292:25 | print_i64 | | +| main.rs:292:27:292:30 | * ... | main.rs:292:17:292:31 | print_i64(...) | | +| main.rs:292:28:292:30 | a12 | main.rs:292:27:292:30 | * ... | | +| main.rs:295:9:295:9 | _ | main.rs:295:14:295:15 | TupleExpr | match | +| main.rs:295:14:295:15 | TupleExpr | main.rs:285:5:296:5 | match either { ... } | | +| main.rs:306:1:312:1 | enter fn match_pattern9 | main.rs:307:5:307:36 | let ... = ... | | +| main.rs:306:1:312:1 | exit fn match_pattern9 (normal) | main.rs:306:1:312:1 | exit fn match_pattern9 | | +| main.rs:306:21:312:1 | { ... } | main.rs:306:1:312:1 | exit fn match_pattern9 (normal) | | +| main.rs:307:5:307:36 | let ... = ... | main.rs:307:14:307:31 | ...::Second | | +| main.rs:307:9:307:10 | fv | main.rs:307:9:307:10 | fv | | +| main.rs:307:9:307:10 | fv | main.rs:308:11:308:12 | fv | match | +| main.rs:307:14:307:31 | ...::Second | main.rs:307:33:307:34 | 62 | | +| main.rs:307:14:307:35 | ...::Second(...) | main.rs:307:9:307:10 | fv | | +| main.rs:307:33:307:34 | 62 | main.rs:307:14:307:35 | ...::Second(...) | | +| main.rs:308:5:311:5 | match fv { ... } | main.rs:306:21:312:1 | { ... } | | +| main.rs:308:11:308:12 | fv | main.rs:309:9:309:30 | ...::First(...) | | +| main.rs:309:9:309:30 | ...::First(...) | main.rs:309:27:309:29 | a13 | match | +| main.rs:309:9:309:30 | ...::First(...) | main.rs:309:35:309:57 | ...::Second(...) | no-match | +| main.rs:309:9:309:109 | ... \| ... \| ... | main.rs:310:16:310:24 | print_i64 | match | +| main.rs:309:27:309:29 | a13 | main.rs:309:9:309:109 | ... \| ... \| ... | match | +| main.rs:309:27:309:29 | a13 | main.rs:309:27:309:29 | a13 | | +| main.rs:309:35:309:57 | ...::Second(...) | main.rs:309:54:309:56 | a13 | match | +| main.rs:309:35:309:57 | ...::Second(...) | main.rs:309:61:309:82 | ...::Third(...) | no-match | +| main.rs:309:35:309:82 | [match(false)] ... \| ... | main.rs:309:87:309:109 | ...::Fourth(...) | no-match | +| main.rs:309:35:309:82 | [match(true)] ... \| ... | main.rs:309:9:309:109 | ... \| ... \| ... | match | +| main.rs:309:54:309:56 | a13 | main.rs:309:35:309:82 | [match(true)] ... \| ... | match | +| main.rs:309:54:309:56 | a13 | main.rs:309:54:309:56 | a13 | | +| main.rs:309:61:309:82 | ...::Third(...) | main.rs:309:35:309:82 | [match(false)] ... \| ... | no-match | +| main.rs:309:61:309:82 | ...::Third(...) | main.rs:309:79:309:81 | a13 | match | +| main.rs:309:79:309:81 | a13 | main.rs:309:35:309:82 | [match(true)] ... \| ... | match | +| main.rs:309:79:309:81 | a13 | main.rs:309:79:309:81 | a13 | | +| main.rs:309:87:309:109 | ...::Fourth(...) | main.rs:309:106:309:108 | a13 | match | +| main.rs:309:106:309:108 | a13 | main.rs:309:9:309:109 | ... \| ... \| ... | match | +| main.rs:309:106:309:108 | a13 | main.rs:309:106:309:108 | a13 | | +| main.rs:310:16:310:24 | print_i64 | main.rs:310:26:310:28 | a13 | | +| main.rs:310:16:310:29 | print_i64(...) | main.rs:308:5:311:5 | match fv { ... } | | +| main.rs:310:26:310:28 | a13 | main.rs:310:16:310:29 | print_i64(...) | | +| main.rs:314:1:328:1 | enter fn match_pattern10 | main.rs:316:5:316:20 | let ... = ... | | +| main.rs:314:1:328:1 | exit fn match_pattern10 (normal) | main.rs:314:1:328:1 | exit fn match_pattern10 | | +| main.rs:315:22:328:1 | { ... } | main.rs:314:1:328:1 | exit fn match_pattern10 (normal) | | +| main.rs:316:5:316:20 | let ... = ... | main.rs:316:12:316:15 | Some | | | main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | | -| main.rs:316:9:316:9 | x | main.rs:317:5:327:5 | ExprStmt | match | -| main.rs:316:13:316:16 | Some | main.rs:316:18:316:19 | 42 | | -| main.rs:316:13:316:20 | Some(...) | main.rs:316:9:316:9 | x | | -| main.rs:316:18:316:19 | 42 | main.rs:316:13:316:20 | Some(...) | | -| main.rs:317:5:327:5 | ExprStmt | main.rs:318:7:318:7 | x | | -| main.rs:317:5:327:5 | while ... { ... } | main.rs:329:5:329:26 | ExprStmt | | -| main.rs:317:11:318:7 | [boolean(false)] let ... = x | main.rs:317:11:321:13 | [boolean(false)] ... && ... | false | -| main.rs:317:11:318:7 | [boolean(true)] let ... = x | main.rs:321:7:321:10 | Some | true | -| main.rs:317:11:321:13 | [boolean(false)] ... && ... | main.rs:317:11:323:9 | [boolean(false)] ... && ... | false | -| main.rs:317:11:321:13 | [boolean(true)] ... && ... | main.rs:323:5:323:5 | x | true | -| main.rs:317:11:323:9 | [boolean(false)] ... && ... | main.rs:317:5:327:5 | while ... { ... } | false | -| main.rs:317:11:323:9 | [boolean(true)] ... && ... | main.rs:325:9:325:21 | ExprStmt | true | -| main.rs:317:15:317:21 | Some(...) | main.rs:317:11:318:7 | [boolean(false)] let ... = x | no-match | -| main.rs:317:15:317:21 | Some(...) | main.rs:317:20:317:20 | x | match | -| main.rs:317:20:317:20 | x | main.rs:317:11:318:7 | [boolean(true)] let ... = x | match | -| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | | -| main.rs:318:7:318:7 | x | main.rs:317:15:317:21 | Some(...) | | -| main.rs:320:5:321:13 | [boolean(false)] let ... = ... | main.rs:317:11:321:13 | [boolean(false)] ... && ... | false | -| main.rs:320:5:321:13 | [boolean(true)] let ... = ... | main.rs:317:11:321:13 | [boolean(true)] ... && ... | true | -| main.rs:320:9:320:15 | Some(...) | main.rs:320:5:321:13 | [boolean(false)] let ... = ... | no-match | -| main.rs:320:9:320:15 | Some(...) | main.rs:320:14:320:14 | x | match | -| main.rs:320:14:320:14 | x | main.rs:320:5:321:13 | [boolean(true)] let ... = ... | match | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | | -| main.rs:321:7:321:10 | Some | main.rs:321:12:321:12 | x | | -| main.rs:321:7:321:13 | Some(...) | main.rs:320:9:320:15 | Some(...) | | -| main.rs:321:12:321:12 | x | main.rs:321:7:321:13 | Some(...) | | -| main.rs:323:5:323:5 | x | main.rs:323:9:323:9 | 0 | | -| main.rs:323:5:323:9 | ... > ... | main.rs:317:11:323:9 | [boolean(false)] ... && ... | false | -| main.rs:323:5:323:9 | ... > ... | main.rs:317:11:323:9 | [boolean(true)] ... && ... | true | -| main.rs:323:9:323:9 | 0 | main.rs:323:5:323:9 | ... > ... | | -| main.rs:325:9:325:17 | print_i64 | main.rs:325:19:325:19 | x | | -| main.rs:325:9:325:20 | print_i64(...) | main.rs:326:9:326:14 | ExprStmt | | -| main.rs:325:9:325:21 | ExprStmt | main.rs:325:9:325:17 | print_i64 | | -| main.rs:325:19:325:19 | x | main.rs:325:9:325:20 | print_i64(...) | | -| main.rs:326:9:326:13 | break | main.rs:317:5:327:5 | while ... { ... } | break | -| main.rs:326:9:326:14 | ExprStmt | main.rs:326:9:326:13 | break | | -| main.rs:329:5:329:13 | print_i64 | main.rs:329:15:329:15 | x | | -| main.rs:329:5:329:25 | print_i64(...) | main.rs:315:22:330:1 | { ... } | | -| main.rs:329:5:329:26 | ExprStmt | main.rs:329:5:329:13 | print_i64 | | -| main.rs:329:15:329:15 | x | main.rs:329:15:329:24 | x.unwrap() | | -| main.rs:329:15:329:24 | x.unwrap() | main.rs:329:5:329:25 | print_i64(...) | | -| main.rs:332:1:344:1 | enter fn match_pattern13 | main.rs:334:5:334:21 | let ... = ... | | -| main.rs:332:1:344:1 | exit fn match_pattern13 (normal) | main.rs:332:1:344:1 | exit fn match_pattern13 | | -| main.rs:333:22:344:1 | { ... } | main.rs:332:1:344:1 | exit fn match_pattern13 (normal) | | -| main.rs:334:5:334:21 | let ... = ... | main.rs:334:13:334:16 | Some | | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | | -| main.rs:334:9:334:9 | x | main.rs:335:5:341:5 | ExprStmt | match | -| main.rs:334:13:334:16 | Some | main.rs:334:18:334:19 | 42 | | -| main.rs:334:13:334:20 | Some(...) | main.rs:334:9:334:9 | x | | -| main.rs:334:18:334:19 | 42 | main.rs:334:13:334:20 | Some(...) | | -| main.rs:335:5:341:5 | ExprStmt | main.rs:335:11:335:11 | x | | -| main.rs:335:5:341:5 | match x { ... } | main.rs:343:5:343:26 | ExprStmt | | -| main.rs:335:11:335:11 | x | main.rs:336:9:336:15 | Some(...) | | +| main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | match | +| main.rs:316:12:316:15 | Some | main.rs:316:17:316:18 | 42 | | +| main.rs:316:12:316:19 | Some(...) | main.rs:316:9:316:9 | x | | +| main.rs:316:17:316:18 | 42 | main.rs:316:12:316:19 | Some(...) | | +| main.rs:317:5:327:5 | if ... {...} else {...} | main.rs:315:22:328:1 | { ... } | | +| main.rs:317:8:318:7 | [boolean(false)] let ... = x | main.rs:317:8:320:9 | [boolean(false)] ... && ... | false | +| main.rs:317:8:318:7 | [boolean(true)] let ... = x | main.rs:320:5:320:5 | x | true | +| main.rs:317:8:320:9 | [boolean(false)] ... && ... | main.rs:324:9:325:14 | let ... = x | false | +| main.rs:317:8:320:9 | [boolean(true)] ... && ... | main.rs:322:9:322:21 | ExprStmt | true | +| main.rs:317:12:317:18 | Some(...) | main.rs:317:8:318:7 | [boolean(false)] let ... = x | no-match | +| main.rs:317:12:317:18 | Some(...) | main.rs:317:17:317:17 | x | match | +| main.rs:317:17:317:17 | x | main.rs:317:8:318:7 | [boolean(true)] let ... = x | match | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | | +| main.rs:318:7:318:7 | x | main.rs:317:12:317:18 | Some(...) | | +| main.rs:320:5:320:5 | x | main.rs:320:9:320:9 | 0 | | +| main.rs:320:5:320:9 | ... > ... | main.rs:317:8:320:9 | [boolean(false)] ... && ... | false | +| main.rs:320:5:320:9 | ... > ... | main.rs:317:8:320:9 | [boolean(true)] ... && ... | true | +| main.rs:320:9:320:9 | 0 | main.rs:320:5:320:9 | ... > ... | | +| main.rs:321:5:323:5 | { ... } | main.rs:317:5:327:5 | if ... {...} else {...} | | +| main.rs:322:9:322:17 | print_i64 | main.rs:322:19:322:19 | x | | +| main.rs:322:9:322:20 | print_i64(...) | main.rs:321:5:323:5 | { ... } | | +| main.rs:322:9:322:21 | ExprStmt | main.rs:322:9:322:17 | print_i64 | | +| main.rs:322:19:322:19 | x | main.rs:322:9:322:20 | print_i64(...) | | +| main.rs:323:12:327:5 | { ... } | main.rs:317:5:327:5 | if ... {...} else {...} | | +| main.rs:324:9:325:14 | let ... = x | main.rs:325:13:325:13 | x | | +| main.rs:324:13:324:13 | x | main.rs:324:13:324:13 | x | | +| main.rs:324:13:324:13 | x | main.rs:326:9:326:30 | ExprStmt | match | +| main.rs:325:13:325:13 | x | main.rs:324:13:324:13 | x | | +| main.rs:326:9:326:17 | print_i64 | main.rs:326:19:326:19 | x | | +| main.rs:326:9:326:29 | print_i64(...) | main.rs:323:12:327:5 | { ... } | | +| main.rs:326:9:326:30 | ExprStmt | main.rs:326:9:326:17 | print_i64 | | +| main.rs:326:19:326:19 | x | main.rs:326:19:326:28 | x.unwrap() | | +| main.rs:326:19:326:28 | x.unwrap() | main.rs:326:9:326:29 | print_i64(...) | | +| main.rs:330:1:347:1 | enter fn match_pattern11 | main.rs:332:5:332:21 | let ... = ... | | +| main.rs:330:1:347:1 | exit fn match_pattern11 (normal) | main.rs:330:1:347:1 | exit fn match_pattern11 | | +| main.rs:331:22:347:1 | { ... } | main.rs:330:1:347:1 | exit fn match_pattern11 (normal) | | +| main.rs:332:5:332:21 | let ... = ... | main.rs:332:13:332:16 | Some | | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | | +| main.rs:332:9:332:9 | x | main.rs:334:7:334:7 | x | match | +| main.rs:332:13:332:16 | Some | main.rs:332:18:332:19 | 42 | | +| main.rs:332:13:332:20 | Some(...) | main.rs:332:9:332:9 | x | | +| main.rs:332:18:332:19 | 42 | main.rs:332:13:332:20 | Some(...) | | +| main.rs:333:5:346:5 | if ... {...} else {...} | main.rs:331:22:347:1 | { ... } | | +| main.rs:333:8:334:7 | [boolean(false)] let ... = x | main.rs:333:8:337:13 | [boolean(false)] ... && ... | false | +| main.rs:333:8:334:7 | [boolean(true)] let ... = x | main.rs:337:7:337:10 | Some | true | +| main.rs:333:8:337:13 | [boolean(false)] ... && ... | main.rs:333:8:339:9 | [boolean(false)] ... && ... | false | +| main.rs:333:8:337:13 | [boolean(true)] ... && ... | main.rs:339:5:339:5 | x | true | +| main.rs:333:8:339:9 | [boolean(false)] ... && ... | main.rs:343:9:344:14 | let ... = x | false | +| main.rs:333:8:339:9 | [boolean(true)] ... && ... | main.rs:341:9:341:21 | ExprStmt | true | +| main.rs:333:12:333:18 | Some(...) | main.rs:333:8:334:7 | [boolean(false)] let ... = x | no-match | +| main.rs:333:12:333:18 | Some(...) | main.rs:333:17:333:17 | x | match | +| main.rs:333:17:333:17 | x | main.rs:333:8:334:7 | [boolean(true)] let ... = x | match | +| main.rs:333:17:333:17 | x | main.rs:333:17:333:17 | x | | +| main.rs:334:7:334:7 | x | main.rs:333:12:333:18 | Some(...) | | +| main.rs:336:5:337:13 | [boolean(false)] let ... = ... | main.rs:333:8:337:13 | [boolean(false)] ... && ... | false | +| main.rs:336:5:337:13 | [boolean(true)] let ... = ... | main.rs:333:8:337:13 | [boolean(true)] ... && ... | true | +| main.rs:336:9:336:15 | Some(...) | main.rs:336:5:337:13 | [boolean(false)] let ... = ... | no-match | | main.rs:336:9:336:15 | Some(...) | main.rs:336:14:336:14 | x | match | -| main.rs:336:9:336:15 | Some(...) | main.rs:340:9:340:9 | _ | no-match | +| main.rs:336:14:336:14 | x | main.rs:336:5:337:13 | [boolean(true)] let ... = ... | match | | main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | | -| main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | match | -| main.rs:337:16:338:18 | [boolean(true)] let ... = x | main.rs:339:19:339:19 | x | true | -| main.rs:337:16:339:23 | [boolean(false)] ... && ... | main.rs:340:9:340:9 | _ | false | -| main.rs:337:16:339:23 | [boolean(true)] ... && ... | main.rs:339:28:339:29 | TupleExpr | true | -| main.rs:337:20:337:20 | x | main.rs:337:16:338:18 | [boolean(true)] let ... = x | match | -| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | | -| main.rs:338:18:338:18 | x | main.rs:337:20:337:20 | x | | -| main.rs:339:19:339:19 | x | main.rs:339:23:339:23 | 0 | | -| main.rs:339:19:339:23 | ... > ... | main.rs:337:16:339:23 | [boolean(false)] ... && ... | false | -| main.rs:339:19:339:23 | ... > ... | main.rs:337:16:339:23 | [boolean(true)] ... && ... | true | -| main.rs:339:23:339:23 | 0 | main.rs:339:19:339:23 | ... > ... | | -| main.rs:339:28:339:29 | TupleExpr | main.rs:335:5:341:5 | match x { ... } | | -| main.rs:340:9:340:9 | _ | main.rs:340:14:340:15 | TupleExpr | match | -| main.rs:340:14:340:15 | TupleExpr | main.rs:335:5:341:5 | match x { ... } | | -| main.rs:343:5:343:13 | print_i64 | main.rs:343:15:343:15 | x | | -| main.rs:343:5:343:25 | print_i64(...) | main.rs:333:22:344:1 | { ... } | | -| main.rs:343:5:343:26 | ExprStmt | main.rs:343:5:343:13 | print_i64 | | -| main.rs:343:15:343:15 | x | main.rs:343:15:343:24 | x.unwrap() | | -| main.rs:343:15:343:24 | x.unwrap() | main.rs:343:5:343:25 | print_i64(...) | | -| main.rs:346:1:361:1 | enter fn match_pattern14 | main.rs:348:5:348:19 | let ... = ... | | -| main.rs:346:1:361:1 | exit fn match_pattern14 (normal) | main.rs:346:1:361:1 | exit fn match_pattern14 | | -| main.rs:347:22:361:1 | { ... } | main.rs:346:1:361:1 | exit fn match_pattern14 (normal) | | -| main.rs:348:5:348:19 | let ... = ... | main.rs:348:13:348:14 | Ok | | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | | -| main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | match | -| main.rs:348:13:348:14 | Ok | main.rs:348:16:348:17 | 42 | | -| main.rs:348:13:348:18 | Ok(...) | main.rs:348:9:348:9 | x | | -| main.rs:348:16:348:17 | 42 | main.rs:348:13:348:18 | Ok(...) | | -| main.rs:349:5:360:5 | if ... {...} else {...} | main.rs:347:22:361:1 | { ... } | | -| main.rs:349:8:350:7 | [boolean(false)] let ... = x | main.rs:355:7:355:7 | x | false | -| main.rs:349:8:350:7 | [boolean(true)] let ... = x | main.rs:352:9:352:21 | ExprStmt | true | -| main.rs:349:12:349:17 | Err(...) | main.rs:349:8:350:7 | [boolean(false)] let ... = x | no-match | -| main.rs:349:12:349:17 | Err(...) | main.rs:349:16:349:16 | x | match | -| main.rs:349:16:349:16 | x | main.rs:349:8:350:7 | [boolean(true)] let ... = x | match | -| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | | -| main.rs:350:7:350:7 | x | main.rs:349:12:349:17 | Err(...) | | -| main.rs:351:5:353:5 | { ... } | main.rs:349:5:360:5 | if ... {...} else {...} | | -| main.rs:352:9:352:17 | print_i64 | main.rs:352:19:352:19 | x | | -| main.rs:352:9:352:20 | print_i64(...) | main.rs:351:5:353:5 | { ... } | | -| main.rs:352:9:352:21 | ExprStmt | main.rs:352:9:352:17 | print_i64 | | -| main.rs:352:19:352:19 | x | main.rs:352:9:352:20 | print_i64(...) | | -| main.rs:354:10:360:5 | if ... {...} else {...} | main.rs:349:5:360:5 | if ... {...} else {...} | | -| main.rs:354:13:355:7 | [boolean(false)] let ... = x | main.rs:359:9:359:30 | ExprStmt | false | -| main.rs:354:13:355:7 | [boolean(true)] let ... = x | main.rs:357:9:357:21 | ExprStmt | true | -| main.rs:354:17:354:21 | Ok(...) | main.rs:354:13:355:7 | [boolean(false)] let ... = x | no-match | -| main.rs:354:17:354:21 | Ok(...) | main.rs:354:20:354:20 | x | match | -| main.rs:354:20:354:20 | x | main.rs:354:13:355:7 | [boolean(true)] let ... = x | match | -| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | | -| main.rs:355:7:355:7 | x | main.rs:354:17:354:21 | Ok(...) | | -| main.rs:356:5:358:5 | { ... } | main.rs:354:10:360:5 | if ... {...} else {...} | | -| main.rs:357:9:357:17 | print_i64 | main.rs:357:19:357:19 | x | | -| main.rs:357:9:357:20 | print_i64(...) | main.rs:356:5:358:5 | { ... } | | -| main.rs:357:9:357:21 | ExprStmt | main.rs:357:9:357:17 | print_i64 | | -| main.rs:357:19:357:19 | x | main.rs:357:9:357:20 | print_i64(...) | | -| main.rs:358:12:360:5 | { ... } | main.rs:354:10:360:5 | if ... {...} else {...} | | -| main.rs:359:9:359:17 | print_i64 | main.rs:359:19:359:19 | x | | -| main.rs:359:9:359:29 | print_i64(...) | main.rs:358:12:360:5 | { ... } | | -| main.rs:359:9:359:30 | ExprStmt | main.rs:359:9:359:17 | print_i64 | | -| main.rs:359:19:359:19 | x | main.rs:359:19:359:28 | x.unwrap() | | -| main.rs:359:19:359:28 | x.unwrap() | main.rs:359:9:359:29 | print_i64(...) | | -| main.rs:363:1:370:1 | enter fn match_pattern15 | main.rs:364:5:364:20 | let ... = ... | | -| main.rs:363:1:370:1 | exit fn match_pattern15 (normal) | main.rs:363:1:370:1 | exit fn match_pattern15 | | -| main.rs:363:22:370:1 | { ... } | main.rs:363:1:370:1 | exit fn match_pattern15 (normal) | | -| main.rs:364:5:364:20 | let ... = ... | main.rs:364:13:364:16 | Some | | -| main.rs:364:9:364:9 | x | main.rs:364:9:364:9 | x | | -| main.rs:364:9:364:9 | x | main.rs:365:5:369:10 | ExprStmt | match | -| main.rs:364:13:364:16 | Some | main.rs:364:18:364:18 | 0 | | -| main.rs:364:13:364:19 | Some(...) | main.rs:364:9:364:9 | x | | -| main.rs:364:18:364:18 | 0 | main.rs:364:13:364:19 | Some(...) | | -| main.rs:365:5:369:9 | match x { ... } | main.rs:363:22:370:1 | { ... } | | -| main.rs:365:5:369:10 | ExprStmt | main.rs:365:11:365:11 | x | | -| main.rs:365:11:365:11 | x | main.rs:366:13:366:19 | Some(...) | | -| main.rs:366:13:366:19 | Some(...) | main.rs:366:18:366:18 | x | match | -| main.rs:366:13:366:19 | Some(...) | main.rs:368:13:368:13 | _ | no-match | -| main.rs:366:18:366:18 | x | main.rs:366:18:366:18 | x | | -| main.rs:366:18:366:18 | x | main.rs:367:20:367:20 | x | match | -| main.rs:367:20:367:20 | x | main.rs:365:5:369:9 | match x { ... } | | -| main.rs:368:13:368:13 | _ | main.rs:368:18:368:18 | 0 | match | -| main.rs:368:18:368:18 | 0 | main.rs:365:5:369:9 | match x { ... } | | -| main.rs:372:1:381:1 | enter fn match_pattern16 | main.rs:373:5:373:21 | let ... = ... | | -| main.rs:372:1:381:1 | exit fn match_pattern16 (normal) | main.rs:372:1:381:1 | exit fn match_pattern16 | | -| main.rs:372:22:381:1 | { ... } | main.rs:372:1:381:1 | exit fn match_pattern16 (normal) | | -| main.rs:373:5:373:21 | let ... = ... | main.rs:373:13:373:16 | Some | | -| main.rs:373:9:373:9 | x | main.rs:373:9:373:9 | x | | -| main.rs:373:9:373:9 | x | main.rs:374:11:374:11 | x | match | -| main.rs:373:13:373:16 | Some | main.rs:373:18:373:19 | 32 | | -| main.rs:373:13:373:20 | Some(...) | main.rs:373:9:373:9 | x | | -| main.rs:373:18:373:19 | 32 | main.rs:373:13:373:20 | Some(...) | | -| main.rs:374:5:380:5 | match x { ... } | main.rs:372:22:381:1 | { ... } | | -| main.rs:374:11:374:11 | x | main.rs:375:9:375:15 | Some(...) | | -| main.rs:375:9:375:15 | Some(...) | main.rs:375:14:375:14 | y | match | -| main.rs:375:9:375:15 | Some(...) | main.rs:379:9:379:9 | _ | no-match | -| main.rs:375:14:375:14 | y | main.rs:375:14:375:14 | y | | -| main.rs:375:14:375:14 | y | main.rs:377:17:377:20 | Some | match | -| main.rs:376:16:377:23 | [boolean(false)] let ... = ... | main.rs:379:9:379:9 | _ | false | -| main.rs:376:16:377:23 | [boolean(true)] let ... = ... | main.rs:378:16:378:24 | print_i64 | true | -| main.rs:376:20:376:26 | Some(...) | main.rs:376:16:377:23 | [boolean(false)] let ... = ... | no-match | -| main.rs:376:20:376:26 | Some(...) | main.rs:376:25:376:25 | y | match | -| main.rs:376:25:376:25 | y | main.rs:376:16:377:23 | [boolean(true)] let ... = ... | match | -| main.rs:376:25:376:25 | y | main.rs:376:25:376:25 | y | | -| main.rs:377:17:377:20 | Some | main.rs:377:22:377:22 | y | | -| main.rs:377:17:377:23 | Some(...) | main.rs:376:20:376:26 | Some(...) | | -| main.rs:377:22:377:22 | y | main.rs:377:17:377:23 | Some(...) | | -| main.rs:378:16:378:24 | print_i64 | main.rs:378:26:378:26 | y | | -| main.rs:378:16:378:27 | print_i64(...) | main.rs:374:5:380:5 | match x { ... } | | -| main.rs:378:26:378:26 | y | main.rs:378:16:378:27 | print_i64(...) | | -| main.rs:379:9:379:9 | _ | main.rs:379:14:379:15 | { ... } | match | -| main.rs:379:14:379:15 | { ... } | main.rs:374:5:380:5 | match x { ... } | | -| main.rs:383:1:393:1 | enter fn param_pattern1 | main.rs:384:5:384:6 | a8 | | -| main.rs:383:1:393:1 | exit fn param_pattern1 (normal) | main.rs:383:1:393:1 | exit fn param_pattern1 | | -| main.rs:384:5:384:6 | a8 | main.rs:384:5:384:6 | a8 | | -| main.rs:384:5:384:6 | a8 | main.rs:384:5:384:12 | ...: ... | match | -| main.rs:384:5:384:12 | ...: ... | main.rs:385:5:388:5 | TuplePat | | -| main.rs:385:5:388:5 | TuplePat | main.rs:386:9:386:10 | b3 | match | -| main.rs:385:5:388:19 | ...: ... | main.rs:390:5:390:18 | ExprStmt | | -| main.rs:386:9:386:10 | b3 | main.rs:386:9:386:10 | b3 | | -| main.rs:386:9:386:10 | b3 | main.rs:387:9:387:10 | c1 | match | -| main.rs:387:9:387:10 | c1 | main.rs:385:5:388:19 | ...: ... | match | -| main.rs:387:9:387:10 | c1 | main.rs:387:9:387:10 | c1 | | -| main.rs:389:9:393:1 | { ... } | main.rs:383:1:393:1 | exit fn param_pattern1 (normal) | | -| main.rs:390:5:390:13 | print_str | main.rs:390:15:390:16 | a8 | | -| main.rs:390:5:390:17 | print_str(...) | main.rs:391:5:391:18 | ExprStmt | | -| main.rs:390:5:390:18 | ExprStmt | main.rs:390:5:390:13 | print_str | | -| main.rs:390:15:390:16 | a8 | main.rs:390:5:390:17 | print_str(...) | | -| main.rs:391:5:391:13 | print_str | main.rs:391:15:391:16 | b3 | | -| main.rs:391:5:391:17 | print_str(...) | main.rs:392:5:392:18 | ExprStmt | | -| main.rs:391:5:391:18 | ExprStmt | main.rs:391:5:391:13 | print_str | | -| main.rs:391:15:391:16 | b3 | main.rs:391:5:391:17 | print_str(...) | | -| main.rs:392:5:392:13 | print_str | main.rs:392:15:392:16 | c1 | | -| main.rs:392:5:392:17 | print_str(...) | main.rs:389:9:393:1 | { ... } | | -| main.rs:392:5:392:18 | ExprStmt | main.rs:392:5:392:13 | print_str | | -| main.rs:392:15:392:16 | c1 | main.rs:392:5:392:17 | print_str(...) | | -| main.rs:395:1:398:1 | enter fn param_pattern2 | main.rs:395:20:395:35 | ...::Left(...) | | -| main.rs:395:1:398:1 | exit fn param_pattern2 (normal) | main.rs:395:1:398:1 | exit fn param_pattern2 | | -| main.rs:395:19:395:64 | ...: Either | main.rs:397:5:397:18 | ExprStmt | | -| main.rs:395:20:395:35 | ...::Left(...) | main.rs:395:33:395:34 | a9 | match | -| main.rs:395:20:395:35 | ...::Left(...) | main.rs:395:39:395:55 | ...::Right(...) | no-match | -| main.rs:395:20:395:55 | ... \| ... | main.rs:395:19:395:64 | ...: Either | match | -| main.rs:395:33:395:34 | a9 | main.rs:395:20:395:55 | ... \| ... | match | -| main.rs:395:33:395:34 | a9 | main.rs:395:33:395:34 | a9 | | -| main.rs:395:39:395:55 | ...::Right(...) | main.rs:395:53:395:54 | a9 | match | -| main.rs:395:53:395:54 | a9 | main.rs:395:20:395:55 | ... \| ... | match | -| main.rs:395:53:395:54 | a9 | main.rs:395:53:395:54 | a9 | | -| main.rs:396:9:398:1 | { ... } | main.rs:395:1:398:1 | exit fn param_pattern2 (normal) | | -| main.rs:397:5:397:13 | print_i64 | main.rs:397:15:397:16 | a9 | | -| main.rs:397:5:397:17 | print_i64(...) | main.rs:396:9:398:1 | { ... } | | -| main.rs:397:5:397:18 | ExprStmt | main.rs:397:5:397:13 | print_i64 | | -| main.rs:397:15:397:16 | a9 | main.rs:397:5:397:17 | print_i64(...) | | -| main.rs:400:1:435:1 | enter fn destruct_assignment | main.rs:401:5:405:18 | let ... = ... | | -| main.rs:400:1:435:1 | exit fn destruct_assignment (normal) | main.rs:400:1:435:1 | exit fn destruct_assignment | | -| main.rs:400:26:435:1 | { ... } | main.rs:400:1:435:1 | exit fn destruct_assignment (normal) | | -| main.rs:401:5:405:18 | let ... = ... | main.rs:405:10:405:10 | 1 | | -| main.rs:401:9:405:5 | TuplePat | main.rs:402:13:402:15 | a10 | match | -| main.rs:402:9:402:15 | mut a10 | main.rs:403:13:403:14 | b4 | match | -| main.rs:402:13:402:15 | a10 | main.rs:402:9:402:15 | mut a10 | | -| main.rs:403:9:403:14 | mut b4 | main.rs:404:13:404:14 | c2 | match | -| main.rs:403:13:403:14 | b4 | main.rs:403:9:403:14 | mut b4 | | -| main.rs:404:9:404:14 | mut c2 | main.rs:406:5:406:19 | ExprStmt | match | -| main.rs:404:13:404:14 | c2 | main.rs:404:9:404:14 | mut c2 | | -| main.rs:405:9:405:17 | TupleExpr | main.rs:401:9:405:5 | TuplePat | | -| main.rs:405:10:405:10 | 1 | main.rs:405:13:405:13 | 2 | | -| main.rs:405:13:405:13 | 2 | main.rs:405:16:405:16 | 3 | | -| main.rs:405:16:405:16 | 3 | main.rs:405:9:405:17 | TupleExpr | | -| main.rs:406:5:406:13 | print_i64 | main.rs:406:15:406:17 | a10 | | -| main.rs:406:5:406:18 | print_i64(...) | main.rs:407:5:407:18 | ExprStmt | | -| main.rs:406:5:406:19 | ExprStmt | main.rs:406:5:406:13 | print_i64 | | -| main.rs:406:15:406:17 | a10 | main.rs:406:5:406:18 | print_i64(...) | | -| main.rs:407:5:407:13 | print_i64 | main.rs:407:15:407:16 | b4 | | -| main.rs:407:5:407:17 | print_i64(...) | main.rs:408:5:408:18 | ExprStmt | | -| main.rs:407:5:407:18 | ExprStmt | main.rs:407:5:407:13 | print_i64 | | -| main.rs:407:15:407:16 | b4 | main.rs:407:5:407:17 | print_i64(...) | | -| main.rs:408:5:408:13 | print_i64 | main.rs:408:15:408:16 | c2 | | -| main.rs:408:5:408:17 | print_i64(...) | main.rs:410:5:418:6 | ExprStmt | | -| main.rs:408:5:408:18 | ExprStmt | main.rs:408:5:408:13 | print_i64 | | -| main.rs:408:15:408:16 | c2 | main.rs:408:5:408:17 | print_i64(...) | | -| main.rs:410:5:414:5 | TupleExpr | main.rs:415:9:415:11 | a10 | | -| main.rs:410:5:418:5 | ... = ... | main.rs:419:5:419:19 | ExprStmt | | -| main.rs:410:5:418:6 | ExprStmt | main.rs:411:9:411:10 | c2 | | -| main.rs:411:9:411:10 | c2 | main.rs:412:9:412:10 | b4 | | -| main.rs:412:9:412:10 | b4 | main.rs:413:9:413:11 | a10 | | -| main.rs:413:9:413:11 | a10 | main.rs:410:5:414:5 | TupleExpr | | -| main.rs:414:9:418:5 | TupleExpr | main.rs:410:5:418:5 | ... = ... | | -| main.rs:415:9:415:11 | a10 | main.rs:416:9:416:10 | b4 | | -| main.rs:416:9:416:10 | b4 | main.rs:417:9:417:10 | c2 | | -| main.rs:417:9:417:10 | c2 | main.rs:414:9:418:5 | TupleExpr | | -| main.rs:419:5:419:13 | print_i64 | main.rs:419:15:419:17 | a10 | | -| main.rs:419:5:419:18 | print_i64(...) | main.rs:420:5:420:18 | ExprStmt | | -| main.rs:419:5:419:19 | ExprStmt | main.rs:419:5:419:13 | print_i64 | | -| main.rs:419:15:419:17 | a10 | main.rs:419:5:419:18 | print_i64(...) | | -| main.rs:420:5:420:13 | print_i64 | main.rs:420:15:420:16 | b4 | | -| main.rs:420:5:420:17 | print_i64(...) | main.rs:421:5:421:18 | ExprStmt | | -| main.rs:420:5:420:18 | ExprStmt | main.rs:420:5:420:13 | print_i64 | | -| main.rs:420:15:420:16 | b4 | main.rs:420:5:420:17 | print_i64(...) | | -| main.rs:421:5:421:13 | print_i64 | main.rs:421:15:421:16 | c2 | | -| main.rs:421:5:421:17 | print_i64(...) | main.rs:423:5:431:5 | ExprStmt | | -| main.rs:421:5:421:18 | ExprStmt | main.rs:421:5:421:13 | print_i64 | | -| main.rs:421:15:421:16 | c2 | main.rs:421:5:421:17 | print_i64(...) | | -| main.rs:423:5:431:5 | ExprStmt | main.rs:423:12:423:12 | 4 | | -| main.rs:423:5:431:5 | match ... { ... } | main.rs:433:5:433:19 | ExprStmt | | -| main.rs:423:11:423:16 | TupleExpr | main.rs:424:9:427:9 | TuplePat | | -| main.rs:423:12:423:12 | 4 | main.rs:423:15:423:15 | 5 | | -| main.rs:423:15:423:15 | 5 | main.rs:423:11:423:16 | TupleExpr | | -| main.rs:424:9:427:9 | TuplePat | main.rs:425:13:425:15 | a10 | match | -| main.rs:425:13:425:15 | a10 | main.rs:425:13:425:15 | a10 | | -| main.rs:425:13:425:15 | a10 | main.rs:426:13:426:14 | b4 | match | -| main.rs:426:13:426:14 | b4 | main.rs:426:13:426:14 | b4 | | -| main.rs:426:13:426:14 | b4 | main.rs:428:13:428:27 | ExprStmt | match | -| main.rs:427:14:430:9 | { ... } | main.rs:423:5:431:5 | match ... { ... } | | -| main.rs:428:13:428:21 | print_i64 | main.rs:428:23:428:25 | a10 | | -| main.rs:428:13:428:26 | print_i64(...) | main.rs:429:13:429:26 | ExprStmt | | -| main.rs:428:13:428:27 | ExprStmt | main.rs:428:13:428:21 | print_i64 | | -| main.rs:428:23:428:25 | a10 | main.rs:428:13:428:26 | print_i64(...) | | -| main.rs:429:13:429:21 | print_i64 | main.rs:429:23:429:24 | b4 | | -| main.rs:429:13:429:25 | print_i64(...) | main.rs:427:14:430:9 | { ... } | | -| main.rs:429:13:429:26 | ExprStmt | main.rs:429:13:429:21 | print_i64 | | -| main.rs:429:23:429:24 | b4 | main.rs:429:13:429:25 | print_i64(...) | | -| main.rs:433:5:433:13 | print_i64 | main.rs:433:15:433:17 | a10 | | -| main.rs:433:5:433:18 | print_i64(...) | main.rs:434:5:434:18 | ExprStmt | | -| main.rs:433:5:433:19 | ExprStmt | main.rs:433:5:433:13 | print_i64 | | -| main.rs:433:15:433:17 | a10 | main.rs:433:5:433:18 | print_i64(...) | | -| main.rs:434:5:434:13 | print_i64 | main.rs:434:15:434:16 | b4 | | -| main.rs:434:5:434:17 | print_i64(...) | main.rs:400:26:435:1 | { ... } | | -| main.rs:434:5:434:18 | ExprStmt | main.rs:434:5:434:13 | print_i64 | | -| main.rs:434:15:434:16 | b4 | main.rs:434:5:434:17 | print_i64(...) | | -| main.rs:437:1:452:1 | enter fn closure_variable | main.rs:438:5:440:10 | let ... = ... | | -| main.rs:437:1:452:1 | exit fn closure_variable (normal) | main.rs:437:1:452:1 | exit fn closure_variable | | -| main.rs:437:23:452:1 | { ... } | main.rs:437:1:452:1 | exit fn closure_variable (normal) | | -| main.rs:438:5:440:10 | let ... = ... | main.rs:439:9:440:9 | \|...\| x | | -| main.rs:438:9:438:23 | example_closure | main.rs:438:9:438:23 | example_closure | | -| main.rs:438:9:438:23 | example_closure | main.rs:441:5:442:27 | let ... = ... | match | -| main.rs:439:9:440:9 | \|...\| x | main.rs:438:9:438:23 | example_closure | | -| main.rs:439:9:440:9 | enter \|...\| x | main.rs:439:10:439:10 | x | | -| main.rs:439:9:440:9 | exit \|...\| x (normal) | main.rs:439:9:440:9 | exit \|...\| x | | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:15 | ...: i64 | match | -| main.rs:439:10:439:15 | ...: i64 | main.rs:440:9:440:9 | x | | -| main.rs:440:9:440:9 | x | main.rs:439:9:440:9 | exit \|...\| x (normal) | | -| main.rs:441:5:442:27 | let ... = ... | main.rs:442:9:442:23 | example_closure | | -| main.rs:441:9:441:10 | n1 | main.rs:441:9:441:10 | n1 | | -| main.rs:441:9:441:10 | n1 | main.rs:443:5:443:18 | ExprStmt | match | -| main.rs:442:9:442:23 | example_closure | main.rs:442:25:442:25 | 5 | | -| main.rs:442:9:442:26 | example_closure(...) | main.rs:441:9:441:10 | n1 | | -| main.rs:442:25:442:25 | 5 | main.rs:442:9:442:26 | example_closure(...) | | -| main.rs:443:5:443:13 | print_i64 | main.rs:443:15:443:16 | n1 | | -| main.rs:443:5:443:17 | print_i64(...) | main.rs:445:5:445:25 | ExprStmt | | +| main.rs:337:7:337:10 | Some | main.rs:337:12:337:12 | x | | +| main.rs:337:7:337:13 | Some(...) | main.rs:336:9:336:15 | Some(...) | | +| main.rs:337:12:337:12 | x | main.rs:337:7:337:13 | Some(...) | | +| main.rs:339:5:339:5 | x | main.rs:339:9:339:9 | 0 | | +| main.rs:339:5:339:9 | ... > ... | main.rs:333:8:339:9 | [boolean(false)] ... && ... | false | +| main.rs:339:5:339:9 | ... > ... | main.rs:333:8:339:9 | [boolean(true)] ... && ... | true | +| main.rs:339:9:339:9 | 0 | main.rs:339:5:339:9 | ... > ... | | +| main.rs:340:5:342:5 | { ... } | main.rs:333:5:346:5 | if ... {...} else {...} | | +| main.rs:341:9:341:17 | print_i64 | main.rs:341:19:341:19 | x | | +| main.rs:341:9:341:20 | print_i64(...) | main.rs:340:5:342:5 | { ... } | | +| main.rs:341:9:341:21 | ExprStmt | main.rs:341:9:341:17 | print_i64 | | +| main.rs:341:19:341:19 | x | main.rs:341:9:341:20 | print_i64(...) | | +| main.rs:342:12:346:5 | { ... } | main.rs:333:5:346:5 | if ... {...} else {...} | | +| main.rs:343:9:344:14 | let ... = x | main.rs:344:13:344:13 | x | | +| main.rs:343:13:343:13 | x | main.rs:343:13:343:13 | x | | +| main.rs:343:13:343:13 | x | main.rs:345:9:345:30 | ExprStmt | match | +| main.rs:344:13:344:13 | x | main.rs:343:13:343:13 | x | | +| main.rs:345:9:345:17 | print_i64 | main.rs:345:19:345:19 | x | | +| main.rs:345:9:345:29 | print_i64(...) | main.rs:342:12:346:5 | { ... } | | +| main.rs:345:9:345:30 | ExprStmt | main.rs:345:9:345:17 | print_i64 | | +| main.rs:345:19:345:19 | x | main.rs:345:19:345:28 | x.unwrap() | | +| main.rs:345:19:345:28 | x.unwrap() | main.rs:345:9:345:29 | print_i64(...) | | +| main.rs:349:1:365:1 | enter fn match_pattern12 | main.rs:351:5:351:21 | let ... = ... | | +| main.rs:349:1:365:1 | exit fn match_pattern12 (normal) | main.rs:349:1:365:1 | exit fn match_pattern12 | | +| main.rs:350:22:365:1 | { ... } | main.rs:349:1:365:1 | exit fn match_pattern12 (normal) | | +| main.rs:351:5:351:21 | let ... = ... | main.rs:351:13:351:16 | Some | | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | | +| main.rs:351:9:351:9 | x | main.rs:352:5:362:5 | ExprStmt | match | +| main.rs:351:13:351:16 | Some | main.rs:351:18:351:19 | 42 | | +| main.rs:351:13:351:20 | Some(...) | main.rs:351:9:351:9 | x | | +| main.rs:351:18:351:19 | 42 | main.rs:351:13:351:20 | Some(...) | | +| main.rs:352:5:362:5 | ExprStmt | main.rs:353:7:353:7 | x | | +| main.rs:352:5:362:5 | while ... { ... } | main.rs:364:5:364:26 | ExprStmt | | +| main.rs:352:11:353:7 | [boolean(false)] let ... = x | main.rs:352:11:356:13 | [boolean(false)] ... && ... | false | +| main.rs:352:11:353:7 | [boolean(true)] let ... = x | main.rs:356:7:356:10 | Some | true | +| main.rs:352:11:356:13 | [boolean(false)] ... && ... | main.rs:352:11:358:9 | [boolean(false)] ... && ... | false | +| main.rs:352:11:356:13 | [boolean(true)] ... && ... | main.rs:358:5:358:5 | x | true | +| main.rs:352:11:358:9 | [boolean(false)] ... && ... | main.rs:352:5:362:5 | while ... { ... } | false | +| main.rs:352:11:358:9 | [boolean(true)] ... && ... | main.rs:360:9:360:21 | ExprStmt | true | +| main.rs:352:15:352:21 | Some(...) | main.rs:352:11:353:7 | [boolean(false)] let ... = x | no-match | +| main.rs:352:15:352:21 | Some(...) | main.rs:352:20:352:20 | x | match | +| main.rs:352:20:352:20 | x | main.rs:352:11:353:7 | [boolean(true)] let ... = x | match | +| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | | +| main.rs:353:7:353:7 | x | main.rs:352:15:352:21 | Some(...) | | +| main.rs:355:5:356:13 | [boolean(false)] let ... = ... | main.rs:352:11:356:13 | [boolean(false)] ... && ... | false | +| main.rs:355:5:356:13 | [boolean(true)] let ... = ... | main.rs:352:11:356:13 | [boolean(true)] ... && ... | true | +| main.rs:355:9:355:15 | Some(...) | main.rs:355:5:356:13 | [boolean(false)] let ... = ... | no-match | +| main.rs:355:9:355:15 | Some(...) | main.rs:355:14:355:14 | x | match | +| main.rs:355:14:355:14 | x | main.rs:355:5:356:13 | [boolean(true)] let ... = ... | match | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | | +| main.rs:356:7:356:10 | Some | main.rs:356:12:356:12 | x | | +| main.rs:356:7:356:13 | Some(...) | main.rs:355:9:355:15 | Some(...) | | +| main.rs:356:12:356:12 | x | main.rs:356:7:356:13 | Some(...) | | +| main.rs:358:5:358:5 | x | main.rs:358:9:358:9 | 0 | | +| main.rs:358:5:358:9 | ... > ... | main.rs:352:11:358:9 | [boolean(false)] ... && ... | false | +| main.rs:358:5:358:9 | ... > ... | main.rs:352:11:358:9 | [boolean(true)] ... && ... | true | +| main.rs:358:9:358:9 | 0 | main.rs:358:5:358:9 | ... > ... | | +| main.rs:360:9:360:17 | print_i64 | main.rs:360:19:360:19 | x | | +| main.rs:360:9:360:20 | print_i64(...) | main.rs:361:9:361:14 | ExprStmt | | +| main.rs:360:9:360:21 | ExprStmt | main.rs:360:9:360:17 | print_i64 | | +| main.rs:360:19:360:19 | x | main.rs:360:9:360:20 | print_i64(...) | | +| main.rs:361:9:361:13 | break | main.rs:352:5:362:5 | while ... { ... } | break | +| main.rs:361:9:361:14 | ExprStmt | main.rs:361:9:361:13 | break | | +| main.rs:364:5:364:13 | print_i64 | main.rs:364:15:364:15 | x | | +| main.rs:364:5:364:25 | print_i64(...) | main.rs:350:22:365:1 | { ... } | | +| main.rs:364:5:364:26 | ExprStmt | main.rs:364:5:364:13 | print_i64 | | +| main.rs:364:15:364:15 | x | main.rs:364:15:364:24 | x.unwrap() | | +| main.rs:364:15:364:24 | x.unwrap() | main.rs:364:5:364:25 | print_i64(...) | | +| main.rs:367:1:379:1 | enter fn match_pattern13 | main.rs:369:5:369:21 | let ... = ... | | +| main.rs:367:1:379:1 | exit fn match_pattern13 (normal) | main.rs:367:1:379:1 | exit fn match_pattern13 | | +| main.rs:368:22:379:1 | { ... } | main.rs:367:1:379:1 | exit fn match_pattern13 (normal) | | +| main.rs:369:5:369:21 | let ... = ... | main.rs:369:13:369:16 | Some | | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | | +| main.rs:369:9:369:9 | x | main.rs:370:5:376:5 | ExprStmt | match | +| main.rs:369:13:369:16 | Some | main.rs:369:18:369:19 | 42 | | +| main.rs:369:13:369:20 | Some(...) | main.rs:369:9:369:9 | x | | +| main.rs:369:18:369:19 | 42 | main.rs:369:13:369:20 | Some(...) | | +| main.rs:370:5:376:5 | ExprStmt | main.rs:370:11:370:11 | x | | +| main.rs:370:5:376:5 | match x { ... } | main.rs:378:5:378:26 | ExprStmt | | +| main.rs:370:11:370:11 | x | main.rs:371:9:371:15 | Some(...) | | +| main.rs:371:9:371:15 | Some(...) | main.rs:371:14:371:14 | x | match | +| main.rs:371:9:371:15 | Some(...) | main.rs:375:9:375:9 | _ | no-match | +| main.rs:371:14:371:14 | x | main.rs:371:14:371:14 | x | | +| main.rs:371:14:371:14 | x | main.rs:373:18:373:18 | x | match | +| main.rs:372:16:373:18 | [boolean(true)] let ... = x | main.rs:374:19:374:19 | x | true | +| main.rs:372:16:374:23 | [boolean(false)] ... && ... | main.rs:375:9:375:9 | _ | false | +| main.rs:372:16:374:23 | [boolean(true)] ... && ... | main.rs:374:28:374:29 | TupleExpr | true | +| main.rs:372:20:372:20 | x | main.rs:372:16:373:18 | [boolean(true)] let ... = x | match | +| main.rs:372:20:372:20 | x | main.rs:372:20:372:20 | x | | +| main.rs:373:18:373:18 | x | main.rs:372:20:372:20 | x | | +| main.rs:374:19:374:19 | x | main.rs:374:23:374:23 | 0 | | +| main.rs:374:19:374:23 | ... > ... | main.rs:372:16:374:23 | [boolean(false)] ... && ... | false | +| main.rs:374:19:374:23 | ... > ... | main.rs:372:16:374:23 | [boolean(true)] ... && ... | true | +| main.rs:374:23:374:23 | 0 | main.rs:374:19:374:23 | ... > ... | | +| main.rs:374:28:374:29 | TupleExpr | main.rs:370:5:376:5 | match x { ... } | | +| main.rs:375:9:375:9 | _ | main.rs:375:14:375:15 | TupleExpr | match | +| main.rs:375:14:375:15 | TupleExpr | main.rs:370:5:376:5 | match x { ... } | | +| main.rs:378:5:378:13 | print_i64 | main.rs:378:15:378:15 | x | | +| main.rs:378:5:378:25 | print_i64(...) | main.rs:368:22:379:1 | { ... } | | +| main.rs:378:5:378:26 | ExprStmt | main.rs:378:5:378:13 | print_i64 | | +| main.rs:378:15:378:15 | x | main.rs:378:15:378:24 | x.unwrap() | | +| main.rs:378:15:378:24 | x.unwrap() | main.rs:378:5:378:25 | print_i64(...) | | +| main.rs:381:1:396:1 | enter fn match_pattern14 | main.rs:383:5:383:19 | let ... = ... | | +| main.rs:381:1:396:1 | exit fn match_pattern14 (normal) | main.rs:381:1:396:1 | exit fn match_pattern14 | | +| main.rs:382:22:396:1 | { ... } | main.rs:381:1:396:1 | exit fn match_pattern14 (normal) | | +| main.rs:383:5:383:19 | let ... = ... | main.rs:383:13:383:14 | Ok | | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | | +| main.rs:383:9:383:9 | x | main.rs:385:7:385:7 | x | match | +| main.rs:383:13:383:14 | Ok | main.rs:383:16:383:17 | 42 | | +| main.rs:383:13:383:18 | Ok(...) | main.rs:383:9:383:9 | x | | +| main.rs:383:16:383:17 | 42 | main.rs:383:13:383:18 | Ok(...) | | +| main.rs:384:5:395:5 | if ... {...} else {...} | main.rs:382:22:396:1 | { ... } | | +| main.rs:384:8:385:7 | [boolean(false)] let ... = x | main.rs:390:7:390:7 | x | false | +| main.rs:384:8:385:7 | [boolean(true)] let ... = x | main.rs:387:9:387:21 | ExprStmt | true | +| main.rs:384:12:384:17 | Err(...) | main.rs:384:8:385:7 | [boolean(false)] let ... = x | no-match | +| main.rs:384:12:384:17 | Err(...) | main.rs:384:16:384:16 | x | match | +| main.rs:384:16:384:16 | x | main.rs:384:8:385:7 | [boolean(true)] let ... = x | match | +| main.rs:384:16:384:16 | x | main.rs:384:16:384:16 | x | | +| main.rs:385:7:385:7 | x | main.rs:384:12:384:17 | Err(...) | | +| main.rs:386:5:388:5 | { ... } | main.rs:384:5:395:5 | if ... {...} else {...} | | +| main.rs:387:9:387:17 | print_i64 | main.rs:387:19:387:19 | x | | +| main.rs:387:9:387:20 | print_i64(...) | main.rs:386:5:388:5 | { ... } | | +| main.rs:387:9:387:21 | ExprStmt | main.rs:387:9:387:17 | print_i64 | | +| main.rs:387:19:387:19 | x | main.rs:387:9:387:20 | print_i64(...) | | +| main.rs:389:10:395:5 | if ... {...} else {...} | main.rs:384:5:395:5 | if ... {...} else {...} | | +| main.rs:389:13:390:7 | [boolean(false)] let ... = x | main.rs:394:9:394:30 | ExprStmt | false | +| main.rs:389:13:390:7 | [boolean(true)] let ... = x | main.rs:392:9:392:21 | ExprStmt | true | +| main.rs:389:17:389:21 | Ok(...) | main.rs:389:13:390:7 | [boolean(false)] let ... = x | no-match | +| main.rs:389:17:389:21 | Ok(...) | main.rs:389:20:389:20 | x | match | +| main.rs:389:20:389:20 | x | main.rs:389:13:390:7 | [boolean(true)] let ... = x | match | +| main.rs:389:20:389:20 | x | main.rs:389:20:389:20 | x | | +| main.rs:390:7:390:7 | x | main.rs:389:17:389:21 | Ok(...) | | +| main.rs:391:5:393:5 | { ... } | main.rs:389:10:395:5 | if ... {...} else {...} | | +| main.rs:392:9:392:17 | print_i64 | main.rs:392:19:392:19 | x | | +| main.rs:392:9:392:20 | print_i64(...) | main.rs:391:5:393:5 | { ... } | | +| main.rs:392:9:392:21 | ExprStmt | main.rs:392:9:392:17 | print_i64 | | +| main.rs:392:19:392:19 | x | main.rs:392:9:392:20 | print_i64(...) | | +| main.rs:393:12:395:5 | { ... } | main.rs:389:10:395:5 | if ... {...} else {...} | | +| main.rs:394:9:394:17 | print_i64 | main.rs:394:19:394:19 | x | | +| main.rs:394:9:394:29 | print_i64(...) | main.rs:393:12:395:5 | { ... } | | +| main.rs:394:9:394:30 | ExprStmt | main.rs:394:9:394:17 | print_i64 | | +| main.rs:394:19:394:19 | x | main.rs:394:19:394:28 | x.unwrap() | | +| main.rs:394:19:394:28 | x.unwrap() | main.rs:394:9:394:29 | print_i64(...) | | +| main.rs:398:1:405:1 | enter fn match_pattern15 | main.rs:399:5:399:20 | let ... = ... | | +| main.rs:398:1:405:1 | exit fn match_pattern15 (normal) | main.rs:398:1:405:1 | exit fn match_pattern15 | | +| main.rs:398:22:405:1 | { ... } | main.rs:398:1:405:1 | exit fn match_pattern15 (normal) | | +| main.rs:399:5:399:20 | let ... = ... | main.rs:399:13:399:16 | Some | | +| main.rs:399:9:399:9 | x | main.rs:399:9:399:9 | x | | +| main.rs:399:9:399:9 | x | main.rs:400:5:404:10 | ExprStmt | match | +| main.rs:399:13:399:16 | Some | main.rs:399:18:399:18 | 0 | | +| main.rs:399:13:399:19 | Some(...) | main.rs:399:9:399:9 | x | | +| main.rs:399:18:399:18 | 0 | main.rs:399:13:399:19 | Some(...) | | +| main.rs:400:5:404:9 | match x { ... } | main.rs:398:22:405:1 | { ... } | | +| main.rs:400:5:404:10 | ExprStmt | main.rs:400:11:400:11 | x | | +| main.rs:400:11:400:11 | x | main.rs:401:13:401:19 | Some(...) | | +| main.rs:401:13:401:19 | Some(...) | main.rs:401:18:401:18 | x | match | +| main.rs:401:13:401:19 | Some(...) | main.rs:403:13:403:13 | _ | no-match | +| main.rs:401:18:401:18 | x | main.rs:401:18:401:18 | x | | +| main.rs:401:18:401:18 | x | main.rs:402:20:402:20 | x | match | +| main.rs:402:20:402:20 | x | main.rs:400:5:404:9 | match x { ... } | | +| main.rs:403:13:403:13 | _ | main.rs:403:18:403:18 | 0 | match | +| main.rs:403:18:403:18 | 0 | main.rs:400:5:404:9 | match x { ... } | | +| main.rs:407:1:417:1 | enter fn match_pattern16 | main.rs:408:5:408:21 | let ... = ... | | +| main.rs:407:1:417:1 | exit fn match_pattern16 (normal) | main.rs:407:1:417:1 | exit fn match_pattern16 | | +| main.rs:407:22:417:1 | { ... } | main.rs:407:1:417:1 | exit fn match_pattern16 (normal) | | +| main.rs:408:5:408:21 | let ... = ... | main.rs:408:13:408:16 | Some | | +| main.rs:408:9:408:9 | x | main.rs:408:9:408:9 | x | | +| main.rs:408:9:408:9 | x | main.rs:409:11:409:11 | x | match | +| main.rs:408:13:408:16 | Some | main.rs:408:18:408:19 | 32 | | +| main.rs:408:13:408:20 | Some(...) | main.rs:408:9:408:9 | x | | +| main.rs:408:18:408:19 | 32 | main.rs:408:13:408:20 | Some(...) | | +| main.rs:409:5:416:5 | match x { ... } | main.rs:407:22:417:1 | { ... } | | +| main.rs:409:11:409:11 | x | main.rs:410:9:410:15 | Some(...) | | +| main.rs:410:9:410:15 | Some(...) | main.rs:410:14:410:14 | y | match | +| main.rs:410:9:410:15 | Some(...) | main.rs:415:9:415:9 | _ | no-match | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | | +| main.rs:410:14:410:14 | y | main.rs:411:16:411:16 | y | match | +| main.rs:411:16:411:16 | y | main.rs:411:20:411:20 | 0 | | +| main.rs:411:16:411:20 | ... > ... | main.rs:411:16:413:23 | [boolean(false)] ... && ... | false | +| main.rs:411:16:411:20 | ... > ... | main.rs:413:17:413:20 | Some | true | +| main.rs:411:16:413:23 | [boolean(false)] ... && ... | main.rs:415:9:415:9 | _ | false | +| main.rs:411:16:413:23 | [boolean(true)] ... && ... | main.rs:414:16:414:24 | print_i64 | true | +| main.rs:411:20:411:20 | 0 | main.rs:411:16:411:20 | ... > ... | | +| main.rs:412:13:413:23 | [boolean(false)] let ... = ... | main.rs:411:16:413:23 | [boolean(false)] ... && ... | false | +| main.rs:412:13:413:23 | [boolean(true)] let ... = ... | main.rs:411:16:413:23 | [boolean(true)] ... && ... | true | +| main.rs:412:17:412:23 | Some(...) | main.rs:412:13:413:23 | [boolean(false)] let ... = ... | no-match | +| main.rs:412:17:412:23 | Some(...) | main.rs:412:22:412:22 | y | match | +| main.rs:412:22:412:22 | y | main.rs:412:13:413:23 | [boolean(true)] let ... = ... | match | +| main.rs:412:22:412:22 | y | main.rs:412:22:412:22 | y | | +| main.rs:413:17:413:20 | Some | main.rs:413:22:413:22 | y | | +| main.rs:413:17:413:23 | Some(...) | main.rs:412:17:412:23 | Some(...) | | +| main.rs:413:22:413:22 | y | main.rs:413:17:413:23 | Some(...) | | +| main.rs:414:16:414:24 | print_i64 | main.rs:414:26:414:26 | y | | +| main.rs:414:16:414:27 | print_i64(...) | main.rs:409:5:416:5 | match x { ... } | | +| main.rs:414:26:414:26 | y | main.rs:414:16:414:27 | print_i64(...) | | +| main.rs:415:9:415:9 | _ | main.rs:415:14:415:15 | { ... } | match | +| main.rs:415:14:415:15 | { ... } | main.rs:409:5:416:5 | match x { ... } | | +| main.rs:419:1:429:1 | enter fn param_pattern1 | main.rs:420:5:420:6 | a8 | | +| main.rs:419:1:429:1 | exit fn param_pattern1 (normal) | main.rs:419:1:429:1 | exit fn param_pattern1 | | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:6 | a8 | | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:12 | ...: ... | match | +| main.rs:420:5:420:12 | ...: ... | main.rs:421:5:424:5 | TuplePat | | +| main.rs:421:5:424:5 | TuplePat | main.rs:422:9:422:10 | b3 | match | +| main.rs:421:5:424:19 | ...: ... | main.rs:426:5:426:18 | ExprStmt | | +| main.rs:422:9:422:10 | b3 | main.rs:422:9:422:10 | b3 | | +| main.rs:422:9:422:10 | b3 | main.rs:423:9:423:10 | c1 | match | +| main.rs:423:9:423:10 | c1 | main.rs:421:5:424:19 | ...: ... | match | +| main.rs:423:9:423:10 | c1 | main.rs:423:9:423:10 | c1 | | +| main.rs:425:9:429:1 | { ... } | main.rs:419:1:429:1 | exit fn param_pattern1 (normal) | | +| main.rs:426:5:426:13 | print_str | main.rs:426:15:426:16 | a8 | | +| main.rs:426:5:426:17 | print_str(...) | main.rs:427:5:427:18 | ExprStmt | | +| main.rs:426:5:426:18 | ExprStmt | main.rs:426:5:426:13 | print_str | | +| main.rs:426:15:426:16 | a8 | main.rs:426:5:426:17 | print_str(...) | | +| main.rs:427:5:427:13 | print_str | main.rs:427:15:427:16 | b3 | | +| main.rs:427:5:427:17 | print_str(...) | main.rs:428:5:428:18 | ExprStmt | | +| main.rs:427:5:427:18 | ExprStmt | main.rs:427:5:427:13 | print_str | | +| main.rs:427:15:427:16 | b3 | main.rs:427:5:427:17 | print_str(...) | | +| main.rs:428:5:428:13 | print_str | main.rs:428:15:428:16 | c1 | | +| main.rs:428:5:428:17 | print_str(...) | main.rs:425:9:429:1 | { ... } | | +| main.rs:428:5:428:18 | ExprStmt | main.rs:428:5:428:13 | print_str | | +| main.rs:428:15:428:16 | c1 | main.rs:428:5:428:17 | print_str(...) | | +| main.rs:431:1:434:1 | enter fn param_pattern2 | main.rs:431:20:431:35 | ...::Left(...) | | +| main.rs:431:1:434:1 | exit fn param_pattern2 (normal) | main.rs:431:1:434:1 | exit fn param_pattern2 | | +| main.rs:431:19:431:64 | ...: Either | main.rs:433:5:433:18 | ExprStmt | | +| main.rs:431:20:431:35 | ...::Left(...) | main.rs:431:33:431:34 | a9 | match | +| main.rs:431:20:431:35 | ...::Left(...) | main.rs:431:39:431:55 | ...::Right(...) | no-match | +| main.rs:431:20:431:55 | ... \| ... | main.rs:431:19:431:64 | ...: Either | match | +| main.rs:431:33:431:34 | a9 | main.rs:431:20:431:55 | ... \| ... | match | +| main.rs:431:33:431:34 | a9 | main.rs:431:33:431:34 | a9 | | +| main.rs:431:39:431:55 | ...::Right(...) | main.rs:431:53:431:54 | a9 | match | +| main.rs:431:53:431:54 | a9 | main.rs:431:20:431:55 | ... \| ... | match | +| main.rs:431:53:431:54 | a9 | main.rs:431:53:431:54 | a9 | | +| main.rs:432:9:434:1 | { ... } | main.rs:431:1:434:1 | exit fn param_pattern2 (normal) | | +| main.rs:433:5:433:13 | print_i64 | main.rs:433:15:433:16 | a9 | | +| main.rs:433:5:433:17 | print_i64(...) | main.rs:432:9:434:1 | { ... } | | +| main.rs:433:5:433:18 | ExprStmt | main.rs:433:5:433:13 | print_i64 | | +| main.rs:433:15:433:16 | a9 | main.rs:433:5:433:17 | print_i64(...) | | +| main.rs:436:1:471:1 | enter fn destruct_assignment | main.rs:437:5:441:18 | let ... = ... | | +| main.rs:436:1:471:1 | exit fn destruct_assignment (normal) | main.rs:436:1:471:1 | exit fn destruct_assignment | | +| main.rs:436:26:471:1 | { ... } | main.rs:436:1:471:1 | exit fn destruct_assignment (normal) | | +| main.rs:437:5:441:18 | let ... = ... | main.rs:441:10:441:10 | 1 | | +| main.rs:437:9:441:5 | TuplePat | main.rs:438:13:438:15 | a10 | match | +| main.rs:438:9:438:15 | mut a10 | main.rs:439:13:439:14 | b4 | match | +| main.rs:438:13:438:15 | a10 | main.rs:438:9:438:15 | mut a10 | | +| main.rs:439:9:439:14 | mut b4 | main.rs:440:13:440:14 | c2 | match | +| main.rs:439:13:439:14 | b4 | main.rs:439:9:439:14 | mut b4 | | +| main.rs:440:9:440:14 | mut c2 | main.rs:442:5:442:19 | ExprStmt | match | +| main.rs:440:13:440:14 | c2 | main.rs:440:9:440:14 | mut c2 | | +| main.rs:441:9:441:17 | TupleExpr | main.rs:437:9:441:5 | TuplePat | | +| main.rs:441:10:441:10 | 1 | main.rs:441:13:441:13 | 2 | | +| main.rs:441:13:441:13 | 2 | main.rs:441:16:441:16 | 3 | | +| main.rs:441:16:441:16 | 3 | main.rs:441:9:441:17 | TupleExpr | | +| main.rs:442:5:442:13 | print_i64 | main.rs:442:15:442:17 | a10 | | +| main.rs:442:5:442:18 | print_i64(...) | main.rs:443:5:443:18 | ExprStmt | | +| main.rs:442:5:442:19 | ExprStmt | main.rs:442:5:442:13 | print_i64 | | +| main.rs:442:15:442:17 | a10 | main.rs:442:5:442:18 | print_i64(...) | | +| main.rs:443:5:443:13 | print_i64 | main.rs:443:15:443:16 | b4 | | +| main.rs:443:5:443:17 | print_i64(...) | main.rs:444:5:444:18 | ExprStmt | | | main.rs:443:5:443:18 | ExprStmt | main.rs:443:5:443:13 | print_i64 | | -| main.rs:443:15:443:16 | n1 | main.rs:443:5:443:17 | print_i64(...) | | -| main.rs:445:5:445:22 | immutable_variable | main.rs:445:5:445:24 | immutable_variable(...) | | -| main.rs:445:5:445:24 | immutable_variable(...) | main.rs:446:5:448:10 | let ... = ... | | -| main.rs:445:5:445:25 | ExprStmt | main.rs:445:5:445:22 | immutable_variable | | -| main.rs:446:5:448:10 | let ... = ... | main.rs:447:5:448:9 | \|...\| x | | -| main.rs:446:9:446:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | | -| main.rs:446:9:446:26 | immutable_variable | main.rs:449:5:450:30 | let ... = ... | match | -| main.rs:447:5:448:9 | \|...\| x | main.rs:446:9:446:26 | immutable_variable | | -| main.rs:447:5:448:9 | enter \|...\| x | main.rs:447:6:447:6 | x | | -| main.rs:447:5:448:9 | exit \|...\| x (normal) | main.rs:447:5:448:9 | exit \|...\| x | | -| main.rs:447:6:447:6 | x | main.rs:447:6:447:6 | x | | -| main.rs:447:6:447:6 | x | main.rs:447:6:447:11 | ...: i64 | match | -| main.rs:447:6:447:11 | ...: i64 | main.rs:448:9:448:9 | x | | -| main.rs:448:9:448:9 | x | main.rs:447:5:448:9 | exit \|...\| x (normal) | | -| main.rs:449:5:450:30 | let ... = ... | main.rs:450:9:450:26 | immutable_variable | | -| main.rs:449:9:449:10 | n2 | main.rs:449:9:449:10 | n2 | | -| main.rs:449:9:449:10 | n2 | main.rs:451:5:451:18 | ExprStmt | match | -| main.rs:450:9:450:26 | immutable_variable | main.rs:450:28:450:28 | 6 | | -| main.rs:450:9:450:29 | immutable_variable(...) | main.rs:449:9:449:10 | n2 | | -| main.rs:450:28:450:28 | 6 | main.rs:450:9:450:29 | immutable_variable(...) | | -| main.rs:451:5:451:13 | print_i64 | main.rs:451:15:451:16 | n2 | | -| main.rs:451:5:451:17 | print_i64(...) | main.rs:437:23:452:1 | { ... } | | -| main.rs:451:5:451:18 | ExprStmt | main.rs:451:5:451:13 | print_i64 | | -| main.rs:451:15:451:16 | n2 | main.rs:451:5:451:17 | print_i64(...) | | -| main.rs:454:1:484:1 | enter fn nested_function | main.rs:456:5:458:10 | let ... = ... | | -| main.rs:454:1:484:1 | exit fn nested_function (normal) | main.rs:454:1:484:1 | exit fn nested_function | | -| main.rs:454:22:484:1 | { ... } | main.rs:454:1:484:1 | exit fn nested_function (normal) | | -| main.rs:456:5:458:10 | let ... = ... | main.rs:457:9:458:9 | \|...\| x | | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | | -| main.rs:456:9:456:9 | f | main.rs:459:5:459:20 | ExprStmt | match | -| main.rs:457:9:458:9 | \|...\| x | main.rs:456:9:456:9 | f | | -| main.rs:457:9:458:9 | enter \|...\| x | main.rs:457:10:457:10 | x | | -| main.rs:457:9:458:9 | exit \|...\| x (normal) | main.rs:457:9:458:9 | exit \|...\| x | | -| main.rs:457:10:457:10 | x | main.rs:457:10:457:10 | x | | -| main.rs:457:10:457:10 | x | main.rs:457:10:457:15 | ...: i64 | match | -| main.rs:457:10:457:15 | ...: i64 | main.rs:458:9:458:9 | x | | -| main.rs:458:9:458:9 | x | main.rs:457:9:458:9 | exit \|...\| x (normal) | | -| main.rs:459:5:459:13 | print_i64 | main.rs:459:15:459:15 | f | | -| main.rs:459:5:459:19 | print_i64(...) | main.rs:461:5:464:5 | fn f | | -| main.rs:459:5:459:20 | ExprStmt | main.rs:459:5:459:13 | print_i64 | | -| main.rs:459:15:459:15 | f | main.rs:459:17:459:17 | 1 | | -| main.rs:459:15:459:18 | f(...) | main.rs:459:5:459:19 | print_i64(...) | | -| main.rs:459:17:459:17 | 1 | main.rs:459:15:459:18 | f(...) | | -| main.rs:461:5:464:5 | enter fn f | main.rs:461:10:461:10 | x | | -| main.rs:461:5:464:5 | exit fn f (normal) | main.rs:461:5:464:5 | exit fn f | | -| main.rs:461:5:464:5 | fn f | main.rs:466:5:466:20 | ExprStmt | | -| main.rs:461:10:461:10 | x | main.rs:461:10:461:10 | x | | -| main.rs:461:10:461:10 | x | main.rs:461:10:461:15 | ...: i64 | match | -| main.rs:461:10:461:15 | ...: i64 | main.rs:463:9:463:9 | x | | -| main.rs:462:5:464:5 | { ... } | main.rs:461:5:464:5 | exit fn f (normal) | | -| main.rs:463:9:463:9 | x | main.rs:463:13:463:13 | 1 | | -| main.rs:463:9:463:13 | ... + ... | main.rs:462:5:464:5 | { ... } | | -| main.rs:463:13:463:13 | 1 | main.rs:463:9:463:13 | ... + ... | | -| main.rs:466:5:466:13 | print_i64 | main.rs:466:15:466:15 | f | | -| main.rs:466:5:466:19 | print_i64(...) | main.rs:469:9:469:24 | ExprStmt | | -| main.rs:466:5:466:20 | ExprStmt | main.rs:466:5:466:13 | print_i64 | | -| main.rs:466:15:466:15 | f | main.rs:466:17:466:17 | 2 | | -| main.rs:466:15:466:18 | f(...) | main.rs:466:5:466:19 | print_i64(...) | | -| main.rs:466:17:466:17 | 2 | main.rs:466:15:466:18 | f(...) | | -| main.rs:468:5:483:5 | { ... } | main.rs:454:22:484:1 | { ... } | | -| main.rs:469:9:469:17 | print_i64 | main.rs:469:19:469:19 | f | | -| main.rs:469:9:469:23 | print_i64(...) | main.rs:470:9:473:9 | fn f | | -| main.rs:469:9:469:24 | ExprStmt | main.rs:469:9:469:17 | print_i64 | | -| main.rs:469:19:469:19 | f | main.rs:469:21:469:21 | 3 | | -| main.rs:469:19:469:22 | f(...) | main.rs:469:9:469:23 | print_i64(...) | | -| main.rs:469:21:469:21 | 3 | main.rs:469:19:469:22 | f(...) | | -| main.rs:470:9:473:9 | enter fn f | main.rs:470:14:470:14 | x | | -| main.rs:470:9:473:9 | exit fn f (normal) | main.rs:470:9:473:9 | exit fn f | | -| main.rs:470:9:473:9 | fn f | main.rs:475:9:477:9 | ExprStmt | | -| main.rs:470:14:470:14 | x | main.rs:470:14:470:14 | x | | -| main.rs:470:14:470:14 | x | main.rs:470:14:470:19 | ...: i64 | match | -| main.rs:470:14:470:19 | ...: i64 | main.rs:472:13:472:13 | 2 | | -| main.rs:471:9:473:9 | { ... } | main.rs:470:9:473:9 | exit fn f (normal) | | -| main.rs:472:13:472:13 | 2 | main.rs:472:17:472:17 | x | | -| main.rs:472:13:472:17 | ... * ... | main.rs:471:9:473:9 | { ... } | | -| main.rs:472:17:472:17 | x | main.rs:472:13:472:17 | ... * ... | | -| main.rs:475:9:477:9 | ExprStmt | main.rs:476:13:476:28 | ExprStmt | | -| main.rs:475:9:477:9 | { ... } | main.rs:479:9:481:14 | let ... = ... | | -| main.rs:476:13:476:21 | print_i64 | main.rs:476:23:476:23 | f | | -| main.rs:476:13:476:27 | print_i64(...) | main.rs:475:9:477:9 | { ... } | | -| main.rs:476:13:476:28 | ExprStmt | main.rs:476:13:476:21 | print_i64 | | -| main.rs:476:23:476:23 | f | main.rs:476:25:476:25 | 4 | | -| main.rs:476:23:476:26 | f(...) | main.rs:476:13:476:27 | print_i64(...) | | -| main.rs:476:25:476:25 | 4 | main.rs:476:23:476:26 | f(...) | | -| main.rs:479:9:481:14 | let ... = ... | main.rs:480:13:481:13 | \|...\| x | | -| main.rs:479:13:479:13 | f | main.rs:479:13:479:13 | f | | -| main.rs:479:13:479:13 | f | main.rs:482:9:482:24 | ExprStmt | match | -| main.rs:480:13:481:13 | \|...\| x | main.rs:479:13:479:13 | f | | -| main.rs:480:13:481:13 | enter \|...\| x | main.rs:480:14:480:14 | x | | -| main.rs:480:13:481:13 | exit \|...\| x (normal) | main.rs:480:13:481:13 | exit \|...\| x | | -| main.rs:480:14:480:14 | x | main.rs:480:14:480:14 | x | | -| main.rs:480:14:480:14 | x | main.rs:480:14:480:19 | ...: i64 | match | -| main.rs:480:14:480:19 | ...: i64 | main.rs:481:13:481:13 | x | | -| main.rs:481:13:481:13 | x | main.rs:480:13:481:13 | exit \|...\| x (normal) | | -| main.rs:482:9:482:17 | print_i64 | main.rs:482:19:482:19 | f | | -| main.rs:482:9:482:23 | print_i64(...) | main.rs:468:5:483:5 | { ... } | | -| main.rs:482:9:482:24 | ExprStmt | main.rs:482:9:482:17 | print_i64 | | -| main.rs:482:19:482:19 | f | main.rs:482:21:482:21 | 5 | | -| main.rs:482:19:482:22 | f(...) | main.rs:482:9:482:23 | print_i64(...) | | -| main.rs:482:21:482:21 | 5 | main.rs:482:19:482:22 | f(...) | | -| main.rs:486:1:493:1 | enter fn for_variable | main.rs:487:5:487:42 | let ... = ... | | -| main.rs:486:1:493:1 | exit fn for_variable (normal) | main.rs:486:1:493:1 | exit fn for_variable | | -| main.rs:486:19:493:1 | { ... } | main.rs:486:1:493:1 | exit fn for_variable (normal) | | -| main.rs:487:5:487:42 | let ... = ... | main.rs:487:15:487:22 | "apples" | | -| main.rs:487:9:487:9 | v | main.rs:487:9:487:9 | v | | -| main.rs:487:9:487:9 | v | main.rs:490:12:490:12 | v | match | -| main.rs:487:13:487:41 | &... | main.rs:487:9:487:9 | v | | -| main.rs:487:14:487:41 | [...] | main.rs:487:13:487:41 | &... | | -| main.rs:487:15:487:22 | "apples" | main.rs:487:25:487:30 | "cake" | | -| main.rs:487:25:487:30 | "cake" | main.rs:487:33:487:40 | "coffee" | | -| main.rs:487:33:487:40 | "coffee" | main.rs:487:14:487:41 | [...] | | -| main.rs:489:5:492:5 | for ... in ... { ... } | main.rs:486:19:493:1 | { ... } | | -| main.rs:489:9:489:12 | text | main.rs:489:5:492:5 | for ... in ... { ... } | no-match | -| main.rs:489:9:489:12 | text | main.rs:489:9:489:12 | text | | -| main.rs:489:9:489:12 | text | main.rs:491:9:491:24 | ExprStmt | match | -| main.rs:490:12:490:12 | v | main.rs:489:9:489:12 | text | | -| main.rs:490:14:492:5 | { ... } | main.rs:489:9:489:12 | text | | -| main.rs:491:9:491:17 | print_str | main.rs:491:19:491:22 | text | | -| main.rs:491:9:491:23 | print_str(...) | main.rs:490:14:492:5 | { ... } | | -| main.rs:491:9:491:24 | ExprStmt | main.rs:491:9:491:17 | print_str | | -| main.rs:491:19:491:22 | text | main.rs:491:9:491:23 | print_str(...) | | -| main.rs:495:1:501:1 | enter fn add_assign | main.rs:496:5:496:18 | let ... = 0 | | -| main.rs:495:1:501:1 | exit fn add_assign (normal) | main.rs:495:1:501:1 | exit fn add_assign | | -| main.rs:495:17:501:1 | { ... } | main.rs:495:1:501:1 | exit fn add_assign (normal) | | -| main.rs:496:5:496:18 | let ... = 0 | main.rs:496:17:496:17 | 0 | | -| main.rs:496:9:496:13 | mut a | main.rs:497:5:497:11 | ExprStmt | match | -| main.rs:496:13:496:13 | a | main.rs:496:9:496:13 | mut a | | -| main.rs:496:17:496:17 | 0 | main.rs:496:13:496:13 | a | | -| main.rs:497:5:497:5 | a | main.rs:497:10:497:10 | 1 | | -| main.rs:497:5:497:10 | ... += ... | main.rs:498:5:498:17 | ExprStmt | | -| main.rs:497:5:497:11 | ExprStmt | main.rs:497:5:497:5 | a | | -| main.rs:497:10:497:10 | 1 | main.rs:497:5:497:10 | ... += ... | | -| main.rs:498:5:498:13 | print_i64 | main.rs:498:15:498:15 | a | | -| main.rs:498:5:498:16 | print_i64(...) | main.rs:499:5:499:28 | ExprStmt | | -| main.rs:498:5:498:17 | ExprStmt | main.rs:498:5:498:13 | print_i64 | | -| main.rs:498:15:498:15 | a | main.rs:498:5:498:16 | print_i64(...) | | -| main.rs:499:5:499:27 | ... .add_assign(...) | main.rs:500:5:500:17 | ExprStmt | | -| main.rs:499:5:499:28 | ExprStmt | main.rs:499:11:499:11 | a | | -| main.rs:499:6:499:11 | &mut a | main.rs:499:25:499:26 | 10 | | -| main.rs:499:11:499:11 | a | main.rs:499:6:499:11 | &mut a | | -| main.rs:499:25:499:26 | 10 | main.rs:499:5:499:27 | ... .add_assign(...) | | -| main.rs:500:5:500:13 | print_i64 | main.rs:500:15:500:15 | a | | -| main.rs:500:5:500:16 | print_i64(...) | main.rs:495:17:501:1 | { ... } | | -| main.rs:500:5:500:17 | ExprStmt | main.rs:500:5:500:13 | print_i64 | | -| main.rs:500:15:500:15 | a | main.rs:500:5:500:16 | print_i64(...) | | -| main.rs:503:1:509:1 | enter fn mutate | main.rs:504:5:504:18 | let ... = 1 | | -| main.rs:503:1:509:1 | exit fn mutate (normal) | main.rs:503:1:509:1 | exit fn mutate | | -| main.rs:503:13:509:1 | { ... } | main.rs:503:1:509:1 | exit fn mutate (normal) | | -| main.rs:504:5:504:18 | let ... = 1 | main.rs:504:17:504:17 | 1 | | -| main.rs:504:9:504:13 | mut i | main.rs:505:5:506:15 | let ... = ... | match | -| main.rs:504:13:504:13 | i | main.rs:504:9:504:13 | mut i | | -| main.rs:504:17:504:17 | 1 | main.rs:504:13:504:13 | i | | -| main.rs:505:5:506:15 | let ... = ... | main.rs:506:14:506:14 | i | | -| main.rs:505:9:505:13 | ref_i | main.rs:505:9:505:13 | ref_i | | -| main.rs:505:9:505:13 | ref_i | main.rs:507:5:507:15 | ExprStmt | match | -| main.rs:506:9:506:14 | &mut i | main.rs:505:9:505:13 | ref_i | | -| main.rs:506:14:506:14 | i | main.rs:506:9:506:14 | &mut i | | -| main.rs:507:5:507:10 | * ... | main.rs:507:14:507:14 | 2 | | -| main.rs:507:5:507:14 | ... = ... | main.rs:508:5:508:17 | ExprStmt | | -| main.rs:507:5:507:15 | ExprStmt | main.rs:507:6:507:10 | ref_i | | -| main.rs:507:6:507:10 | ref_i | main.rs:507:5:507:10 | * ... | | -| main.rs:507:14:507:14 | 2 | main.rs:507:5:507:14 | ... = ... | | -| main.rs:508:5:508:13 | print_i64 | main.rs:508:15:508:15 | i | | -| main.rs:508:5:508:16 | print_i64(...) | main.rs:503:13:509:1 | { ... } | | -| main.rs:508:5:508:17 | ExprStmt | main.rs:508:5:508:13 | print_i64 | | -| main.rs:508:15:508:15 | i | main.rs:508:5:508:16 | print_i64(...) | | -| main.rs:511:1:516:1 | enter fn mutate_param | main.rs:511:17:511:17 | x | | -| main.rs:511:1:516:1 | exit fn mutate_param (normal) | main.rs:511:1:516:1 | exit fn mutate_param | | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:27 | ...: ... | match | -| main.rs:511:17:511:27 | ...: ... | main.rs:512:5:514:11 | ExprStmt | | -| main.rs:512:5:512:6 | * ... | main.rs:513:10:513:10 | x | | -| main.rs:512:5:514:10 | ... = ... | main.rs:515:5:515:13 | ExprStmt | | -| main.rs:512:5:514:11 | ExprStmt | main.rs:512:6:512:6 | x | | -| main.rs:512:6:512:6 | x | main.rs:512:5:512:6 | * ... | | -| main.rs:513:9:513:10 | * ... | main.rs:514:10:514:10 | x | | -| main.rs:513:9:514:10 | ... + ... | main.rs:512:5:514:10 | ... = ... | | -| main.rs:513:10:513:10 | x | main.rs:513:9:513:10 | * ... | | -| main.rs:514:9:514:10 | * ... | main.rs:513:9:514:10 | ... + ... | | -| main.rs:514:10:514:10 | x | main.rs:514:9:514:10 | * ... | | -| main.rs:515:5:515:12 | return x | main.rs:511:1:516:1 | exit fn mutate_param (normal) | return | -| main.rs:515:5:515:13 | ExprStmt | main.rs:515:12:515:12 | x | | -| main.rs:515:12:515:12 | x | main.rs:515:5:515:12 | return x | | -| main.rs:518:1:524:1 | enter fn mutate_param2 | main.rs:518:22:518:22 | x | | -| main.rs:518:1:524:1 | exit fn mutate_param2 (normal) | main.rs:518:1:524:1 | exit fn mutate_param2 | | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:35 | ...: ... | match | -| main.rs:518:22:518:35 | ...: ... | main.rs:518:38:518:38 | y | | -| main.rs:518:38:518:38 | y | main.rs:518:38:518:38 | y | | -| main.rs:518:38:518:38 | y | main.rs:518:38:518:56 | ...: ... | match | -| main.rs:518:38:518:56 | ...: ... | main.rs:519:5:521:11 | ExprStmt | | -| main.rs:518:59:524:1 | { ... } | main.rs:518:1:524:1 | exit fn mutate_param2 (normal) | | -| main.rs:519:5:519:6 | * ... | main.rs:520:10:520:10 | x | | -| main.rs:519:5:521:10 | ... = ... | main.rs:522:5:523:10 | ExprStmt | | -| main.rs:519:5:521:11 | ExprStmt | main.rs:519:6:519:6 | x | | -| main.rs:519:6:519:6 | x | main.rs:519:5:519:6 | * ... | | -| main.rs:520:9:520:10 | * ... | main.rs:521:10:521:10 | x | | -| main.rs:520:9:521:10 | ... + ... | main.rs:519:5:521:10 | ... = ... | | -| main.rs:520:10:520:10 | x | main.rs:520:9:520:10 | * ... | | -| main.rs:521:9:521:10 | * ... | main.rs:520:9:521:10 | ... + ... | | -| main.rs:521:10:521:10 | x | main.rs:521:9:521:10 | * ... | | -| main.rs:522:5:522:6 | * ... | main.rs:523:9:523:9 | x | | -| main.rs:522:5:523:9 | ... = ... | main.rs:518:59:524:1 | { ... } | | -| main.rs:522:5:523:10 | ExprStmt | main.rs:522:6:522:6 | y | | -| main.rs:522:6:522:6 | y | main.rs:522:5:522:6 | * ... | | -| main.rs:523:9:523:9 | x | main.rs:522:5:523:9 | ... = ... | | -| main.rs:526:1:546:1 | enter fn mutate_arg | main.rs:527:5:527:18 | let ... = 2 | | -| main.rs:526:1:546:1 | exit fn mutate_arg (normal) | main.rs:526:1:546:1 | exit fn mutate_arg | | -| main.rs:526:17:546:1 | { ... } | main.rs:526:1:546:1 | exit fn mutate_arg (normal) | | -| main.rs:527:5:527:18 | let ... = 2 | main.rs:527:17:527:17 | 2 | | -| main.rs:527:9:527:13 | mut x | main.rs:528:5:529:29 | let ... = ... | match | -| main.rs:527:13:527:13 | x | main.rs:527:9:527:13 | mut x | | -| main.rs:527:17:527:17 | 2 | main.rs:527:13:527:13 | x | | -| main.rs:528:5:529:29 | let ... = ... | main.rs:529:9:529:20 | mutate_param | | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | | -| main.rs:528:9:528:9 | y | main.rs:530:5:530:12 | ExprStmt | match | -| main.rs:529:9:529:20 | mutate_param | main.rs:529:27:529:27 | x | | -| main.rs:529:9:529:28 | mutate_param(...) | main.rs:528:9:528:9 | y | | -| main.rs:529:22:529:27 | &mut x | main.rs:529:9:529:28 | mutate_param(...) | | -| main.rs:529:27:529:27 | x | main.rs:529:22:529:27 | &mut x | | -| main.rs:530:5:530:6 | * ... | main.rs:530:10:530:11 | 10 | | -| main.rs:530:5:530:11 | ... = ... | main.rs:533:5:533:17 | ExprStmt | | -| main.rs:530:5:530:12 | ExprStmt | main.rs:530:6:530:6 | y | | -| main.rs:530:6:530:6 | y | main.rs:530:5:530:6 | * ... | | -| main.rs:530:10:530:11 | 10 | main.rs:530:5:530:11 | ... = ... | | -| main.rs:533:5:533:13 | print_i64 | main.rs:533:15:533:15 | x | | -| main.rs:533:5:533:16 | print_i64(...) | main.rs:535:5:535:18 | let ... = 4 | | -| main.rs:533:5:533:17 | ExprStmt | main.rs:533:5:533:13 | print_i64 | | -| main.rs:533:15:533:15 | x | main.rs:533:5:533:16 | print_i64(...) | | -| main.rs:535:5:535:18 | let ... = 4 | main.rs:535:17:535:17 | 4 | | -| main.rs:535:9:535:13 | mut z | main.rs:536:5:537:20 | let ... = ... | match | -| main.rs:535:13:535:13 | z | main.rs:535:9:535:13 | mut z | | -| main.rs:535:17:535:17 | 4 | main.rs:535:13:535:13 | z | | -| main.rs:536:5:537:20 | let ... = ... | main.rs:537:19:537:19 | x | | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | | -| main.rs:536:9:536:9 | w | main.rs:538:5:541:6 | ExprStmt | match | -| main.rs:537:9:537:19 | &mut ... | main.rs:536:9:536:9 | w | | -| main.rs:537:14:537:19 | &mut x | main.rs:537:9:537:19 | &mut ... | | -| main.rs:537:19:537:19 | x | main.rs:537:14:537:19 | &mut x | | -| main.rs:538:5:538:17 | mutate_param2 | main.rs:539:14:539:14 | z | | -| main.rs:538:5:541:5 | mutate_param2(...) | main.rs:542:5:542:13 | ExprStmt | | -| main.rs:538:5:541:6 | ExprStmt | main.rs:538:5:538:17 | mutate_param2 | | -| main.rs:539:9:539:14 | &mut z | main.rs:540:9:540:9 | w | | -| main.rs:539:14:539:14 | z | main.rs:539:9:539:14 | &mut z | | -| main.rs:540:9:540:9 | w | main.rs:538:5:541:5 | mutate_param2(...) | | -| main.rs:542:5:542:7 | * ... | main.rs:542:11:542:12 | 11 | | -| main.rs:542:5:542:12 | ... = ... | main.rs:545:5:545:17 | ExprStmt | | -| main.rs:542:5:542:13 | ExprStmt | main.rs:542:7:542:7 | w | | -| main.rs:542:6:542:7 | * ... | main.rs:542:5:542:7 | * ... | | -| main.rs:542:7:542:7 | w | main.rs:542:6:542:7 | * ... | | -| main.rs:542:11:542:12 | 11 | main.rs:542:5:542:12 | ... = ... | | -| main.rs:545:5:545:13 | print_i64 | main.rs:545:15:545:15 | z | | -| main.rs:545:5:545:16 | print_i64(...) | main.rs:526:17:546:1 | { ... } | | -| main.rs:545:5:545:17 | ExprStmt | main.rs:545:5:545:13 | print_i64 | | -| main.rs:545:15:545:15 | z | main.rs:545:5:545:16 | print_i64(...) | | -| main.rs:548:1:554:1 | enter fn alias | main.rs:549:5:549:18 | let ... = 1 | | -| main.rs:548:1:554:1 | exit fn alias (normal) | main.rs:548:1:554:1 | exit fn alias | | -| main.rs:548:12:554:1 | { ... } | main.rs:548:1:554:1 | exit fn alias (normal) | | -| main.rs:549:5:549:18 | let ... = 1 | main.rs:549:17:549:17 | 1 | | -| main.rs:549:9:549:13 | mut x | main.rs:550:5:551:15 | let ... = ... | match | -| main.rs:549:13:549:13 | x | main.rs:549:9:549:13 | mut x | | -| main.rs:549:17:549:17 | 1 | main.rs:549:13:549:13 | x | | -| main.rs:550:5:551:15 | let ... = ... | main.rs:551:14:551:14 | x | | -| main.rs:550:9:550:9 | y | main.rs:550:9:550:9 | y | | -| main.rs:550:9:550:9 | y | main.rs:552:5:552:11 | ExprStmt | match | -| main.rs:551:9:551:14 | &mut x | main.rs:550:9:550:9 | y | | -| main.rs:551:14:551:14 | x | main.rs:551:9:551:14 | &mut x | | -| main.rs:552:5:552:6 | * ... | main.rs:552:10:552:10 | 2 | | -| main.rs:552:5:552:10 | ... = ... | main.rs:553:5:553:17 | ExprStmt | | -| main.rs:552:5:552:11 | ExprStmt | main.rs:552:6:552:6 | y | | -| main.rs:552:6:552:6 | y | main.rs:552:5:552:6 | * ... | | -| main.rs:552:10:552:10 | 2 | main.rs:552:5:552:10 | ... = ... | | -| main.rs:553:5:553:13 | print_i64 | main.rs:553:15:553:15 | x | | -| main.rs:553:5:553:16 | print_i64(...) | main.rs:548:12:554:1 | { ... } | | -| main.rs:553:5:553:17 | ExprStmt | main.rs:553:5:553:13 | print_i64 | | -| main.rs:553:15:553:15 | x | main.rs:553:5:553:16 | print_i64(...) | | -| main.rs:556:1:565:1 | enter fn capture_immut | main.rs:557:5:557:16 | let ... = 100 | | -| main.rs:556:1:565:1 | exit fn capture_immut (normal) | main.rs:556:1:565:1 | exit fn capture_immut | | -| main.rs:556:20:565:1 | { ... } | main.rs:556:1:565:1 | exit fn capture_immut (normal) | | -| main.rs:557:5:557:16 | let ... = 100 | main.rs:557:13:557:15 | 100 | | -| main.rs:557:9:557:9 | x | main.rs:557:9:557:9 | x | | -| main.rs:557:9:557:9 | x | main.rs:560:5:562:6 | let ... = ... | match | -| main.rs:557:13:557:15 | 100 | main.rs:557:9:557:9 | x | | -| main.rs:560:5:562:6 | let ... = ... | main.rs:560:15:562:5 | \|...\| ... | | -| main.rs:560:9:560:11 | cap | main.rs:560:9:560:11 | cap | | -| main.rs:560:9:560:11 | cap | main.rs:563:5:563:10 | ExprStmt | match | -| main.rs:560:15:562:5 | \|...\| ... | main.rs:560:9:560:11 | cap | | -| main.rs:560:15:562:5 | enter \|...\| ... | main.rs:561:9:561:21 | ExprStmt | | -| main.rs:560:15:562:5 | exit \|...\| ... (normal) | main.rs:560:15:562:5 | exit \|...\| ... | | -| main.rs:560:18:562:5 | { ... } | main.rs:560:15:562:5 | exit \|...\| ... (normal) | | -| main.rs:561:9:561:17 | print_i64 | main.rs:561:19:561:19 | x | | -| main.rs:561:9:561:20 | print_i64(...) | main.rs:560:18:562:5 | { ... } | | -| main.rs:561:9:561:21 | ExprStmt | main.rs:561:9:561:17 | print_i64 | | -| main.rs:561:19:561:19 | x | main.rs:561:9:561:20 | print_i64(...) | | -| main.rs:563:5:563:7 | cap | main.rs:563:5:563:9 | cap(...) | | -| main.rs:563:5:563:9 | cap(...) | main.rs:564:5:564:17 | ExprStmt | | -| main.rs:563:5:563:10 | ExprStmt | main.rs:563:5:563:7 | cap | | -| main.rs:564:5:564:13 | print_i64 | main.rs:564:15:564:15 | x | | -| main.rs:564:5:564:16 | print_i64(...) | main.rs:556:20:565:1 | { ... } | | -| main.rs:564:5:564:17 | ExprStmt | main.rs:564:5:564:13 | print_i64 | | -| main.rs:564:15:564:15 | x | main.rs:564:5:564:16 | print_i64(...) | | -| main.rs:567:1:594:1 | enter fn capture_mut | main.rs:568:5:568:18 | let ... = 1 | | -| main.rs:567:1:594:1 | exit fn capture_mut (normal) | main.rs:567:1:594:1 | exit fn capture_mut | | -| main.rs:567:18:594:1 | { ... } | main.rs:567:1:594:1 | exit fn capture_mut (normal) | | -| main.rs:568:5:568:18 | let ... = 1 | main.rs:568:17:568:17 | 1 | | -| main.rs:568:9:568:13 | mut x | main.rs:571:5:573:6 | let ... = ... | match | -| main.rs:568:13:568:13 | x | main.rs:568:9:568:13 | mut x | | -| main.rs:568:17:568:17 | 1 | main.rs:568:13:568:13 | x | | -| main.rs:571:5:573:6 | let ... = ... | main.rs:571:20:573:5 | \|...\| ... | | -| main.rs:571:9:571:16 | closure1 | main.rs:571:9:571:16 | closure1 | | -| main.rs:571:9:571:16 | closure1 | main.rs:574:5:574:15 | ExprStmt | match | -| main.rs:571:20:573:5 | \|...\| ... | main.rs:571:9:571:16 | closure1 | | -| main.rs:571:20:573:5 | enter \|...\| ... | main.rs:572:9:572:21 | ExprStmt | | -| main.rs:571:20:573:5 | exit \|...\| ... (normal) | main.rs:571:20:573:5 | exit \|...\| ... | | -| main.rs:571:23:573:5 | { ... } | main.rs:571:20:573:5 | exit \|...\| ... (normal) | | -| main.rs:572:9:572:17 | print_i64 | main.rs:572:19:572:19 | x | | -| main.rs:572:9:572:20 | print_i64(...) | main.rs:571:23:573:5 | { ... } | | -| main.rs:572:9:572:21 | ExprStmt | main.rs:572:9:572:17 | print_i64 | | -| main.rs:572:19:572:19 | x | main.rs:572:9:572:20 | print_i64(...) | | -| main.rs:574:5:574:12 | closure1 | main.rs:574:5:574:14 | closure1(...) | | -| main.rs:574:5:574:14 | closure1(...) | main.rs:575:5:575:17 | ExprStmt | | -| main.rs:574:5:574:15 | ExprStmt | main.rs:574:5:574:12 | closure1 | | -| main.rs:575:5:575:13 | print_i64 | main.rs:575:15:575:15 | x | | -| main.rs:575:5:575:16 | print_i64(...) | main.rs:577:5:577:18 | let ... = 2 | | -| main.rs:575:5:575:17 | ExprStmt | main.rs:575:5:575:13 | print_i64 | | -| main.rs:575:15:575:15 | x | main.rs:575:5:575:16 | print_i64(...) | | -| main.rs:577:5:577:18 | let ... = 2 | main.rs:577:17:577:17 | 2 | | -| main.rs:577:9:577:13 | mut y | main.rs:580:5:582:6 | let ... = ... | match | -| main.rs:577:13:577:13 | y | main.rs:577:9:577:13 | mut y | | -| main.rs:577:17:577:17 | 2 | main.rs:577:13:577:13 | y | | -| main.rs:580:5:582:6 | let ... = ... | main.rs:580:24:582:5 | \|...\| ... | | -| main.rs:580:9:580:20 | mut closure2 | main.rs:583:5:583:15 | ExprStmt | match | -| main.rs:580:13:580:20 | closure2 | main.rs:580:9:580:20 | mut closure2 | | -| main.rs:580:24:582:5 | \|...\| ... | main.rs:580:13:580:20 | closure2 | | -| main.rs:580:24:582:5 | enter \|...\| ... | main.rs:581:9:581:14 | ExprStmt | | -| main.rs:580:24:582:5 | exit \|...\| ... (normal) | main.rs:580:24:582:5 | exit \|...\| ... | | -| main.rs:580:27:582:5 | { ... } | main.rs:580:24:582:5 | exit \|...\| ... (normal) | | -| main.rs:581:9:581:9 | y | main.rs:581:13:581:13 | 3 | | -| main.rs:581:9:581:13 | ... = ... | main.rs:580:27:582:5 | { ... } | | -| main.rs:581:9:581:14 | ExprStmt | main.rs:581:9:581:9 | y | | -| main.rs:581:13:581:13 | 3 | main.rs:581:9:581:13 | ... = ... | | -| main.rs:583:5:583:12 | closure2 | main.rs:583:5:583:14 | closure2(...) | | -| main.rs:583:5:583:14 | closure2(...) | main.rs:584:5:584:17 | ExprStmt | | -| main.rs:583:5:583:15 | ExprStmt | main.rs:583:5:583:12 | closure2 | | -| main.rs:584:5:584:13 | print_i64 | main.rs:584:15:584:15 | y | | -| main.rs:584:5:584:16 | print_i64(...) | main.rs:586:5:586:18 | let ... = 2 | | -| main.rs:584:5:584:17 | ExprStmt | main.rs:584:5:584:13 | print_i64 | | -| main.rs:584:15:584:15 | y | main.rs:584:5:584:16 | print_i64(...) | | -| main.rs:586:5:586:18 | let ... = 2 | main.rs:586:17:586:17 | 2 | | -| main.rs:586:9:586:13 | mut z | main.rs:589:5:591:6 | let ... = ... | match | -| main.rs:586:13:586:13 | z | main.rs:586:9:586:13 | mut z | | -| main.rs:586:17:586:17 | 2 | main.rs:586:13:586:13 | z | | -| main.rs:589:5:591:6 | let ... = ... | main.rs:589:24:591:5 | \|...\| ... | | -| main.rs:589:9:589:20 | mut closure3 | main.rs:592:5:592:15 | ExprStmt | match | -| main.rs:589:13:589:20 | closure3 | main.rs:589:9:589:20 | mut closure3 | | -| main.rs:589:24:591:5 | \|...\| ... | main.rs:589:13:589:20 | closure3 | | -| main.rs:589:24:591:5 | enter \|...\| ... | main.rs:590:9:590:24 | ExprStmt | | -| main.rs:589:24:591:5 | exit \|...\| ... (normal) | main.rs:589:24:591:5 | exit \|...\| ... | | -| main.rs:589:27:591:5 | { ... } | main.rs:589:24:591:5 | exit \|...\| ... (normal) | | -| main.rs:590:9:590:9 | z | main.rs:590:22:590:22 | 1 | | -| main.rs:590:9:590:23 | z.add_assign(...) | main.rs:589:27:591:5 | { ... } | | -| main.rs:590:9:590:24 | ExprStmt | main.rs:590:9:590:9 | z | | -| main.rs:590:22:590:22 | 1 | main.rs:590:9:590:23 | z.add_assign(...) | | -| main.rs:592:5:592:12 | closure3 | main.rs:592:5:592:14 | closure3(...) | | -| main.rs:592:5:592:14 | closure3(...) | main.rs:593:5:593:17 | ExprStmt | | -| main.rs:592:5:592:15 | ExprStmt | main.rs:592:5:592:12 | closure3 | | -| main.rs:593:5:593:13 | print_i64 | main.rs:593:15:593:15 | z | | -| main.rs:593:5:593:16 | print_i64(...) | main.rs:567:18:594:1 | { ... } | | -| main.rs:593:5:593:17 | ExprStmt | main.rs:593:5:593:13 | print_i64 | | -| main.rs:593:15:593:15 | z | main.rs:593:5:593:16 | print_i64(...) | | -| main.rs:596:1:604:1 | enter fn async_block_capture | main.rs:597:5:597:23 | let ... = 0 | | -| main.rs:596:1:604:1 | exit fn async_block_capture (normal) | main.rs:596:1:604:1 | exit fn async_block_capture | | -| main.rs:596:32:604:1 | { ... } | main.rs:596:1:604:1 | exit fn async_block_capture (normal) | | -| main.rs:597:5:597:23 | let ... = 0 | main.rs:597:22:597:22 | 0 | | -| main.rs:597:9:597:13 | mut i | main.rs:598:5:600:6 | let ... = ... | match | -| main.rs:597:13:597:13 | i | main.rs:597:9:597:13 | mut i | | -| main.rs:597:22:597:22 | 0 | main.rs:597:13:597:13 | i | | -| main.rs:598:5:600:6 | let ... = ... | main.rs:598:17:600:5 | { ... } | | -| main.rs:598:9:598:13 | block | main.rs:598:9:598:13 | block | | -| main.rs:598:9:598:13 | block | main.rs:602:5:602:16 | ExprStmt | match | -| main.rs:598:17:600:5 | enter { ... } | main.rs:599:9:599:14 | ExprStmt | | -| main.rs:598:17:600:5 | exit { ... } (normal) | main.rs:598:17:600:5 | exit { ... } | | -| main.rs:598:17:600:5 | { ... } | main.rs:598:9:598:13 | block | | -| main.rs:599:9:599:9 | i | main.rs:599:13:599:13 | 1 | | -| main.rs:599:9:599:13 | ... = ... | main.rs:598:17:600:5 | exit { ... } (normal) | | -| main.rs:599:9:599:14 | ExprStmt | main.rs:599:9:599:9 | i | | -| main.rs:599:13:599:13 | 1 | main.rs:599:9:599:13 | ... = ... | | -| main.rs:602:5:602:9 | block | main.rs:602:5:602:15 | await block | | -| main.rs:602:5:602:15 | await block | main.rs:603:5:603:17 | ExprStmt | | -| main.rs:602:5:602:16 | ExprStmt | main.rs:602:5:602:9 | block | | -| main.rs:603:5:603:13 | print_i64 | main.rs:603:15:603:15 | i | | -| main.rs:603:5:603:16 | print_i64(...) | main.rs:596:32:604:1 | { ... } | | -| main.rs:603:5:603:17 | ExprStmt | main.rs:603:5:603:13 | print_i64 | | -| main.rs:603:15:603:15 | i | main.rs:603:5:603:16 | print_i64(...) | | -| main.rs:606:1:622:1 | enter fn phi | main.rs:606:8:606:8 | b | | -| main.rs:606:1:622:1 | exit fn phi (normal) | main.rs:606:1:622:1 | exit fn phi | | -| main.rs:606:8:606:8 | b | main.rs:606:8:606:8 | b | | -| main.rs:606:8:606:8 | b | main.rs:606:8:606:14 | ...: bool | match | -| main.rs:606:8:606:14 | ...: bool | main.rs:607:5:607:18 | let ... = 1 | | -| main.rs:606:17:622:1 | { ... } | main.rs:606:1:622:1 | exit fn phi (normal) | | -| main.rs:607:5:607:18 | let ... = 1 | main.rs:607:17:607:17 | 1 | | -| main.rs:607:9:607:13 | mut x | main.rs:608:5:608:17 | ExprStmt | match | -| main.rs:607:13:607:13 | x | main.rs:607:9:607:13 | mut x | | -| main.rs:607:17:607:17 | 1 | main.rs:607:13:607:13 | x | | -| main.rs:608:5:608:13 | print_i64 | main.rs:608:15:608:15 | x | | -| main.rs:608:5:608:16 | print_i64(...) | main.rs:609:5:609:21 | ExprStmt | | -| main.rs:608:5:608:17 | ExprStmt | main.rs:608:5:608:13 | print_i64 | | -| main.rs:608:15:608:15 | x | main.rs:608:5:608:16 | print_i64(...) | | -| main.rs:609:5:609:13 | print_i64 | main.rs:609:15:609:15 | x | | -| main.rs:609:5:609:20 | print_i64(...) | main.rs:610:5:620:6 | let _ = ... | | -| main.rs:609:5:609:21 | ExprStmt | main.rs:609:5:609:13 | print_i64 | | -| main.rs:609:15:609:15 | x | main.rs:609:19:609:19 | 1 | | -| main.rs:609:15:609:19 | ... + ... | main.rs:609:5:609:20 | print_i64(...) | | -| main.rs:609:19:609:19 | 1 | main.rs:609:15:609:19 | ... + ... | | -| main.rs:610:5:620:6 | let _ = ... | main.rs:611:16:611:16 | b | | -| main.rs:611:9:611:9 | _ | main.rs:621:5:621:17 | ExprStmt | match | -| main.rs:611:13:620:5 | if b {...} else {...} | main.rs:611:9:611:9 | _ | | -| main.rs:611:16:611:16 | b | main.rs:613:9:613:14 | ExprStmt | true | -| main.rs:611:16:611:16 | b | main.rs:617:9:617:14 | ExprStmt | false | -| main.rs:612:5:616:5 | { ... } | main.rs:611:13:620:5 | if b {...} else {...} | | -| main.rs:613:9:613:9 | x | main.rs:613:13:613:13 | 2 | | -| main.rs:613:9:613:13 | ... = ... | main.rs:614:9:614:21 | ExprStmt | | -| main.rs:613:9:613:14 | ExprStmt | main.rs:613:9:613:9 | x | | -| main.rs:613:13:613:13 | 2 | main.rs:613:9:613:13 | ... = ... | | -| main.rs:614:9:614:17 | print_i64 | main.rs:614:19:614:19 | x | | -| main.rs:614:9:614:20 | print_i64(...) | main.rs:615:9:615:25 | ExprStmt | | -| main.rs:614:9:614:21 | ExprStmt | main.rs:614:9:614:17 | print_i64 | | -| main.rs:614:19:614:19 | x | main.rs:614:9:614:20 | print_i64(...) | | -| main.rs:615:9:615:17 | print_i64 | main.rs:615:19:615:19 | x | | -| main.rs:615:9:615:24 | print_i64(...) | main.rs:612:5:616:5 | { ... } | | -| main.rs:615:9:615:25 | ExprStmt | main.rs:615:9:615:17 | print_i64 | | -| main.rs:615:19:615:19 | x | main.rs:615:23:615:23 | 1 | | -| main.rs:615:19:615:23 | ... + ... | main.rs:615:9:615:24 | print_i64(...) | | -| main.rs:615:23:615:23 | 1 | main.rs:615:19:615:23 | ... + ... | | -| main.rs:616:12:620:5 | { ... } | main.rs:611:13:620:5 | if b {...} else {...} | | -| main.rs:617:9:617:9 | x | main.rs:617:13:617:13 | 3 | | -| main.rs:617:9:617:13 | ... = ... | main.rs:618:9:618:21 | ExprStmt | | -| main.rs:617:9:617:14 | ExprStmt | main.rs:617:9:617:9 | x | | +| main.rs:443:15:443:16 | b4 | main.rs:443:5:443:17 | print_i64(...) | | +| main.rs:444:5:444:13 | print_i64 | main.rs:444:15:444:16 | c2 | | +| main.rs:444:5:444:17 | print_i64(...) | main.rs:446:5:454:6 | ExprStmt | | +| main.rs:444:5:444:18 | ExprStmt | main.rs:444:5:444:13 | print_i64 | | +| main.rs:444:15:444:16 | c2 | main.rs:444:5:444:17 | print_i64(...) | | +| main.rs:446:5:450:5 | TupleExpr | main.rs:451:9:451:11 | a10 | | +| main.rs:446:5:454:5 | ... = ... | main.rs:455:5:455:19 | ExprStmt | | +| main.rs:446:5:454:6 | ExprStmt | main.rs:447:9:447:10 | c2 | | +| main.rs:447:9:447:10 | c2 | main.rs:448:9:448:10 | b4 | | +| main.rs:448:9:448:10 | b4 | main.rs:449:9:449:11 | a10 | | +| main.rs:449:9:449:11 | a10 | main.rs:446:5:450:5 | TupleExpr | | +| main.rs:450:9:454:5 | TupleExpr | main.rs:446:5:454:5 | ... = ... | | +| main.rs:451:9:451:11 | a10 | main.rs:452:9:452:10 | b4 | | +| main.rs:452:9:452:10 | b4 | main.rs:453:9:453:10 | c2 | | +| main.rs:453:9:453:10 | c2 | main.rs:450:9:454:5 | TupleExpr | | +| main.rs:455:5:455:13 | print_i64 | main.rs:455:15:455:17 | a10 | | +| main.rs:455:5:455:18 | print_i64(...) | main.rs:456:5:456:18 | ExprStmt | | +| main.rs:455:5:455:19 | ExprStmt | main.rs:455:5:455:13 | print_i64 | | +| main.rs:455:15:455:17 | a10 | main.rs:455:5:455:18 | print_i64(...) | | +| main.rs:456:5:456:13 | print_i64 | main.rs:456:15:456:16 | b4 | | +| main.rs:456:5:456:17 | print_i64(...) | main.rs:457:5:457:18 | ExprStmt | | +| main.rs:456:5:456:18 | ExprStmt | main.rs:456:5:456:13 | print_i64 | | +| main.rs:456:15:456:16 | b4 | main.rs:456:5:456:17 | print_i64(...) | | +| main.rs:457:5:457:13 | print_i64 | main.rs:457:15:457:16 | c2 | | +| main.rs:457:5:457:17 | print_i64(...) | main.rs:459:5:467:5 | ExprStmt | | +| main.rs:457:5:457:18 | ExprStmt | main.rs:457:5:457:13 | print_i64 | | +| main.rs:457:15:457:16 | c2 | main.rs:457:5:457:17 | print_i64(...) | | +| main.rs:459:5:467:5 | ExprStmt | main.rs:459:12:459:12 | 4 | | +| main.rs:459:5:467:5 | match ... { ... } | main.rs:469:5:469:19 | ExprStmt | | +| main.rs:459:11:459:16 | TupleExpr | main.rs:460:9:463:9 | TuplePat | | +| main.rs:459:12:459:12 | 4 | main.rs:459:15:459:15 | 5 | | +| main.rs:459:15:459:15 | 5 | main.rs:459:11:459:16 | TupleExpr | | +| main.rs:460:9:463:9 | TuplePat | main.rs:461:13:461:15 | a10 | match | +| main.rs:461:13:461:15 | a10 | main.rs:461:13:461:15 | a10 | | +| main.rs:461:13:461:15 | a10 | main.rs:462:13:462:14 | b4 | match | +| main.rs:462:13:462:14 | b4 | main.rs:462:13:462:14 | b4 | | +| main.rs:462:13:462:14 | b4 | main.rs:464:13:464:27 | ExprStmt | match | +| main.rs:463:14:466:9 | { ... } | main.rs:459:5:467:5 | match ... { ... } | | +| main.rs:464:13:464:21 | print_i64 | main.rs:464:23:464:25 | a10 | | +| main.rs:464:13:464:26 | print_i64(...) | main.rs:465:13:465:26 | ExprStmt | | +| main.rs:464:13:464:27 | ExprStmt | main.rs:464:13:464:21 | print_i64 | | +| main.rs:464:23:464:25 | a10 | main.rs:464:13:464:26 | print_i64(...) | | +| main.rs:465:13:465:21 | print_i64 | main.rs:465:23:465:24 | b4 | | +| main.rs:465:13:465:25 | print_i64(...) | main.rs:463:14:466:9 | { ... } | | +| main.rs:465:13:465:26 | ExprStmt | main.rs:465:13:465:21 | print_i64 | | +| main.rs:465:23:465:24 | b4 | main.rs:465:13:465:25 | print_i64(...) | | +| main.rs:469:5:469:13 | print_i64 | main.rs:469:15:469:17 | a10 | | +| main.rs:469:5:469:18 | print_i64(...) | main.rs:470:5:470:18 | ExprStmt | | +| main.rs:469:5:469:19 | ExprStmt | main.rs:469:5:469:13 | print_i64 | | +| main.rs:469:15:469:17 | a10 | main.rs:469:5:469:18 | print_i64(...) | | +| main.rs:470:5:470:13 | print_i64 | main.rs:470:15:470:16 | b4 | | +| main.rs:470:5:470:17 | print_i64(...) | main.rs:436:26:471:1 | { ... } | | +| main.rs:470:5:470:18 | ExprStmt | main.rs:470:5:470:13 | print_i64 | | +| main.rs:470:15:470:16 | b4 | main.rs:470:5:470:17 | print_i64(...) | | +| main.rs:473:1:488:1 | enter fn closure_variable | main.rs:474:5:476:10 | let ... = ... | | +| main.rs:473:1:488:1 | exit fn closure_variable (normal) | main.rs:473:1:488:1 | exit fn closure_variable | | +| main.rs:473:23:488:1 | { ... } | main.rs:473:1:488:1 | exit fn closure_variable (normal) | | +| main.rs:474:5:476:10 | let ... = ... | main.rs:475:9:476:9 | \|...\| x | | +| main.rs:474:9:474:23 | example_closure | main.rs:474:9:474:23 | example_closure | | +| main.rs:474:9:474:23 | example_closure | main.rs:477:5:478:27 | let ... = ... | match | +| main.rs:475:9:476:9 | \|...\| x | main.rs:474:9:474:23 | example_closure | | +| main.rs:475:9:476:9 | enter \|...\| x | main.rs:475:10:475:10 | x | | +| main.rs:475:9:476:9 | exit \|...\| x (normal) | main.rs:475:9:476:9 | exit \|...\| x | | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:10 | x | | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:15 | ...: i64 | match | +| main.rs:475:10:475:15 | ...: i64 | main.rs:476:9:476:9 | x | | +| main.rs:476:9:476:9 | x | main.rs:475:9:476:9 | exit \|...\| x (normal) | | +| main.rs:477:5:478:27 | let ... = ... | main.rs:478:9:478:23 | example_closure | | +| main.rs:477:9:477:10 | n1 | main.rs:477:9:477:10 | n1 | | +| main.rs:477:9:477:10 | n1 | main.rs:479:5:479:18 | ExprStmt | match | +| main.rs:478:9:478:23 | example_closure | main.rs:478:25:478:25 | 5 | | +| main.rs:478:9:478:26 | example_closure(...) | main.rs:477:9:477:10 | n1 | | +| main.rs:478:25:478:25 | 5 | main.rs:478:9:478:26 | example_closure(...) | | +| main.rs:479:5:479:13 | print_i64 | main.rs:479:15:479:16 | n1 | | +| main.rs:479:5:479:17 | print_i64(...) | main.rs:481:5:481:25 | ExprStmt | | +| main.rs:479:5:479:18 | ExprStmt | main.rs:479:5:479:13 | print_i64 | | +| main.rs:479:15:479:16 | n1 | main.rs:479:5:479:17 | print_i64(...) | | +| main.rs:481:5:481:22 | immutable_variable | main.rs:481:5:481:24 | immutable_variable(...) | | +| main.rs:481:5:481:24 | immutable_variable(...) | main.rs:482:5:484:10 | let ... = ... | | +| main.rs:481:5:481:25 | ExprStmt | main.rs:481:5:481:22 | immutable_variable | | +| main.rs:482:5:484:10 | let ... = ... | main.rs:483:5:484:9 | \|...\| x | | +| main.rs:482:9:482:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | | +| main.rs:482:9:482:26 | immutable_variable | main.rs:485:5:486:30 | let ... = ... | match | +| main.rs:483:5:484:9 | \|...\| x | main.rs:482:9:482:26 | immutable_variable | | +| main.rs:483:5:484:9 | enter \|...\| x | main.rs:483:6:483:6 | x | | +| main.rs:483:5:484:9 | exit \|...\| x (normal) | main.rs:483:5:484:9 | exit \|...\| x | | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:6 | x | | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:11 | ...: i64 | match | +| main.rs:483:6:483:11 | ...: i64 | main.rs:484:9:484:9 | x | | +| main.rs:484:9:484:9 | x | main.rs:483:5:484:9 | exit \|...\| x (normal) | | +| main.rs:485:5:486:30 | let ... = ... | main.rs:486:9:486:26 | immutable_variable | | +| main.rs:485:9:485:10 | n2 | main.rs:485:9:485:10 | n2 | | +| main.rs:485:9:485:10 | n2 | main.rs:487:5:487:18 | ExprStmt | match | +| main.rs:486:9:486:26 | immutable_variable | main.rs:486:28:486:28 | 6 | | +| main.rs:486:9:486:29 | immutable_variable(...) | main.rs:485:9:485:10 | n2 | | +| main.rs:486:28:486:28 | 6 | main.rs:486:9:486:29 | immutable_variable(...) | | +| main.rs:487:5:487:13 | print_i64 | main.rs:487:15:487:16 | n2 | | +| main.rs:487:5:487:17 | print_i64(...) | main.rs:473:23:488:1 | { ... } | | +| main.rs:487:5:487:18 | ExprStmt | main.rs:487:5:487:13 | print_i64 | | +| main.rs:487:15:487:16 | n2 | main.rs:487:5:487:17 | print_i64(...) | | +| main.rs:490:1:520:1 | enter fn nested_function | main.rs:492:5:494:10 | let ... = ... | | +| main.rs:490:1:520:1 | exit fn nested_function (normal) | main.rs:490:1:520:1 | exit fn nested_function | | +| main.rs:490:22:520:1 | { ... } | main.rs:490:1:520:1 | exit fn nested_function (normal) | | +| main.rs:492:5:494:10 | let ... = ... | main.rs:493:9:494:9 | \|...\| x | | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | | +| main.rs:492:9:492:9 | f | main.rs:495:5:495:20 | ExprStmt | match | +| main.rs:493:9:494:9 | \|...\| x | main.rs:492:9:492:9 | f | | +| main.rs:493:9:494:9 | enter \|...\| x | main.rs:493:10:493:10 | x | | +| main.rs:493:9:494:9 | exit \|...\| x (normal) | main.rs:493:9:494:9 | exit \|...\| x | | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:10 | x | | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:15 | ...: i64 | match | +| main.rs:493:10:493:15 | ...: i64 | main.rs:494:9:494:9 | x | | +| main.rs:494:9:494:9 | x | main.rs:493:9:494:9 | exit \|...\| x (normal) | | +| main.rs:495:5:495:13 | print_i64 | main.rs:495:15:495:15 | f | | +| main.rs:495:5:495:19 | print_i64(...) | main.rs:497:5:500:5 | fn f | | +| main.rs:495:5:495:20 | ExprStmt | main.rs:495:5:495:13 | print_i64 | | +| main.rs:495:15:495:15 | f | main.rs:495:17:495:17 | 1 | | +| main.rs:495:15:495:18 | f(...) | main.rs:495:5:495:19 | print_i64(...) | | +| main.rs:495:17:495:17 | 1 | main.rs:495:15:495:18 | f(...) | | +| main.rs:497:5:500:5 | enter fn f | main.rs:497:10:497:10 | x | | +| main.rs:497:5:500:5 | exit fn f (normal) | main.rs:497:5:500:5 | exit fn f | | +| main.rs:497:5:500:5 | fn f | main.rs:502:5:502:20 | ExprStmt | | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:10 | x | | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:15 | ...: i64 | match | +| main.rs:497:10:497:15 | ...: i64 | main.rs:499:9:499:9 | x | | +| main.rs:498:5:500:5 | { ... } | main.rs:497:5:500:5 | exit fn f (normal) | | +| main.rs:499:9:499:9 | x | main.rs:499:13:499:13 | 1 | | +| main.rs:499:9:499:13 | ... + ... | main.rs:498:5:500:5 | { ... } | | +| main.rs:499:13:499:13 | 1 | main.rs:499:9:499:13 | ... + ... | | +| main.rs:502:5:502:13 | print_i64 | main.rs:502:15:502:15 | f | | +| main.rs:502:5:502:19 | print_i64(...) | main.rs:505:9:505:24 | ExprStmt | | +| main.rs:502:5:502:20 | ExprStmt | main.rs:502:5:502:13 | print_i64 | | +| main.rs:502:15:502:15 | f | main.rs:502:17:502:17 | 2 | | +| main.rs:502:15:502:18 | f(...) | main.rs:502:5:502:19 | print_i64(...) | | +| main.rs:502:17:502:17 | 2 | main.rs:502:15:502:18 | f(...) | | +| main.rs:504:5:519:5 | { ... } | main.rs:490:22:520:1 | { ... } | | +| main.rs:505:9:505:17 | print_i64 | main.rs:505:19:505:19 | f | | +| main.rs:505:9:505:23 | print_i64(...) | main.rs:506:9:509:9 | fn f | | +| main.rs:505:9:505:24 | ExprStmt | main.rs:505:9:505:17 | print_i64 | | +| main.rs:505:19:505:19 | f | main.rs:505:21:505:21 | 3 | | +| main.rs:505:19:505:22 | f(...) | main.rs:505:9:505:23 | print_i64(...) | | +| main.rs:505:21:505:21 | 3 | main.rs:505:19:505:22 | f(...) | | +| main.rs:506:9:509:9 | enter fn f | main.rs:506:14:506:14 | x | | +| main.rs:506:9:509:9 | exit fn f (normal) | main.rs:506:9:509:9 | exit fn f | | +| main.rs:506:9:509:9 | fn f | main.rs:511:9:513:9 | ExprStmt | | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:14 | x | | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:19 | ...: i64 | match | +| main.rs:506:14:506:19 | ...: i64 | main.rs:508:13:508:13 | 2 | | +| main.rs:507:9:509:9 | { ... } | main.rs:506:9:509:9 | exit fn f (normal) | | +| main.rs:508:13:508:13 | 2 | main.rs:508:17:508:17 | x | | +| main.rs:508:13:508:17 | ... * ... | main.rs:507:9:509:9 | { ... } | | +| main.rs:508:17:508:17 | x | main.rs:508:13:508:17 | ... * ... | | +| main.rs:511:9:513:9 | ExprStmt | main.rs:512:13:512:28 | ExprStmt | | +| main.rs:511:9:513:9 | { ... } | main.rs:515:9:517:14 | let ... = ... | | +| main.rs:512:13:512:21 | print_i64 | main.rs:512:23:512:23 | f | | +| main.rs:512:13:512:27 | print_i64(...) | main.rs:511:9:513:9 | { ... } | | +| main.rs:512:13:512:28 | ExprStmt | main.rs:512:13:512:21 | print_i64 | | +| main.rs:512:23:512:23 | f | main.rs:512:25:512:25 | 4 | | +| main.rs:512:23:512:26 | f(...) | main.rs:512:13:512:27 | print_i64(...) | | +| main.rs:512:25:512:25 | 4 | main.rs:512:23:512:26 | f(...) | | +| main.rs:515:9:517:14 | let ... = ... | main.rs:516:13:517:13 | \|...\| x | | +| main.rs:515:13:515:13 | f | main.rs:515:13:515:13 | f | | +| main.rs:515:13:515:13 | f | main.rs:518:9:518:24 | ExprStmt | match | +| main.rs:516:13:517:13 | \|...\| x | main.rs:515:13:515:13 | f | | +| main.rs:516:13:517:13 | enter \|...\| x | main.rs:516:14:516:14 | x | | +| main.rs:516:13:517:13 | exit \|...\| x (normal) | main.rs:516:13:517:13 | exit \|...\| x | | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:14 | x | | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:19 | ...: i64 | match | +| main.rs:516:14:516:19 | ...: i64 | main.rs:517:13:517:13 | x | | +| main.rs:517:13:517:13 | x | main.rs:516:13:517:13 | exit \|...\| x (normal) | | +| main.rs:518:9:518:17 | print_i64 | main.rs:518:19:518:19 | f | | +| main.rs:518:9:518:23 | print_i64(...) | main.rs:504:5:519:5 | { ... } | | +| main.rs:518:9:518:24 | ExprStmt | main.rs:518:9:518:17 | print_i64 | | +| main.rs:518:19:518:19 | f | main.rs:518:21:518:21 | 5 | | +| main.rs:518:19:518:22 | f(...) | main.rs:518:9:518:23 | print_i64(...) | | +| main.rs:518:21:518:21 | 5 | main.rs:518:19:518:22 | f(...) | | +| main.rs:522:1:529:1 | enter fn for_variable | main.rs:523:5:523:42 | let ... = ... | | +| main.rs:522:1:529:1 | exit fn for_variable (normal) | main.rs:522:1:529:1 | exit fn for_variable | | +| main.rs:522:19:529:1 | { ... } | main.rs:522:1:529:1 | exit fn for_variable (normal) | | +| main.rs:523:5:523:42 | let ... = ... | main.rs:523:15:523:22 | "apples" | | +| main.rs:523:9:523:9 | v | main.rs:523:9:523:9 | v | | +| main.rs:523:9:523:9 | v | main.rs:526:12:526:12 | v | match | +| main.rs:523:13:523:41 | &... | main.rs:523:9:523:9 | v | | +| main.rs:523:14:523:41 | [...] | main.rs:523:13:523:41 | &... | | +| main.rs:523:15:523:22 | "apples" | main.rs:523:25:523:30 | "cake" | | +| main.rs:523:25:523:30 | "cake" | main.rs:523:33:523:40 | "coffee" | | +| main.rs:523:33:523:40 | "coffee" | main.rs:523:14:523:41 | [...] | | +| main.rs:525:5:528:5 | for ... in ... { ... } | main.rs:522:19:529:1 | { ... } | | +| main.rs:525:9:525:12 | text | main.rs:525:5:528:5 | for ... in ... { ... } | no-match | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | text | | +| main.rs:525:9:525:12 | text | main.rs:527:9:527:24 | ExprStmt | match | +| main.rs:526:12:526:12 | v | main.rs:525:9:525:12 | text | | +| main.rs:526:14:528:5 | { ... } | main.rs:525:9:525:12 | text | | +| main.rs:527:9:527:17 | print_str | main.rs:527:19:527:22 | text | | +| main.rs:527:9:527:23 | print_str(...) | main.rs:526:14:528:5 | { ... } | | +| main.rs:527:9:527:24 | ExprStmt | main.rs:527:9:527:17 | print_str | | +| main.rs:527:19:527:22 | text | main.rs:527:9:527:23 | print_str(...) | | +| main.rs:531:1:537:1 | enter fn add_assign | main.rs:532:5:532:18 | let ... = 0 | | +| main.rs:531:1:537:1 | exit fn add_assign (normal) | main.rs:531:1:537:1 | exit fn add_assign | | +| main.rs:531:17:537:1 | { ... } | main.rs:531:1:537:1 | exit fn add_assign (normal) | | +| main.rs:532:5:532:18 | let ... = 0 | main.rs:532:17:532:17 | 0 | | +| main.rs:532:9:532:13 | mut a | main.rs:533:5:533:11 | ExprStmt | match | +| main.rs:532:13:532:13 | a | main.rs:532:9:532:13 | mut a | | +| main.rs:532:17:532:17 | 0 | main.rs:532:13:532:13 | a | | +| main.rs:533:5:533:5 | a | main.rs:533:10:533:10 | 1 | | +| main.rs:533:5:533:10 | ... += ... | main.rs:534:5:534:17 | ExprStmt | | +| main.rs:533:5:533:11 | ExprStmt | main.rs:533:5:533:5 | a | | +| main.rs:533:10:533:10 | 1 | main.rs:533:5:533:10 | ... += ... | | +| main.rs:534:5:534:13 | print_i64 | main.rs:534:15:534:15 | a | | +| main.rs:534:5:534:16 | print_i64(...) | main.rs:535:5:535:28 | ExprStmt | | +| main.rs:534:5:534:17 | ExprStmt | main.rs:534:5:534:13 | print_i64 | | +| main.rs:534:15:534:15 | a | main.rs:534:5:534:16 | print_i64(...) | | +| main.rs:535:5:535:27 | ... .add_assign(...) | main.rs:536:5:536:17 | ExprStmt | | +| main.rs:535:5:535:28 | ExprStmt | main.rs:535:11:535:11 | a | | +| main.rs:535:6:535:11 | &mut a | main.rs:535:25:535:26 | 10 | | +| main.rs:535:11:535:11 | a | main.rs:535:6:535:11 | &mut a | | +| main.rs:535:25:535:26 | 10 | main.rs:535:5:535:27 | ... .add_assign(...) | | +| main.rs:536:5:536:13 | print_i64 | main.rs:536:15:536:15 | a | | +| main.rs:536:5:536:16 | print_i64(...) | main.rs:531:17:537:1 | { ... } | | +| main.rs:536:5:536:17 | ExprStmt | main.rs:536:5:536:13 | print_i64 | | +| main.rs:536:15:536:15 | a | main.rs:536:5:536:16 | print_i64(...) | | +| main.rs:539:1:545:1 | enter fn mutate | main.rs:540:5:540:18 | let ... = 1 | | +| main.rs:539:1:545:1 | exit fn mutate (normal) | main.rs:539:1:545:1 | exit fn mutate | | +| main.rs:539:13:545:1 | { ... } | main.rs:539:1:545:1 | exit fn mutate (normal) | | +| main.rs:540:5:540:18 | let ... = 1 | main.rs:540:17:540:17 | 1 | | +| main.rs:540:9:540:13 | mut i | main.rs:541:5:542:15 | let ... = ... | match | +| main.rs:540:13:540:13 | i | main.rs:540:9:540:13 | mut i | | +| main.rs:540:17:540:17 | 1 | main.rs:540:13:540:13 | i | | +| main.rs:541:5:542:15 | let ... = ... | main.rs:542:14:542:14 | i | | +| main.rs:541:9:541:13 | ref_i | main.rs:541:9:541:13 | ref_i | | +| main.rs:541:9:541:13 | ref_i | main.rs:543:5:543:15 | ExprStmt | match | +| main.rs:542:9:542:14 | &mut i | main.rs:541:9:541:13 | ref_i | | +| main.rs:542:14:542:14 | i | main.rs:542:9:542:14 | &mut i | | +| main.rs:543:5:543:10 | * ... | main.rs:543:14:543:14 | 2 | | +| main.rs:543:5:543:14 | ... = ... | main.rs:544:5:544:17 | ExprStmt | | +| main.rs:543:5:543:15 | ExprStmt | main.rs:543:6:543:10 | ref_i | | +| main.rs:543:6:543:10 | ref_i | main.rs:543:5:543:10 | * ... | | +| main.rs:543:14:543:14 | 2 | main.rs:543:5:543:14 | ... = ... | | +| main.rs:544:5:544:13 | print_i64 | main.rs:544:15:544:15 | i | | +| main.rs:544:5:544:16 | print_i64(...) | main.rs:539:13:545:1 | { ... } | | +| main.rs:544:5:544:17 | ExprStmt | main.rs:544:5:544:13 | print_i64 | | +| main.rs:544:15:544:15 | i | main.rs:544:5:544:16 | print_i64(...) | | +| main.rs:547:1:552:1 | enter fn mutate_param | main.rs:547:17:547:17 | x | | +| main.rs:547:1:552:1 | exit fn mutate_param (normal) | main.rs:547:1:552:1 | exit fn mutate_param | | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:27 | ...: ... | match | +| main.rs:547:17:547:27 | ...: ... | main.rs:548:5:550:11 | ExprStmt | | +| main.rs:548:5:548:6 | * ... | main.rs:549:10:549:10 | x | | +| main.rs:548:5:550:10 | ... = ... | main.rs:551:5:551:13 | ExprStmt | | +| main.rs:548:5:550:11 | ExprStmt | main.rs:548:6:548:6 | x | | +| main.rs:548:6:548:6 | x | main.rs:548:5:548:6 | * ... | | +| main.rs:549:9:549:10 | * ... | main.rs:550:10:550:10 | x | | +| main.rs:549:9:550:10 | ... + ... | main.rs:548:5:550:10 | ... = ... | | +| main.rs:549:10:549:10 | x | main.rs:549:9:549:10 | * ... | | +| main.rs:550:9:550:10 | * ... | main.rs:549:9:550:10 | ... + ... | | +| main.rs:550:10:550:10 | x | main.rs:550:9:550:10 | * ... | | +| main.rs:551:5:551:12 | return x | main.rs:547:1:552:1 | exit fn mutate_param (normal) | return | +| main.rs:551:5:551:13 | ExprStmt | main.rs:551:12:551:12 | x | | +| main.rs:551:12:551:12 | x | main.rs:551:5:551:12 | return x | | +| main.rs:554:1:560:1 | enter fn mutate_param2 | main.rs:554:22:554:22 | x | | +| main.rs:554:1:560:1 | exit fn mutate_param2 (normal) | main.rs:554:1:560:1 | exit fn mutate_param2 | | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:35 | ...: ... | match | +| main.rs:554:22:554:35 | ...: ... | main.rs:554:38:554:38 | y | | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:38 | y | | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:56 | ...: ... | match | +| main.rs:554:38:554:56 | ...: ... | main.rs:555:5:557:11 | ExprStmt | | +| main.rs:554:59:560:1 | { ... } | main.rs:554:1:560:1 | exit fn mutate_param2 (normal) | | +| main.rs:555:5:555:6 | * ... | main.rs:556:10:556:10 | x | | +| main.rs:555:5:557:10 | ... = ... | main.rs:558:5:559:10 | ExprStmt | | +| main.rs:555:5:557:11 | ExprStmt | main.rs:555:6:555:6 | x | | +| main.rs:555:6:555:6 | x | main.rs:555:5:555:6 | * ... | | +| main.rs:556:9:556:10 | * ... | main.rs:557:10:557:10 | x | | +| main.rs:556:9:557:10 | ... + ... | main.rs:555:5:557:10 | ... = ... | | +| main.rs:556:10:556:10 | x | main.rs:556:9:556:10 | * ... | | +| main.rs:557:9:557:10 | * ... | main.rs:556:9:557:10 | ... + ... | | +| main.rs:557:10:557:10 | x | main.rs:557:9:557:10 | * ... | | +| main.rs:558:5:558:6 | * ... | main.rs:559:9:559:9 | x | | +| main.rs:558:5:559:9 | ... = ... | main.rs:554:59:560:1 | { ... } | | +| main.rs:558:5:559:10 | ExprStmt | main.rs:558:6:558:6 | y | | +| main.rs:558:6:558:6 | y | main.rs:558:5:558:6 | * ... | | +| main.rs:559:9:559:9 | x | main.rs:558:5:559:9 | ... = ... | | +| main.rs:562:1:582:1 | enter fn mutate_arg | main.rs:563:5:563:18 | let ... = 2 | | +| main.rs:562:1:582:1 | exit fn mutate_arg (normal) | main.rs:562:1:582:1 | exit fn mutate_arg | | +| main.rs:562:17:582:1 | { ... } | main.rs:562:1:582:1 | exit fn mutate_arg (normal) | | +| main.rs:563:5:563:18 | let ... = 2 | main.rs:563:17:563:17 | 2 | | +| main.rs:563:9:563:13 | mut x | main.rs:564:5:565:29 | let ... = ... | match | +| main.rs:563:13:563:13 | x | main.rs:563:9:563:13 | mut x | | +| main.rs:563:17:563:17 | 2 | main.rs:563:13:563:13 | x | | +| main.rs:564:5:565:29 | let ... = ... | main.rs:565:9:565:20 | mutate_param | | +| main.rs:564:9:564:9 | y | main.rs:564:9:564:9 | y | | +| main.rs:564:9:564:9 | y | main.rs:566:5:566:12 | ExprStmt | match | +| main.rs:565:9:565:20 | mutate_param | main.rs:565:27:565:27 | x | | +| main.rs:565:9:565:28 | mutate_param(...) | main.rs:564:9:564:9 | y | | +| main.rs:565:22:565:27 | &mut x | main.rs:565:9:565:28 | mutate_param(...) | | +| main.rs:565:27:565:27 | x | main.rs:565:22:565:27 | &mut x | | +| main.rs:566:5:566:6 | * ... | main.rs:566:10:566:11 | 10 | | +| main.rs:566:5:566:11 | ... = ... | main.rs:569:5:569:17 | ExprStmt | | +| main.rs:566:5:566:12 | ExprStmt | main.rs:566:6:566:6 | y | | +| main.rs:566:6:566:6 | y | main.rs:566:5:566:6 | * ... | | +| main.rs:566:10:566:11 | 10 | main.rs:566:5:566:11 | ... = ... | | +| main.rs:569:5:569:13 | print_i64 | main.rs:569:15:569:15 | x | | +| main.rs:569:5:569:16 | print_i64(...) | main.rs:571:5:571:18 | let ... = 4 | | +| main.rs:569:5:569:17 | ExprStmt | main.rs:569:5:569:13 | print_i64 | | +| main.rs:569:15:569:15 | x | main.rs:569:5:569:16 | print_i64(...) | | +| main.rs:571:5:571:18 | let ... = 4 | main.rs:571:17:571:17 | 4 | | +| main.rs:571:9:571:13 | mut z | main.rs:572:5:573:20 | let ... = ... | match | +| main.rs:571:13:571:13 | z | main.rs:571:9:571:13 | mut z | | +| main.rs:571:17:571:17 | 4 | main.rs:571:13:571:13 | z | | +| main.rs:572:5:573:20 | let ... = ... | main.rs:573:19:573:19 | x | | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | | +| main.rs:572:9:572:9 | w | main.rs:574:5:577:6 | ExprStmt | match | +| main.rs:573:9:573:19 | &mut ... | main.rs:572:9:572:9 | w | | +| main.rs:573:14:573:19 | &mut x | main.rs:573:9:573:19 | &mut ... | | +| main.rs:573:19:573:19 | x | main.rs:573:14:573:19 | &mut x | | +| main.rs:574:5:574:17 | mutate_param2 | main.rs:575:14:575:14 | z | | +| main.rs:574:5:577:5 | mutate_param2(...) | main.rs:578:5:578:13 | ExprStmt | | +| main.rs:574:5:577:6 | ExprStmt | main.rs:574:5:574:17 | mutate_param2 | | +| main.rs:575:9:575:14 | &mut z | main.rs:576:9:576:9 | w | | +| main.rs:575:14:575:14 | z | main.rs:575:9:575:14 | &mut z | | +| main.rs:576:9:576:9 | w | main.rs:574:5:577:5 | mutate_param2(...) | | +| main.rs:578:5:578:7 | * ... | main.rs:578:11:578:12 | 11 | | +| main.rs:578:5:578:12 | ... = ... | main.rs:581:5:581:17 | ExprStmt | | +| main.rs:578:5:578:13 | ExprStmt | main.rs:578:7:578:7 | w | | +| main.rs:578:6:578:7 | * ... | main.rs:578:5:578:7 | * ... | | +| main.rs:578:7:578:7 | w | main.rs:578:6:578:7 | * ... | | +| main.rs:578:11:578:12 | 11 | main.rs:578:5:578:12 | ... = ... | | +| main.rs:581:5:581:13 | print_i64 | main.rs:581:15:581:15 | z | | +| main.rs:581:5:581:16 | print_i64(...) | main.rs:562:17:582:1 | { ... } | | +| main.rs:581:5:581:17 | ExprStmt | main.rs:581:5:581:13 | print_i64 | | +| main.rs:581:15:581:15 | z | main.rs:581:5:581:16 | print_i64(...) | | +| main.rs:584:1:590:1 | enter fn alias | main.rs:585:5:585:18 | let ... = 1 | | +| main.rs:584:1:590:1 | exit fn alias (normal) | main.rs:584:1:590:1 | exit fn alias | | +| main.rs:584:12:590:1 | { ... } | main.rs:584:1:590:1 | exit fn alias (normal) | | +| main.rs:585:5:585:18 | let ... = 1 | main.rs:585:17:585:17 | 1 | | +| main.rs:585:9:585:13 | mut x | main.rs:586:5:587:15 | let ... = ... | match | +| main.rs:585:13:585:13 | x | main.rs:585:9:585:13 | mut x | | +| main.rs:585:17:585:17 | 1 | main.rs:585:13:585:13 | x | | +| main.rs:586:5:587:15 | let ... = ... | main.rs:587:14:587:14 | x | | +| main.rs:586:9:586:9 | y | main.rs:586:9:586:9 | y | | +| main.rs:586:9:586:9 | y | main.rs:588:5:588:11 | ExprStmt | match | +| main.rs:587:9:587:14 | &mut x | main.rs:586:9:586:9 | y | | +| main.rs:587:14:587:14 | x | main.rs:587:9:587:14 | &mut x | | +| main.rs:588:5:588:6 | * ... | main.rs:588:10:588:10 | 2 | | +| main.rs:588:5:588:10 | ... = ... | main.rs:589:5:589:17 | ExprStmt | | +| main.rs:588:5:588:11 | ExprStmt | main.rs:588:6:588:6 | y | | +| main.rs:588:6:588:6 | y | main.rs:588:5:588:6 | * ... | | +| main.rs:588:10:588:10 | 2 | main.rs:588:5:588:10 | ... = ... | | +| main.rs:589:5:589:13 | print_i64 | main.rs:589:15:589:15 | x | | +| main.rs:589:5:589:16 | print_i64(...) | main.rs:584:12:590:1 | { ... } | | +| main.rs:589:5:589:17 | ExprStmt | main.rs:589:5:589:13 | print_i64 | | +| main.rs:589:15:589:15 | x | main.rs:589:5:589:16 | print_i64(...) | | +| main.rs:592:1:601:1 | enter fn capture_immut | main.rs:593:5:593:16 | let ... = 100 | | +| main.rs:592:1:601:1 | exit fn capture_immut (normal) | main.rs:592:1:601:1 | exit fn capture_immut | | +| main.rs:592:20:601:1 | { ... } | main.rs:592:1:601:1 | exit fn capture_immut (normal) | | +| main.rs:593:5:593:16 | let ... = 100 | main.rs:593:13:593:15 | 100 | | +| main.rs:593:9:593:9 | x | main.rs:593:9:593:9 | x | | +| main.rs:593:9:593:9 | x | main.rs:596:5:598:6 | let ... = ... | match | +| main.rs:593:13:593:15 | 100 | main.rs:593:9:593:9 | x | | +| main.rs:596:5:598:6 | let ... = ... | main.rs:596:15:598:5 | \|...\| ... | | +| main.rs:596:9:596:11 | cap | main.rs:596:9:596:11 | cap | | +| main.rs:596:9:596:11 | cap | main.rs:599:5:599:10 | ExprStmt | match | +| main.rs:596:15:598:5 | \|...\| ... | main.rs:596:9:596:11 | cap | | +| main.rs:596:15:598:5 | enter \|...\| ... | main.rs:597:9:597:21 | ExprStmt | | +| main.rs:596:15:598:5 | exit \|...\| ... (normal) | main.rs:596:15:598:5 | exit \|...\| ... | | +| main.rs:596:18:598:5 | { ... } | main.rs:596:15:598:5 | exit \|...\| ... (normal) | | +| main.rs:597:9:597:17 | print_i64 | main.rs:597:19:597:19 | x | | +| main.rs:597:9:597:20 | print_i64(...) | main.rs:596:18:598:5 | { ... } | | +| main.rs:597:9:597:21 | ExprStmt | main.rs:597:9:597:17 | print_i64 | | +| main.rs:597:19:597:19 | x | main.rs:597:9:597:20 | print_i64(...) | | +| main.rs:599:5:599:7 | cap | main.rs:599:5:599:9 | cap(...) | | +| main.rs:599:5:599:9 | cap(...) | main.rs:600:5:600:17 | ExprStmt | | +| main.rs:599:5:599:10 | ExprStmt | main.rs:599:5:599:7 | cap | | +| main.rs:600:5:600:13 | print_i64 | main.rs:600:15:600:15 | x | | +| main.rs:600:5:600:16 | print_i64(...) | main.rs:592:20:601:1 | { ... } | | +| main.rs:600:5:600:17 | ExprStmt | main.rs:600:5:600:13 | print_i64 | | +| main.rs:600:15:600:15 | x | main.rs:600:5:600:16 | print_i64(...) | | +| main.rs:603:1:630:1 | enter fn capture_mut | main.rs:604:5:604:18 | let ... = 1 | | +| main.rs:603:1:630:1 | exit fn capture_mut (normal) | main.rs:603:1:630:1 | exit fn capture_mut | | +| main.rs:603:18:630:1 | { ... } | main.rs:603:1:630:1 | exit fn capture_mut (normal) | | +| main.rs:604:5:604:18 | let ... = 1 | main.rs:604:17:604:17 | 1 | | +| main.rs:604:9:604:13 | mut x | main.rs:607:5:609:6 | let ... = ... | match | +| main.rs:604:13:604:13 | x | main.rs:604:9:604:13 | mut x | | +| main.rs:604:17:604:17 | 1 | main.rs:604:13:604:13 | x | | +| main.rs:607:5:609:6 | let ... = ... | main.rs:607:20:609:5 | \|...\| ... | | +| main.rs:607:9:607:16 | closure1 | main.rs:607:9:607:16 | closure1 | | +| main.rs:607:9:607:16 | closure1 | main.rs:610:5:610:15 | ExprStmt | match | +| main.rs:607:20:609:5 | \|...\| ... | main.rs:607:9:607:16 | closure1 | | +| main.rs:607:20:609:5 | enter \|...\| ... | main.rs:608:9:608:21 | ExprStmt | | +| main.rs:607:20:609:5 | exit \|...\| ... (normal) | main.rs:607:20:609:5 | exit \|...\| ... | | +| main.rs:607:23:609:5 | { ... } | main.rs:607:20:609:5 | exit \|...\| ... (normal) | | +| main.rs:608:9:608:17 | print_i64 | main.rs:608:19:608:19 | x | | +| main.rs:608:9:608:20 | print_i64(...) | main.rs:607:23:609:5 | { ... } | | +| main.rs:608:9:608:21 | ExprStmt | main.rs:608:9:608:17 | print_i64 | | +| main.rs:608:19:608:19 | x | main.rs:608:9:608:20 | print_i64(...) | | +| main.rs:610:5:610:12 | closure1 | main.rs:610:5:610:14 | closure1(...) | | +| main.rs:610:5:610:14 | closure1(...) | main.rs:611:5:611:17 | ExprStmt | | +| main.rs:610:5:610:15 | ExprStmt | main.rs:610:5:610:12 | closure1 | | +| main.rs:611:5:611:13 | print_i64 | main.rs:611:15:611:15 | x | | +| main.rs:611:5:611:16 | print_i64(...) | main.rs:613:5:613:18 | let ... = 2 | | +| main.rs:611:5:611:17 | ExprStmt | main.rs:611:5:611:13 | print_i64 | | +| main.rs:611:15:611:15 | x | main.rs:611:5:611:16 | print_i64(...) | | +| main.rs:613:5:613:18 | let ... = 2 | main.rs:613:17:613:17 | 2 | | +| main.rs:613:9:613:13 | mut y | main.rs:616:5:618:6 | let ... = ... | match | +| main.rs:613:13:613:13 | y | main.rs:613:9:613:13 | mut y | | +| main.rs:613:17:613:17 | 2 | main.rs:613:13:613:13 | y | | +| main.rs:616:5:618:6 | let ... = ... | main.rs:616:24:618:5 | \|...\| ... | | +| main.rs:616:9:616:20 | mut closure2 | main.rs:619:5:619:15 | ExprStmt | match | +| main.rs:616:13:616:20 | closure2 | main.rs:616:9:616:20 | mut closure2 | | +| main.rs:616:24:618:5 | \|...\| ... | main.rs:616:13:616:20 | closure2 | | +| main.rs:616:24:618:5 | enter \|...\| ... | main.rs:617:9:617:14 | ExprStmt | | +| main.rs:616:24:618:5 | exit \|...\| ... (normal) | main.rs:616:24:618:5 | exit \|...\| ... | | +| main.rs:616:27:618:5 | { ... } | main.rs:616:24:618:5 | exit \|...\| ... (normal) | | +| main.rs:617:9:617:9 | y | main.rs:617:13:617:13 | 3 | | +| main.rs:617:9:617:13 | ... = ... | main.rs:616:27:618:5 | { ... } | | +| main.rs:617:9:617:14 | ExprStmt | main.rs:617:9:617:9 | y | | | main.rs:617:13:617:13 | 3 | main.rs:617:9:617:13 | ... = ... | | -| main.rs:618:9:618:17 | print_i64 | main.rs:618:19:618:19 | x | | -| main.rs:618:9:618:20 | print_i64(...) | main.rs:619:9:619:25 | ExprStmt | | -| main.rs:618:9:618:21 | ExprStmt | main.rs:618:9:618:17 | print_i64 | | -| main.rs:618:19:618:19 | x | main.rs:618:9:618:20 | print_i64(...) | | -| main.rs:619:9:619:17 | print_i64 | main.rs:619:19:619:19 | x | | -| main.rs:619:9:619:24 | print_i64(...) | main.rs:616:12:620:5 | { ... } | | -| main.rs:619:9:619:25 | ExprStmt | main.rs:619:9:619:17 | print_i64 | | -| main.rs:619:19:619:19 | x | main.rs:619:23:619:23 | 1 | | -| main.rs:619:19:619:23 | ... + ... | main.rs:619:9:619:24 | print_i64(...) | | -| main.rs:619:23:619:23 | 1 | main.rs:619:19:619:23 | ... + ... | | -| main.rs:621:5:621:13 | print_i64 | main.rs:621:15:621:15 | x | | -| main.rs:621:5:621:16 | print_i64(...) | main.rs:606:17:622:1 | { ... } | | -| main.rs:621:5:621:17 | ExprStmt | main.rs:621:5:621:13 | print_i64 | | -| main.rs:621:15:621:15 | x | main.rs:621:5:621:16 | print_i64(...) | | -| main.rs:624:1:641:1 | enter fn phi_read | main.rs:624:13:624:14 | b1 | | -| main.rs:624:1:641:1 | exit fn phi_read (normal) | main.rs:624:1:641:1 | exit fn phi_read | | -| main.rs:624:13:624:14 | b1 | main.rs:624:13:624:14 | b1 | | -| main.rs:624:13:624:14 | b1 | main.rs:624:13:624:20 | ...: bool | match | -| main.rs:624:13:624:20 | ...: bool | main.rs:624:23:624:24 | b2 | | -| main.rs:624:23:624:24 | b2 | main.rs:624:23:624:24 | b2 | | -| main.rs:624:23:624:24 | b2 | main.rs:624:23:624:30 | ...: bool | match | -| main.rs:624:23:624:30 | ...: bool | main.rs:625:5:625:14 | let ... = 1 | | -| main.rs:624:33:641:1 | { ... } | main.rs:624:1:641:1 | exit fn phi_read (normal) | | -| main.rs:625:5:625:14 | let ... = 1 | main.rs:625:13:625:13 | 1 | | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | | -| main.rs:625:9:625:9 | x | main.rs:626:5:632:6 | let _ = ... | match | -| main.rs:625:13:625:13 | 1 | main.rs:625:9:625:9 | x | | -| main.rs:626:5:632:6 | let _ = ... | main.rs:627:16:627:17 | b1 | | -| main.rs:627:9:627:9 | _ | main.rs:634:5:640:6 | let _ = ... | match | -| main.rs:627:13:632:5 | if b1 {...} else {...} | main.rs:627:9:627:9 | _ | | -| main.rs:627:16:627:17 | b1 | main.rs:629:9:629:21 | ExprStmt | true | -| main.rs:627:16:627:17 | b1 | main.rs:631:9:631:21 | ExprStmt | false | -| main.rs:628:5:630:5 | { ... } | main.rs:627:13:632:5 | if b1 {...} else {...} | | -| main.rs:629:9:629:17 | print_i64 | main.rs:629:19:629:19 | x | | -| main.rs:629:9:629:20 | print_i64(...) | main.rs:628:5:630:5 | { ... } | | -| main.rs:629:9:629:21 | ExprStmt | main.rs:629:9:629:17 | print_i64 | | -| main.rs:629:19:629:19 | x | main.rs:629:9:629:20 | print_i64(...) | | -| main.rs:630:12:632:5 | { ... } | main.rs:627:13:632:5 | if b1 {...} else {...} | | -| main.rs:631:9:631:17 | print_i64 | main.rs:631:19:631:19 | x | | -| main.rs:631:9:631:20 | print_i64(...) | main.rs:630:12:632:5 | { ... } | | -| main.rs:631:9:631:21 | ExprStmt | main.rs:631:9:631:17 | print_i64 | | -| main.rs:631:19:631:19 | x | main.rs:631:9:631:20 | print_i64(...) | | -| main.rs:634:5:640:6 | let _ = ... | main.rs:635:16:635:17 | b2 | | -| main.rs:635:9:635:9 | _ | main.rs:624:33:641:1 | { ... } | match | -| main.rs:635:13:640:5 | if b2 {...} else {...} | main.rs:635:9:635:9 | _ | | -| main.rs:635:16:635:17 | b2 | main.rs:637:9:637:21 | ExprStmt | true | -| main.rs:635:16:635:17 | b2 | main.rs:639:9:639:21 | ExprStmt | false | -| main.rs:636:5:638:5 | { ... } | main.rs:635:13:640:5 | if b2 {...} else {...} | | -| main.rs:637:9:637:17 | print_i64 | main.rs:637:19:637:19 | x | | -| main.rs:637:9:637:20 | print_i64(...) | main.rs:636:5:638:5 | { ... } | | -| main.rs:637:9:637:21 | ExprStmt | main.rs:637:9:637:17 | print_i64 | | -| main.rs:637:19:637:19 | x | main.rs:637:9:637:20 | print_i64(...) | | -| main.rs:638:12:640:5 | { ... } | main.rs:635:13:640:5 | if b2 {...} else {...} | | -| main.rs:639:9:639:17 | print_i64 | main.rs:639:19:639:19 | x | | -| main.rs:639:9:639:20 | print_i64(...) | main.rs:638:12:640:5 | { ... } | | -| main.rs:639:9:639:21 | ExprStmt | main.rs:639:9:639:17 | print_i64 | | -| main.rs:639:19:639:19 | x | main.rs:639:9:639:20 | print_i64(...) | | -| main.rs:648:5:650:5 | enter fn my_get | main.rs:648:20:648:23 | self | | -| main.rs:648:5:650:5 | exit fn my_get (normal) | main.rs:648:5:650:5 | exit fn my_get | | -| main.rs:648:15:648:23 | SelfParam | main.rs:649:9:649:24 | ExprStmt | | -| main.rs:648:20:648:23 | self | main.rs:648:15:648:23 | SelfParam | | -| main.rs:649:9:649:23 | return ... | main.rs:648:5:650:5 | exit fn my_get (normal) | return | -| main.rs:649:9:649:24 | ExprStmt | main.rs:649:16:649:19 | self | | -| main.rs:649:16:649:19 | self | main.rs:649:16:649:23 | self.val | | -| main.rs:649:16:649:23 | self.val | main.rs:649:9:649:23 | return ... | | -| main.rs:652:5:654:5 | enter fn id | main.rs:652:11:652:14 | self | | -| main.rs:652:5:654:5 | exit fn id (normal) | main.rs:652:5:654:5 | exit fn id | | -| main.rs:652:11:652:14 | SelfParam | main.rs:653:9:653:12 | self | | -| main.rs:652:11:652:14 | self | main.rs:652:11:652:14 | SelfParam | | -| main.rs:652:25:654:5 | { ... } | main.rs:652:5:654:5 | exit fn id (normal) | | -| main.rs:653:9:653:12 | self | main.rs:652:25:654:5 | { ... } | | -| main.rs:656:5:663:5 | enter fn my_method | main.rs:656:23:656:26 | self | | -| main.rs:656:5:663:5 | exit fn my_method (normal) | main.rs:656:5:663:5 | exit fn my_method | | -| main.rs:656:18:656:26 | SelfParam | main.rs:657:9:660:10 | let ... = ... | | -| main.rs:656:23:656:26 | self | main.rs:656:18:656:26 | SelfParam | | -| main.rs:656:29:663:5 | { ... } | main.rs:656:5:663:5 | exit fn my_method (normal) | | -| main.rs:657:9:660:10 | let ... = ... | main.rs:657:21:660:9 | \|...\| ... | | -| main.rs:657:13:657:17 | mut f | main.rs:661:9:661:13 | ExprStmt | match | -| main.rs:657:17:657:17 | f | main.rs:657:13:657:17 | mut f | | -| main.rs:657:21:660:9 | \|...\| ... | main.rs:657:17:657:17 | f | | -| main.rs:657:21:660:9 | enter \|...\| ... | main.rs:657:22:657:22 | n | | -| main.rs:657:21:660:9 | exit \|...\| ... (normal) | main.rs:657:21:660:9 | exit \|...\| ... | | -| main.rs:657:22:657:22 | ... | main.rs:659:13:659:26 | ExprStmt | | -| main.rs:657:22:657:22 | n | main.rs:657:22:657:22 | ... | match | -| main.rs:657:22:657:22 | n | main.rs:657:22:657:22 | n | | -| main.rs:657:25:660:9 | { ... } | main.rs:657:21:660:9 | exit \|...\| ... (normal) | | -| main.rs:659:13:659:16 | self | main.rs:659:13:659:20 | self.val | | -| main.rs:659:13:659:20 | self.val | main.rs:659:25:659:25 | n | | -| main.rs:659:13:659:25 | ... += ... | main.rs:657:25:660:9 | { ... } | | -| main.rs:659:13:659:26 | ExprStmt | main.rs:659:13:659:16 | self | | -| main.rs:659:25:659:25 | n | main.rs:659:13:659:25 | ... += ... | | -| main.rs:661:9:661:9 | f | main.rs:661:11:661:11 | 3 | | -| main.rs:661:9:661:12 | f(...) | main.rs:662:9:662:13 | ExprStmt | | -| main.rs:661:9:661:13 | ExprStmt | main.rs:661:9:661:9 | f | | -| main.rs:661:11:661:11 | 3 | main.rs:661:9:661:12 | f(...) | | -| main.rs:662:9:662:9 | f | main.rs:662:11:662:11 | 4 | | -| main.rs:662:9:662:12 | f(...) | main.rs:656:29:663:5 | { ... } | | -| main.rs:662:9:662:13 | ExprStmt | main.rs:662:9:662:9 | f | | -| main.rs:662:11:662:11 | 4 | main.rs:662:9:662:12 | f(...) | | -| main.rs:666:1:673:1 | enter fn structs | main.rs:667:5:667:36 | let ... = ... | | -| main.rs:666:1:673:1 | exit fn structs (normal) | main.rs:666:1:673:1 | exit fn structs | | -| main.rs:666:14:673:1 | { ... } | main.rs:666:1:673:1 | exit fn structs (normal) | | -| main.rs:667:5:667:36 | let ... = ... | main.rs:667:33:667:33 | 1 | | -| main.rs:667:9:667:13 | mut a | main.rs:668:5:668:26 | ExprStmt | match | -| main.rs:667:13:667:13 | a | main.rs:667:9:667:13 | mut a | | -| main.rs:667:17:667:35 | MyStruct {...} | main.rs:667:13:667:13 | a | | -| main.rs:667:33:667:33 | 1 | main.rs:667:17:667:35 | MyStruct {...} | | -| main.rs:668:5:668:13 | print_i64 | main.rs:668:15:668:15 | a | | -| main.rs:668:5:668:25 | print_i64(...) | main.rs:669:5:669:14 | ExprStmt | | -| main.rs:668:5:668:26 | ExprStmt | main.rs:668:5:668:13 | print_i64 | | -| main.rs:668:15:668:15 | a | main.rs:668:15:668:24 | a.my_get() | | -| main.rs:668:15:668:24 | a.my_get() | main.rs:668:5:668:25 | print_i64(...) | | -| main.rs:669:5:669:5 | a | main.rs:669:5:669:9 | a.val | | -| main.rs:669:5:669:9 | a.val | main.rs:669:13:669:13 | 5 | | -| main.rs:669:5:669:13 | ... = ... | main.rs:670:5:670:26 | ExprStmt | | -| main.rs:669:5:669:14 | ExprStmt | main.rs:669:5:669:5 | a | | -| main.rs:669:13:669:13 | 5 | main.rs:669:5:669:13 | ... = ... | | -| main.rs:670:5:670:13 | print_i64 | main.rs:670:15:670:15 | a | | -| main.rs:670:5:670:25 | print_i64(...) | main.rs:671:5:671:28 | ExprStmt | | -| main.rs:670:5:670:26 | ExprStmt | main.rs:670:5:670:13 | print_i64 | | -| main.rs:670:15:670:15 | a | main.rs:670:15:670:24 | a.my_get() | | -| main.rs:670:15:670:24 | a.my_get() | main.rs:670:5:670:25 | print_i64(...) | | -| main.rs:671:5:671:5 | a | main.rs:671:25:671:25 | 2 | | -| main.rs:671:5:671:27 | ... = ... | main.rs:672:5:672:26 | ExprStmt | | -| main.rs:671:5:671:28 | ExprStmt | main.rs:671:5:671:5 | a | | -| main.rs:671:9:671:27 | MyStruct {...} | main.rs:671:5:671:27 | ... = ... | | -| main.rs:671:25:671:25 | 2 | main.rs:671:9:671:27 | MyStruct {...} | | -| main.rs:672:5:672:13 | print_i64 | main.rs:672:15:672:15 | a | | -| main.rs:672:5:672:25 | print_i64(...) | main.rs:666:14:673:1 | { ... } | | -| main.rs:672:5:672:26 | ExprStmt | main.rs:672:5:672:13 | print_i64 | | -| main.rs:672:15:672:15 | a | main.rs:672:15:672:24 | a.my_get() | | -| main.rs:672:15:672:24 | a.my_get() | main.rs:672:5:672:25 | print_i64(...) | | -| main.rs:675:1:682:1 | enter fn arrays | main.rs:676:5:676:26 | let ... = ... | | -| main.rs:675:1:682:1 | exit fn arrays (normal) | main.rs:675:1:682:1 | exit fn arrays | | -| main.rs:675:13:682:1 | { ... } | main.rs:675:1:682:1 | exit fn arrays (normal) | | -| main.rs:676:5:676:26 | let ... = ... | main.rs:676:18:676:18 | 1 | | -| main.rs:676:9:676:13 | mut a | main.rs:677:5:677:20 | ExprStmt | match | -| main.rs:676:13:676:13 | a | main.rs:676:9:676:13 | mut a | | -| main.rs:676:17:676:25 | [...] | main.rs:676:13:676:13 | a | | -| main.rs:676:18:676:18 | 1 | main.rs:676:21:676:21 | 2 | | -| main.rs:676:21:676:21 | 2 | main.rs:676:24:676:24 | 3 | | -| main.rs:676:24:676:24 | 3 | main.rs:676:17:676:25 | [...] | | -| main.rs:677:5:677:13 | print_i64 | main.rs:677:15:677:15 | a | | -| main.rs:677:5:677:19 | print_i64(...) | main.rs:678:5:678:13 | ExprStmt | | -| main.rs:677:5:677:20 | ExprStmt | main.rs:677:5:677:13 | print_i64 | | -| main.rs:677:15:677:15 | a | main.rs:677:17:677:17 | 0 | | -| main.rs:677:15:677:18 | a[0] | main.rs:677:5:677:19 | print_i64(...) | | -| main.rs:677:17:677:17 | 0 | main.rs:677:15:677:18 | a[0] | | -| main.rs:678:5:678:5 | a | main.rs:678:7:678:7 | 1 | | -| main.rs:678:5:678:8 | a[1] | main.rs:678:12:678:12 | 5 | | -| main.rs:678:5:678:12 | ... = ... | main.rs:679:5:679:20 | ExprStmt | | -| main.rs:678:5:678:13 | ExprStmt | main.rs:678:5:678:5 | a | | -| main.rs:678:7:678:7 | 1 | main.rs:678:5:678:8 | a[1] | | -| main.rs:678:12:678:12 | 5 | main.rs:678:5:678:12 | ... = ... | | -| main.rs:679:5:679:13 | print_i64 | main.rs:679:15:679:15 | a | | -| main.rs:679:5:679:19 | print_i64(...) | main.rs:680:5:680:18 | ExprStmt | | -| main.rs:679:5:679:20 | ExprStmt | main.rs:679:5:679:13 | print_i64 | | -| main.rs:679:15:679:15 | a | main.rs:679:17:679:17 | 1 | | -| main.rs:679:15:679:18 | a[1] | main.rs:679:5:679:19 | print_i64(...) | | -| main.rs:679:17:679:17 | 1 | main.rs:679:15:679:18 | a[1] | | -| main.rs:680:5:680:5 | a | main.rs:680:10:680:10 | 4 | | -| main.rs:680:5:680:17 | ... = ... | main.rs:681:5:681:20 | ExprStmt | | -| main.rs:680:5:680:18 | ExprStmt | main.rs:680:5:680:5 | a | | -| main.rs:680:9:680:17 | [...] | main.rs:680:5:680:17 | ... = ... | | -| main.rs:680:10:680:10 | 4 | main.rs:680:13:680:13 | 5 | | -| main.rs:680:13:680:13 | 5 | main.rs:680:16:680:16 | 6 | | -| main.rs:680:16:680:16 | 6 | main.rs:680:9:680:17 | [...] | | -| main.rs:681:5:681:13 | print_i64 | main.rs:681:15:681:15 | a | | -| main.rs:681:5:681:19 | print_i64(...) | main.rs:675:13:682:1 | { ... } | | -| main.rs:681:5:681:20 | ExprStmt | main.rs:681:5:681:13 | print_i64 | | -| main.rs:681:15:681:15 | a | main.rs:681:17:681:17 | 2 | | -| main.rs:681:15:681:18 | a[2] | main.rs:681:5:681:19 | print_i64(...) | | -| main.rs:681:17:681:17 | 2 | main.rs:681:15:681:18 | a[2] | | -| main.rs:684:1:691:1 | enter fn ref_arg | main.rs:685:5:685:15 | let ... = 16 | | -| main.rs:684:1:691:1 | exit fn ref_arg (normal) | main.rs:684:1:691:1 | exit fn ref_arg | | -| main.rs:684:14:691:1 | { ... } | main.rs:684:1:691:1 | exit fn ref_arg (normal) | | -| main.rs:685:5:685:15 | let ... = 16 | main.rs:685:13:685:14 | 16 | | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | | -| main.rs:685:9:685:9 | x | main.rs:686:5:686:22 | ExprStmt | match | -| main.rs:685:13:685:14 | 16 | main.rs:685:9:685:9 | x | | -| main.rs:686:5:686:17 | print_i64_ref | main.rs:686:20:686:20 | x | | -| main.rs:686:5:686:21 | print_i64_ref(...) | main.rs:687:5:687:17 | ExprStmt | | -| main.rs:686:5:686:22 | ExprStmt | main.rs:686:5:686:17 | print_i64_ref | | -| main.rs:686:19:686:20 | &x | main.rs:686:5:686:21 | print_i64_ref(...) | | -| main.rs:686:20:686:20 | x | main.rs:686:19:686:20 | &x | | -| main.rs:687:5:687:13 | print_i64 | main.rs:687:15:687:15 | x | | -| main.rs:687:5:687:16 | print_i64(...) | main.rs:689:5:689:15 | let ... = 17 | | -| main.rs:687:5:687:17 | ExprStmt | main.rs:687:5:687:13 | print_i64 | | -| main.rs:687:15:687:15 | x | main.rs:687:5:687:16 | print_i64(...) | | -| main.rs:689:5:689:15 | let ... = 17 | main.rs:689:13:689:14 | 17 | | -| main.rs:689:9:689:9 | z | main.rs:689:9:689:9 | z | | -| main.rs:689:9:689:9 | z | main.rs:690:5:690:22 | ExprStmt | match | -| main.rs:689:13:689:14 | 17 | main.rs:689:9:689:9 | z | | -| main.rs:690:5:690:17 | print_i64_ref | main.rs:690:20:690:20 | z | | -| main.rs:690:5:690:21 | print_i64_ref(...) | main.rs:684:14:691:1 | { ... } | | -| main.rs:690:5:690:22 | ExprStmt | main.rs:690:5:690:17 | print_i64_ref | | -| main.rs:690:19:690:20 | &z | main.rs:690:5:690:21 | print_i64_ref(...) | | -| main.rs:690:20:690:20 | z | main.rs:690:19:690:20 | &z | | -| main.rs:698:5:700:5 | enter fn bar | main.rs:698:17:698:20 | self | | -| main.rs:698:5:700:5 | exit fn bar (normal) | main.rs:698:5:700:5 | exit fn bar | | -| main.rs:698:12:698:20 | SelfParam | main.rs:699:9:699:36 | ExprStmt | | -| main.rs:698:17:698:20 | self | main.rs:698:12:698:20 | SelfParam | | -| main.rs:698:23:700:5 | { ... } | main.rs:698:5:700:5 | exit fn bar (normal) | | -| main.rs:699:9:699:13 | * ... | main.rs:699:33:699:33 | 3 | | -| main.rs:699:9:699:35 | ... = ... | main.rs:698:23:700:5 | { ... } | | -| main.rs:699:9:699:36 | ExprStmt | main.rs:699:10:699:13 | self | | -| main.rs:699:10:699:13 | self | main.rs:699:9:699:13 | * ... | | -| main.rs:699:17:699:35 | MyStruct {...} | main.rs:699:9:699:35 | ... = ... | | -| main.rs:699:33:699:33 | 3 | main.rs:699:17:699:35 | MyStruct {...} | | -| main.rs:703:1:709:1 | enter fn ref_methodcall_receiver | main.rs:704:5:704:36 | let ... = ... | | -| main.rs:703:1:709:1 | exit fn ref_methodcall_receiver (normal) | main.rs:703:1:709:1 | exit fn ref_methodcall_receiver | | -| main.rs:703:30:709:1 | { ... } | main.rs:703:1:709:1 | exit fn ref_methodcall_receiver (normal) | | -| main.rs:704:5:704:36 | let ... = ... | main.rs:704:33:704:33 | 1 | | -| main.rs:704:9:704:13 | mut a | main.rs:705:5:705:12 | ExprStmt | match | -| main.rs:704:13:704:13 | a | main.rs:704:9:704:13 | mut a | | -| main.rs:704:17:704:35 | MyStruct {...} | main.rs:704:13:704:13 | a | | -| main.rs:704:33:704:33 | 1 | main.rs:704:17:704:35 | MyStruct {...} | | -| main.rs:705:5:705:5 | a | main.rs:705:5:705:11 | a.bar() | | -| main.rs:705:5:705:11 | a.bar() | main.rs:708:5:708:21 | ExprStmt | | -| main.rs:705:5:705:12 | ExprStmt | main.rs:705:5:705:5 | a | | +| main.rs:619:5:619:12 | closure2 | main.rs:619:5:619:14 | closure2(...) | | +| main.rs:619:5:619:14 | closure2(...) | main.rs:620:5:620:17 | ExprStmt | | +| main.rs:619:5:619:15 | ExprStmt | main.rs:619:5:619:12 | closure2 | | +| main.rs:620:5:620:13 | print_i64 | main.rs:620:15:620:15 | y | | +| main.rs:620:5:620:16 | print_i64(...) | main.rs:622:5:622:18 | let ... = 2 | | +| main.rs:620:5:620:17 | ExprStmt | main.rs:620:5:620:13 | print_i64 | | +| main.rs:620:15:620:15 | y | main.rs:620:5:620:16 | print_i64(...) | | +| main.rs:622:5:622:18 | let ... = 2 | main.rs:622:17:622:17 | 2 | | +| main.rs:622:9:622:13 | mut z | main.rs:625:5:627:6 | let ... = ... | match | +| main.rs:622:13:622:13 | z | main.rs:622:9:622:13 | mut z | | +| main.rs:622:17:622:17 | 2 | main.rs:622:13:622:13 | z | | +| main.rs:625:5:627:6 | let ... = ... | main.rs:625:24:627:5 | \|...\| ... | | +| main.rs:625:9:625:20 | mut closure3 | main.rs:628:5:628:15 | ExprStmt | match | +| main.rs:625:13:625:20 | closure3 | main.rs:625:9:625:20 | mut closure3 | | +| main.rs:625:24:627:5 | \|...\| ... | main.rs:625:13:625:20 | closure3 | | +| main.rs:625:24:627:5 | enter \|...\| ... | main.rs:626:9:626:24 | ExprStmt | | +| main.rs:625:24:627:5 | exit \|...\| ... (normal) | main.rs:625:24:627:5 | exit \|...\| ... | | +| main.rs:625:27:627:5 | { ... } | main.rs:625:24:627:5 | exit \|...\| ... (normal) | | +| main.rs:626:9:626:9 | z | main.rs:626:22:626:22 | 1 | | +| main.rs:626:9:626:23 | z.add_assign(...) | main.rs:625:27:627:5 | { ... } | | +| main.rs:626:9:626:24 | ExprStmt | main.rs:626:9:626:9 | z | | +| main.rs:626:22:626:22 | 1 | main.rs:626:9:626:23 | z.add_assign(...) | | +| main.rs:628:5:628:12 | closure3 | main.rs:628:5:628:14 | closure3(...) | | +| main.rs:628:5:628:14 | closure3(...) | main.rs:629:5:629:17 | ExprStmt | | +| main.rs:628:5:628:15 | ExprStmt | main.rs:628:5:628:12 | closure3 | | +| main.rs:629:5:629:13 | print_i64 | main.rs:629:15:629:15 | z | | +| main.rs:629:5:629:16 | print_i64(...) | main.rs:603:18:630:1 | { ... } | | +| main.rs:629:5:629:17 | ExprStmt | main.rs:629:5:629:13 | print_i64 | | +| main.rs:629:15:629:15 | z | main.rs:629:5:629:16 | print_i64(...) | | +| main.rs:632:1:640:1 | enter fn async_block_capture | main.rs:633:5:633:23 | let ... = 0 | | +| main.rs:632:1:640:1 | exit fn async_block_capture (normal) | main.rs:632:1:640:1 | exit fn async_block_capture | | +| main.rs:632:32:640:1 | { ... } | main.rs:632:1:640:1 | exit fn async_block_capture (normal) | | +| main.rs:633:5:633:23 | let ... = 0 | main.rs:633:22:633:22 | 0 | | +| main.rs:633:9:633:13 | mut i | main.rs:634:5:636:6 | let ... = ... | match | +| main.rs:633:13:633:13 | i | main.rs:633:9:633:13 | mut i | | +| main.rs:633:22:633:22 | 0 | main.rs:633:13:633:13 | i | | +| main.rs:634:5:636:6 | let ... = ... | main.rs:634:17:636:5 | { ... } | | +| main.rs:634:9:634:13 | block | main.rs:634:9:634:13 | block | | +| main.rs:634:9:634:13 | block | main.rs:638:5:638:16 | ExprStmt | match | +| main.rs:634:17:636:5 | enter { ... } | main.rs:635:9:635:14 | ExprStmt | | +| main.rs:634:17:636:5 | exit { ... } (normal) | main.rs:634:17:636:5 | exit { ... } | | +| main.rs:634:17:636:5 | { ... } | main.rs:634:9:634:13 | block | | +| main.rs:635:9:635:9 | i | main.rs:635:13:635:13 | 1 | | +| main.rs:635:9:635:13 | ... = ... | main.rs:634:17:636:5 | exit { ... } (normal) | | +| main.rs:635:9:635:14 | ExprStmt | main.rs:635:9:635:9 | i | | +| main.rs:635:13:635:13 | 1 | main.rs:635:9:635:13 | ... = ... | | +| main.rs:638:5:638:9 | block | main.rs:638:5:638:15 | await block | | +| main.rs:638:5:638:15 | await block | main.rs:639:5:639:17 | ExprStmt | | +| main.rs:638:5:638:16 | ExprStmt | main.rs:638:5:638:9 | block | | +| main.rs:639:5:639:13 | print_i64 | main.rs:639:15:639:15 | i | | +| main.rs:639:5:639:16 | print_i64(...) | main.rs:632:32:640:1 | { ... } | | +| main.rs:639:5:639:17 | ExprStmt | main.rs:639:5:639:13 | print_i64 | | +| main.rs:639:15:639:15 | i | main.rs:639:5:639:16 | print_i64(...) | | +| main.rs:642:1:658:1 | enter fn phi | main.rs:642:8:642:8 | b | | +| main.rs:642:1:658:1 | exit fn phi (normal) | main.rs:642:1:658:1 | exit fn phi | | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:8 | b | | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:14 | ...: bool | match | +| main.rs:642:8:642:14 | ...: bool | main.rs:643:5:643:18 | let ... = 1 | | +| main.rs:642:17:658:1 | { ... } | main.rs:642:1:658:1 | exit fn phi (normal) | | +| main.rs:643:5:643:18 | let ... = 1 | main.rs:643:17:643:17 | 1 | | +| main.rs:643:9:643:13 | mut x | main.rs:644:5:644:17 | ExprStmt | match | +| main.rs:643:13:643:13 | x | main.rs:643:9:643:13 | mut x | | +| main.rs:643:17:643:17 | 1 | main.rs:643:13:643:13 | x | | +| main.rs:644:5:644:13 | print_i64 | main.rs:644:15:644:15 | x | | +| main.rs:644:5:644:16 | print_i64(...) | main.rs:645:5:645:21 | ExprStmt | | +| main.rs:644:5:644:17 | ExprStmt | main.rs:644:5:644:13 | print_i64 | | +| main.rs:644:15:644:15 | x | main.rs:644:5:644:16 | print_i64(...) | | +| main.rs:645:5:645:13 | print_i64 | main.rs:645:15:645:15 | x | | +| main.rs:645:5:645:20 | print_i64(...) | main.rs:646:5:656:6 | let _ = ... | | +| main.rs:645:5:645:21 | ExprStmt | main.rs:645:5:645:13 | print_i64 | | +| main.rs:645:15:645:15 | x | main.rs:645:19:645:19 | 1 | | +| main.rs:645:15:645:19 | ... + ... | main.rs:645:5:645:20 | print_i64(...) | | +| main.rs:645:19:645:19 | 1 | main.rs:645:15:645:19 | ... + ... | | +| main.rs:646:5:656:6 | let _ = ... | main.rs:647:16:647:16 | b | | +| main.rs:647:9:647:9 | _ | main.rs:657:5:657:17 | ExprStmt | match | +| main.rs:647:13:656:5 | if b {...} else {...} | main.rs:647:9:647:9 | _ | | +| main.rs:647:16:647:16 | b | main.rs:649:9:649:14 | ExprStmt | true | +| main.rs:647:16:647:16 | b | main.rs:653:9:653:14 | ExprStmt | false | +| main.rs:648:5:652:5 | { ... } | main.rs:647:13:656:5 | if b {...} else {...} | | +| main.rs:649:9:649:9 | x | main.rs:649:13:649:13 | 2 | | +| main.rs:649:9:649:13 | ... = ... | main.rs:650:9:650:21 | ExprStmt | | +| main.rs:649:9:649:14 | ExprStmt | main.rs:649:9:649:9 | x | | +| main.rs:649:13:649:13 | 2 | main.rs:649:9:649:13 | ... = ... | | +| main.rs:650:9:650:17 | print_i64 | main.rs:650:19:650:19 | x | | +| main.rs:650:9:650:20 | print_i64(...) | main.rs:651:9:651:25 | ExprStmt | | +| main.rs:650:9:650:21 | ExprStmt | main.rs:650:9:650:17 | print_i64 | | +| main.rs:650:19:650:19 | x | main.rs:650:9:650:20 | print_i64(...) | | +| main.rs:651:9:651:17 | print_i64 | main.rs:651:19:651:19 | x | | +| main.rs:651:9:651:24 | print_i64(...) | main.rs:648:5:652:5 | { ... } | | +| main.rs:651:9:651:25 | ExprStmt | main.rs:651:9:651:17 | print_i64 | | +| main.rs:651:19:651:19 | x | main.rs:651:23:651:23 | 1 | | +| main.rs:651:19:651:23 | ... + ... | main.rs:651:9:651:24 | print_i64(...) | | +| main.rs:651:23:651:23 | 1 | main.rs:651:19:651:23 | ... + ... | | +| main.rs:652:12:656:5 | { ... } | main.rs:647:13:656:5 | if b {...} else {...} | | +| main.rs:653:9:653:9 | x | main.rs:653:13:653:13 | 3 | | +| main.rs:653:9:653:13 | ... = ... | main.rs:654:9:654:21 | ExprStmt | | +| main.rs:653:9:653:14 | ExprStmt | main.rs:653:9:653:9 | x | | +| main.rs:653:13:653:13 | 3 | main.rs:653:9:653:13 | ... = ... | | +| main.rs:654:9:654:17 | print_i64 | main.rs:654:19:654:19 | x | | +| main.rs:654:9:654:20 | print_i64(...) | main.rs:655:9:655:25 | ExprStmt | | +| main.rs:654:9:654:21 | ExprStmt | main.rs:654:9:654:17 | print_i64 | | +| main.rs:654:19:654:19 | x | main.rs:654:9:654:20 | print_i64(...) | | +| main.rs:655:9:655:17 | print_i64 | main.rs:655:19:655:19 | x | | +| main.rs:655:9:655:24 | print_i64(...) | main.rs:652:12:656:5 | { ... } | | +| main.rs:655:9:655:25 | ExprStmt | main.rs:655:9:655:17 | print_i64 | | +| main.rs:655:19:655:19 | x | main.rs:655:23:655:23 | 1 | | +| main.rs:655:19:655:23 | ... + ... | main.rs:655:9:655:24 | print_i64(...) | | +| main.rs:655:23:655:23 | 1 | main.rs:655:19:655:23 | ... + ... | | +| main.rs:657:5:657:13 | print_i64 | main.rs:657:15:657:15 | x | | +| main.rs:657:5:657:16 | print_i64(...) | main.rs:642:17:658:1 | { ... } | | +| main.rs:657:5:657:17 | ExprStmt | main.rs:657:5:657:13 | print_i64 | | +| main.rs:657:15:657:15 | x | main.rs:657:5:657:16 | print_i64(...) | | +| main.rs:660:1:677:1 | enter fn phi_read | main.rs:660:13:660:14 | b1 | | +| main.rs:660:1:677:1 | exit fn phi_read (normal) | main.rs:660:1:677:1 | exit fn phi_read | | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:14 | b1 | | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:20 | ...: bool | match | +| main.rs:660:13:660:20 | ...: bool | main.rs:660:23:660:24 | b2 | | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:24 | b2 | | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:30 | ...: bool | match | +| main.rs:660:23:660:30 | ...: bool | main.rs:661:5:661:14 | let ... = 1 | | +| main.rs:660:33:677:1 | { ... } | main.rs:660:1:677:1 | exit fn phi_read (normal) | | +| main.rs:661:5:661:14 | let ... = 1 | main.rs:661:13:661:13 | 1 | | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | | +| main.rs:661:9:661:9 | x | main.rs:662:5:668:6 | let _ = ... | match | +| main.rs:661:13:661:13 | 1 | main.rs:661:9:661:9 | x | | +| main.rs:662:5:668:6 | let _ = ... | main.rs:663:16:663:17 | b1 | | +| main.rs:663:9:663:9 | _ | main.rs:670:5:676:6 | let _ = ... | match | +| main.rs:663:13:668:5 | if b1 {...} else {...} | main.rs:663:9:663:9 | _ | | +| main.rs:663:16:663:17 | b1 | main.rs:665:9:665:21 | ExprStmt | true | +| main.rs:663:16:663:17 | b1 | main.rs:667:9:667:21 | ExprStmt | false | +| main.rs:664:5:666:5 | { ... } | main.rs:663:13:668:5 | if b1 {...} else {...} | | +| main.rs:665:9:665:17 | print_i64 | main.rs:665:19:665:19 | x | | +| main.rs:665:9:665:20 | print_i64(...) | main.rs:664:5:666:5 | { ... } | | +| main.rs:665:9:665:21 | ExprStmt | main.rs:665:9:665:17 | print_i64 | | +| main.rs:665:19:665:19 | x | main.rs:665:9:665:20 | print_i64(...) | | +| main.rs:666:12:668:5 | { ... } | main.rs:663:13:668:5 | if b1 {...} else {...} | | +| main.rs:667:9:667:17 | print_i64 | main.rs:667:19:667:19 | x | | +| main.rs:667:9:667:20 | print_i64(...) | main.rs:666:12:668:5 | { ... } | | +| main.rs:667:9:667:21 | ExprStmt | main.rs:667:9:667:17 | print_i64 | | +| main.rs:667:19:667:19 | x | main.rs:667:9:667:20 | print_i64(...) | | +| main.rs:670:5:676:6 | let _ = ... | main.rs:671:16:671:17 | b2 | | +| main.rs:671:9:671:9 | _ | main.rs:660:33:677:1 | { ... } | match | +| main.rs:671:13:676:5 | if b2 {...} else {...} | main.rs:671:9:671:9 | _ | | +| main.rs:671:16:671:17 | b2 | main.rs:673:9:673:21 | ExprStmt | true | +| main.rs:671:16:671:17 | b2 | main.rs:675:9:675:21 | ExprStmt | false | +| main.rs:672:5:674:5 | { ... } | main.rs:671:13:676:5 | if b2 {...} else {...} | | +| main.rs:673:9:673:17 | print_i64 | main.rs:673:19:673:19 | x | | +| main.rs:673:9:673:20 | print_i64(...) | main.rs:672:5:674:5 | { ... } | | +| main.rs:673:9:673:21 | ExprStmt | main.rs:673:9:673:17 | print_i64 | | +| main.rs:673:19:673:19 | x | main.rs:673:9:673:20 | print_i64(...) | | +| main.rs:674:12:676:5 | { ... } | main.rs:671:13:676:5 | if b2 {...} else {...} | | +| main.rs:675:9:675:17 | print_i64 | main.rs:675:19:675:19 | x | | +| main.rs:675:9:675:20 | print_i64(...) | main.rs:674:12:676:5 | { ... } | | +| main.rs:675:9:675:21 | ExprStmt | main.rs:675:9:675:17 | print_i64 | | +| main.rs:675:19:675:19 | x | main.rs:675:9:675:20 | print_i64(...) | | +| main.rs:684:5:686:5 | enter fn my_get | main.rs:684:20:684:23 | self | | +| main.rs:684:5:686:5 | exit fn my_get (normal) | main.rs:684:5:686:5 | exit fn my_get | | +| main.rs:684:15:684:23 | SelfParam | main.rs:685:9:685:24 | ExprStmt | | +| main.rs:684:20:684:23 | self | main.rs:684:15:684:23 | SelfParam | | +| main.rs:685:9:685:23 | return ... | main.rs:684:5:686:5 | exit fn my_get (normal) | return | +| main.rs:685:9:685:24 | ExprStmt | main.rs:685:16:685:19 | self | | +| main.rs:685:16:685:19 | self | main.rs:685:16:685:23 | self.val | | +| main.rs:685:16:685:23 | self.val | main.rs:685:9:685:23 | return ... | | +| main.rs:688:5:690:5 | enter fn id | main.rs:688:11:688:14 | self | | +| main.rs:688:5:690:5 | exit fn id (normal) | main.rs:688:5:690:5 | exit fn id | | +| main.rs:688:11:688:14 | SelfParam | main.rs:689:9:689:12 | self | | +| main.rs:688:11:688:14 | self | main.rs:688:11:688:14 | SelfParam | | +| main.rs:688:25:690:5 | { ... } | main.rs:688:5:690:5 | exit fn id (normal) | | +| main.rs:689:9:689:12 | self | main.rs:688:25:690:5 | { ... } | | +| main.rs:692:5:699:5 | enter fn my_method | main.rs:692:23:692:26 | self | | +| main.rs:692:5:699:5 | exit fn my_method (normal) | main.rs:692:5:699:5 | exit fn my_method | | +| main.rs:692:18:692:26 | SelfParam | main.rs:693:9:696:10 | let ... = ... | | +| main.rs:692:23:692:26 | self | main.rs:692:18:692:26 | SelfParam | | +| main.rs:692:29:699:5 | { ... } | main.rs:692:5:699:5 | exit fn my_method (normal) | | +| main.rs:693:9:696:10 | let ... = ... | main.rs:693:21:696:9 | \|...\| ... | | +| main.rs:693:13:693:17 | mut f | main.rs:697:9:697:13 | ExprStmt | match | +| main.rs:693:17:693:17 | f | main.rs:693:13:693:17 | mut f | | +| main.rs:693:21:696:9 | \|...\| ... | main.rs:693:17:693:17 | f | | +| main.rs:693:21:696:9 | enter \|...\| ... | main.rs:693:22:693:22 | n | | +| main.rs:693:21:696:9 | exit \|...\| ... (normal) | main.rs:693:21:696:9 | exit \|...\| ... | | +| main.rs:693:22:693:22 | ... | main.rs:695:13:695:26 | ExprStmt | | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | ... | match | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | n | | +| main.rs:693:25:696:9 | { ... } | main.rs:693:21:696:9 | exit \|...\| ... (normal) | | +| main.rs:695:13:695:16 | self | main.rs:695:13:695:20 | self.val | | +| main.rs:695:13:695:20 | self.val | main.rs:695:25:695:25 | n | | +| main.rs:695:13:695:25 | ... += ... | main.rs:693:25:696:9 | { ... } | | +| main.rs:695:13:695:26 | ExprStmt | main.rs:695:13:695:16 | self | | +| main.rs:695:25:695:25 | n | main.rs:695:13:695:25 | ... += ... | | +| main.rs:697:9:697:9 | f | main.rs:697:11:697:11 | 3 | | +| main.rs:697:9:697:12 | f(...) | main.rs:698:9:698:13 | ExprStmt | | +| main.rs:697:9:697:13 | ExprStmt | main.rs:697:9:697:9 | f | | +| main.rs:697:11:697:11 | 3 | main.rs:697:9:697:12 | f(...) | | +| main.rs:698:9:698:9 | f | main.rs:698:11:698:11 | 4 | | +| main.rs:698:9:698:12 | f(...) | main.rs:692:29:699:5 | { ... } | | +| main.rs:698:9:698:13 | ExprStmt | main.rs:698:9:698:9 | f | | +| main.rs:698:11:698:11 | 4 | main.rs:698:9:698:12 | f(...) | | +| main.rs:702:1:709:1 | enter fn structs | main.rs:703:5:703:36 | let ... = ... | | +| main.rs:702:1:709:1 | exit fn structs (normal) | main.rs:702:1:709:1 | exit fn structs | | +| main.rs:702:14:709:1 | { ... } | main.rs:702:1:709:1 | exit fn structs (normal) | | +| main.rs:703:5:703:36 | let ... = ... | main.rs:703:33:703:33 | 1 | | +| main.rs:703:9:703:13 | mut a | main.rs:704:5:704:26 | ExprStmt | match | +| main.rs:703:13:703:13 | a | main.rs:703:9:703:13 | mut a | | +| main.rs:703:17:703:35 | MyStruct {...} | main.rs:703:13:703:13 | a | | +| main.rs:703:33:703:33 | 1 | main.rs:703:17:703:35 | MyStruct {...} | | +| main.rs:704:5:704:13 | print_i64 | main.rs:704:15:704:15 | a | | +| main.rs:704:5:704:25 | print_i64(...) | main.rs:705:5:705:14 | ExprStmt | | +| main.rs:704:5:704:26 | ExprStmt | main.rs:704:5:704:13 | print_i64 | | +| main.rs:704:15:704:15 | a | main.rs:704:15:704:24 | a.my_get() | | +| main.rs:704:15:704:24 | a.my_get() | main.rs:704:5:704:25 | print_i64(...) | | +| main.rs:705:5:705:5 | a | main.rs:705:5:705:9 | a.val | | +| main.rs:705:5:705:9 | a.val | main.rs:705:13:705:13 | 5 | | +| main.rs:705:5:705:13 | ... = ... | main.rs:706:5:706:26 | ExprStmt | | +| main.rs:705:5:705:14 | ExprStmt | main.rs:705:5:705:5 | a | | +| main.rs:705:13:705:13 | 5 | main.rs:705:5:705:13 | ... = ... | | +| main.rs:706:5:706:13 | print_i64 | main.rs:706:15:706:15 | a | | +| main.rs:706:5:706:25 | print_i64(...) | main.rs:707:5:707:28 | ExprStmt | | +| main.rs:706:5:706:26 | ExprStmt | main.rs:706:5:706:13 | print_i64 | | +| main.rs:706:15:706:15 | a | main.rs:706:15:706:24 | a.my_get() | | +| main.rs:706:15:706:24 | a.my_get() | main.rs:706:5:706:25 | print_i64(...) | | +| main.rs:707:5:707:5 | a | main.rs:707:25:707:25 | 2 | | +| main.rs:707:5:707:27 | ... = ... | main.rs:708:5:708:26 | ExprStmt | | +| main.rs:707:5:707:28 | ExprStmt | main.rs:707:5:707:5 | a | | +| main.rs:707:9:707:27 | MyStruct {...} | main.rs:707:5:707:27 | ... = ... | | +| main.rs:707:25:707:25 | 2 | main.rs:707:9:707:27 | MyStruct {...} | | | main.rs:708:5:708:13 | print_i64 | main.rs:708:15:708:15 | a | | -| main.rs:708:5:708:20 | print_i64(...) | main.rs:703:30:709:1 | { ... } | | -| main.rs:708:5:708:21 | ExprStmt | main.rs:708:5:708:13 | print_i64 | | -| main.rs:708:15:708:15 | a | main.rs:708:15:708:19 | a.val | | -| main.rs:708:15:708:19 | a.val | main.rs:708:5:708:20 | print_i64(...) | | -| main.rs:725:1:736:1 | enter fn macro_invocation | main.rs:726:5:727:26 | let ... = ... | | -| main.rs:725:1:736:1 | exit fn macro_invocation (normal) | main.rs:725:1:736:1 | exit fn macro_invocation | | -| main.rs:725:23:736:1 | { ... } | main.rs:725:1:736:1 | exit fn macro_invocation (normal) | | -| main.rs:726:5:727:26 | let ... = ... | main.rs:727:23:727:24 | let ... = 37 | | -| main.rs:726:9:726:22 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | | -| main.rs:726:9:726:22 | var_from_macro | main.rs:728:5:728:30 | ExprStmt | match | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | match | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:23:727:24 | { ... } | | -| main.rs:727:9:727:25 | MacroExpr | main.rs:726:9:726:22 | var_from_macro | | -| main.rs:727:9:727:25 | let_in_macro!... | main.rs:727:9:727:25 | MacroExpr | | -| main.rs:727:23:727:24 | 37 | main.rs:727:9:727:21 | var_in_macro | | -| main.rs:727:23:727:24 | let ... = 37 | main.rs:727:23:727:24 | 37 | | -| main.rs:727:23:727:24 | { ... } | main.rs:727:9:727:25 | let_in_macro!... | | -| main.rs:728:5:728:13 | print_i64 | main.rs:728:15:728:28 | var_from_macro | | -| main.rs:728:5:728:29 | print_i64(...) | main.rs:729:5:729:26 | let ... = 33 | | -| main.rs:728:5:728:30 | ExprStmt | main.rs:728:5:728:13 | print_i64 | | -| main.rs:728:15:728:28 | var_from_macro | main.rs:728:5:728:29 | print_i64(...) | | -| main.rs:729:5:729:26 | let ... = 33 | main.rs:729:24:729:25 | 33 | | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | | -| main.rs:729:9:729:20 | var_in_macro | main.rs:734:5:734:44 | ExprStmt | match | -| main.rs:729:24:729:25 | 33 | main.rs:729:9:729:20 | var_in_macro | | -| main.rs:734:5:734:13 | print_i64 | main.rs:734:15:734:28 | let ... = 0 | | -| main.rs:734:5:734:43 | print_i64(...) | main.rs:735:5:735:28 | ExprStmt | | -| main.rs:734:5:734:44 | ExprStmt | main.rs:734:5:734:13 | print_i64 | | -| main.rs:734:15:734:28 | 0 | main.rs:734:15:734:28 | var_in_macro | | -| main.rs:734:15:734:28 | let ... = 0 | main.rs:734:15:734:28 | 0 | | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:30:734:41 | var_in_macro | match | -| main.rs:734:15:734:42 | MacroExpr | main.rs:734:5:734:43 | print_i64(...) | | -| main.rs:734:15:734:42 | let_in_macro2!... | main.rs:734:15:734:42 | MacroExpr | | -| main.rs:734:30:734:41 | var_in_macro | main.rs:734:30:734:41 | { ... } | | -| main.rs:734:30:734:41 | { ... } | main.rs:734:15:734:42 | let_in_macro2!... | | -| main.rs:735:5:735:13 | print_i64 | main.rs:735:15:735:26 | var_in_macro | | -| main.rs:735:5:735:27 | print_i64(...) | main.rs:725:23:736:1 | { ... } | | -| main.rs:735:5:735:28 | ExprStmt | main.rs:735:5:735:13 | print_i64 | | -| main.rs:735:15:735:26 | var_in_macro | main.rs:735:5:735:27 | print_i64(...) | | -| main.rs:738:1:742:1 | enter fn let_without_initializer | main.rs:739:5:739:10 | let ... | | -| main.rs:738:1:742:1 | exit fn let_without_initializer (normal) | main.rs:738:1:742:1 | exit fn let_without_initializer | | -| main.rs:738:30:742:1 | { ... } | main.rs:738:1:742:1 | exit fn let_without_initializer (normal) | | -| main.rs:739:5:739:10 | let ... | main.rs:739:9:739:9 | x | | -| main.rs:739:9:739:9 | x | main.rs:739:9:739:9 | x | | -| main.rs:739:9:739:9 | x | main.rs:740:5:740:10 | ExprStmt | match | -| main.rs:740:5:740:5 | x | main.rs:740:9:740:9 | 1 | | -| main.rs:740:5:740:9 | ... = ... | main.rs:741:5:741:17 | ExprStmt | | -| main.rs:740:5:740:10 | ExprStmt | main.rs:740:5:740:5 | x | | -| main.rs:740:9:740:9 | 1 | main.rs:740:5:740:9 | ... = ... | | -| main.rs:741:5:741:13 | print_i64 | main.rs:741:15:741:15 | x | | -| main.rs:741:5:741:16 | print_i64(...) | main.rs:738:30:742:1 | { ... } | | -| main.rs:741:5:741:17 | ExprStmt | main.rs:741:5:741:13 | print_i64 | | -| main.rs:741:15:741:15 | x | main.rs:741:5:741:16 | print_i64(...) | | -| main.rs:744:1:754:1 | enter fn capture_phi | main.rs:745:5:745:20 | let ... = 100 | | -| main.rs:744:1:754:1 | exit fn capture_phi (normal) | main.rs:744:1:754:1 | exit fn capture_phi | | -| main.rs:744:18:754:1 | { ... } | main.rs:744:1:754:1 | exit fn capture_phi (normal) | | -| main.rs:745:5:745:20 | let ... = 100 | main.rs:745:17:745:19 | 100 | | -| main.rs:745:9:745:13 | mut x | main.rs:746:5:751:6 | let ... = ... | match | -| main.rs:745:13:745:13 | x | main.rs:745:9:745:13 | mut x | | -| main.rs:745:17:745:19 | 100 | main.rs:745:13:745:13 | x | | -| main.rs:746:5:751:6 | let ... = ... | main.rs:746:19:751:5 | \|...\| ... | | -| main.rs:746:9:746:15 | mut cap | main.rs:752:5:752:14 | ExprStmt | match | -| main.rs:746:13:746:15 | cap | main.rs:746:9:746:15 | mut cap | | -| main.rs:746:19:751:5 | \|...\| ... | main.rs:746:13:746:15 | cap | | -| main.rs:746:19:751:5 | enter \|...\| ... | main.rs:746:20:746:20 | b | | -| main.rs:746:19:751:5 | exit \|...\| ... (normal) | main.rs:746:19:751:5 | exit \|...\| ... | | -| main.rs:746:20:746:20 | b | main.rs:746:20:746:20 | b | | -| main.rs:746:20:746:20 | b | main.rs:746:20:746:26 | ...: bool | match | -| main.rs:746:20:746:26 | ...: bool | main.rs:747:9:750:10 | let _ = ... | | -| main.rs:746:29:751:5 | { ... } | main.rs:746:19:751:5 | exit \|...\| ... (normal) | | -| main.rs:747:9:750:10 | let _ = ... | main.rs:748:20:748:20 | b | | -| main.rs:748:13:748:13 | _ | main.rs:746:29:751:5 | { ... } | match | -| main.rs:748:17:750:9 | if b {...} | main.rs:748:13:748:13 | _ | | -| main.rs:748:20:748:20 | b | main.rs:748:17:750:9 | if b {...} | false | -| main.rs:748:20:748:20 | b | main.rs:749:13:749:20 | ExprStmt | true | -| main.rs:748:22:750:9 | { ... } | main.rs:748:17:750:9 | if b {...} | | -| main.rs:749:13:749:13 | x | main.rs:749:17:749:19 | 200 | | -| main.rs:749:13:749:19 | ... = ... | main.rs:748:22:750:9 | { ... } | | -| main.rs:749:13:749:20 | ExprStmt | main.rs:749:13:749:13 | x | | -| main.rs:749:17:749:19 | 200 | main.rs:749:13:749:19 | ... = ... | | -| main.rs:752:5:752:7 | cap | main.rs:752:9:752:12 | true | | -| main.rs:752:5:752:13 | cap(...) | main.rs:753:5:753:17 | ExprStmt | | -| main.rs:752:5:752:14 | ExprStmt | main.rs:752:5:752:7 | cap | | -| main.rs:752:9:752:12 | true | main.rs:752:5:752:13 | cap(...) | | -| main.rs:753:5:753:13 | print_i64 | main.rs:753:15:753:15 | x | | -| main.rs:753:5:753:16 | print_i64(...) | main.rs:744:18:754:1 | { ... } | | -| main.rs:753:5:753:17 | ExprStmt | main.rs:753:5:753:13 | print_i64 | | -| main.rs:753:15:753:15 | x | main.rs:753:5:753:16 | print_i64(...) | | -| main.rs:757:5:772:5 | enter fn test | main.rs:759:9:759:25 | let ... = ... | | -| main.rs:757:5:772:5 | exit fn test (normal) | main.rs:757:5:772:5 | exit fn test | | -| main.rs:758:34:772:5 | { ... } | main.rs:757:5:772:5 | exit fn test (normal) | | -| main.rs:759:9:759:25 | let ... = ... | main.rs:759:17:759:20 | Some | | -| main.rs:759:13:759:13 | x | main.rs:759:13:759:13 | x | | -| main.rs:759:13:759:13 | x | main.rs:760:9:767:10 | let ... = ... | match | -| main.rs:759:17:759:20 | Some | main.rs:759:22:759:23 | 42 | | -| main.rs:759:17:759:24 | Some(...) | main.rs:759:13:759:13 | x | | -| main.rs:759:22:759:23 | 42 | main.rs:759:17:759:24 | Some(...) | | -| main.rs:760:9:767:10 | let ... = ... | main.rs:761:19:761:19 | x | | -| main.rs:760:13:760:13 | y | main.rs:760:13:760:13 | y | | -| main.rs:760:13:760:13 | y | main.rs:768:15:768:15 | y | match | -| main.rs:761:13:767:9 | match x { ... } | main.rs:760:13:760:13 | y | | -| main.rs:761:19:761:19 | x | main.rs:762:13:762:19 | Some(...) | | -| main.rs:762:13:762:19 | Some(...) | main.rs:762:18:762:18 | y | match | -| main.rs:762:13:762:19 | Some(...) | main.rs:765:13:765:16 | None | no-match | -| main.rs:762:18:762:18 | y | main.rs:762:18:762:18 | y | | -| main.rs:762:18:762:18 | y | main.rs:763:17:763:20 | None | match | -| main.rs:762:24:764:13 | { ... } | main.rs:761:13:767:9 | match x { ... } | | -| main.rs:763:17:763:20 | None | main.rs:762:24:764:13 | { ... } | | -| main.rs:765:13:765:16 | None | main.rs:765:13:765:16 | None | | -| main.rs:765:13:765:16 | None | main.rs:766:17:766:20 | None | match | -| main.rs:766:17:766:20 | None | main.rs:761:13:767:9 | match x { ... } | | -| main.rs:768:9:771:9 | match y { ... } | main.rs:758:34:772:5 | { ... } | | -| main.rs:768:15:768:15 | y | main.rs:769:13:769:16 | N0ne | | -| main.rs:769:13:769:16 | N0ne | main.rs:769:13:769:16 | N0ne | | -| main.rs:769:13:769:16 | N0ne | main.rs:770:17:770:20 | N0ne | match | -| main.rs:770:17:770:20 | N0ne | main.rs:768:9:771:9 | match y { ... } | | -| main.rs:774:5:781:5 | enter fn test2 | main.rs:776:9:777:17 | let ... = test | | -| main.rs:774:5:781:5 | exit fn test2 (normal) | main.rs:774:5:781:5 | exit fn test2 | | -| main.rs:775:31:781:5 | { ... } | main.rs:774:5:781:5 | exit fn test2 (normal) | | -| main.rs:776:9:777:17 | let ... = test | main.rs:777:13:777:16 | test | | -| main.rs:776:13:776:22 | test_alias | main.rs:776:13:776:22 | test_alias | | -| main.rs:776:13:776:22 | test_alias | main.rs:778:9:779:25 | let ... = ... | match | -| main.rs:777:13:777:16 | test | main.rs:776:13:776:22 | test_alias | | -| main.rs:778:9:779:25 | let ... = ... | main.rs:779:13:779:22 | test_alias | | -| main.rs:778:13:778:16 | test | main.rs:778:13:778:16 | test | | -| main.rs:778:13:778:16 | test | main.rs:780:9:780:12 | test | match | -| main.rs:779:13:779:22 | test_alias | main.rs:779:13:779:24 | test_alias(...) | | -| main.rs:779:13:779:24 | test_alias(...) | main.rs:778:13:778:16 | test | | -| main.rs:780:9:780:12 | test | main.rs:775:31:781:5 | { ... } | | -| main.rs:785:5:798:5 | enter fn test3 | main.rs:787:9:787:24 | let ... = ... | | -| main.rs:785:5:798:5 | exit fn test3 (normal) | main.rs:785:5:798:5 | exit fn test3 | | -| main.rs:786:16:798:5 | { ... } | main.rs:785:5:798:5 | exit fn test3 (normal) | | -| main.rs:787:9:787:24 | let ... = ... | main.rs:787:17:787:20 | Some | | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | | -| main.rs:787:13:787:13 | x | main.rs:788:9:792:10 | ExprStmt | match | -| main.rs:787:17:787:20 | Some | main.rs:787:22:787:22 | 0 | | -| main.rs:787:17:787:23 | Some(...) | main.rs:787:13:787:13 | x | | -| main.rs:787:22:787:22 | 0 | main.rs:787:17:787:23 | Some(...) | | -| main.rs:788:9:792:9 | match x { ... } | main.rs:793:9:797:10 | ExprStmt | | -| main.rs:788:9:792:10 | ExprStmt | main.rs:788:15:788:15 | x | | -| main.rs:788:15:788:15 | x | main.rs:789:13:789:19 | Some(...) | | -| main.rs:789:13:789:19 | Some(...) | main.rs:789:18:789:18 | x | match | -| main.rs:789:13:789:19 | Some(...) | main.rs:791:13:791:13 | _ | no-match | -| main.rs:789:18:789:18 | x | main.rs:789:18:789:18 | x | | -| main.rs:789:18:789:18 | x | main.rs:790:20:790:20 | x | match | -| main.rs:790:20:790:20 | x | main.rs:788:9:792:9 | match x { ... } | | -| main.rs:791:13:791:13 | _ | main.rs:791:18:791:18 | 0 | match | -| main.rs:791:18:791:18 | 0 | main.rs:788:9:792:9 | match x { ... } | | -| main.rs:793:9:797:9 | match x { ... } | main.rs:786:16:798:5 | { ... } | | -| main.rs:793:9:797:10 | ExprStmt | main.rs:793:15:793:15 | x | | -| main.rs:793:15:793:15 | x | main.rs:794:13:794:19 | Some(...) | | -| main.rs:794:13:794:19 | Some(...) | main.rs:794:18:794:18 | z | match | -| main.rs:794:13:794:19 | Some(...) | main.rs:796:13:796:13 | _ | no-match | -| main.rs:794:18:794:18 | z | main.rs:794:18:794:18 | z | | -| main.rs:794:18:794:18 | z | main.rs:795:17:795:17 | z | match | -| main.rs:794:18:794:18 | z | main.rs:796:13:796:13 | _ | no-match | -| main.rs:795:17:795:17 | z | main.rs:793:9:797:9 | match x { ... } | | -| main.rs:796:13:796:13 | _ | main.rs:796:18:796:18 | 0 | match | -| main.rs:796:18:796:18 | 0 | main.rs:793:9:797:9 | match x { ... } | | -| main.rs:801:1:845:1 | enter fn main | main.rs:802:5:802:25 | ExprStmt | | -| main.rs:801:1:845:1 | exit fn main (normal) | main.rs:801:1:845:1 | exit fn main | | -| main.rs:801:11:845:1 | { ... } | main.rs:801:1:845:1 | exit fn main (normal) | | -| main.rs:802:5:802:22 | immutable_variable | main.rs:802:5:802:24 | immutable_variable(...) | | -| main.rs:802:5:802:24 | immutable_variable(...) | main.rs:803:5:803:23 | ExprStmt | | -| main.rs:802:5:802:25 | ExprStmt | main.rs:802:5:802:22 | immutable_variable | | -| main.rs:803:5:803:20 | mutable_variable | main.rs:803:5:803:22 | mutable_variable(...) | | -| main.rs:803:5:803:22 | mutable_variable(...) | main.rs:804:5:804:40 | ExprStmt | | -| main.rs:803:5:803:23 | ExprStmt | main.rs:803:5:803:20 | mutable_variable | | -| main.rs:804:5:804:37 | mutable_variable_immutable_borrow | main.rs:804:5:804:39 | mutable_variable_immutable_borrow(...) | | -| main.rs:804:5:804:39 | mutable_variable_immutable_borrow(...) | main.rs:805:5:805:23 | ExprStmt | | -| main.rs:804:5:804:40 | ExprStmt | main.rs:804:5:804:37 | mutable_variable_immutable_borrow | | -| main.rs:805:5:805:20 | variable_shadow1 | main.rs:805:5:805:22 | variable_shadow1(...) | | -| main.rs:805:5:805:22 | variable_shadow1(...) | main.rs:806:5:806:23 | ExprStmt | | -| main.rs:805:5:805:23 | ExprStmt | main.rs:805:5:805:20 | variable_shadow1 | | -| main.rs:806:5:806:20 | variable_shadow2 | main.rs:806:5:806:22 | variable_shadow2(...) | | -| main.rs:806:5:806:22 | variable_shadow2(...) | main.rs:807:5:807:19 | ExprStmt | | -| main.rs:806:5:806:23 | ExprStmt | main.rs:806:5:806:20 | variable_shadow2 | | -| main.rs:807:5:807:16 | let_pattern1 | main.rs:807:5:807:18 | let_pattern1(...) | | -| main.rs:807:5:807:18 | let_pattern1(...) | main.rs:808:5:808:19 | ExprStmt | | -| main.rs:807:5:807:19 | ExprStmt | main.rs:807:5:807:16 | let_pattern1 | | -| main.rs:808:5:808:16 | let_pattern2 | main.rs:808:5:808:18 | let_pattern2(...) | | -| main.rs:808:5:808:18 | let_pattern2(...) | main.rs:809:5:809:19 | ExprStmt | | -| main.rs:808:5:808:19 | ExprStmt | main.rs:808:5:808:16 | let_pattern2 | | -| main.rs:809:5:809:16 | let_pattern3 | main.rs:809:5:809:18 | let_pattern3(...) | | -| main.rs:809:5:809:18 | let_pattern3(...) | main.rs:810:5:810:19 | ExprStmt | | -| main.rs:809:5:809:19 | ExprStmt | main.rs:809:5:809:16 | let_pattern3 | | -| main.rs:810:5:810:16 | let_pattern4 | main.rs:810:5:810:18 | let_pattern4(...) | | -| main.rs:810:5:810:18 | let_pattern4(...) | main.rs:811:5:811:21 | ExprStmt | | -| main.rs:810:5:810:19 | ExprStmt | main.rs:810:5:810:16 | let_pattern4 | | -| main.rs:811:5:811:18 | match_pattern1 | main.rs:811:5:811:20 | match_pattern1(...) | | -| main.rs:811:5:811:20 | match_pattern1(...) | main.rs:812:5:812:21 | ExprStmt | | -| main.rs:811:5:811:21 | ExprStmt | main.rs:811:5:811:18 | match_pattern1 | | -| main.rs:812:5:812:18 | match_pattern2 | main.rs:812:5:812:20 | match_pattern2(...) | | -| main.rs:812:5:812:20 | match_pattern2(...) | main.rs:813:5:813:21 | ExprStmt | | -| main.rs:812:5:812:21 | ExprStmt | main.rs:812:5:812:18 | match_pattern2 | | -| main.rs:813:5:813:18 | match_pattern3 | main.rs:813:5:813:20 | match_pattern3(...) | | -| main.rs:813:5:813:20 | match_pattern3(...) | main.rs:814:5:814:21 | ExprStmt | | -| main.rs:813:5:813:21 | ExprStmt | main.rs:813:5:813:18 | match_pattern3 | | -| main.rs:814:5:814:18 | match_pattern4 | main.rs:814:5:814:20 | match_pattern4(...) | | -| main.rs:814:5:814:20 | match_pattern4(...) | main.rs:815:5:815:21 | ExprStmt | | -| main.rs:814:5:814:21 | ExprStmt | main.rs:814:5:814:18 | match_pattern4 | | -| main.rs:815:5:815:18 | match_pattern5 | main.rs:815:5:815:20 | match_pattern5(...) | | -| main.rs:815:5:815:20 | match_pattern5(...) | main.rs:816:5:816:21 | ExprStmt | | -| main.rs:815:5:815:21 | ExprStmt | main.rs:815:5:815:18 | match_pattern5 | | -| main.rs:816:5:816:18 | match_pattern6 | main.rs:816:5:816:20 | match_pattern6(...) | | -| main.rs:816:5:816:20 | match_pattern6(...) | main.rs:817:5:817:21 | ExprStmt | | -| main.rs:816:5:816:21 | ExprStmt | main.rs:816:5:816:18 | match_pattern6 | | -| main.rs:817:5:817:18 | match_pattern7 | main.rs:817:5:817:20 | match_pattern7(...) | | -| main.rs:817:5:817:20 | match_pattern7(...) | main.rs:818:5:818:21 | ExprStmt | | -| main.rs:817:5:817:21 | ExprStmt | main.rs:817:5:817:18 | match_pattern7 | | -| main.rs:818:5:818:18 | match_pattern8 | main.rs:818:5:818:20 | match_pattern8(...) | | -| main.rs:818:5:818:20 | match_pattern8(...) | main.rs:819:5:819:21 | ExprStmt | | -| main.rs:818:5:818:21 | ExprStmt | main.rs:818:5:818:18 | match_pattern8 | | -| main.rs:819:5:819:18 | match_pattern9 | main.rs:819:5:819:20 | match_pattern9(...) | | -| main.rs:819:5:819:20 | match_pattern9(...) | main.rs:820:5:820:22 | ExprStmt | | -| main.rs:819:5:819:21 | ExprStmt | main.rs:819:5:819:18 | match_pattern9 | | -| main.rs:820:5:820:19 | match_pattern10 | main.rs:820:5:820:21 | match_pattern10(...) | | -| main.rs:820:5:820:21 | match_pattern10(...) | main.rs:821:5:821:22 | ExprStmt | | -| main.rs:820:5:820:22 | ExprStmt | main.rs:820:5:820:19 | match_pattern10 | | -| main.rs:821:5:821:19 | match_pattern11 | main.rs:821:5:821:21 | match_pattern11(...) | | -| main.rs:821:5:821:21 | match_pattern11(...) | main.rs:822:5:822:22 | ExprStmt | | -| main.rs:821:5:821:22 | ExprStmt | main.rs:821:5:821:19 | match_pattern11 | | -| main.rs:822:5:822:19 | match_pattern12 | main.rs:822:5:822:21 | match_pattern12(...) | | -| main.rs:822:5:822:21 | match_pattern12(...) | main.rs:823:5:823:22 | ExprStmt | | -| main.rs:822:5:822:22 | ExprStmt | main.rs:822:5:822:19 | match_pattern12 | | -| main.rs:823:5:823:19 | match_pattern13 | main.rs:823:5:823:21 | match_pattern13(...) | | -| main.rs:823:5:823:21 | match_pattern13(...) | main.rs:824:5:824:22 | ExprStmt | | -| main.rs:823:5:823:22 | ExprStmt | main.rs:823:5:823:19 | match_pattern13 | | -| main.rs:824:5:824:19 | match_pattern14 | main.rs:824:5:824:21 | match_pattern14(...) | | -| main.rs:824:5:824:21 | match_pattern14(...) | main.rs:825:5:825:22 | ExprStmt | | -| main.rs:824:5:824:22 | ExprStmt | main.rs:824:5:824:19 | match_pattern14 | | -| main.rs:825:5:825:19 | match_pattern15 | main.rs:825:5:825:21 | match_pattern15(...) | | -| main.rs:825:5:825:21 | match_pattern15(...) | main.rs:826:5:826:22 | ExprStmt | | -| main.rs:825:5:825:22 | ExprStmt | main.rs:825:5:825:19 | match_pattern15 | | -| main.rs:826:5:826:19 | match_pattern16 | main.rs:826:5:826:21 | match_pattern16(...) | | -| main.rs:826:5:826:21 | match_pattern16(...) | main.rs:827:5:827:36 | ExprStmt | | -| main.rs:826:5:826:22 | ExprStmt | main.rs:826:5:826:19 | match_pattern16 | | -| main.rs:827:5:827:18 | param_pattern1 | main.rs:827:20:827:22 | "a" | | -| main.rs:827:5:827:35 | param_pattern1(...) | main.rs:828:5:828:37 | ExprStmt | | -| main.rs:827:5:827:36 | ExprStmt | main.rs:827:5:827:18 | param_pattern1 | | -| main.rs:827:20:827:22 | "a" | main.rs:827:26:827:28 | "b" | | -| main.rs:827:25:827:34 | TupleExpr | main.rs:827:5:827:35 | param_pattern1(...) | | -| main.rs:827:26:827:28 | "b" | main.rs:827:31:827:33 | "c" | | -| main.rs:827:31:827:33 | "c" | main.rs:827:25:827:34 | TupleExpr | | -| main.rs:828:5:828:18 | param_pattern2 | main.rs:828:20:828:31 | ...::Left | | -| main.rs:828:5:828:36 | param_pattern2(...) | main.rs:829:5:829:26 | ExprStmt | | -| main.rs:828:5:828:37 | ExprStmt | main.rs:828:5:828:18 | param_pattern2 | | -| main.rs:828:20:828:31 | ...::Left | main.rs:828:33:828:34 | 45 | | -| main.rs:828:20:828:35 | ...::Left(...) | main.rs:828:5:828:36 | param_pattern2(...) | | -| main.rs:828:33:828:34 | 45 | main.rs:828:20:828:35 | ...::Left(...) | | -| main.rs:829:5:829:23 | destruct_assignment | main.rs:829:5:829:25 | destruct_assignment(...) | | -| main.rs:829:5:829:25 | destruct_assignment(...) | main.rs:830:5:830:23 | ExprStmt | | -| main.rs:829:5:829:26 | ExprStmt | main.rs:829:5:829:23 | destruct_assignment | | -| main.rs:830:5:830:20 | closure_variable | main.rs:830:5:830:22 | closure_variable(...) | | -| main.rs:830:5:830:22 | closure_variable(...) | main.rs:831:5:831:22 | ExprStmt | | -| main.rs:830:5:830:23 | ExprStmt | main.rs:830:5:830:20 | closure_variable | | -| main.rs:831:5:831:19 | nested_function | main.rs:831:5:831:21 | nested_function(...) | | -| main.rs:831:5:831:21 | nested_function(...) | main.rs:832:5:832:19 | ExprStmt | | -| main.rs:831:5:831:22 | ExprStmt | main.rs:831:5:831:19 | nested_function | | -| main.rs:832:5:832:16 | for_variable | main.rs:832:5:832:18 | for_variable(...) | | -| main.rs:832:5:832:18 | for_variable(...) | main.rs:833:5:833:17 | ExprStmt | | -| main.rs:832:5:832:19 | ExprStmt | main.rs:832:5:832:16 | for_variable | | -| main.rs:833:5:833:14 | add_assign | main.rs:833:5:833:16 | add_assign(...) | | -| main.rs:833:5:833:16 | add_assign(...) | main.rs:834:5:834:13 | ExprStmt | | -| main.rs:833:5:833:17 | ExprStmt | main.rs:833:5:833:14 | add_assign | | -| main.rs:834:5:834:10 | mutate | main.rs:834:5:834:12 | mutate(...) | | -| main.rs:834:5:834:12 | mutate(...) | main.rs:835:5:835:17 | ExprStmt | | -| main.rs:834:5:834:13 | ExprStmt | main.rs:834:5:834:10 | mutate | | -| main.rs:835:5:835:14 | mutate_arg | main.rs:835:5:835:16 | mutate_arg(...) | | -| main.rs:835:5:835:16 | mutate_arg(...) | main.rs:836:5:836:12 | ExprStmt | | -| main.rs:835:5:835:17 | ExprStmt | main.rs:835:5:835:14 | mutate_arg | | -| main.rs:836:5:836:9 | alias | main.rs:836:5:836:11 | alias(...) | | -| main.rs:836:5:836:11 | alias(...) | main.rs:837:5:837:18 | ExprStmt | | -| main.rs:836:5:836:12 | ExprStmt | main.rs:836:5:836:9 | alias | | -| main.rs:837:5:837:15 | capture_mut | main.rs:837:5:837:17 | capture_mut(...) | | -| main.rs:837:5:837:17 | capture_mut(...) | main.rs:838:5:838:20 | ExprStmt | | -| main.rs:837:5:837:18 | ExprStmt | main.rs:837:5:837:15 | capture_mut | | -| main.rs:838:5:838:17 | capture_immut | main.rs:838:5:838:19 | capture_immut(...) | | -| main.rs:838:5:838:19 | capture_immut(...) | main.rs:839:5:839:26 | ExprStmt | | -| main.rs:838:5:838:20 | ExprStmt | main.rs:838:5:838:17 | capture_immut | | -| main.rs:839:5:839:23 | async_block_capture | main.rs:839:5:839:25 | async_block_capture(...) | | -| main.rs:839:5:839:25 | async_block_capture(...) | main.rs:840:5:840:14 | ExprStmt | | -| main.rs:839:5:839:26 | ExprStmt | main.rs:839:5:839:23 | async_block_capture | | -| main.rs:840:5:840:11 | structs | main.rs:840:5:840:13 | structs(...) | | -| main.rs:840:5:840:13 | structs(...) | main.rs:841:5:841:14 | ExprStmt | | -| main.rs:840:5:840:14 | ExprStmt | main.rs:840:5:840:11 | structs | | -| main.rs:841:5:841:11 | ref_arg | main.rs:841:5:841:13 | ref_arg(...) | | -| main.rs:841:5:841:13 | ref_arg(...) | main.rs:842:5:842:30 | ExprStmt | | -| main.rs:841:5:841:14 | ExprStmt | main.rs:841:5:841:11 | ref_arg | | -| main.rs:842:5:842:27 | ref_methodcall_receiver | main.rs:842:5:842:29 | ref_methodcall_receiver(...) | | -| main.rs:842:5:842:29 | ref_methodcall_receiver(...) | main.rs:843:5:843:23 | ExprStmt | | -| main.rs:842:5:842:30 | ExprStmt | main.rs:842:5:842:27 | ref_methodcall_receiver | | -| main.rs:843:5:843:20 | macro_invocation | main.rs:843:5:843:22 | macro_invocation(...) | | -| main.rs:843:5:843:22 | macro_invocation(...) | main.rs:844:5:844:18 | ExprStmt | | -| main.rs:843:5:843:23 | ExprStmt | main.rs:843:5:843:20 | macro_invocation | | -| main.rs:844:5:844:15 | capture_phi | main.rs:844:5:844:17 | capture_phi(...) | | -| main.rs:844:5:844:17 | capture_phi(...) | main.rs:801:11:845:1 | { ... } | | -| main.rs:844:5:844:18 | ExprStmt | main.rs:844:5:844:15 | capture_phi | | +| main.rs:708:5:708:25 | print_i64(...) | main.rs:702:14:709:1 | { ... } | | +| main.rs:708:5:708:26 | ExprStmt | main.rs:708:5:708:13 | print_i64 | | +| main.rs:708:15:708:15 | a | main.rs:708:15:708:24 | a.my_get() | | +| main.rs:708:15:708:24 | a.my_get() | main.rs:708:5:708:25 | print_i64(...) | | +| main.rs:711:1:718:1 | enter fn arrays | main.rs:712:5:712:26 | let ... = ... | | +| main.rs:711:1:718:1 | exit fn arrays (normal) | main.rs:711:1:718:1 | exit fn arrays | | +| main.rs:711:13:718:1 | { ... } | main.rs:711:1:718:1 | exit fn arrays (normal) | | +| main.rs:712:5:712:26 | let ... = ... | main.rs:712:18:712:18 | 1 | | +| main.rs:712:9:712:13 | mut a | main.rs:713:5:713:20 | ExprStmt | match | +| main.rs:712:13:712:13 | a | main.rs:712:9:712:13 | mut a | | +| main.rs:712:17:712:25 | [...] | main.rs:712:13:712:13 | a | | +| main.rs:712:18:712:18 | 1 | main.rs:712:21:712:21 | 2 | | +| main.rs:712:21:712:21 | 2 | main.rs:712:24:712:24 | 3 | | +| main.rs:712:24:712:24 | 3 | main.rs:712:17:712:25 | [...] | | +| main.rs:713:5:713:13 | print_i64 | main.rs:713:15:713:15 | a | | +| main.rs:713:5:713:19 | print_i64(...) | main.rs:714:5:714:13 | ExprStmt | | +| main.rs:713:5:713:20 | ExprStmt | main.rs:713:5:713:13 | print_i64 | | +| main.rs:713:15:713:15 | a | main.rs:713:17:713:17 | 0 | | +| main.rs:713:15:713:18 | a[0] | main.rs:713:5:713:19 | print_i64(...) | | +| main.rs:713:17:713:17 | 0 | main.rs:713:15:713:18 | a[0] | | +| main.rs:714:5:714:5 | a | main.rs:714:7:714:7 | 1 | | +| main.rs:714:5:714:8 | a[1] | main.rs:714:12:714:12 | 5 | | +| main.rs:714:5:714:12 | ... = ... | main.rs:715:5:715:20 | ExprStmt | | +| main.rs:714:5:714:13 | ExprStmt | main.rs:714:5:714:5 | a | | +| main.rs:714:7:714:7 | 1 | main.rs:714:5:714:8 | a[1] | | +| main.rs:714:12:714:12 | 5 | main.rs:714:5:714:12 | ... = ... | | +| main.rs:715:5:715:13 | print_i64 | main.rs:715:15:715:15 | a | | +| main.rs:715:5:715:19 | print_i64(...) | main.rs:716:5:716:18 | ExprStmt | | +| main.rs:715:5:715:20 | ExprStmt | main.rs:715:5:715:13 | print_i64 | | +| main.rs:715:15:715:15 | a | main.rs:715:17:715:17 | 1 | | +| main.rs:715:15:715:18 | a[1] | main.rs:715:5:715:19 | print_i64(...) | | +| main.rs:715:17:715:17 | 1 | main.rs:715:15:715:18 | a[1] | | +| main.rs:716:5:716:5 | a | main.rs:716:10:716:10 | 4 | | +| main.rs:716:5:716:17 | ... = ... | main.rs:717:5:717:20 | ExprStmt | | +| main.rs:716:5:716:18 | ExprStmt | main.rs:716:5:716:5 | a | | +| main.rs:716:9:716:17 | [...] | main.rs:716:5:716:17 | ... = ... | | +| main.rs:716:10:716:10 | 4 | main.rs:716:13:716:13 | 5 | | +| main.rs:716:13:716:13 | 5 | main.rs:716:16:716:16 | 6 | | +| main.rs:716:16:716:16 | 6 | main.rs:716:9:716:17 | [...] | | +| main.rs:717:5:717:13 | print_i64 | main.rs:717:15:717:15 | a | | +| main.rs:717:5:717:19 | print_i64(...) | main.rs:711:13:718:1 | { ... } | | +| main.rs:717:5:717:20 | ExprStmt | main.rs:717:5:717:13 | print_i64 | | +| main.rs:717:15:717:15 | a | main.rs:717:17:717:17 | 2 | | +| main.rs:717:15:717:18 | a[2] | main.rs:717:5:717:19 | print_i64(...) | | +| main.rs:717:17:717:17 | 2 | main.rs:717:15:717:18 | a[2] | | +| main.rs:720:1:727:1 | enter fn ref_arg | main.rs:721:5:721:15 | let ... = 16 | | +| main.rs:720:1:727:1 | exit fn ref_arg (normal) | main.rs:720:1:727:1 | exit fn ref_arg | | +| main.rs:720:14:727:1 | { ... } | main.rs:720:1:727:1 | exit fn ref_arg (normal) | | +| main.rs:721:5:721:15 | let ... = 16 | main.rs:721:13:721:14 | 16 | | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | | +| main.rs:721:9:721:9 | x | main.rs:722:5:722:22 | ExprStmt | match | +| main.rs:721:13:721:14 | 16 | main.rs:721:9:721:9 | x | | +| main.rs:722:5:722:17 | print_i64_ref | main.rs:722:20:722:20 | x | | +| main.rs:722:5:722:21 | print_i64_ref(...) | main.rs:723:5:723:17 | ExprStmt | | +| main.rs:722:5:722:22 | ExprStmt | main.rs:722:5:722:17 | print_i64_ref | | +| main.rs:722:19:722:20 | &x | main.rs:722:5:722:21 | print_i64_ref(...) | | +| main.rs:722:20:722:20 | x | main.rs:722:19:722:20 | &x | | +| main.rs:723:5:723:13 | print_i64 | main.rs:723:15:723:15 | x | | +| main.rs:723:5:723:16 | print_i64(...) | main.rs:725:5:725:15 | let ... = 17 | | +| main.rs:723:5:723:17 | ExprStmt | main.rs:723:5:723:13 | print_i64 | | +| main.rs:723:15:723:15 | x | main.rs:723:5:723:16 | print_i64(...) | | +| main.rs:725:5:725:15 | let ... = 17 | main.rs:725:13:725:14 | 17 | | +| main.rs:725:9:725:9 | z | main.rs:725:9:725:9 | z | | +| main.rs:725:9:725:9 | z | main.rs:726:5:726:22 | ExprStmt | match | +| main.rs:725:13:725:14 | 17 | main.rs:725:9:725:9 | z | | +| main.rs:726:5:726:17 | print_i64_ref | main.rs:726:20:726:20 | z | | +| main.rs:726:5:726:21 | print_i64_ref(...) | main.rs:720:14:727:1 | { ... } | | +| main.rs:726:5:726:22 | ExprStmt | main.rs:726:5:726:17 | print_i64_ref | | +| main.rs:726:19:726:20 | &z | main.rs:726:5:726:21 | print_i64_ref(...) | | +| main.rs:726:20:726:20 | z | main.rs:726:19:726:20 | &z | | +| main.rs:734:5:736:5 | enter fn bar | main.rs:734:17:734:20 | self | | +| main.rs:734:5:736:5 | exit fn bar (normal) | main.rs:734:5:736:5 | exit fn bar | | +| main.rs:734:12:734:20 | SelfParam | main.rs:735:9:735:36 | ExprStmt | | +| main.rs:734:17:734:20 | self | main.rs:734:12:734:20 | SelfParam | | +| main.rs:734:23:736:5 | { ... } | main.rs:734:5:736:5 | exit fn bar (normal) | | +| main.rs:735:9:735:13 | * ... | main.rs:735:33:735:33 | 3 | | +| main.rs:735:9:735:35 | ... = ... | main.rs:734:23:736:5 | { ... } | | +| main.rs:735:9:735:36 | ExprStmt | main.rs:735:10:735:13 | self | | +| main.rs:735:10:735:13 | self | main.rs:735:9:735:13 | * ... | | +| main.rs:735:17:735:35 | MyStruct {...} | main.rs:735:9:735:35 | ... = ... | | +| main.rs:735:33:735:33 | 3 | main.rs:735:17:735:35 | MyStruct {...} | | +| main.rs:739:1:745:1 | enter fn ref_methodcall_receiver | main.rs:740:5:740:36 | let ... = ... | | +| main.rs:739:1:745:1 | exit fn ref_methodcall_receiver (normal) | main.rs:739:1:745:1 | exit fn ref_methodcall_receiver | | +| main.rs:739:30:745:1 | { ... } | main.rs:739:1:745:1 | exit fn ref_methodcall_receiver (normal) | | +| main.rs:740:5:740:36 | let ... = ... | main.rs:740:33:740:33 | 1 | | +| main.rs:740:9:740:13 | mut a | main.rs:741:5:741:12 | ExprStmt | match | +| main.rs:740:13:740:13 | a | main.rs:740:9:740:13 | mut a | | +| main.rs:740:17:740:35 | MyStruct {...} | main.rs:740:13:740:13 | a | | +| main.rs:740:33:740:33 | 1 | main.rs:740:17:740:35 | MyStruct {...} | | +| main.rs:741:5:741:5 | a | main.rs:741:5:741:11 | a.bar() | | +| main.rs:741:5:741:11 | a.bar() | main.rs:744:5:744:21 | ExprStmt | | +| main.rs:741:5:741:12 | ExprStmt | main.rs:741:5:741:5 | a | | +| main.rs:744:5:744:13 | print_i64 | main.rs:744:15:744:15 | a | | +| main.rs:744:5:744:20 | print_i64(...) | main.rs:739:30:745:1 | { ... } | | +| main.rs:744:5:744:21 | ExprStmt | main.rs:744:5:744:13 | print_i64 | | +| main.rs:744:15:744:15 | a | main.rs:744:15:744:19 | a.val | | +| main.rs:744:15:744:19 | a.val | main.rs:744:5:744:20 | print_i64(...) | | +| main.rs:761:1:772:1 | enter fn macro_invocation | main.rs:762:5:763:26 | let ... = ... | | +| main.rs:761:1:772:1 | exit fn macro_invocation (normal) | main.rs:761:1:772:1 | exit fn macro_invocation | | +| main.rs:761:23:772:1 | { ... } | main.rs:761:1:772:1 | exit fn macro_invocation (normal) | | +| main.rs:762:5:763:26 | let ... = ... | main.rs:763:23:763:24 | let ... = 37 | | +| main.rs:762:9:762:22 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | | +| main.rs:762:9:762:22 | var_from_macro | main.rs:764:5:764:30 | ExprStmt | match | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | match | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:23:763:24 | { ... } | | +| main.rs:763:9:763:25 | MacroExpr | main.rs:762:9:762:22 | var_from_macro | | +| main.rs:763:9:763:25 | let_in_macro!... | main.rs:763:9:763:25 | MacroExpr | | +| main.rs:763:23:763:24 | 37 | main.rs:763:9:763:21 | var_in_macro | | +| main.rs:763:23:763:24 | let ... = 37 | main.rs:763:23:763:24 | 37 | | +| main.rs:763:23:763:24 | { ... } | main.rs:763:9:763:25 | let_in_macro!... | | +| main.rs:764:5:764:13 | print_i64 | main.rs:764:15:764:28 | var_from_macro | | +| main.rs:764:5:764:29 | print_i64(...) | main.rs:765:5:765:26 | let ... = 33 | | +| main.rs:764:5:764:30 | ExprStmt | main.rs:764:5:764:13 | print_i64 | | +| main.rs:764:15:764:28 | var_from_macro | main.rs:764:5:764:29 | print_i64(...) | | +| main.rs:765:5:765:26 | let ... = 33 | main.rs:765:24:765:25 | 33 | | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | | +| main.rs:765:9:765:20 | var_in_macro | main.rs:770:5:770:44 | ExprStmt | match | +| main.rs:765:24:765:25 | 33 | main.rs:765:9:765:20 | var_in_macro | | +| main.rs:770:5:770:13 | print_i64 | main.rs:770:15:770:28 | let ... = 0 | | +| main.rs:770:5:770:43 | print_i64(...) | main.rs:771:5:771:28 | ExprStmt | | +| main.rs:770:5:770:44 | ExprStmt | main.rs:770:5:770:13 | print_i64 | | +| main.rs:770:15:770:28 | 0 | main.rs:770:15:770:28 | var_in_macro | | +| main.rs:770:15:770:28 | let ... = 0 | main.rs:770:15:770:28 | 0 | | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:30:770:41 | var_in_macro | match | +| main.rs:770:15:770:42 | MacroExpr | main.rs:770:5:770:43 | print_i64(...) | | +| main.rs:770:15:770:42 | let_in_macro2!... | main.rs:770:15:770:42 | MacroExpr | | +| main.rs:770:30:770:41 | var_in_macro | main.rs:770:30:770:41 | { ... } | | +| main.rs:770:30:770:41 | { ... } | main.rs:770:15:770:42 | let_in_macro2!... | | +| main.rs:771:5:771:13 | print_i64 | main.rs:771:15:771:26 | var_in_macro | | +| main.rs:771:5:771:27 | print_i64(...) | main.rs:761:23:772:1 | { ... } | | +| main.rs:771:5:771:28 | ExprStmt | main.rs:771:5:771:13 | print_i64 | | +| main.rs:771:15:771:26 | var_in_macro | main.rs:771:5:771:27 | print_i64(...) | | +| main.rs:774:1:778:1 | enter fn let_without_initializer | main.rs:775:5:775:10 | let ... | | +| main.rs:774:1:778:1 | exit fn let_without_initializer (normal) | main.rs:774:1:778:1 | exit fn let_without_initializer | | +| main.rs:774:30:778:1 | { ... } | main.rs:774:1:778:1 | exit fn let_without_initializer (normal) | | +| main.rs:775:5:775:10 | let ... | main.rs:775:9:775:9 | x | | +| main.rs:775:9:775:9 | x | main.rs:775:9:775:9 | x | | +| main.rs:775:9:775:9 | x | main.rs:776:5:776:10 | ExprStmt | match | +| main.rs:776:5:776:5 | x | main.rs:776:9:776:9 | 1 | | +| main.rs:776:5:776:9 | ... = ... | main.rs:777:5:777:17 | ExprStmt | | +| main.rs:776:5:776:10 | ExprStmt | main.rs:776:5:776:5 | x | | +| main.rs:776:9:776:9 | 1 | main.rs:776:5:776:9 | ... = ... | | +| main.rs:777:5:777:13 | print_i64 | main.rs:777:15:777:15 | x | | +| main.rs:777:5:777:16 | print_i64(...) | main.rs:774:30:778:1 | { ... } | | +| main.rs:777:5:777:17 | ExprStmt | main.rs:777:5:777:13 | print_i64 | | +| main.rs:777:15:777:15 | x | main.rs:777:5:777:16 | print_i64(...) | | +| main.rs:780:1:790:1 | enter fn capture_phi | main.rs:781:5:781:20 | let ... = 100 | | +| main.rs:780:1:790:1 | exit fn capture_phi (normal) | main.rs:780:1:790:1 | exit fn capture_phi | | +| main.rs:780:18:790:1 | { ... } | main.rs:780:1:790:1 | exit fn capture_phi (normal) | | +| main.rs:781:5:781:20 | let ... = 100 | main.rs:781:17:781:19 | 100 | | +| main.rs:781:9:781:13 | mut x | main.rs:782:5:787:6 | let ... = ... | match | +| main.rs:781:13:781:13 | x | main.rs:781:9:781:13 | mut x | | +| main.rs:781:17:781:19 | 100 | main.rs:781:13:781:13 | x | | +| main.rs:782:5:787:6 | let ... = ... | main.rs:782:19:787:5 | \|...\| ... | | +| main.rs:782:9:782:15 | mut cap | main.rs:788:5:788:14 | ExprStmt | match | +| main.rs:782:13:782:15 | cap | main.rs:782:9:782:15 | mut cap | | +| main.rs:782:19:787:5 | \|...\| ... | main.rs:782:13:782:15 | cap | | +| main.rs:782:19:787:5 | enter \|...\| ... | main.rs:782:20:782:20 | b | | +| main.rs:782:19:787:5 | exit \|...\| ... (normal) | main.rs:782:19:787:5 | exit \|...\| ... | | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:20 | b | | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:26 | ...: bool | match | +| main.rs:782:20:782:26 | ...: bool | main.rs:783:9:786:10 | let _ = ... | | +| main.rs:782:29:787:5 | { ... } | main.rs:782:19:787:5 | exit \|...\| ... (normal) | | +| main.rs:783:9:786:10 | let _ = ... | main.rs:784:20:784:20 | b | | +| main.rs:784:13:784:13 | _ | main.rs:782:29:787:5 | { ... } | match | +| main.rs:784:17:786:9 | if b {...} | main.rs:784:13:784:13 | _ | | +| main.rs:784:20:784:20 | b | main.rs:784:17:786:9 | if b {...} | false | +| main.rs:784:20:784:20 | b | main.rs:785:13:785:20 | ExprStmt | true | +| main.rs:784:22:786:9 | { ... } | main.rs:784:17:786:9 | if b {...} | | +| main.rs:785:13:785:13 | x | main.rs:785:17:785:19 | 200 | | +| main.rs:785:13:785:19 | ... = ... | main.rs:784:22:786:9 | { ... } | | +| main.rs:785:13:785:20 | ExprStmt | main.rs:785:13:785:13 | x | | +| main.rs:785:17:785:19 | 200 | main.rs:785:13:785:19 | ... = ... | | +| main.rs:788:5:788:7 | cap | main.rs:788:9:788:12 | true | | +| main.rs:788:5:788:13 | cap(...) | main.rs:789:5:789:17 | ExprStmt | | +| main.rs:788:5:788:14 | ExprStmt | main.rs:788:5:788:7 | cap | | +| main.rs:788:9:788:12 | true | main.rs:788:5:788:13 | cap(...) | | +| main.rs:789:5:789:13 | print_i64 | main.rs:789:15:789:15 | x | | +| main.rs:789:5:789:16 | print_i64(...) | main.rs:780:18:790:1 | { ... } | | +| main.rs:789:5:789:17 | ExprStmt | main.rs:789:5:789:13 | print_i64 | | +| main.rs:789:15:789:15 | x | main.rs:789:5:789:16 | print_i64(...) | | +| main.rs:793:5:808:5 | enter fn test | main.rs:795:9:795:25 | let ... = ... | | +| main.rs:793:5:808:5 | exit fn test (normal) | main.rs:793:5:808:5 | exit fn test | | +| main.rs:794:34:808:5 | { ... } | main.rs:793:5:808:5 | exit fn test (normal) | | +| main.rs:795:9:795:25 | let ... = ... | main.rs:795:17:795:20 | Some | | +| main.rs:795:13:795:13 | x | main.rs:795:13:795:13 | x | | +| main.rs:795:13:795:13 | x | main.rs:796:9:803:10 | let ... = ... | match | +| main.rs:795:17:795:20 | Some | main.rs:795:22:795:23 | 42 | | +| main.rs:795:17:795:24 | Some(...) | main.rs:795:13:795:13 | x | | +| main.rs:795:22:795:23 | 42 | main.rs:795:17:795:24 | Some(...) | | +| main.rs:796:9:803:10 | let ... = ... | main.rs:797:19:797:19 | x | | +| main.rs:796:13:796:13 | y | main.rs:796:13:796:13 | y | | +| main.rs:796:13:796:13 | y | main.rs:804:15:804:15 | y | match | +| main.rs:797:13:803:9 | match x { ... } | main.rs:796:13:796:13 | y | | +| main.rs:797:19:797:19 | x | main.rs:798:13:798:19 | Some(...) | | +| main.rs:798:13:798:19 | Some(...) | main.rs:798:18:798:18 | y | match | +| main.rs:798:13:798:19 | Some(...) | main.rs:801:13:801:16 | None | no-match | +| main.rs:798:18:798:18 | y | main.rs:798:18:798:18 | y | | +| main.rs:798:18:798:18 | y | main.rs:799:17:799:20 | None | match | +| main.rs:798:24:800:13 | { ... } | main.rs:797:13:803:9 | match x { ... } | | +| main.rs:799:17:799:20 | None | main.rs:798:24:800:13 | { ... } | | +| main.rs:801:13:801:16 | None | main.rs:801:13:801:16 | None | | +| main.rs:801:13:801:16 | None | main.rs:802:17:802:20 | None | match | +| main.rs:802:17:802:20 | None | main.rs:797:13:803:9 | match x { ... } | | +| main.rs:804:9:807:9 | match y { ... } | main.rs:794:34:808:5 | { ... } | | +| main.rs:804:15:804:15 | y | main.rs:805:13:805:16 | N0ne | | +| main.rs:805:13:805:16 | N0ne | main.rs:805:13:805:16 | N0ne | | +| main.rs:805:13:805:16 | N0ne | main.rs:806:17:806:20 | N0ne | match | +| main.rs:806:17:806:20 | N0ne | main.rs:804:9:807:9 | match y { ... } | | +| main.rs:810:5:817:5 | enter fn test2 | main.rs:812:9:813:17 | let ... = test | | +| main.rs:810:5:817:5 | exit fn test2 (normal) | main.rs:810:5:817:5 | exit fn test2 | | +| main.rs:811:31:817:5 | { ... } | main.rs:810:5:817:5 | exit fn test2 (normal) | | +| main.rs:812:9:813:17 | let ... = test | main.rs:813:13:813:16 | test | | +| main.rs:812:13:812:22 | test_alias | main.rs:812:13:812:22 | test_alias | | +| main.rs:812:13:812:22 | test_alias | main.rs:814:9:815:25 | let ... = ... | match | +| main.rs:813:13:813:16 | test | main.rs:812:13:812:22 | test_alias | | +| main.rs:814:9:815:25 | let ... = ... | main.rs:815:13:815:22 | test_alias | | +| main.rs:814:13:814:16 | test | main.rs:814:13:814:16 | test | | +| main.rs:814:13:814:16 | test | main.rs:816:9:816:12 | test | match | +| main.rs:815:13:815:22 | test_alias | main.rs:815:13:815:24 | test_alias(...) | | +| main.rs:815:13:815:24 | test_alias(...) | main.rs:814:13:814:16 | test | | +| main.rs:816:9:816:12 | test | main.rs:811:31:817:5 | { ... } | | +| main.rs:821:5:834:5 | enter fn test3 | main.rs:823:9:823:24 | let ... = ... | | +| main.rs:821:5:834:5 | exit fn test3 (normal) | main.rs:821:5:834:5 | exit fn test3 | | +| main.rs:822:16:834:5 | { ... } | main.rs:821:5:834:5 | exit fn test3 (normal) | | +| main.rs:823:9:823:24 | let ... = ... | main.rs:823:17:823:20 | Some | | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | | +| main.rs:823:13:823:13 | x | main.rs:824:9:828:10 | ExprStmt | match | +| main.rs:823:17:823:20 | Some | main.rs:823:22:823:22 | 0 | | +| main.rs:823:17:823:23 | Some(...) | main.rs:823:13:823:13 | x | | +| main.rs:823:22:823:22 | 0 | main.rs:823:17:823:23 | Some(...) | | +| main.rs:824:9:828:9 | match x { ... } | main.rs:829:9:833:10 | ExprStmt | | +| main.rs:824:9:828:10 | ExprStmt | main.rs:824:15:824:15 | x | | +| main.rs:824:15:824:15 | x | main.rs:825:13:825:19 | Some(...) | | +| main.rs:825:13:825:19 | Some(...) | main.rs:825:18:825:18 | x | match | +| main.rs:825:13:825:19 | Some(...) | main.rs:827:13:827:13 | _ | no-match | +| main.rs:825:18:825:18 | x | main.rs:825:18:825:18 | x | | +| main.rs:825:18:825:18 | x | main.rs:826:20:826:20 | x | match | +| main.rs:826:20:826:20 | x | main.rs:824:9:828:9 | match x { ... } | | +| main.rs:827:13:827:13 | _ | main.rs:827:18:827:18 | 0 | match | +| main.rs:827:18:827:18 | 0 | main.rs:824:9:828:9 | match x { ... } | | +| main.rs:829:9:833:9 | match x { ... } | main.rs:822:16:834:5 | { ... } | | +| main.rs:829:9:833:10 | ExprStmt | main.rs:829:15:829:15 | x | | +| main.rs:829:15:829:15 | x | main.rs:830:13:830:19 | Some(...) | | +| main.rs:830:13:830:19 | Some(...) | main.rs:830:18:830:18 | z | match | +| main.rs:830:13:830:19 | Some(...) | main.rs:832:13:832:13 | _ | no-match | +| main.rs:830:18:830:18 | z | main.rs:830:18:830:18 | z | | +| main.rs:830:18:830:18 | z | main.rs:831:17:831:17 | z | match | +| main.rs:830:18:830:18 | z | main.rs:832:13:832:13 | _ | no-match | +| main.rs:831:17:831:17 | z | main.rs:829:9:833:9 | match x { ... } | | +| main.rs:832:13:832:13 | _ | main.rs:832:18:832:18 | 0 | match | +| main.rs:832:18:832:18 | 0 | main.rs:829:9:833:9 | match x { ... } | | +| main.rs:837:1:847:1 | enter fn let_in_block_in_cond | main.rs:838:5:838:14 | let ... = 1 | | +| main.rs:837:1:847:1 | exit fn let_in_block_in_cond (normal) | main.rs:837:1:847:1 | exit fn let_in_block_in_cond | | +| main.rs:837:27:847:1 | { ... } | main.rs:837:1:847:1 | exit fn let_in_block_in_cond (normal) | | +| main.rs:838:5:838:14 | let ... = 1 | main.rs:838:13:838:13 | 1 | | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | | +| main.rs:838:9:838:9 | x | main.rs:840:9:840:18 | let ... = 1 | match | +| main.rs:838:13:838:13 | 1 | main.rs:838:9:838:9 | x | | +| main.rs:839:5:846:5 | if ... {...} else {...} | main.rs:837:27:847:1 | { ... } | | +| main.rs:839:8:842:5 | [boolean(false)] { ... } | main.rs:845:9:845:21 | ExprStmt | false | +| main.rs:839:8:842:5 | [boolean(true)] { ... } | main.rs:843:9:843:21 | ExprStmt | true | +| main.rs:840:9:840:18 | let ... = 1 | main.rs:840:17:840:17 | 1 | | +| main.rs:840:13:840:13 | x | main.rs:840:13:840:13 | x | | +| main.rs:840:13:840:13 | x | main.rs:841:9:841:9 | x | match | +| main.rs:840:17:840:17 | 1 | main.rs:840:13:840:13 | x | | +| main.rs:841:9:841:9 | x | main.rs:841:13:841:13 | 0 | | +| main.rs:841:9:841:13 | ... > ... | main.rs:839:8:842:5 | [boolean(false)] { ... } | false | +| main.rs:841:9:841:13 | ... > ... | main.rs:839:8:842:5 | [boolean(true)] { ... } | true | +| main.rs:841:13:841:13 | 0 | main.rs:841:9:841:13 | ... > ... | | +| main.rs:842:7:844:5 | { ... } | main.rs:839:5:846:5 | if ... {...} else {...} | | +| main.rs:843:9:843:17 | print_i64 | main.rs:843:19:843:19 | x | | +| main.rs:843:9:843:20 | print_i64(...) | main.rs:842:7:844:5 | { ... } | | +| main.rs:843:9:843:21 | ExprStmt | main.rs:843:9:843:17 | print_i64 | | +| main.rs:843:19:843:19 | x | main.rs:843:9:843:20 | print_i64(...) | | +| main.rs:844:12:846:5 | { ... } | main.rs:839:5:846:5 | if ... {...} else {...} | | +| main.rs:845:9:845:17 | print_i64 | main.rs:845:19:845:19 | x | | +| main.rs:845:9:845:20 | print_i64(...) | main.rs:844:12:846:5 | { ... } | | +| main.rs:845:9:845:21 | ExprStmt | main.rs:845:9:845:17 | print_i64 | | +| main.rs:845:19:845:19 | x | main.rs:845:9:845:20 | print_i64(...) | | +| main.rs:849:1:896:1 | enter fn main | main.rs:850:5:850:25 | ExprStmt | | +| main.rs:849:1:896:1 | exit fn main (normal) | main.rs:849:1:896:1 | exit fn main | | +| main.rs:849:11:896:1 | { ... } | main.rs:849:1:896:1 | exit fn main (normal) | | +| main.rs:850:5:850:22 | immutable_variable | main.rs:850:5:850:24 | immutable_variable(...) | | +| main.rs:850:5:850:24 | immutable_variable(...) | main.rs:851:5:851:23 | ExprStmt | | +| main.rs:850:5:850:25 | ExprStmt | main.rs:850:5:850:22 | immutable_variable | | +| main.rs:851:5:851:20 | mutable_variable | main.rs:851:5:851:22 | mutable_variable(...) | | +| main.rs:851:5:851:22 | mutable_variable(...) | main.rs:852:5:852:40 | ExprStmt | | +| main.rs:851:5:851:23 | ExprStmt | main.rs:851:5:851:20 | mutable_variable | | +| main.rs:852:5:852:37 | mutable_variable_immutable_borrow | main.rs:852:5:852:39 | mutable_variable_immutable_borrow(...) | | +| main.rs:852:5:852:39 | mutable_variable_immutable_borrow(...) | main.rs:853:5:853:23 | ExprStmt | | +| main.rs:852:5:852:40 | ExprStmt | main.rs:852:5:852:37 | mutable_variable_immutable_borrow | | +| main.rs:853:5:853:20 | variable_shadow1 | main.rs:853:5:853:22 | variable_shadow1(...) | | +| main.rs:853:5:853:22 | variable_shadow1(...) | main.rs:854:5:854:23 | ExprStmt | | +| main.rs:853:5:853:23 | ExprStmt | main.rs:853:5:853:20 | variable_shadow1 | | +| main.rs:854:5:854:20 | variable_shadow2 | main.rs:854:5:854:22 | variable_shadow2(...) | | +| main.rs:854:5:854:22 | variable_shadow2(...) | main.rs:855:5:855:19 | ExprStmt | | +| main.rs:854:5:854:23 | ExprStmt | main.rs:854:5:854:20 | variable_shadow2 | | +| main.rs:855:5:855:16 | let_pattern1 | main.rs:855:5:855:18 | let_pattern1(...) | | +| main.rs:855:5:855:18 | let_pattern1(...) | main.rs:856:5:856:19 | ExprStmt | | +| main.rs:855:5:855:19 | ExprStmt | main.rs:855:5:855:16 | let_pattern1 | | +| main.rs:856:5:856:16 | let_pattern2 | main.rs:856:5:856:18 | let_pattern2(...) | | +| main.rs:856:5:856:18 | let_pattern2(...) | main.rs:857:5:857:19 | ExprStmt | | +| main.rs:856:5:856:19 | ExprStmt | main.rs:856:5:856:16 | let_pattern2 | | +| main.rs:857:5:857:16 | let_pattern3 | main.rs:857:5:857:18 | let_pattern3(...) | | +| main.rs:857:5:857:18 | let_pattern3(...) | main.rs:858:5:858:19 | ExprStmt | | +| main.rs:857:5:857:19 | ExprStmt | main.rs:857:5:857:16 | let_pattern3 | | +| main.rs:858:5:858:16 | let_pattern4 | main.rs:858:5:858:18 | let_pattern4(...) | | +| main.rs:858:5:858:18 | let_pattern4(...) | main.rs:859:5:859:19 | ExprStmt | | +| main.rs:858:5:858:19 | ExprStmt | main.rs:858:5:858:16 | let_pattern4 | | +| main.rs:859:5:859:16 | let_pattern5 | main.rs:859:5:859:18 | let_pattern5(...) | | +| main.rs:859:5:859:18 | let_pattern5(...) | main.rs:860:5:860:19 | ExprStmt | | +| main.rs:859:5:859:19 | ExprStmt | main.rs:859:5:859:16 | let_pattern5 | | +| main.rs:860:5:860:16 | let_pattern6 | main.rs:860:5:860:18 | let_pattern6(...) | | +| main.rs:860:5:860:18 | let_pattern6(...) | main.rs:861:5:861:21 | ExprStmt | | +| main.rs:860:5:860:19 | ExprStmt | main.rs:860:5:860:16 | let_pattern6 | | +| main.rs:861:5:861:18 | match_pattern1 | main.rs:861:5:861:20 | match_pattern1(...) | | +| main.rs:861:5:861:20 | match_pattern1(...) | main.rs:862:5:862:21 | ExprStmt | | +| main.rs:861:5:861:21 | ExprStmt | main.rs:861:5:861:18 | match_pattern1 | | +| main.rs:862:5:862:18 | match_pattern2 | main.rs:862:5:862:20 | match_pattern2(...) | | +| main.rs:862:5:862:20 | match_pattern2(...) | main.rs:863:5:863:21 | ExprStmt | | +| main.rs:862:5:862:21 | ExprStmt | main.rs:862:5:862:18 | match_pattern2 | | +| main.rs:863:5:863:18 | match_pattern3 | main.rs:863:5:863:20 | match_pattern3(...) | | +| main.rs:863:5:863:20 | match_pattern3(...) | main.rs:864:5:864:21 | ExprStmt | | +| main.rs:863:5:863:21 | ExprStmt | main.rs:863:5:863:18 | match_pattern3 | | +| main.rs:864:5:864:18 | match_pattern4 | main.rs:864:5:864:20 | match_pattern4(...) | | +| main.rs:864:5:864:20 | match_pattern4(...) | main.rs:865:5:865:21 | ExprStmt | | +| main.rs:864:5:864:21 | ExprStmt | main.rs:864:5:864:18 | match_pattern4 | | +| main.rs:865:5:865:18 | match_pattern5 | main.rs:865:5:865:20 | match_pattern5(...) | | +| main.rs:865:5:865:20 | match_pattern5(...) | main.rs:866:5:866:21 | ExprStmt | | +| main.rs:865:5:865:21 | ExprStmt | main.rs:865:5:865:18 | match_pattern5 | | +| main.rs:866:5:866:18 | match_pattern6 | main.rs:866:5:866:20 | match_pattern6(...) | | +| main.rs:866:5:866:20 | match_pattern6(...) | main.rs:867:5:867:21 | ExprStmt | | +| main.rs:866:5:866:21 | ExprStmt | main.rs:866:5:866:18 | match_pattern6 | | +| main.rs:867:5:867:18 | match_pattern7 | main.rs:867:5:867:20 | match_pattern7(...) | | +| main.rs:867:5:867:20 | match_pattern7(...) | main.rs:868:5:868:21 | ExprStmt | | +| main.rs:867:5:867:21 | ExprStmt | main.rs:867:5:867:18 | match_pattern7 | | +| main.rs:868:5:868:18 | match_pattern8 | main.rs:868:5:868:20 | match_pattern8(...) | | +| main.rs:868:5:868:20 | match_pattern8(...) | main.rs:869:5:869:21 | ExprStmt | | +| main.rs:868:5:868:21 | ExprStmt | main.rs:868:5:868:18 | match_pattern8 | | +| main.rs:869:5:869:18 | match_pattern9 | main.rs:869:5:869:20 | match_pattern9(...) | | +| main.rs:869:5:869:20 | match_pattern9(...) | main.rs:870:5:870:22 | ExprStmt | | +| main.rs:869:5:869:21 | ExprStmt | main.rs:869:5:869:18 | match_pattern9 | | +| main.rs:870:5:870:19 | match_pattern10 | main.rs:870:5:870:21 | match_pattern10(...) | | +| main.rs:870:5:870:21 | match_pattern10(...) | main.rs:871:5:871:22 | ExprStmt | | +| main.rs:870:5:870:22 | ExprStmt | main.rs:870:5:870:19 | match_pattern10 | | +| main.rs:871:5:871:19 | match_pattern11 | main.rs:871:5:871:21 | match_pattern11(...) | | +| main.rs:871:5:871:21 | match_pattern11(...) | main.rs:872:5:872:22 | ExprStmt | | +| main.rs:871:5:871:22 | ExprStmt | main.rs:871:5:871:19 | match_pattern11 | | +| main.rs:872:5:872:19 | match_pattern12 | main.rs:872:5:872:21 | match_pattern12(...) | | +| main.rs:872:5:872:21 | match_pattern12(...) | main.rs:873:5:873:22 | ExprStmt | | +| main.rs:872:5:872:22 | ExprStmt | main.rs:872:5:872:19 | match_pattern12 | | +| main.rs:873:5:873:19 | match_pattern13 | main.rs:873:5:873:21 | match_pattern13(...) | | +| main.rs:873:5:873:21 | match_pattern13(...) | main.rs:874:5:874:22 | ExprStmt | | +| main.rs:873:5:873:22 | ExprStmt | main.rs:873:5:873:19 | match_pattern13 | | +| main.rs:874:5:874:19 | match_pattern14 | main.rs:874:5:874:21 | match_pattern14(...) | | +| main.rs:874:5:874:21 | match_pattern14(...) | main.rs:875:5:875:22 | ExprStmt | | +| main.rs:874:5:874:22 | ExprStmt | main.rs:874:5:874:19 | match_pattern14 | | +| main.rs:875:5:875:19 | match_pattern15 | main.rs:875:5:875:21 | match_pattern15(...) | | +| main.rs:875:5:875:21 | match_pattern15(...) | main.rs:876:5:876:22 | ExprStmt | | +| main.rs:875:5:875:22 | ExprStmt | main.rs:875:5:875:19 | match_pattern15 | | +| main.rs:876:5:876:19 | match_pattern16 | main.rs:876:5:876:21 | match_pattern16(...) | | +| main.rs:876:5:876:21 | match_pattern16(...) | main.rs:877:5:877:36 | ExprStmt | | +| main.rs:876:5:876:22 | ExprStmt | main.rs:876:5:876:19 | match_pattern16 | | +| main.rs:877:5:877:18 | param_pattern1 | main.rs:877:20:877:22 | "a" | | +| main.rs:877:5:877:35 | param_pattern1(...) | main.rs:878:5:878:37 | ExprStmt | | +| main.rs:877:5:877:36 | ExprStmt | main.rs:877:5:877:18 | param_pattern1 | | +| main.rs:877:20:877:22 | "a" | main.rs:877:26:877:28 | "b" | | +| main.rs:877:25:877:34 | TupleExpr | main.rs:877:5:877:35 | param_pattern1(...) | | +| main.rs:877:26:877:28 | "b" | main.rs:877:31:877:33 | "c" | | +| main.rs:877:31:877:33 | "c" | main.rs:877:25:877:34 | TupleExpr | | +| main.rs:878:5:878:18 | param_pattern2 | main.rs:878:20:878:31 | ...::Left | | +| main.rs:878:5:878:36 | param_pattern2(...) | main.rs:879:5:879:26 | ExprStmt | | +| main.rs:878:5:878:37 | ExprStmt | main.rs:878:5:878:18 | param_pattern2 | | +| main.rs:878:20:878:31 | ...::Left | main.rs:878:33:878:34 | 45 | | +| main.rs:878:20:878:35 | ...::Left(...) | main.rs:878:5:878:36 | param_pattern2(...) | | +| main.rs:878:33:878:34 | 45 | main.rs:878:20:878:35 | ...::Left(...) | | +| main.rs:879:5:879:23 | destruct_assignment | main.rs:879:5:879:25 | destruct_assignment(...) | | +| main.rs:879:5:879:25 | destruct_assignment(...) | main.rs:880:5:880:23 | ExprStmt | | +| main.rs:879:5:879:26 | ExprStmt | main.rs:879:5:879:23 | destruct_assignment | | +| main.rs:880:5:880:20 | closure_variable | main.rs:880:5:880:22 | closure_variable(...) | | +| main.rs:880:5:880:22 | closure_variable(...) | main.rs:881:5:881:22 | ExprStmt | | +| main.rs:880:5:880:23 | ExprStmt | main.rs:880:5:880:20 | closure_variable | | +| main.rs:881:5:881:19 | nested_function | main.rs:881:5:881:21 | nested_function(...) | | +| main.rs:881:5:881:21 | nested_function(...) | main.rs:882:5:882:19 | ExprStmt | | +| main.rs:881:5:881:22 | ExprStmt | main.rs:881:5:881:19 | nested_function | | +| main.rs:882:5:882:16 | for_variable | main.rs:882:5:882:18 | for_variable(...) | | +| main.rs:882:5:882:18 | for_variable(...) | main.rs:883:5:883:17 | ExprStmt | | +| main.rs:882:5:882:19 | ExprStmt | main.rs:882:5:882:16 | for_variable | | +| main.rs:883:5:883:14 | add_assign | main.rs:883:5:883:16 | add_assign(...) | | +| main.rs:883:5:883:16 | add_assign(...) | main.rs:884:5:884:13 | ExprStmt | | +| main.rs:883:5:883:17 | ExprStmt | main.rs:883:5:883:14 | add_assign | | +| main.rs:884:5:884:10 | mutate | main.rs:884:5:884:12 | mutate(...) | | +| main.rs:884:5:884:12 | mutate(...) | main.rs:885:5:885:17 | ExprStmt | | +| main.rs:884:5:884:13 | ExprStmt | main.rs:884:5:884:10 | mutate | | +| main.rs:885:5:885:14 | mutate_arg | main.rs:885:5:885:16 | mutate_arg(...) | | +| main.rs:885:5:885:16 | mutate_arg(...) | main.rs:886:5:886:12 | ExprStmt | | +| main.rs:885:5:885:17 | ExprStmt | main.rs:885:5:885:14 | mutate_arg | | +| main.rs:886:5:886:9 | alias | main.rs:886:5:886:11 | alias(...) | | +| main.rs:886:5:886:11 | alias(...) | main.rs:887:5:887:18 | ExprStmt | | +| main.rs:886:5:886:12 | ExprStmt | main.rs:886:5:886:9 | alias | | +| main.rs:887:5:887:15 | capture_mut | main.rs:887:5:887:17 | capture_mut(...) | | +| main.rs:887:5:887:17 | capture_mut(...) | main.rs:888:5:888:20 | ExprStmt | | +| main.rs:887:5:887:18 | ExprStmt | main.rs:887:5:887:15 | capture_mut | | +| main.rs:888:5:888:17 | capture_immut | main.rs:888:5:888:19 | capture_immut(...) | | +| main.rs:888:5:888:19 | capture_immut(...) | main.rs:889:5:889:26 | ExprStmt | | +| main.rs:888:5:888:20 | ExprStmt | main.rs:888:5:888:17 | capture_immut | | +| main.rs:889:5:889:23 | async_block_capture | main.rs:889:5:889:25 | async_block_capture(...) | | +| main.rs:889:5:889:25 | async_block_capture(...) | main.rs:890:5:890:14 | ExprStmt | | +| main.rs:889:5:889:26 | ExprStmt | main.rs:889:5:889:23 | async_block_capture | | +| main.rs:890:5:890:11 | structs | main.rs:890:5:890:13 | structs(...) | | +| main.rs:890:5:890:13 | structs(...) | main.rs:891:5:891:14 | ExprStmt | | +| main.rs:890:5:890:14 | ExprStmt | main.rs:890:5:890:11 | structs | | +| main.rs:891:5:891:11 | ref_arg | main.rs:891:5:891:13 | ref_arg(...) | | +| main.rs:891:5:891:13 | ref_arg(...) | main.rs:892:5:892:30 | ExprStmt | | +| main.rs:891:5:891:14 | ExprStmt | main.rs:891:5:891:11 | ref_arg | | +| main.rs:892:5:892:27 | ref_methodcall_receiver | main.rs:892:5:892:29 | ref_methodcall_receiver(...) | | +| main.rs:892:5:892:29 | ref_methodcall_receiver(...) | main.rs:893:5:893:23 | ExprStmt | | +| main.rs:892:5:892:30 | ExprStmt | main.rs:892:5:892:27 | ref_methodcall_receiver | | +| main.rs:893:5:893:20 | macro_invocation | main.rs:893:5:893:22 | macro_invocation(...) | | +| main.rs:893:5:893:22 | macro_invocation(...) | main.rs:894:5:894:18 | ExprStmt | | +| main.rs:893:5:893:23 | ExprStmt | main.rs:893:5:893:20 | macro_invocation | | +| main.rs:894:5:894:15 | capture_phi | main.rs:894:5:894:17 | capture_phi(...) | | +| main.rs:894:5:894:17 | capture_phi(...) | main.rs:895:5:895:27 | ExprStmt | | +| main.rs:894:5:894:18 | ExprStmt | main.rs:894:5:894:15 | capture_phi | | +| main.rs:895:5:895:24 | let_in_block_in_cond | main.rs:895:5:895:26 | let_in_block_in_cond(...) | | +| main.rs:895:5:895:26 | let_in_block_in_cond(...) | main.rs:849:11:896:1 | { ... } | | +| main.rs:895:5:895:27 | ExprStmt | main.rs:895:5:895:24 | let_in_block_in_cond | | breakTarget -| main.rs:326:9:326:13 | break | main.rs:317:5:327:5 | while ... { ... } | +| main.rs:361:9:361:13 | break | main.rs:352:5:362:5 | while ... { ... } | continueTarget diff --git a/rust/ql/test/library-tests/variables/Ssa.expected b/rust/ql/test/library-tests/variables/Ssa.expected index 0acf3e94c5b5..a5583df8be4d 100644 --- a/rust/ql/test/library-tests/variables/Ssa.expected +++ b/rust/ql/test/library-tests/variables/Ssa.expected @@ -24,185 +24,197 @@ definition | main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | | main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | | main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | -| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | -| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | -| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | -| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | -| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | -| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | -| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | -| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | -| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | -| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | -| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | -| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | -| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | -| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | -| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | -| main.rs:210:22:210:23 | a3 | main.rs:210:9:210:44 | a3 | -| main.rs:210:42:210:43 | a3 | main.rs:210:9:210:44 | a3 | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | -| main.rs:224:28:224:29 | a4 | main.rs:224:9:224:81 | a4 | -| main.rs:224:54:224:55 | a4 | main.rs:224:9:224:81 | a4 | -| main.rs:224:79:224:80 | a4 | main.rs:224:9:224:81 | a4 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | -| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | -| main.rs:228:29:228:30 | a5 | main.rs:228:9:228:83 | a5 | -| main.rs:228:55:228:56 | a5 | main.rs:228:9:228:83 | a5 | -| main.rs:228:81:228:82 | a5 | main.rs:228:9:228:83 | a5 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | -| main.rs:232:28:232:29 | a6 | main.rs:232:9:232:83 | a6 | -| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | -| main.rs:232:55:232:56 | a6 | main.rs:232:9:232:83 | a6 | -| main.rs:232:80:232:81 | a6 | main.rs:232:9:232:83 | a6 | -| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | -| main.rs:240:22:240:23 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:240:42:240:43 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | -| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | -| main.rs:252:27:252:29 | a11 | main.rs:252:14:252:51 | a11 | -| main.rs:252:48:252:50 | a11 | main.rs:252:14:252:51 | a11 | -| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | -| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | -| main.rs:274:27:274:29 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | -| main.rs:274:54:274:56 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:274:79:274:81 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:274:106:274:108 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | -| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | -| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | -| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | s | +| main.rs:115:24:115:24 | s | main.rs:115:24:115:24 | s | +| main.rs:123:17:123:17 | x | main.rs:123:17:123:17 | x | +| main.rs:124:19:124:19 | x | main.rs:124:19:124:19 | x | +| main.rs:133:9:133:9 | x | main.rs:133:9:133:9 | x | +| main.rs:134:12:134:12 | x | main.rs:134:12:134:12 | x | +| main.rs:136:12:136:12 | x | main.rs:136:12:136:12 | x | +| main.rs:138:12:138:12 | x | main.rs:138:12:138:12 | x | +| main.rs:140:12:140:12 | x | main.rs:140:12:140:12 | x | +| main.rs:142:12:142:12 | x | main.rs:142:12:142:12 | x | +| main.rs:144:12:144:12 | x | main.rs:144:12:144:12 | x | +| main.rs:146:12:146:12 | x | main.rs:146:12:146:12 | x | +| main.rs:157:9:157:10 | x6 | main.rs:157:9:157:10 | x6 | +| main.rs:158:9:158:10 | y1 | main.rs:158:9:158:10 | y1 | +| main.rs:162:14:162:15 | y1 | main.rs:162:14:162:15 | y1 | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | +| main.rs:179:13:179:17 | first | main.rs:179:13:179:17 | first | +| main.rs:181:13:181:17 | third | main.rs:181:13:181:17 | third | +| main.rs:183:13:183:17 | fifth | main.rs:183:13:183:17 | fifth | +| main.rs:194:13:194:17 | first | main.rs:194:13:194:17 | first | +| main.rs:196:13:196:16 | last | main.rs:196:13:196:16 | last | +| main.rs:205:9:205:10 | p2 | main.rs:205:9:205:10 | p2 | +| main.rs:209:16:209:17 | x7 | main.rs:209:16:209:17 | x7 | +| main.rs:219:9:219:11 | msg | main.rs:219:9:219:11 | msg | +| main.rs:224:17:224:27 | id_variable | main.rs:224:17:224:27 | id_variable | +| main.rs:229:26:229:27 | id | main.rs:229:26:229:27 | id | +| main.rs:243:9:243:14 | either | main.rs:243:9:243:14 | either | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:9:245:44 | a3 | +| main.rs:245:22:245:23 | a3 | main.rs:245:9:245:44 | a3 | +| main.rs:245:42:245:43 | a3 | main.rs:245:9:245:44 | a3 | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | +| main.rs:259:28:259:29 | a4 | main.rs:259:9:259:81 | a4 | +| main.rs:259:54:259:55 | a4 | main.rs:259:9:259:81 | a4 | +| main.rs:259:79:259:80 | a4 | main.rs:259:9:259:81 | a4 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | +| main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | main.rs:263:9:263:83 | a5 | +| main.rs:263:29:263:30 | a5 | main.rs:263:9:263:83 | a5 | +| main.rs:263:55:263:56 | a5 | main.rs:263:9:263:83 | a5 | +| main.rs:263:81:263:82 | a5 | main.rs:263:9:263:83 | a5 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | +| main.rs:267:28:267:29 | a6 | main.rs:267:9:267:83 | a6 | +| main.rs:267:35:267:82 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | +| main.rs:267:55:267:56 | a6 | main.rs:267:9:267:83 | a6 | +| main.rs:267:80:267:81 | a6 | main.rs:267:9:267:83 | a6 | +| main.rs:273:9:273:14 | either | main.rs:273:9:273:14 | either | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | +| main.rs:275:22:275:23 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:275:42:275:43 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:283:9:283:14 | either | main.rs:283:9:283:14 | either | +| main.rs:286:13:286:13 | e | main.rs:286:13:286:13 | e | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:14:287:51 | a11 | +| main.rs:287:27:287:29 | a11 | main.rs:287:14:287:51 | a11 | +| main.rs:287:48:287:50 | a11 | main.rs:287:14:287:51 | a11 | +| main.rs:290:33:290:35 | a12 | main.rs:290:33:290:35 | a12 | +| main.rs:307:9:307:10 | fv | main.rs:307:9:307:10 | fv | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | +| main.rs:309:27:309:29 | a13 | main.rs:309:9:309:109 | a13 | +| main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | main.rs:309:9:309:109 | a13 | +| main.rs:309:54:309:56 | a13 | main.rs:309:9:309:109 | a13 | +| main.rs:309:79:309:81 | a13 | main.rs:309:9:309:109 | a13 | +| main.rs:309:106:309:108 | a13 | main.rs:309:9:309:109 | a13 | | main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | -| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | +| main.rs:324:13:324:13 | x | main.rs:324:13:324:13 | x | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | +| main.rs:333:17:333:17 | x | main.rs:333:17:333:17 | x | | main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | -| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | -| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | -| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | -| main.rs:364:9:364:9 | x | main.rs:364:9:364:9 | x | -| main.rs:366:18:366:18 | x | main.rs:366:18:366:18 | x | -| main.rs:373:9:373:9 | x | main.rs:373:9:373:9 | x | -| main.rs:375:14:375:14 | y | main.rs:375:14:375:14 | y | -| main.rs:376:25:376:25 | y | main.rs:376:25:376:25 | y | -| main.rs:384:5:384:6 | a8 | main.rs:384:5:384:6 | a8 | -| main.rs:386:9:386:10 | b3 | main.rs:386:9:386:10 | b3 | -| main.rs:387:9:387:10 | c1 | main.rs:387:9:387:10 | c1 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:20:395:55 | a9 | -| main.rs:395:33:395:34 | a9 | main.rs:395:20:395:55 | a9 | -| main.rs:395:53:395:54 | a9 | main.rs:395:20:395:55 | a9 | -| main.rs:402:13:402:15 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:403:13:403:14 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:404:13:404:14 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:411:9:411:10 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:425:13:425:15 | a10 | main.rs:425:13:425:15 | a10 | -| main.rs:426:13:426:14 | b4 | main.rs:426:13:426:14 | b4 | -| main.rs:438:9:438:23 | example_closure | main.rs:438:9:438:23 | example_closure | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | -| main.rs:441:9:441:10 | n1 | main.rs:441:9:441:10 | n1 | -| main.rs:446:9:446:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | -| main.rs:447:6:447:6 | x | main.rs:447:6:447:6 | x | -| main.rs:449:9:449:10 | n2 | main.rs:449:9:449:10 | n2 | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | -| main.rs:457:10:457:10 | x | main.rs:457:10:457:10 | x | -| main.rs:461:10:461:10 | x | main.rs:461:10:461:10 | x | -| main.rs:470:14:470:14 | x | main.rs:470:14:470:14 | x | -| main.rs:479:13:479:13 | f | main.rs:479:13:479:13 | f | -| main.rs:480:14:480:14 | x | main.rs:480:14:480:14 | x | -| main.rs:487:9:487:9 | v | main.rs:487:9:487:9 | v | -| main.rs:489:9:489:12 | text | main.rs:489:9:489:12 | text | -| main.rs:496:13:496:13 | a | main.rs:496:13:496:13 | a | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | -| main.rs:499:6:499:11 | &mut a | main.rs:496:13:496:13 | a | -| main.rs:504:13:504:13 | i | main.rs:504:13:504:13 | i | -| main.rs:505:9:505:13 | ref_i | main.rs:505:9:505:13 | ref_i | -| main.rs:506:9:506:14 | &mut i | main.rs:504:13:504:13 | i | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | -| main.rs:518:38:518:38 | y | main.rs:518:38:518:38 | y | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | -| main.rs:529:22:529:27 | &mut x | main.rs:527:13:527:13 | x | -| main.rs:535:13:535:13 | z | main.rs:535:13:535:13 | z | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | -| main.rs:539:9:539:14 | &mut z | main.rs:535:13:535:13 | z | -| main.rs:549:13:549:13 | x | main.rs:549:13:549:13 | x | -| main.rs:550:9:550:9 | y | main.rs:550:9:550:9 | y | -| main.rs:551:9:551:14 | &mut x | main.rs:549:13:549:13 | x | -| main.rs:557:9:557:9 | x | main.rs:557:9:557:9 | x | -| main.rs:560:9:560:11 | cap | main.rs:560:9:560:11 | cap | -| main.rs:560:15:562:5 | x | main.rs:557:9:557:9 | x | -| main.rs:568:13:568:13 | x | main.rs:568:13:568:13 | x | -| main.rs:571:9:571:16 | closure1 | main.rs:571:9:571:16 | closure1 | -| main.rs:571:20:573:5 | x | main.rs:568:13:568:13 | x | -| main.rs:577:13:577:13 | y | main.rs:577:13:577:13 | y | -| main.rs:580:13:580:20 | closure2 | main.rs:580:13:580:20 | closure2 | -| main.rs:581:9:581:9 | y | main.rs:577:13:577:13 | y | -| main.rs:583:5:583:14 | y | main.rs:577:13:577:13 | y | -| main.rs:586:13:586:13 | z | main.rs:586:13:586:13 | z | -| main.rs:589:13:589:20 | closure3 | main.rs:589:13:589:20 | closure3 | -| main.rs:589:24:591:5 | z | main.rs:586:13:586:13 | z | -| main.rs:597:13:597:13 | i | main.rs:597:13:597:13 | i | -| main.rs:598:9:598:13 | block | main.rs:598:9:598:13 | block | -| main.rs:599:9:599:9 | i | main.rs:597:13:597:13 | i | -| main.rs:602:5:602:15 | i | main.rs:597:13:597:13 | i | -| main.rs:606:8:606:8 | b | main.rs:606:8:606:8 | b | -| main.rs:607:13:607:13 | x | main.rs:607:13:607:13 | x | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:607:13:607:13 | x | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | -| main.rs:624:13:624:14 | b1 | main.rs:624:13:624:14 | b1 | -| main.rs:624:23:624:24 | b2 | main.rs:624:23:624:24 | b2 | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | -| main.rs:648:20:648:23 | self | main.rs:648:20:648:23 | self | -| main.rs:652:11:652:14 | self | main.rs:652:11:652:14 | self | -| main.rs:656:23:656:26 | self | main.rs:656:23:656:26 | self | -| main.rs:657:17:657:17 | f | main.rs:657:17:657:17 | f | -| main.rs:657:21:660:9 | self | main.rs:656:23:656:26 | self | -| main.rs:657:22:657:22 | n | main.rs:657:22:657:22 | n | -| main.rs:667:13:667:13 | a | main.rs:667:13:667:13 | a | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | -| main.rs:671:5:671:5 | a | main.rs:667:13:667:13 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | -| main.rs:680:5:680:5 | a | main.rs:676:13:676:13 | a | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | -| main.rs:689:9:689:9 | z | main.rs:689:9:689:9 | z | -| main.rs:698:17:698:20 | self | main.rs:698:17:698:20 | self | -| main.rs:704:13:704:13 | a | main.rs:704:13:704:13 | a | -| main.rs:705:5:705:5 | a | main.rs:704:13:704:13 | a | -| main.rs:726:9:726:22 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | -| main.rs:740:5:740:5 | x | main.rs:739:9:739:9 | x | -| main.rs:745:13:745:13 | x | main.rs:745:13:745:13 | x | -| main.rs:746:13:746:15 | cap | main.rs:746:13:746:15 | cap | -| main.rs:746:19:751:5 | x | main.rs:745:13:745:13 | x | -| main.rs:746:20:746:20 | b | main.rs:746:20:746:20 | b | -| main.rs:748:17:750:9 | SSA phi(x) | main.rs:745:13:745:13 | x | -| main.rs:749:13:749:13 | x | main.rs:745:13:745:13 | x | -| main.rs:752:5:752:13 | x | main.rs:745:13:745:13 | x | -| main.rs:759:13:759:13 | x | main.rs:759:13:759:13 | x | -| main.rs:760:13:760:13 | y | main.rs:760:13:760:13 | y | -| main.rs:769:13:769:16 | N0ne | main.rs:769:13:769:16 | N0ne | -| main.rs:776:13:776:22 | test_alias | main.rs:776:13:776:22 | test_alias | -| main.rs:778:13:778:16 | test | main.rs:778:13:778:16 | test | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | -| main.rs:789:18:789:18 | x | main.rs:789:18:789:18 | x | +| main.rs:343:13:343:13 | x | main.rs:343:13:343:13 | x | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | +| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | +| main.rs:371:14:371:14 | x | main.rs:371:14:371:14 | x | +| main.rs:372:20:372:20 | x | main.rs:372:20:372:20 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | +| main.rs:384:16:384:16 | x | main.rs:384:16:384:16 | x | +| main.rs:389:20:389:20 | x | main.rs:389:20:389:20 | x | +| main.rs:399:9:399:9 | x | main.rs:399:9:399:9 | x | +| main.rs:401:18:401:18 | x | main.rs:401:18:401:18 | x | +| main.rs:408:9:408:9 | x | main.rs:408:9:408:9 | x | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | +| main.rs:412:22:412:22 | y | main.rs:412:22:412:22 | y | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:6 | a8 | +| main.rs:422:9:422:10 | b3 | main.rs:422:9:422:10 | b3 | +| main.rs:423:9:423:10 | c1 | main.rs:423:9:423:10 | c1 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:20:431:55 | a9 | +| main.rs:431:33:431:34 | a9 | main.rs:431:20:431:55 | a9 | +| main.rs:431:53:431:54 | a9 | main.rs:431:20:431:55 | a9 | +| main.rs:438:13:438:15 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:439:13:439:14 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:440:13:440:14 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:447:9:447:10 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:461:13:461:15 | a10 | main.rs:461:13:461:15 | a10 | +| main.rs:462:13:462:14 | b4 | main.rs:462:13:462:14 | b4 | +| main.rs:474:9:474:23 | example_closure | main.rs:474:9:474:23 | example_closure | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:10 | x | +| main.rs:477:9:477:10 | n1 | main.rs:477:9:477:10 | n1 | +| main.rs:482:9:482:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:6 | x | +| main.rs:485:9:485:10 | n2 | main.rs:485:9:485:10 | n2 | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:10 | x | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:10 | x | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:14 | x | +| main.rs:515:13:515:13 | f | main.rs:515:13:515:13 | f | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:14 | x | +| main.rs:523:9:523:9 | v | main.rs:523:9:523:9 | v | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | text | +| main.rs:532:13:532:13 | a | main.rs:532:13:532:13 | a | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | +| main.rs:535:6:535:11 | &mut a | main.rs:532:13:532:13 | a | +| main.rs:540:13:540:13 | i | main.rs:540:13:540:13 | i | +| main.rs:541:9:541:13 | ref_i | main.rs:541:9:541:13 | ref_i | +| main.rs:542:9:542:14 | &mut i | main.rs:540:13:540:13 | i | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:38 | y | +| main.rs:563:13:563:13 | x | main.rs:563:13:563:13 | x | +| main.rs:564:9:564:9 | y | main.rs:564:9:564:9 | y | +| main.rs:565:22:565:27 | &mut x | main.rs:563:13:563:13 | x | +| main.rs:571:13:571:13 | z | main.rs:571:13:571:13 | z | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | +| main.rs:575:9:575:14 | &mut z | main.rs:571:13:571:13 | z | +| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | +| main.rs:586:9:586:9 | y | main.rs:586:9:586:9 | y | +| main.rs:587:9:587:14 | &mut x | main.rs:585:13:585:13 | x | +| main.rs:593:9:593:9 | x | main.rs:593:9:593:9 | x | +| main.rs:596:9:596:11 | cap | main.rs:596:9:596:11 | cap | +| main.rs:596:15:598:5 | x | main.rs:593:9:593:9 | x | +| main.rs:604:13:604:13 | x | main.rs:604:13:604:13 | x | +| main.rs:607:9:607:16 | closure1 | main.rs:607:9:607:16 | closure1 | +| main.rs:607:20:609:5 | x | main.rs:604:13:604:13 | x | +| main.rs:613:13:613:13 | y | main.rs:613:13:613:13 | y | +| main.rs:616:13:616:20 | closure2 | main.rs:616:13:616:20 | closure2 | +| main.rs:617:9:617:9 | y | main.rs:613:13:613:13 | y | +| main.rs:619:5:619:14 | y | main.rs:613:13:613:13 | y | +| main.rs:622:13:622:13 | z | main.rs:622:13:622:13 | z | +| main.rs:625:13:625:20 | closure3 | main.rs:625:13:625:20 | closure3 | +| main.rs:625:24:627:5 | z | main.rs:622:13:622:13 | z | +| main.rs:633:13:633:13 | i | main.rs:633:13:633:13 | i | +| main.rs:634:9:634:13 | block | main.rs:634:9:634:13 | block | +| main.rs:635:9:635:9 | i | main.rs:633:13:633:13 | i | +| main.rs:638:5:638:15 | i | main.rs:633:13:633:13 | i | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:8 | b | +| main.rs:643:13:643:13 | x | main.rs:643:13:643:13 | x | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:643:13:643:13 | x | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:14 | b1 | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:24 | b2 | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | +| main.rs:684:20:684:23 | self | main.rs:684:20:684:23 | self | +| main.rs:688:11:688:14 | self | main.rs:688:11:688:14 | self | +| main.rs:692:23:692:26 | self | main.rs:692:23:692:26 | self | +| main.rs:693:17:693:17 | f | main.rs:693:17:693:17 | f | +| main.rs:693:21:696:9 | self | main.rs:692:23:692:26 | self | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | n | +| main.rs:703:13:703:13 | a | main.rs:703:13:703:13 | a | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | +| main.rs:707:5:707:5 | a | main.rs:703:13:703:13 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | +| main.rs:716:5:716:5 | a | main.rs:712:13:712:13 | a | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | +| main.rs:725:9:725:9 | z | main.rs:725:9:725:9 | z | +| main.rs:734:17:734:20 | self | main.rs:734:17:734:20 | self | +| main.rs:740:13:740:13 | a | main.rs:740:13:740:13 | a | +| main.rs:741:5:741:5 | a | main.rs:740:13:740:13 | a | +| main.rs:762:9:762:22 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | +| main.rs:776:5:776:5 | x | main.rs:775:9:775:9 | x | +| main.rs:781:13:781:13 | x | main.rs:781:13:781:13 | x | +| main.rs:782:13:782:15 | cap | main.rs:782:13:782:15 | cap | +| main.rs:782:19:787:5 | x | main.rs:781:13:781:13 | x | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:20 | b | +| main.rs:784:17:786:9 | SSA phi(x) | main.rs:781:13:781:13 | x | +| main.rs:785:13:785:13 | x | main.rs:781:13:781:13 | x | +| main.rs:788:5:788:13 | x | main.rs:781:13:781:13 | x | +| main.rs:795:13:795:13 | x | main.rs:795:13:795:13 | x | +| main.rs:796:13:796:13 | y | main.rs:796:13:796:13 | y | +| main.rs:805:13:805:16 | N0ne | main.rs:805:13:805:16 | N0ne | +| main.rs:812:13:812:22 | test_alias | main.rs:812:13:812:22 | test_alias | +| main.rs:814:13:814:16 | test | main.rs:814:13:814:16 | test | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | +| main.rs:825:18:825:18 | x | main.rs:825:18:825:18 | x | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | +| main.rs:840:13:840:13 | x | main.rs:840:13:840:13 | x | read | main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | s | main.rs:7:20:7:20 | s | | main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | i | main.rs:12:20:12:20 | i | @@ -233,192 +245,206 @@ read | main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:105:13:105:13 | x | | main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | main.rs:109:15:109:15 | x | | main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | main.rs:106:19:106:19 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | -| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | main.rs:117:19:117:20 | s2 | -| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | main.rs:125:11:125:12 | x6 | -| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | main.rs:135:15:135:16 | y1 | -| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | main.rs:130:23:130:24 | y1 | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:156:11:156:17 | numbers | -| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | main.rs:150:23:150:27 | first | -| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | main.rs:151:23:151:27 | third | -| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | main.rs:152:23:152:27 | fifth | -| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | main.rs:163:23:163:27 | first | -| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | main.rs:164:23:164:26 | last | -| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | -| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | main.rs:175:24:175:25 | x7 | -| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | -| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | main.rs:190:24:190:34 | id_variable | -| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | main.rs:197:23:197:24 | id | -| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:211:26:211:27 | a3 | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:227:11:227:12 | tv | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:231:11:231:12 | tv | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:225:26:225:27 | a4 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:229:26:229:27 | a5 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:233:26:233:27 | a6 | -| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:242:26:242:27 | a7 | -| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | -| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | main.rs:256:15:256:15 | e | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:254:23:254:25 | a11 | -| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | main.rs:257:28:257:30 | a12 | -| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:275:26:275:28 | a13 | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:290:13:290:13 | x | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:287:19:287:19 | x | -| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | main.rs:291:19:291:19 | x | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:309:13:309:13 | x | -| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | main.rs:302:12:302:12 | x | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:306:19:306:19 | x | -| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | main.rs:310:19:310:19 | x | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | +| main.rs:115:24:115:24 | s | main.rs:115:24:115:24 | s | main.rs:117:19:117:19 | s | +| main.rs:123:17:123:17 | x | main.rs:123:17:123:17 | x | main.rs:125:25:125:25 | x | +| main.rs:124:19:124:19 | x | main.rs:124:19:124:19 | x | main.rs:127:19:127:19 | x | +| main.rs:133:9:133:9 | x | main.rs:133:9:133:9 | x | main.rs:135:9:135:9 | x | +| main.rs:134:12:134:12 | x | main.rs:134:12:134:12 | x | main.rs:137:9:137:9 | x | +| main.rs:136:12:136:12 | x | main.rs:136:12:136:12 | x | main.rs:139:9:139:9 | x | +| main.rs:138:12:138:12 | x | main.rs:138:12:138:12 | x | main.rs:141:9:141:9 | x | +| main.rs:140:12:140:12 | x | main.rs:140:12:140:12 | x | main.rs:143:9:143:9 | x | +| main.rs:142:12:142:12 | x | main.rs:142:12:142:12 | x | main.rs:145:9:145:9 | x | +| main.rs:144:12:144:12 | x | main.rs:144:12:144:12 | x | main.rs:147:9:147:9 | x | +| main.rs:146:12:146:12 | x | main.rs:146:12:146:12 | x | main.rs:149:19:149:19 | x | +| main.rs:157:9:157:10 | x6 | main.rs:157:9:157:10 | x6 | main.rs:160:11:160:12 | x6 | +| main.rs:158:9:158:10 | y1 | main.rs:158:9:158:10 | y1 | main.rs:170:15:170:16 | y1 | +| main.rs:162:14:162:15 | y1 | main.rs:162:14:162:15 | y1 | main.rs:165:23:165:24 | y1 | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | main.rs:176:11:176:17 | numbers | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | main.rs:191:11:191:17 | numbers | +| main.rs:179:13:179:17 | first | main.rs:179:13:179:17 | first | main.rs:185:23:185:27 | first | +| main.rs:181:13:181:17 | third | main.rs:181:13:181:17 | third | main.rs:186:23:186:27 | third | +| main.rs:183:13:183:17 | fifth | main.rs:183:13:183:17 | fifth | main.rs:187:23:187:27 | fifth | +| main.rs:194:13:194:17 | first | main.rs:194:13:194:17 | first | main.rs:198:23:198:27 | first | +| main.rs:196:13:196:16 | last | main.rs:196:13:196:16 | last | main.rs:199:23:199:26 | last | +| main.rs:205:9:205:10 | p2 | main.rs:205:9:205:10 | p2 | main.rs:207:11:207:12 | p2 | +| main.rs:209:16:209:17 | x7 | main.rs:209:16:209:17 | x7 | main.rs:210:24:210:25 | x7 | +| main.rs:219:9:219:11 | msg | main.rs:219:9:219:11 | msg | main.rs:221:11:221:13 | msg | +| main.rs:224:17:224:27 | id_variable | main.rs:224:17:224:27 | id_variable | main.rs:225:24:225:34 | id_variable | +| main.rs:229:26:229:27 | id | main.rs:229:26:229:27 | id | main.rs:232:23:232:24 | id | +| main.rs:243:9:243:14 | either | main.rs:243:9:243:14 | either | main.rs:244:11:244:16 | either | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:9:245:44 | a3 | main.rs:246:26:246:27 | a3 | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:258:11:258:12 | tv | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:262:11:262:12 | tv | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:266:11:266:12 | tv | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | main.rs:260:26:260:27 | a4 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:264:26:264:27 | a5 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:268:26:268:27 | a6 | +| main.rs:273:9:273:14 | either | main.rs:273:9:273:14 | either | main.rs:274:11:274:16 | either | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:276:16:276:17 | a7 | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:277:26:277:27 | a7 | +| main.rs:283:9:283:14 | either | main.rs:283:9:283:14 | either | main.rs:285:11:285:16 | either | +| main.rs:286:13:286:13 | e | main.rs:286:13:286:13 | e | main.rs:291:15:291:15 | e | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:14:287:51 | a11 | main.rs:289:23:289:25 | a11 | +| main.rs:290:33:290:35 | a12 | main.rs:290:33:290:35 | a12 | main.rs:292:28:292:30 | a12 | +| main.rs:307:9:307:10 | fv | main.rs:307:9:307:10 | fv | main.rs:308:11:308:12 | fv | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:310:26:310:28 | a13 | | main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | -| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:329:15:329:15 | x | -| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | main.rs:321:12:321:12 | x | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:325:19:325:19 | x | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:343:15:343:15 | x | -| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | -| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | main.rs:339:19:339:19 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:355:7:355:7 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:359:19:359:19 | x | -| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | main.rs:352:19:352:19 | x | -| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | main.rs:357:19:357:19 | x | -| main.rs:364:9:364:9 | x | main.rs:364:9:364:9 | x | main.rs:365:11:365:11 | x | -| main.rs:366:18:366:18 | x | main.rs:366:18:366:18 | x | main.rs:367:20:367:20 | x | -| main.rs:373:9:373:9 | x | main.rs:373:9:373:9 | x | main.rs:374:11:374:11 | x | -| main.rs:375:14:375:14 | y | main.rs:375:14:375:14 | y | main.rs:377:22:377:22 | y | -| main.rs:376:25:376:25 | y | main.rs:376:25:376:25 | y | main.rs:378:26:378:26 | y | -| main.rs:384:5:384:6 | a8 | main.rs:384:5:384:6 | a8 | main.rs:390:15:390:16 | a8 | -| main.rs:386:9:386:10 | b3 | main.rs:386:9:386:10 | b3 | main.rs:391:15:391:16 | b3 | -| main.rs:387:9:387:10 | c1 | main.rs:387:9:387:10 | c1 | main.rs:392:15:392:16 | c1 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:20:395:55 | a9 | main.rs:397:15:397:16 | a9 | -| main.rs:402:13:402:15 | a10 | main.rs:402:13:402:15 | a10 | main.rs:406:15:406:17 | a10 | -| main.rs:402:13:402:15 | a10 | main.rs:402:13:402:15 | a10 | main.rs:415:9:415:11 | a10 | -| main.rs:403:13:403:14 | b4 | main.rs:403:13:403:14 | b4 | main.rs:407:15:407:16 | b4 | -| main.rs:403:13:403:14 | b4 | main.rs:403:13:403:14 | b4 | main.rs:416:9:416:10 | b4 | -| main.rs:404:13:404:14 | c2 | main.rs:404:13:404:14 | c2 | main.rs:408:15:408:16 | c2 | -| main.rs:404:13:404:14 | c2 | main.rs:404:13:404:14 | c2 | main.rs:417:9:417:10 | c2 | -| main.rs:411:9:411:10 | c2 | main.rs:404:13:404:14 | c2 | main.rs:421:15:421:16 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | main.rs:420:15:420:16 | b4 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | main.rs:434:15:434:16 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | main.rs:419:15:419:17 | a10 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | main.rs:433:15:433:17 | a10 | -| main.rs:425:13:425:15 | a10 | main.rs:425:13:425:15 | a10 | main.rs:428:23:428:25 | a10 | -| main.rs:426:13:426:14 | b4 | main.rs:426:13:426:14 | b4 | main.rs:429:23:429:24 | b4 | -| main.rs:438:9:438:23 | example_closure | main.rs:438:9:438:23 | example_closure | main.rs:442:9:442:23 | example_closure | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | main.rs:440:9:440:9 | x | -| main.rs:441:9:441:10 | n1 | main.rs:441:9:441:10 | n1 | main.rs:443:15:443:16 | n1 | -| main.rs:446:9:446:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | main.rs:450:9:450:26 | immutable_variable | -| main.rs:447:6:447:6 | x | main.rs:447:6:447:6 | x | main.rs:448:9:448:9 | x | -| main.rs:449:9:449:10 | n2 | main.rs:449:9:449:10 | n2 | main.rs:451:15:451:16 | n2 | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | main.rs:459:15:459:15 | f | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | main.rs:466:15:466:15 | f | -| main.rs:457:10:457:10 | x | main.rs:457:10:457:10 | x | main.rs:458:9:458:9 | x | -| main.rs:461:10:461:10 | x | main.rs:461:10:461:10 | x | main.rs:463:9:463:9 | x | -| main.rs:470:14:470:14 | x | main.rs:470:14:470:14 | x | main.rs:472:17:472:17 | x | -| main.rs:479:13:479:13 | f | main.rs:479:13:479:13 | f | main.rs:482:19:482:19 | f | -| main.rs:480:14:480:14 | x | main.rs:480:14:480:14 | x | main.rs:481:13:481:13 | x | -| main.rs:487:9:487:9 | v | main.rs:487:9:487:9 | v | main.rs:490:12:490:12 | v | -| main.rs:489:9:489:12 | text | main.rs:489:9:489:12 | text | main.rs:491:19:491:22 | text | -| main.rs:496:13:496:13 | a | main.rs:496:13:496:13 | a | main.rs:497:5:497:5 | a | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | main.rs:498:15:498:15 | a | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | main.rs:499:11:499:11 | a | -| main.rs:499:6:499:11 | &mut a | main.rs:496:13:496:13 | a | main.rs:500:15:500:15 | a | -| main.rs:504:13:504:13 | i | main.rs:504:13:504:13 | i | main.rs:506:14:506:14 | i | -| main.rs:505:9:505:13 | ref_i | main.rs:505:9:505:13 | ref_i | main.rs:507:6:507:10 | ref_i | -| main.rs:506:9:506:14 | &mut i | main.rs:504:13:504:13 | i | main.rs:508:15:508:15 | i | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:512:6:512:6 | x | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:513:10:513:10 | x | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:514:10:514:10 | x | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:515:12:515:12 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:519:6:519:6 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:520:10:520:10 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:521:10:521:10 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:523:9:523:9 | x | -| main.rs:518:38:518:38 | y | main.rs:518:38:518:38 | y | main.rs:522:6:522:6 | y | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | main.rs:529:27:529:27 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | main.rs:530:6:530:6 | y | -| main.rs:529:22:529:27 | &mut x | main.rs:527:13:527:13 | x | main.rs:533:15:533:15 | x | -| main.rs:529:22:529:27 | &mut x | main.rs:527:13:527:13 | x | main.rs:537:19:537:19 | x | -| main.rs:535:13:535:13 | z | main.rs:535:13:535:13 | z | main.rs:539:14:539:14 | z | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | main.rs:540:9:540:9 | w | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | main.rs:542:7:542:7 | w | -| main.rs:539:9:539:14 | &mut z | main.rs:535:13:535:13 | z | main.rs:545:15:545:15 | z | -| main.rs:549:13:549:13 | x | main.rs:549:13:549:13 | x | main.rs:551:14:551:14 | x | -| main.rs:550:9:550:9 | y | main.rs:550:9:550:9 | y | main.rs:552:6:552:6 | y | -| main.rs:551:9:551:14 | &mut x | main.rs:549:13:549:13 | x | main.rs:553:15:553:15 | x | -| main.rs:557:9:557:9 | x | main.rs:557:9:557:9 | x | main.rs:564:15:564:15 | x | -| main.rs:560:9:560:11 | cap | main.rs:560:9:560:11 | cap | main.rs:563:5:563:7 | cap | -| main.rs:560:15:562:5 | x | main.rs:557:9:557:9 | x | main.rs:561:19:561:19 | x | -| main.rs:568:13:568:13 | x | main.rs:568:13:568:13 | x | main.rs:575:15:575:15 | x | -| main.rs:571:9:571:16 | closure1 | main.rs:571:9:571:16 | closure1 | main.rs:574:5:574:12 | closure1 | -| main.rs:571:20:573:5 | x | main.rs:568:13:568:13 | x | main.rs:572:19:572:19 | x | -| main.rs:580:13:580:20 | closure2 | main.rs:580:13:580:20 | closure2 | main.rs:583:5:583:12 | closure2 | -| main.rs:583:5:583:14 | y | main.rs:577:13:577:13 | y | main.rs:584:15:584:15 | y | -| main.rs:586:13:586:13 | z | main.rs:586:13:586:13 | z | main.rs:593:15:593:15 | z | -| main.rs:589:13:589:20 | closure3 | main.rs:589:13:589:20 | closure3 | main.rs:592:5:592:12 | closure3 | -| main.rs:589:24:591:5 | z | main.rs:586:13:586:13 | z | main.rs:590:9:590:9 | z | -| main.rs:598:9:598:13 | block | main.rs:598:9:598:13 | block | main.rs:602:5:602:9 | block | -| main.rs:602:5:602:15 | i | main.rs:597:13:597:13 | i | main.rs:603:15:603:15 | i | -| main.rs:606:8:606:8 | b | main.rs:606:8:606:8 | b | main.rs:611:16:611:16 | b | -| main.rs:607:13:607:13 | x | main.rs:607:13:607:13 | x | main.rs:608:15:608:15 | x | -| main.rs:607:13:607:13 | x | main.rs:607:13:607:13 | x | main.rs:609:15:609:15 | x | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:607:13:607:13 | x | main.rs:621:15:621:15 | x | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | main.rs:614:19:614:19 | x | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | main.rs:615:19:615:19 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | main.rs:618:19:618:19 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | main.rs:619:19:619:19 | x | -| main.rs:624:13:624:14 | b1 | main.rs:624:13:624:14 | b1 | main.rs:627:16:627:17 | b1 | -| main.rs:624:23:624:24 | b2 | main.rs:624:23:624:24 | b2 | main.rs:635:16:635:17 | b2 | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:629:19:629:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:631:19:631:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:637:19:637:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:639:19:639:19 | x | -| main.rs:648:20:648:23 | self | main.rs:648:20:648:23 | self | main.rs:649:16:649:19 | self | -| main.rs:652:11:652:14 | self | main.rs:652:11:652:14 | self | main.rs:653:9:653:12 | self | -| main.rs:657:17:657:17 | f | main.rs:657:17:657:17 | f | main.rs:661:9:661:9 | f | -| main.rs:657:17:657:17 | f | main.rs:657:17:657:17 | f | main.rs:662:9:662:9 | f | -| main.rs:657:21:660:9 | self | main.rs:656:23:656:26 | self | main.rs:659:13:659:16 | self | -| main.rs:657:22:657:22 | n | main.rs:657:22:657:22 | n | main.rs:659:25:659:25 | n | -| main.rs:667:13:667:13 | a | main.rs:667:13:667:13 | a | main.rs:668:15:668:15 | a | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | main.rs:669:5:669:5 | a | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | main.rs:670:15:670:15 | a | -| main.rs:671:5:671:5 | a | main.rs:667:13:667:13 | a | main.rs:672:15:672:15 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:677:15:677:15 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:678:5:678:5 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:679:15:679:15 | a | -| main.rs:680:5:680:5 | a | main.rs:676:13:676:13 | a | main.rs:681:15:681:15 | a | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | main.rs:686:20:686:20 | x | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | main.rs:687:15:687:15 | x | -| main.rs:689:9:689:9 | z | main.rs:689:9:689:9 | z | main.rs:690:20:690:20 | z | -| main.rs:698:17:698:20 | self | main.rs:698:17:698:20 | self | main.rs:699:10:699:13 | self | -| main.rs:704:13:704:13 | a | main.rs:704:13:704:13 | a | main.rs:705:5:705:5 | a | -| main.rs:705:5:705:5 | a | main.rs:704:13:704:13 | a | main.rs:708:15:708:15 | a | -| main.rs:726:9:726:22 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | main.rs:728:15:728:28 | var_from_macro | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | main.rs:735:15:735:26 | var_in_macro | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | main.rs:734:30:734:41 | var_in_macro | -| main.rs:740:5:740:5 | x | main.rs:739:9:739:9 | x | main.rs:741:15:741:15 | x | -| main.rs:746:13:746:15 | cap | main.rs:746:13:746:15 | cap | main.rs:752:5:752:7 | cap | -| main.rs:746:20:746:20 | b | main.rs:746:20:746:20 | b | main.rs:748:20:748:20 | b | -| main.rs:752:5:752:13 | x | main.rs:745:13:745:13 | x | main.rs:753:15:753:15 | x | -| main.rs:759:13:759:13 | x | main.rs:759:13:759:13 | x | main.rs:761:19:761:19 | x | -| main.rs:760:13:760:13 | y | main.rs:760:13:760:13 | y | main.rs:768:15:768:15 | y | -| main.rs:769:13:769:16 | N0ne | main.rs:769:13:769:16 | N0ne | main.rs:770:17:770:20 | N0ne | -| main.rs:776:13:776:22 | test_alias | main.rs:776:13:776:22 | test_alias | main.rs:779:13:779:22 | test_alias | -| main.rs:778:13:778:16 | test | main.rs:778:13:778:16 | test | main.rs:780:9:780:12 | test | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | main.rs:788:15:788:15 | x | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | main.rs:793:15:793:15 | x | -| main.rs:789:18:789:18 | x | main.rs:789:18:789:18 | x | main.rs:790:20:790:20 | x | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:325:13:325:13 | x | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | main.rs:320:5:320:5 | x | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | main.rs:322:19:322:19 | x | +| main.rs:324:13:324:13 | x | main.rs:324:13:324:13 | x | main.rs:326:19:326:19 | x | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:334:7:334:7 | x | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:344:13:344:13 | x | +| main.rs:333:17:333:17 | x | main.rs:333:17:333:17 | x | main.rs:337:12:337:12 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:339:5:339:5 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:341:19:341:19 | x | +| main.rs:343:13:343:13 | x | main.rs:343:13:343:13 | x | main.rs:345:19:345:19 | x | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | main.rs:353:7:353:7 | x | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | main.rs:364:15:364:15 | x | +| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | main.rs:356:12:356:12 | x | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | main.rs:358:5:358:5 | x | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | main.rs:360:19:360:19 | x | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | main.rs:370:11:370:11 | x | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | main.rs:378:15:378:15 | x | +| main.rs:371:14:371:14 | x | main.rs:371:14:371:14 | x | main.rs:373:18:373:18 | x | +| main.rs:372:20:372:20 | x | main.rs:372:20:372:20 | x | main.rs:374:19:374:19 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:385:7:385:7 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:390:7:390:7 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:394:19:394:19 | x | +| main.rs:384:16:384:16 | x | main.rs:384:16:384:16 | x | main.rs:387:19:387:19 | x | +| main.rs:389:20:389:20 | x | main.rs:389:20:389:20 | x | main.rs:392:19:392:19 | x | +| main.rs:399:9:399:9 | x | main.rs:399:9:399:9 | x | main.rs:400:11:400:11 | x | +| main.rs:401:18:401:18 | x | main.rs:401:18:401:18 | x | main.rs:402:20:402:20 | x | +| main.rs:408:9:408:9 | x | main.rs:408:9:408:9 | x | main.rs:409:11:409:11 | x | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | main.rs:411:16:411:16 | y | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | main.rs:413:22:413:22 | y | +| main.rs:412:22:412:22 | y | main.rs:412:22:412:22 | y | main.rs:414:26:414:26 | y | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:6 | a8 | main.rs:426:15:426:16 | a8 | +| main.rs:422:9:422:10 | b3 | main.rs:422:9:422:10 | b3 | main.rs:427:15:427:16 | b3 | +| main.rs:423:9:423:10 | c1 | main.rs:423:9:423:10 | c1 | main.rs:428:15:428:16 | c1 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:20:431:55 | a9 | main.rs:433:15:433:16 | a9 | +| main.rs:438:13:438:15 | a10 | main.rs:438:13:438:15 | a10 | main.rs:442:15:442:17 | a10 | +| main.rs:438:13:438:15 | a10 | main.rs:438:13:438:15 | a10 | main.rs:451:9:451:11 | a10 | +| main.rs:439:13:439:14 | b4 | main.rs:439:13:439:14 | b4 | main.rs:443:15:443:16 | b4 | +| main.rs:439:13:439:14 | b4 | main.rs:439:13:439:14 | b4 | main.rs:452:9:452:10 | b4 | +| main.rs:440:13:440:14 | c2 | main.rs:440:13:440:14 | c2 | main.rs:444:15:444:16 | c2 | +| main.rs:440:13:440:14 | c2 | main.rs:440:13:440:14 | c2 | main.rs:453:9:453:10 | c2 | +| main.rs:447:9:447:10 | c2 | main.rs:440:13:440:14 | c2 | main.rs:457:15:457:16 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | main.rs:456:15:456:16 | b4 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | main.rs:470:15:470:16 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | main.rs:455:15:455:17 | a10 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | main.rs:469:15:469:17 | a10 | +| main.rs:461:13:461:15 | a10 | main.rs:461:13:461:15 | a10 | main.rs:464:23:464:25 | a10 | +| main.rs:462:13:462:14 | b4 | main.rs:462:13:462:14 | b4 | main.rs:465:23:465:24 | b4 | +| main.rs:474:9:474:23 | example_closure | main.rs:474:9:474:23 | example_closure | main.rs:478:9:478:23 | example_closure | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:10 | x | main.rs:476:9:476:9 | x | +| main.rs:477:9:477:10 | n1 | main.rs:477:9:477:10 | n1 | main.rs:479:15:479:16 | n1 | +| main.rs:482:9:482:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | main.rs:486:9:486:26 | immutable_variable | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:6 | x | main.rs:484:9:484:9 | x | +| main.rs:485:9:485:10 | n2 | main.rs:485:9:485:10 | n2 | main.rs:487:15:487:16 | n2 | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | main.rs:495:15:495:15 | f | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | main.rs:502:15:502:15 | f | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:10 | x | main.rs:494:9:494:9 | x | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:10 | x | main.rs:499:9:499:9 | x | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:14 | x | main.rs:508:17:508:17 | x | +| main.rs:515:13:515:13 | f | main.rs:515:13:515:13 | f | main.rs:518:19:518:19 | f | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:14 | x | main.rs:517:13:517:13 | x | +| main.rs:523:9:523:9 | v | main.rs:523:9:523:9 | v | main.rs:526:12:526:12 | v | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | text | main.rs:527:19:527:22 | text | +| main.rs:532:13:532:13 | a | main.rs:532:13:532:13 | a | main.rs:533:5:533:5 | a | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | main.rs:534:15:534:15 | a | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | main.rs:535:11:535:11 | a | +| main.rs:535:6:535:11 | &mut a | main.rs:532:13:532:13 | a | main.rs:536:15:536:15 | a | +| main.rs:540:13:540:13 | i | main.rs:540:13:540:13 | i | main.rs:542:14:542:14 | i | +| main.rs:541:9:541:13 | ref_i | main.rs:541:9:541:13 | ref_i | main.rs:543:6:543:10 | ref_i | +| main.rs:542:9:542:14 | &mut i | main.rs:540:13:540:13 | i | main.rs:544:15:544:15 | i | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:548:6:548:6 | x | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:549:10:549:10 | x | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:550:10:550:10 | x | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:551:12:551:12 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:555:6:555:6 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:556:10:556:10 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:557:10:557:10 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:559:9:559:9 | x | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:38 | y | main.rs:558:6:558:6 | y | +| main.rs:563:13:563:13 | x | main.rs:563:13:563:13 | x | main.rs:565:27:565:27 | x | +| main.rs:564:9:564:9 | y | main.rs:564:9:564:9 | y | main.rs:566:6:566:6 | y | +| main.rs:565:22:565:27 | &mut x | main.rs:563:13:563:13 | x | main.rs:569:15:569:15 | x | +| main.rs:565:22:565:27 | &mut x | main.rs:563:13:563:13 | x | main.rs:573:19:573:19 | x | +| main.rs:571:13:571:13 | z | main.rs:571:13:571:13 | z | main.rs:575:14:575:14 | z | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | main.rs:576:9:576:9 | w | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | main.rs:578:7:578:7 | w | +| main.rs:575:9:575:14 | &mut z | main.rs:571:13:571:13 | z | main.rs:581:15:581:15 | z | +| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:587:14:587:14 | x | +| main.rs:586:9:586:9 | y | main.rs:586:9:586:9 | y | main.rs:588:6:588:6 | y | +| main.rs:587:9:587:14 | &mut x | main.rs:585:13:585:13 | x | main.rs:589:15:589:15 | x | +| main.rs:593:9:593:9 | x | main.rs:593:9:593:9 | x | main.rs:600:15:600:15 | x | +| main.rs:596:9:596:11 | cap | main.rs:596:9:596:11 | cap | main.rs:599:5:599:7 | cap | +| main.rs:596:15:598:5 | x | main.rs:593:9:593:9 | x | main.rs:597:19:597:19 | x | +| main.rs:604:13:604:13 | x | main.rs:604:13:604:13 | x | main.rs:611:15:611:15 | x | +| main.rs:607:9:607:16 | closure1 | main.rs:607:9:607:16 | closure1 | main.rs:610:5:610:12 | closure1 | +| main.rs:607:20:609:5 | x | main.rs:604:13:604:13 | x | main.rs:608:19:608:19 | x | +| main.rs:616:13:616:20 | closure2 | main.rs:616:13:616:20 | closure2 | main.rs:619:5:619:12 | closure2 | +| main.rs:619:5:619:14 | y | main.rs:613:13:613:13 | y | main.rs:620:15:620:15 | y | +| main.rs:622:13:622:13 | z | main.rs:622:13:622:13 | z | main.rs:629:15:629:15 | z | +| main.rs:625:13:625:20 | closure3 | main.rs:625:13:625:20 | closure3 | main.rs:628:5:628:12 | closure3 | +| main.rs:625:24:627:5 | z | main.rs:622:13:622:13 | z | main.rs:626:9:626:9 | z | +| main.rs:634:9:634:13 | block | main.rs:634:9:634:13 | block | main.rs:638:5:638:9 | block | +| main.rs:638:5:638:15 | i | main.rs:633:13:633:13 | i | main.rs:639:15:639:15 | i | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:8 | b | main.rs:647:16:647:16 | b | +| main.rs:643:13:643:13 | x | main.rs:643:13:643:13 | x | main.rs:644:15:644:15 | x | +| main.rs:643:13:643:13 | x | main.rs:643:13:643:13 | x | main.rs:645:15:645:15 | x | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:643:13:643:13 | x | main.rs:657:15:657:15 | x | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | main.rs:650:19:650:19 | x | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | main.rs:651:19:651:19 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | main.rs:654:19:654:19 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | main.rs:655:19:655:19 | x | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:14 | b1 | main.rs:663:16:663:17 | b1 | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:24 | b2 | main.rs:671:16:671:17 | b2 | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:665:19:665:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:667:19:667:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:673:19:673:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:675:19:675:19 | x | +| main.rs:684:20:684:23 | self | main.rs:684:20:684:23 | self | main.rs:685:16:685:19 | self | +| main.rs:688:11:688:14 | self | main.rs:688:11:688:14 | self | main.rs:689:9:689:12 | self | +| main.rs:693:17:693:17 | f | main.rs:693:17:693:17 | f | main.rs:697:9:697:9 | f | +| main.rs:693:17:693:17 | f | main.rs:693:17:693:17 | f | main.rs:698:9:698:9 | f | +| main.rs:693:21:696:9 | self | main.rs:692:23:692:26 | self | main.rs:695:13:695:16 | self | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | n | main.rs:695:25:695:25 | n | +| main.rs:703:13:703:13 | a | main.rs:703:13:703:13 | a | main.rs:704:15:704:15 | a | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | main.rs:705:5:705:5 | a | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | main.rs:706:15:706:15 | a | +| main.rs:707:5:707:5 | a | main.rs:703:13:703:13 | a | main.rs:708:15:708:15 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:713:15:713:15 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:714:5:714:5 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:715:15:715:15 | a | +| main.rs:716:5:716:5 | a | main.rs:712:13:712:13 | a | main.rs:717:15:717:15 | a | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | main.rs:722:20:722:20 | x | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | main.rs:723:15:723:15 | x | +| main.rs:725:9:725:9 | z | main.rs:725:9:725:9 | z | main.rs:726:20:726:20 | z | +| main.rs:734:17:734:20 | self | main.rs:734:17:734:20 | self | main.rs:735:10:735:13 | self | +| main.rs:740:13:740:13 | a | main.rs:740:13:740:13 | a | main.rs:741:5:741:5 | a | +| main.rs:741:5:741:5 | a | main.rs:740:13:740:13 | a | main.rs:744:15:744:15 | a | +| main.rs:762:9:762:22 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | main.rs:764:15:764:28 | var_from_macro | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | main.rs:771:15:771:26 | var_in_macro | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | main.rs:770:30:770:41 | var_in_macro | +| main.rs:776:5:776:5 | x | main.rs:775:9:775:9 | x | main.rs:777:15:777:15 | x | +| main.rs:782:13:782:15 | cap | main.rs:782:13:782:15 | cap | main.rs:788:5:788:7 | cap | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:20 | b | main.rs:784:20:784:20 | b | +| main.rs:788:5:788:13 | x | main.rs:781:13:781:13 | x | main.rs:789:15:789:15 | x | +| main.rs:795:13:795:13 | x | main.rs:795:13:795:13 | x | main.rs:797:19:797:19 | x | +| main.rs:796:13:796:13 | y | main.rs:796:13:796:13 | y | main.rs:804:15:804:15 | y | +| main.rs:805:13:805:16 | N0ne | main.rs:805:13:805:16 | N0ne | main.rs:806:17:806:20 | N0ne | +| main.rs:812:13:812:22 | test_alias | main.rs:812:13:812:22 | test_alias | main.rs:815:13:815:22 | test_alias | +| main.rs:814:13:814:16 | test | main.rs:814:13:814:16 | test | main.rs:816:9:816:12 | test | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | main.rs:824:15:824:15 | x | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | main.rs:829:15:829:15 | x | +| main.rs:825:18:825:18 | x | main.rs:825:18:825:18 | x | main.rs:826:20:826:20 | x | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | main.rs:843:19:843:19 | x | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | main.rs:845:19:845:19 | x | +| main.rs:840:13:840:13 | x | main.rs:840:13:840:13 | x | main.rs:841:9:841:9 | x | firstRead | main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | s | main.rs:7:20:7:20 | s | | main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | i | main.rs:12:20:12:20 | i | @@ -445,273 +471,287 @@ firstRead | main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:102:7:102:7 | x | | main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | main.rs:109:15:109:15 | x | | main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | main.rs:106:19:106:19 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | -| main.rs:115:24:115:25 | s2 | main.rs:115:24:115:25 | s2 | main.rs:117:19:117:20 | s2 | -| main.rs:122:9:122:10 | x6 | main.rs:122:9:122:10 | x6 | main.rs:125:11:125:12 | x6 | -| main.rs:123:9:123:10 | y1 | main.rs:123:9:123:10 | y1 | main.rs:135:15:135:16 | y1 | -| main.rs:127:14:127:15 | y1 | main.rs:127:14:127:15 | y1 | main.rs:130:23:130:24 | y1 | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | -| main.rs:144:13:144:17 | first | main.rs:144:13:144:17 | first | main.rs:150:23:150:27 | first | -| main.rs:146:13:146:17 | third | main.rs:146:13:146:17 | third | main.rs:151:23:151:27 | third | -| main.rs:148:13:148:17 | fifth | main.rs:148:13:148:17 | fifth | main.rs:152:23:152:27 | fifth | -| main.rs:159:13:159:17 | first | main.rs:159:13:159:17 | first | main.rs:163:23:163:27 | first | -| main.rs:161:13:161:16 | last | main.rs:161:13:161:16 | last | main.rs:164:23:164:26 | last | -| main.rs:170:9:170:10 | p2 | main.rs:170:9:170:10 | p2 | main.rs:172:11:172:12 | p2 | -| main.rs:174:16:174:17 | x7 | main.rs:174:16:174:17 | x7 | main.rs:175:24:175:25 | x7 | -| main.rs:184:9:184:11 | msg | main.rs:184:9:184:11 | msg | main.rs:186:11:186:13 | msg | -| main.rs:189:17:189:27 | id_variable | main.rs:189:17:189:27 | id_variable | main.rs:190:24:190:34 | id_variable | -| main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | main.rs:197:23:197:24 | id | -| main.rs:208:9:208:14 | either | main.rs:208:9:208:14 | either | main.rs:209:11:209:16 | either | -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:211:26:211:27 | a3 | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:225:26:225:27 | a4 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:229:26:229:27 | a5 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:233:26:233:27 | a6 | -| main.rs:238:9:238:14 | either | main.rs:238:9:238:14 | either | main.rs:239:11:239:16 | either | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | -| main.rs:248:9:248:14 | either | main.rs:248:9:248:14 | either | main.rs:250:11:250:16 | either | -| main.rs:251:13:251:13 | e | main.rs:251:13:251:13 | e | main.rs:256:15:256:15 | e | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:254:23:254:25 | a11 | -| main.rs:255:33:255:35 | a12 | main.rs:255:33:255:35 | a12 | main.rs:257:28:257:30 | a12 | -| main.rs:272:9:272:10 | fv | main.rs:272:9:272:10 | fv | main.rs:273:11:273:12 | fv | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:275:26:275:28 | a13 | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | -| main.rs:289:13:289:13 | x | main.rs:289:13:289:13 | x | main.rs:291:19:291:19 | x | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | -| main.rs:298:17:298:17 | x | main.rs:298:17:298:17 | x | main.rs:302:12:302:12 | x | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | -| main.rs:308:13:308:13 | x | main.rs:308:13:308:13 | x | main.rs:310:19:310:19 | x | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | +| main.rs:115:24:115:24 | s | main.rs:115:24:115:24 | s | main.rs:117:19:117:19 | s | +| main.rs:123:17:123:17 | x | main.rs:123:17:123:17 | x | main.rs:125:25:125:25 | x | +| main.rs:124:19:124:19 | x | main.rs:124:19:124:19 | x | main.rs:127:19:127:19 | x | +| main.rs:133:9:133:9 | x | main.rs:133:9:133:9 | x | main.rs:135:9:135:9 | x | +| main.rs:134:12:134:12 | x | main.rs:134:12:134:12 | x | main.rs:137:9:137:9 | x | +| main.rs:136:12:136:12 | x | main.rs:136:12:136:12 | x | main.rs:139:9:139:9 | x | +| main.rs:138:12:138:12 | x | main.rs:138:12:138:12 | x | main.rs:141:9:141:9 | x | +| main.rs:140:12:140:12 | x | main.rs:140:12:140:12 | x | main.rs:143:9:143:9 | x | +| main.rs:142:12:142:12 | x | main.rs:142:12:142:12 | x | main.rs:145:9:145:9 | x | +| main.rs:144:12:144:12 | x | main.rs:144:12:144:12 | x | main.rs:147:9:147:9 | x | +| main.rs:146:12:146:12 | x | main.rs:146:12:146:12 | x | main.rs:149:19:149:19 | x | +| main.rs:157:9:157:10 | x6 | main.rs:157:9:157:10 | x6 | main.rs:160:11:160:12 | x6 | +| main.rs:158:9:158:10 | y1 | main.rs:158:9:158:10 | y1 | main.rs:170:15:170:16 | y1 | +| main.rs:162:14:162:15 | y1 | main.rs:162:14:162:15 | y1 | main.rs:165:23:165:24 | y1 | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | main.rs:176:11:176:17 | numbers | +| main.rs:179:13:179:17 | first | main.rs:179:13:179:17 | first | main.rs:185:23:185:27 | first | +| main.rs:181:13:181:17 | third | main.rs:181:13:181:17 | third | main.rs:186:23:186:27 | third | +| main.rs:183:13:183:17 | fifth | main.rs:183:13:183:17 | fifth | main.rs:187:23:187:27 | fifth | +| main.rs:194:13:194:17 | first | main.rs:194:13:194:17 | first | main.rs:198:23:198:27 | first | +| main.rs:196:13:196:16 | last | main.rs:196:13:196:16 | last | main.rs:199:23:199:26 | last | +| main.rs:205:9:205:10 | p2 | main.rs:205:9:205:10 | p2 | main.rs:207:11:207:12 | p2 | +| main.rs:209:16:209:17 | x7 | main.rs:209:16:209:17 | x7 | main.rs:210:24:210:25 | x7 | +| main.rs:219:9:219:11 | msg | main.rs:219:9:219:11 | msg | main.rs:221:11:221:13 | msg | +| main.rs:224:17:224:27 | id_variable | main.rs:224:17:224:27 | id_variable | main.rs:225:24:225:34 | id_variable | +| main.rs:229:26:229:27 | id | main.rs:229:26:229:27 | id | main.rs:232:23:232:24 | id | +| main.rs:243:9:243:14 | either | main.rs:243:9:243:14 | either | main.rs:244:11:244:16 | either | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:9:245:44 | a3 | main.rs:246:26:246:27 | a3 | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:258:11:258:12 | tv | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | main.rs:260:26:260:27 | a4 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:264:26:264:27 | a5 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:268:26:268:27 | a6 | +| main.rs:273:9:273:14 | either | main.rs:273:9:273:14 | either | main.rs:274:11:274:16 | either | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:276:16:276:17 | a7 | +| main.rs:283:9:283:14 | either | main.rs:283:9:283:14 | either | main.rs:285:11:285:16 | either | +| main.rs:286:13:286:13 | e | main.rs:286:13:286:13 | e | main.rs:291:15:291:15 | e | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:14:287:51 | a11 | main.rs:289:23:289:25 | a11 | +| main.rs:290:33:290:35 | a12 | main.rs:290:33:290:35 | a12 | main.rs:292:28:292:30 | a12 | +| main.rs:307:9:307:10 | fv | main.rs:307:9:307:10 | fv | main.rs:308:11:308:12 | fv | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:310:26:310:28 | a13 | | main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | -| main.rs:317:20:317:20 | x | main.rs:317:20:317:20 | x | main.rs:321:12:321:12 | x | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | -| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:338:18:338:18 | x | -| main.rs:337:20:337:20 | x | main.rs:337:20:337:20 | x | main.rs:339:19:339:19 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | -| main.rs:349:16:349:16 | x | main.rs:349:16:349:16 | x | main.rs:352:19:352:19 | x | -| main.rs:354:20:354:20 | x | main.rs:354:20:354:20 | x | main.rs:357:19:357:19 | x | -| main.rs:364:9:364:9 | x | main.rs:364:9:364:9 | x | main.rs:365:11:365:11 | x | -| main.rs:366:18:366:18 | x | main.rs:366:18:366:18 | x | main.rs:367:20:367:20 | x | -| main.rs:373:9:373:9 | x | main.rs:373:9:373:9 | x | main.rs:374:11:374:11 | x | -| main.rs:375:14:375:14 | y | main.rs:375:14:375:14 | y | main.rs:377:22:377:22 | y | -| main.rs:376:25:376:25 | y | main.rs:376:25:376:25 | y | main.rs:378:26:378:26 | y | -| main.rs:384:5:384:6 | a8 | main.rs:384:5:384:6 | a8 | main.rs:390:15:390:16 | a8 | -| main.rs:386:9:386:10 | b3 | main.rs:386:9:386:10 | b3 | main.rs:391:15:391:16 | b3 | -| main.rs:387:9:387:10 | c1 | main.rs:387:9:387:10 | c1 | main.rs:392:15:392:16 | c1 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:20:395:55 | a9 | main.rs:397:15:397:16 | a9 | -| main.rs:402:13:402:15 | a10 | main.rs:402:13:402:15 | a10 | main.rs:406:15:406:17 | a10 | -| main.rs:403:13:403:14 | b4 | main.rs:403:13:403:14 | b4 | main.rs:407:15:407:16 | b4 | -| main.rs:404:13:404:14 | c2 | main.rs:404:13:404:14 | c2 | main.rs:408:15:408:16 | c2 | -| main.rs:411:9:411:10 | c2 | main.rs:404:13:404:14 | c2 | main.rs:421:15:421:16 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | main.rs:420:15:420:16 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | main.rs:419:15:419:17 | a10 | -| main.rs:425:13:425:15 | a10 | main.rs:425:13:425:15 | a10 | main.rs:428:23:428:25 | a10 | -| main.rs:426:13:426:14 | b4 | main.rs:426:13:426:14 | b4 | main.rs:429:23:429:24 | b4 | -| main.rs:438:9:438:23 | example_closure | main.rs:438:9:438:23 | example_closure | main.rs:442:9:442:23 | example_closure | -| main.rs:439:10:439:10 | x | main.rs:439:10:439:10 | x | main.rs:440:9:440:9 | x | -| main.rs:441:9:441:10 | n1 | main.rs:441:9:441:10 | n1 | main.rs:443:15:443:16 | n1 | -| main.rs:446:9:446:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | main.rs:450:9:450:26 | immutable_variable | -| main.rs:447:6:447:6 | x | main.rs:447:6:447:6 | x | main.rs:448:9:448:9 | x | -| main.rs:449:9:449:10 | n2 | main.rs:449:9:449:10 | n2 | main.rs:451:15:451:16 | n2 | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | main.rs:459:15:459:15 | f | -| main.rs:457:10:457:10 | x | main.rs:457:10:457:10 | x | main.rs:458:9:458:9 | x | -| main.rs:461:10:461:10 | x | main.rs:461:10:461:10 | x | main.rs:463:9:463:9 | x | -| main.rs:470:14:470:14 | x | main.rs:470:14:470:14 | x | main.rs:472:17:472:17 | x | -| main.rs:479:13:479:13 | f | main.rs:479:13:479:13 | f | main.rs:482:19:482:19 | f | -| main.rs:480:14:480:14 | x | main.rs:480:14:480:14 | x | main.rs:481:13:481:13 | x | -| main.rs:487:9:487:9 | v | main.rs:487:9:487:9 | v | main.rs:490:12:490:12 | v | -| main.rs:489:9:489:12 | text | main.rs:489:9:489:12 | text | main.rs:491:19:491:22 | text | -| main.rs:496:13:496:13 | a | main.rs:496:13:496:13 | a | main.rs:497:5:497:5 | a | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | main.rs:498:15:498:15 | a | -| main.rs:499:6:499:11 | &mut a | main.rs:496:13:496:13 | a | main.rs:500:15:500:15 | a | -| main.rs:504:13:504:13 | i | main.rs:504:13:504:13 | i | main.rs:506:14:506:14 | i | -| main.rs:505:9:505:13 | ref_i | main.rs:505:9:505:13 | ref_i | main.rs:507:6:507:10 | ref_i | -| main.rs:506:9:506:14 | &mut i | main.rs:504:13:504:13 | i | main.rs:508:15:508:15 | i | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:512:6:512:6 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:519:6:519:6 | x | -| main.rs:518:38:518:38 | y | main.rs:518:38:518:38 | y | main.rs:522:6:522:6 | y | -| main.rs:527:13:527:13 | x | main.rs:527:13:527:13 | x | main.rs:529:27:529:27 | x | -| main.rs:528:9:528:9 | y | main.rs:528:9:528:9 | y | main.rs:530:6:530:6 | y | -| main.rs:529:22:529:27 | &mut x | main.rs:527:13:527:13 | x | main.rs:533:15:533:15 | x | -| main.rs:535:13:535:13 | z | main.rs:535:13:535:13 | z | main.rs:539:14:539:14 | z | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | main.rs:540:9:540:9 | w | -| main.rs:539:9:539:14 | &mut z | main.rs:535:13:535:13 | z | main.rs:545:15:545:15 | z | -| main.rs:549:13:549:13 | x | main.rs:549:13:549:13 | x | main.rs:551:14:551:14 | x | -| main.rs:550:9:550:9 | y | main.rs:550:9:550:9 | y | main.rs:552:6:552:6 | y | -| main.rs:551:9:551:14 | &mut x | main.rs:549:13:549:13 | x | main.rs:553:15:553:15 | x | -| main.rs:557:9:557:9 | x | main.rs:557:9:557:9 | x | main.rs:564:15:564:15 | x | -| main.rs:560:9:560:11 | cap | main.rs:560:9:560:11 | cap | main.rs:563:5:563:7 | cap | -| main.rs:560:15:562:5 | x | main.rs:557:9:557:9 | x | main.rs:561:19:561:19 | x | -| main.rs:568:13:568:13 | x | main.rs:568:13:568:13 | x | main.rs:575:15:575:15 | x | -| main.rs:571:9:571:16 | closure1 | main.rs:571:9:571:16 | closure1 | main.rs:574:5:574:12 | closure1 | -| main.rs:571:20:573:5 | x | main.rs:568:13:568:13 | x | main.rs:572:19:572:19 | x | -| main.rs:580:13:580:20 | closure2 | main.rs:580:13:580:20 | closure2 | main.rs:583:5:583:12 | closure2 | -| main.rs:583:5:583:14 | y | main.rs:577:13:577:13 | y | main.rs:584:15:584:15 | y | -| main.rs:586:13:586:13 | z | main.rs:586:13:586:13 | z | main.rs:593:15:593:15 | z | -| main.rs:589:13:589:20 | closure3 | main.rs:589:13:589:20 | closure3 | main.rs:592:5:592:12 | closure3 | -| main.rs:589:24:591:5 | z | main.rs:586:13:586:13 | z | main.rs:590:9:590:9 | z | -| main.rs:598:9:598:13 | block | main.rs:598:9:598:13 | block | main.rs:602:5:602:9 | block | -| main.rs:602:5:602:15 | i | main.rs:597:13:597:13 | i | main.rs:603:15:603:15 | i | -| main.rs:606:8:606:8 | b | main.rs:606:8:606:8 | b | main.rs:611:16:611:16 | b | -| main.rs:607:13:607:13 | x | main.rs:607:13:607:13 | x | main.rs:608:15:608:15 | x | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:607:13:607:13 | x | main.rs:621:15:621:15 | x | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | main.rs:614:19:614:19 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | main.rs:618:19:618:19 | x | -| main.rs:624:13:624:14 | b1 | main.rs:624:13:624:14 | b1 | main.rs:627:16:627:17 | b1 | -| main.rs:624:23:624:24 | b2 | main.rs:624:23:624:24 | b2 | main.rs:635:16:635:17 | b2 | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:629:19:629:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:631:19:631:19 | x | -| main.rs:648:20:648:23 | self | main.rs:648:20:648:23 | self | main.rs:649:16:649:19 | self | -| main.rs:652:11:652:14 | self | main.rs:652:11:652:14 | self | main.rs:653:9:653:12 | self | -| main.rs:657:17:657:17 | f | main.rs:657:17:657:17 | f | main.rs:661:9:661:9 | f | -| main.rs:657:21:660:9 | self | main.rs:656:23:656:26 | self | main.rs:659:13:659:16 | self | -| main.rs:657:22:657:22 | n | main.rs:657:22:657:22 | n | main.rs:659:25:659:25 | n | -| main.rs:667:13:667:13 | a | main.rs:667:13:667:13 | a | main.rs:668:15:668:15 | a | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | main.rs:669:5:669:5 | a | -| main.rs:671:5:671:5 | a | main.rs:667:13:667:13 | a | main.rs:672:15:672:15 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:677:15:677:15 | a | -| main.rs:680:5:680:5 | a | main.rs:676:13:676:13 | a | main.rs:681:15:681:15 | a | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | main.rs:686:20:686:20 | x | -| main.rs:689:9:689:9 | z | main.rs:689:9:689:9 | z | main.rs:690:20:690:20 | z | -| main.rs:698:17:698:20 | self | main.rs:698:17:698:20 | self | main.rs:699:10:699:13 | self | -| main.rs:704:13:704:13 | a | main.rs:704:13:704:13 | a | main.rs:705:5:705:5 | a | -| main.rs:705:5:705:5 | a | main.rs:704:13:704:13 | a | main.rs:708:15:708:15 | a | -| main.rs:726:9:726:22 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | main.rs:728:15:728:28 | var_from_macro | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | main.rs:735:15:735:26 | var_in_macro | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | main.rs:734:30:734:41 | var_in_macro | -| main.rs:740:5:740:5 | x | main.rs:739:9:739:9 | x | main.rs:741:15:741:15 | x | -| main.rs:746:13:746:15 | cap | main.rs:746:13:746:15 | cap | main.rs:752:5:752:7 | cap | -| main.rs:746:20:746:20 | b | main.rs:746:20:746:20 | b | main.rs:748:20:748:20 | b | -| main.rs:752:5:752:13 | x | main.rs:745:13:745:13 | x | main.rs:753:15:753:15 | x | -| main.rs:759:13:759:13 | x | main.rs:759:13:759:13 | x | main.rs:761:19:761:19 | x | -| main.rs:760:13:760:13 | y | main.rs:760:13:760:13 | y | main.rs:768:15:768:15 | y | -| main.rs:769:13:769:16 | N0ne | main.rs:769:13:769:16 | N0ne | main.rs:770:17:770:20 | N0ne | -| main.rs:776:13:776:22 | test_alias | main.rs:776:13:776:22 | test_alias | main.rs:779:13:779:22 | test_alias | -| main.rs:778:13:778:16 | test | main.rs:778:13:778:16 | test | main.rs:780:9:780:12 | test | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | main.rs:788:15:788:15 | x | -| main.rs:789:18:789:18 | x | main.rs:789:18:789:18 | x | main.rs:790:20:790:20 | x | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | main.rs:320:5:320:5 | x | +| main.rs:324:13:324:13 | x | main.rs:324:13:324:13 | x | main.rs:326:19:326:19 | x | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:334:7:334:7 | x | +| main.rs:333:17:333:17 | x | main.rs:333:17:333:17 | x | main.rs:337:12:337:12 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:339:5:339:5 | x | +| main.rs:343:13:343:13 | x | main.rs:343:13:343:13 | x | main.rs:345:19:345:19 | x | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | main.rs:353:7:353:7 | x | +| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | x | main.rs:356:12:356:12 | x | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | main.rs:358:5:358:5 | x | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | main.rs:370:11:370:11 | x | +| main.rs:371:14:371:14 | x | main.rs:371:14:371:14 | x | main.rs:373:18:373:18 | x | +| main.rs:372:20:372:20 | x | main.rs:372:20:372:20 | x | main.rs:374:19:374:19 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:385:7:385:7 | x | +| main.rs:384:16:384:16 | x | main.rs:384:16:384:16 | x | main.rs:387:19:387:19 | x | +| main.rs:389:20:389:20 | x | main.rs:389:20:389:20 | x | main.rs:392:19:392:19 | x | +| main.rs:399:9:399:9 | x | main.rs:399:9:399:9 | x | main.rs:400:11:400:11 | x | +| main.rs:401:18:401:18 | x | main.rs:401:18:401:18 | x | main.rs:402:20:402:20 | x | +| main.rs:408:9:408:9 | x | main.rs:408:9:408:9 | x | main.rs:409:11:409:11 | x | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | main.rs:411:16:411:16 | y | +| main.rs:412:22:412:22 | y | main.rs:412:22:412:22 | y | main.rs:414:26:414:26 | y | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:6 | a8 | main.rs:426:15:426:16 | a8 | +| main.rs:422:9:422:10 | b3 | main.rs:422:9:422:10 | b3 | main.rs:427:15:427:16 | b3 | +| main.rs:423:9:423:10 | c1 | main.rs:423:9:423:10 | c1 | main.rs:428:15:428:16 | c1 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:20:431:55 | a9 | main.rs:433:15:433:16 | a9 | +| main.rs:438:13:438:15 | a10 | main.rs:438:13:438:15 | a10 | main.rs:442:15:442:17 | a10 | +| main.rs:439:13:439:14 | b4 | main.rs:439:13:439:14 | b4 | main.rs:443:15:443:16 | b4 | +| main.rs:440:13:440:14 | c2 | main.rs:440:13:440:14 | c2 | main.rs:444:15:444:16 | c2 | +| main.rs:447:9:447:10 | c2 | main.rs:440:13:440:14 | c2 | main.rs:457:15:457:16 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | main.rs:456:15:456:16 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | main.rs:455:15:455:17 | a10 | +| main.rs:461:13:461:15 | a10 | main.rs:461:13:461:15 | a10 | main.rs:464:23:464:25 | a10 | +| main.rs:462:13:462:14 | b4 | main.rs:462:13:462:14 | b4 | main.rs:465:23:465:24 | b4 | +| main.rs:474:9:474:23 | example_closure | main.rs:474:9:474:23 | example_closure | main.rs:478:9:478:23 | example_closure | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:10 | x | main.rs:476:9:476:9 | x | +| main.rs:477:9:477:10 | n1 | main.rs:477:9:477:10 | n1 | main.rs:479:15:479:16 | n1 | +| main.rs:482:9:482:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | main.rs:486:9:486:26 | immutable_variable | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:6 | x | main.rs:484:9:484:9 | x | +| main.rs:485:9:485:10 | n2 | main.rs:485:9:485:10 | n2 | main.rs:487:15:487:16 | n2 | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | main.rs:495:15:495:15 | f | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:10 | x | main.rs:494:9:494:9 | x | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:10 | x | main.rs:499:9:499:9 | x | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:14 | x | main.rs:508:17:508:17 | x | +| main.rs:515:13:515:13 | f | main.rs:515:13:515:13 | f | main.rs:518:19:518:19 | f | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:14 | x | main.rs:517:13:517:13 | x | +| main.rs:523:9:523:9 | v | main.rs:523:9:523:9 | v | main.rs:526:12:526:12 | v | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | text | main.rs:527:19:527:22 | text | +| main.rs:532:13:532:13 | a | main.rs:532:13:532:13 | a | main.rs:533:5:533:5 | a | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | main.rs:534:15:534:15 | a | +| main.rs:535:6:535:11 | &mut a | main.rs:532:13:532:13 | a | main.rs:536:15:536:15 | a | +| main.rs:540:13:540:13 | i | main.rs:540:13:540:13 | i | main.rs:542:14:542:14 | i | +| main.rs:541:9:541:13 | ref_i | main.rs:541:9:541:13 | ref_i | main.rs:543:6:543:10 | ref_i | +| main.rs:542:9:542:14 | &mut i | main.rs:540:13:540:13 | i | main.rs:544:15:544:15 | i | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:548:6:548:6 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:555:6:555:6 | x | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:38 | y | main.rs:558:6:558:6 | y | +| main.rs:563:13:563:13 | x | main.rs:563:13:563:13 | x | main.rs:565:27:565:27 | x | +| main.rs:564:9:564:9 | y | main.rs:564:9:564:9 | y | main.rs:566:6:566:6 | y | +| main.rs:565:22:565:27 | &mut x | main.rs:563:13:563:13 | x | main.rs:569:15:569:15 | x | +| main.rs:571:13:571:13 | z | main.rs:571:13:571:13 | z | main.rs:575:14:575:14 | z | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | main.rs:576:9:576:9 | w | +| main.rs:575:9:575:14 | &mut z | main.rs:571:13:571:13 | z | main.rs:581:15:581:15 | z | +| main.rs:585:13:585:13 | x | main.rs:585:13:585:13 | x | main.rs:587:14:587:14 | x | +| main.rs:586:9:586:9 | y | main.rs:586:9:586:9 | y | main.rs:588:6:588:6 | y | +| main.rs:587:9:587:14 | &mut x | main.rs:585:13:585:13 | x | main.rs:589:15:589:15 | x | +| main.rs:593:9:593:9 | x | main.rs:593:9:593:9 | x | main.rs:600:15:600:15 | x | +| main.rs:596:9:596:11 | cap | main.rs:596:9:596:11 | cap | main.rs:599:5:599:7 | cap | +| main.rs:596:15:598:5 | x | main.rs:593:9:593:9 | x | main.rs:597:19:597:19 | x | +| main.rs:604:13:604:13 | x | main.rs:604:13:604:13 | x | main.rs:611:15:611:15 | x | +| main.rs:607:9:607:16 | closure1 | main.rs:607:9:607:16 | closure1 | main.rs:610:5:610:12 | closure1 | +| main.rs:607:20:609:5 | x | main.rs:604:13:604:13 | x | main.rs:608:19:608:19 | x | +| main.rs:616:13:616:20 | closure2 | main.rs:616:13:616:20 | closure2 | main.rs:619:5:619:12 | closure2 | +| main.rs:619:5:619:14 | y | main.rs:613:13:613:13 | y | main.rs:620:15:620:15 | y | +| main.rs:622:13:622:13 | z | main.rs:622:13:622:13 | z | main.rs:629:15:629:15 | z | +| main.rs:625:13:625:20 | closure3 | main.rs:625:13:625:20 | closure3 | main.rs:628:5:628:12 | closure3 | +| main.rs:625:24:627:5 | z | main.rs:622:13:622:13 | z | main.rs:626:9:626:9 | z | +| main.rs:634:9:634:13 | block | main.rs:634:9:634:13 | block | main.rs:638:5:638:9 | block | +| main.rs:638:5:638:15 | i | main.rs:633:13:633:13 | i | main.rs:639:15:639:15 | i | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:8 | b | main.rs:647:16:647:16 | b | +| main.rs:643:13:643:13 | x | main.rs:643:13:643:13 | x | main.rs:644:15:644:15 | x | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:643:13:643:13 | x | main.rs:657:15:657:15 | x | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | main.rs:650:19:650:19 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | main.rs:654:19:654:19 | x | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:14 | b1 | main.rs:663:16:663:17 | b1 | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:24 | b2 | main.rs:671:16:671:17 | b2 | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:665:19:665:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:667:19:667:19 | x | +| main.rs:684:20:684:23 | self | main.rs:684:20:684:23 | self | main.rs:685:16:685:19 | self | +| main.rs:688:11:688:14 | self | main.rs:688:11:688:14 | self | main.rs:689:9:689:12 | self | +| main.rs:693:17:693:17 | f | main.rs:693:17:693:17 | f | main.rs:697:9:697:9 | f | +| main.rs:693:21:696:9 | self | main.rs:692:23:692:26 | self | main.rs:695:13:695:16 | self | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | n | main.rs:695:25:695:25 | n | +| main.rs:703:13:703:13 | a | main.rs:703:13:703:13 | a | main.rs:704:15:704:15 | a | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | main.rs:705:5:705:5 | a | +| main.rs:707:5:707:5 | a | main.rs:703:13:703:13 | a | main.rs:708:15:708:15 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:713:15:713:15 | a | +| main.rs:716:5:716:5 | a | main.rs:712:13:712:13 | a | main.rs:717:15:717:15 | a | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | main.rs:722:20:722:20 | x | +| main.rs:725:9:725:9 | z | main.rs:725:9:725:9 | z | main.rs:726:20:726:20 | z | +| main.rs:734:17:734:20 | self | main.rs:734:17:734:20 | self | main.rs:735:10:735:13 | self | +| main.rs:740:13:740:13 | a | main.rs:740:13:740:13 | a | main.rs:741:5:741:5 | a | +| main.rs:741:5:741:5 | a | main.rs:740:13:740:13 | a | main.rs:744:15:744:15 | a | +| main.rs:762:9:762:22 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | main.rs:764:15:764:28 | var_from_macro | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | main.rs:771:15:771:26 | var_in_macro | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | main.rs:770:30:770:41 | var_in_macro | +| main.rs:776:5:776:5 | x | main.rs:775:9:775:9 | x | main.rs:777:15:777:15 | x | +| main.rs:782:13:782:15 | cap | main.rs:782:13:782:15 | cap | main.rs:788:5:788:7 | cap | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:20 | b | main.rs:784:20:784:20 | b | +| main.rs:788:5:788:13 | x | main.rs:781:13:781:13 | x | main.rs:789:15:789:15 | x | +| main.rs:795:13:795:13 | x | main.rs:795:13:795:13 | x | main.rs:797:19:797:19 | x | +| main.rs:796:13:796:13 | y | main.rs:796:13:796:13 | y | main.rs:804:15:804:15 | y | +| main.rs:805:13:805:16 | N0ne | main.rs:805:13:805:16 | N0ne | main.rs:806:17:806:20 | N0ne | +| main.rs:812:13:812:22 | test_alias | main.rs:812:13:812:22 | test_alias | main.rs:815:13:815:22 | test_alias | +| main.rs:814:13:814:16 | test | main.rs:814:13:814:16 | test | main.rs:816:9:816:12 | test | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | main.rs:824:15:824:15 | x | +| main.rs:825:18:825:18 | x | main.rs:825:18:825:18 | x | main.rs:826:20:826:20 | x | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | main.rs:843:19:843:19 | x | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | x | main.rs:845:19:845:19 | x | +| main.rs:840:13:840:13 | x | main.rs:840:13:840:13 | x | main.rs:841:9:841:9 | x | adjacentReads | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | main.rs:28:15:28:16 | x2 | main.rs:29:10:29:11 | x2 | | main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | main.rs:42:15:42:16 | x3 | main.rs:44:9:44:10 | x3 | | main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | main.rs:50:15:50:16 | x4 | main.rs:55:15:55:16 | x4 | | main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | main.rs:102:7:102:7 | x | main.rs:105:13:105:13 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | main.rs:116:11:116:12 | s1 | -| main.rs:139:9:139:15 | numbers | main.rs:139:9:139:15 | numbers | main.rs:141:11:141:17 | numbers | main.rs:156:11:156:17 | numbers | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:223:11:223:12 | tv | main.rs:227:11:227:12 | tv | -| main.rs:222:9:222:10 | tv | main.rs:222:9:222:10 | tv | main.rs:227:11:227:12 | tv | main.rs:231:11:231:12 | tv | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:241:16:241:17 | a7 | main.rs:242:26:242:27 | a7 | -| main.rs:281:9:281:9 | x | main.rs:281:9:281:9 | x | main.rs:283:7:283:7 | x | main.rs:290:13:290:13 | x | -| main.rs:282:17:282:17 | x | main.rs:282:17:282:17 | x | main.rs:285:5:285:5 | x | main.rs:287:19:287:19 | x | -| main.rs:297:9:297:9 | x | main.rs:297:9:297:9 | x | main.rs:299:7:299:7 | x | main.rs:309:13:309:13 | x | -| main.rs:301:14:301:14 | x | main.rs:301:14:301:14 | x | main.rs:304:5:304:5 | x | main.rs:306:19:306:19 | x | -| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | main.rs:329:15:329:15 | x | -| main.rs:320:14:320:14 | x | main.rs:320:14:320:14 | x | main.rs:323:5:323:5 | x | main.rs:325:19:325:19 | x | -| main.rs:334:9:334:9 | x | main.rs:334:9:334:9 | x | main.rs:335:11:335:11 | x | main.rs:343:15:343:15 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:350:7:350:7 | x | main.rs:355:7:355:7 | x | -| main.rs:348:9:348:9 | x | main.rs:348:9:348:9 | x | main.rs:355:7:355:7 | x | main.rs:359:19:359:19 | x | -| main.rs:402:13:402:15 | a10 | main.rs:402:13:402:15 | a10 | main.rs:406:15:406:17 | a10 | main.rs:415:9:415:11 | a10 | -| main.rs:403:13:403:14 | b4 | main.rs:403:13:403:14 | b4 | main.rs:407:15:407:16 | b4 | main.rs:416:9:416:10 | b4 | -| main.rs:404:13:404:14 | c2 | main.rs:404:13:404:14 | c2 | main.rs:408:15:408:16 | c2 | main.rs:417:9:417:10 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | main.rs:420:15:420:16 | b4 | main.rs:434:15:434:16 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | main.rs:419:15:419:17 | a10 | main.rs:433:15:433:17 | a10 | -| main.rs:456:9:456:9 | f | main.rs:456:9:456:9 | f | main.rs:459:15:459:15 | f | main.rs:466:15:466:15 | f | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | main.rs:498:15:498:15 | a | main.rs:499:11:499:11 | a | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:512:6:512:6 | x | main.rs:513:10:513:10 | x | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:513:10:513:10 | x | main.rs:514:10:514:10 | x | -| main.rs:511:17:511:17 | x | main.rs:511:17:511:17 | x | main.rs:514:10:514:10 | x | main.rs:515:12:515:12 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:519:6:519:6 | x | main.rs:520:10:520:10 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:520:10:520:10 | x | main.rs:521:10:521:10 | x | -| main.rs:518:22:518:22 | x | main.rs:518:22:518:22 | x | main.rs:521:10:521:10 | x | main.rs:523:9:523:9 | x | -| main.rs:529:22:529:27 | &mut x | main.rs:527:13:527:13 | x | main.rs:533:15:533:15 | x | main.rs:537:19:537:19 | x | -| main.rs:536:9:536:9 | w | main.rs:536:9:536:9 | w | main.rs:540:9:540:9 | w | main.rs:542:7:542:7 | w | -| main.rs:607:13:607:13 | x | main.rs:607:13:607:13 | x | main.rs:608:15:608:15 | x | main.rs:609:15:609:15 | x | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | main.rs:614:19:614:19 | x | main.rs:615:19:615:19 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | main.rs:618:19:618:19 | x | main.rs:619:19:619:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:629:19:629:19 | x | main.rs:637:19:637:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:629:19:629:19 | x | main.rs:639:19:639:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:631:19:631:19 | x | main.rs:637:19:637:19 | x | -| main.rs:625:9:625:9 | x | main.rs:625:9:625:9 | x | main.rs:631:19:631:19 | x | main.rs:639:19:639:19 | x | -| main.rs:657:17:657:17 | f | main.rs:657:17:657:17 | f | main.rs:661:9:661:9 | f | main.rs:662:9:662:9 | f | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | main.rs:669:5:669:5 | a | main.rs:670:15:670:15 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:677:15:677:15 | a | main.rs:678:5:678:5 | a | -| main.rs:676:13:676:13 | a | main.rs:676:13:676:13 | a | main.rs:678:5:678:5 | a | main.rs:679:15:679:15 | a | -| main.rs:685:9:685:9 | x | main.rs:685:9:685:9 | x | main.rs:686:20:686:20 | x | main.rs:687:15:687:15 | x | -| main.rs:787:13:787:13 | x | main.rs:787:13:787:13 | x | main.rs:788:15:788:15 | x | main.rs:793:15:793:15 | x | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | main.rs:116:11:116:11 | s | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | numbers | main.rs:176:11:176:17 | numbers | main.rs:191:11:191:17 | numbers | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:258:11:258:12 | tv | main.rs:262:11:262:12 | tv | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | tv | main.rs:262:11:262:12 | tv | main.rs:266:11:266:12 | tv | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:276:16:276:17 | a7 | main.rs:277:26:277:27 | a7 | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | main.rs:318:7:318:7 | x | main.rs:325:13:325:13 | x | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | x | main.rs:320:5:320:5 | x | main.rs:322:19:322:19 | x | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | x | main.rs:334:7:334:7 | x | main.rs:344:13:344:13 | x | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | main.rs:339:5:339:5 | x | main.rs:341:19:341:19 | x | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | x | main.rs:353:7:353:7 | x | main.rs:364:15:364:15 | x | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | x | main.rs:358:5:358:5 | x | main.rs:360:19:360:19 | x | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | x | main.rs:370:11:370:11 | x | main.rs:378:15:378:15 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:385:7:385:7 | x | main.rs:390:7:390:7 | x | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | x | main.rs:390:7:390:7 | x | main.rs:394:19:394:19 | x | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | y | main.rs:411:16:411:16 | y | main.rs:413:22:413:22 | y | +| main.rs:438:13:438:15 | a10 | main.rs:438:13:438:15 | a10 | main.rs:442:15:442:17 | a10 | main.rs:451:9:451:11 | a10 | +| main.rs:439:13:439:14 | b4 | main.rs:439:13:439:14 | b4 | main.rs:443:15:443:16 | b4 | main.rs:452:9:452:10 | b4 | +| main.rs:440:13:440:14 | c2 | main.rs:440:13:440:14 | c2 | main.rs:444:15:444:16 | c2 | main.rs:453:9:453:10 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | main.rs:456:15:456:16 | b4 | main.rs:470:15:470:16 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | main.rs:455:15:455:17 | a10 | main.rs:469:15:469:17 | a10 | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | f | main.rs:495:15:495:15 | f | main.rs:502:15:502:15 | f | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | main.rs:534:15:534:15 | a | main.rs:535:11:535:11 | a | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:548:6:548:6 | x | main.rs:549:10:549:10 | x | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:549:10:549:10 | x | main.rs:550:10:550:10 | x | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | x | main.rs:550:10:550:10 | x | main.rs:551:12:551:12 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:555:6:555:6 | x | main.rs:556:10:556:10 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:556:10:556:10 | x | main.rs:557:10:557:10 | x | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | x | main.rs:557:10:557:10 | x | main.rs:559:9:559:9 | x | +| main.rs:565:22:565:27 | &mut x | main.rs:563:13:563:13 | x | main.rs:569:15:569:15 | x | main.rs:573:19:573:19 | x | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | w | main.rs:576:9:576:9 | w | main.rs:578:7:578:7 | w | +| main.rs:643:13:643:13 | x | main.rs:643:13:643:13 | x | main.rs:644:15:644:15 | x | main.rs:645:15:645:15 | x | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | main.rs:650:19:650:19 | x | main.rs:651:19:651:19 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | main.rs:654:19:654:19 | x | main.rs:655:19:655:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:665:19:665:19 | x | main.rs:673:19:673:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:665:19:665:19 | x | main.rs:675:19:675:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:667:19:667:19 | x | main.rs:673:19:673:19 | x | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | x | main.rs:667:19:667:19 | x | main.rs:675:19:675:19 | x | +| main.rs:693:17:693:17 | f | main.rs:693:17:693:17 | f | main.rs:697:9:697:9 | f | main.rs:698:9:698:9 | f | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | main.rs:705:5:705:5 | a | main.rs:706:15:706:15 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:713:15:713:15 | a | main.rs:714:5:714:5 | a | +| main.rs:712:13:712:13 | a | main.rs:712:13:712:13 | a | main.rs:714:5:714:5 | a | main.rs:715:15:715:15 | a | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | x | main.rs:722:20:722:20 | x | main.rs:723:15:723:15 | x | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | x | main.rs:824:15:824:15 | x | main.rs:829:15:829:15 | x | phi -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:210:22:210:23 | a3 | -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:9:210:44 | a3 | main.rs:210:42:210:43 | a3 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:28:224:29 | a4 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:54:224:55 | a4 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:9:224:81 | a4 | main.rs:224:79:224:80 | a4 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:81:228:82 | a5 | -| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:29:228:30 | a5 | -| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:9:228:83 | a5 | main.rs:228:55:228:56 | a5 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:28:232:29 | a6 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:35:232:82 | SSA phi(a6) | -| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:55:232:56 | a6 | -| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:9:232:83 | a6 | main.rs:232:80:232:81 | a6 | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:240:22:240:23 | a7 | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:9:240:44 | a7 | main.rs:240:42:240:43 | a7 | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:252:27:252:29 | a11 | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:14:252:51 | a11 | main.rs:252:48:252:50 | a11 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:27:274:29 | a13 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:106:274:108 | a13 | -| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:54:274:56 | a13 | -| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:9:274:109 | a13 | main.rs:274:79:274:81 | a13 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:20:395:55 | a9 | main.rs:395:33:395:34 | a9 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:20:395:55 | a9 | main.rs:395:53:395:54 | a9 | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:607:13:607:13 | x | main.rs:613:9:613:9 | x | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:607:13:607:13 | x | main.rs:617:9:617:9 | x | -| main.rs:748:17:750:9 | SSA phi(x) | main.rs:745:13:745:13 | x | main.rs:746:19:751:5 | x | -| main.rs:748:17:750:9 | SSA phi(x) | main.rs:745:13:745:13 | x | main.rs:749:13:749:13 | x | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:9:245:44 | a3 | main.rs:245:22:245:23 | a3 | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:9:245:44 | a3 | main.rs:245:42:245:43 | a3 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | main.rs:259:28:259:29 | a4 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | main.rs:259:54:259:55 | a4 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:9:259:81 | a4 | main.rs:259:79:259:80 | a4 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:263:81:263:82 | a5 | +| main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:263:29:263:30 | a5 | +| main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:263:55:263:56 | a5 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:267:28:267:29 | a6 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:267:35:267:82 | SSA phi(a6) | +| main.rs:267:35:267:82 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:267:55:267:56 | a6 | +| main.rs:267:35:267:82 | SSA phi(a6) | main.rs:267:9:267:83 | a6 | main.rs:267:80:267:81 | a6 | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:275:22:275:23 | a7 | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:275:42:275:43 | a7 | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:14:287:51 | a11 | main.rs:287:27:287:29 | a11 | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:14:287:51 | a11 | main.rs:287:48:287:50 | a11 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:27:309:29 | a13 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:106:309:108 | a13 | +| main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:54:309:56 | a13 | +| main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:79:309:81 | a13 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:20:431:55 | a9 | main.rs:431:33:431:34 | a9 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:20:431:55 | a9 | main.rs:431:53:431:54 | a9 | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:643:13:643:13 | x | main.rs:649:9:649:9 | x | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:643:13:643:13 | x | main.rs:653:9:653:9 | x | +| main.rs:784:17:786:9 | SSA phi(x) | main.rs:781:13:781:13 | x | main.rs:782:19:787:5 | x | +| main.rs:784:17:786:9 | SSA phi(x) | main.rs:781:13:781:13 | x | main.rs:785:13:785:13 | x | phiReadNode -| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | -| main.rs:627:13:632:5 | SSA phi read(x) | main.rs:625:9:625:9 | x | +| main.rs:116:11:116:11 | SSA phi read(s) | main.rs:113:9:113:9 | s | +| main.rs:663:13:668:5 | SSA phi read(x) | main.rs:661:9:661:9 | x | phiReadNodeFirstRead -| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | main.rs:116:11:116:12 | s1 | -| main.rs:627:13:632:5 | SSA phi read(x) | main.rs:625:9:625:9 | x | main.rs:637:19:637:19 | x | -| main.rs:627:13:632:5 | SSA phi read(x) | main.rs:625:9:625:9 | x | main.rs:639:19:639:19 | x | +| main.rs:116:11:116:11 | SSA phi read(s) | main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | +| main.rs:663:13:668:5 | SSA phi read(x) | main.rs:661:9:661:9 | x | main.rs:673:19:673:19 | x | +| main.rs:663:13:668:5 | SSA phi read(x) | main.rs:661:9:661:9 | x | main.rs:675:19:675:19 | x | phiReadInput -| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:113:9:113:10 | s1 | -| main.rs:116:11:116:12 | SSA phi read(s1) | main.rs:116:11:116:12 | SSA read(s1) | -| main.rs:627:13:632:5 | SSA phi read(x) | main.rs:629:19:629:19 | SSA read(x) | -| main.rs:627:13:632:5 | SSA phi read(x) | main.rs:631:19:631:19 | SSA read(x) | +| main.rs:116:11:116:11 | SSA phi read(s) | main.rs:113:9:113:9 | s | +| main.rs:116:11:116:11 | SSA phi read(s) | main.rs:116:11:116:11 | SSA read(s) | +| main.rs:663:13:668:5 | SSA phi read(x) | main.rs:665:19:665:19 | SSA read(x) | +| main.rs:663:13:668:5 | SSA phi read(x) | main.rs:667:19:667:19 | SSA read(x) | ultimateDef -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:22:210:23 | a3 | -| main.rs:210:9:210:44 | SSA phi(a3) | main.rs:210:42:210:43 | a3 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:28:224:29 | a4 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:54:224:55 | a4 | -| main.rs:224:9:224:81 | SSA phi(a4) | main.rs:224:79:224:80 | a4 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:29:228:30 | a5 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:55:228:56 | a5 | -| main.rs:228:9:228:83 | SSA phi(a5) | main.rs:228:81:228:82 | a5 | -| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:29:228:30 | a5 | -| main.rs:228:10:228:57 | [match(true)] SSA phi(a5) | main.rs:228:55:228:56 | a5 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:28:232:29 | a6 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:55:232:56 | a6 | -| main.rs:232:9:232:83 | SSA phi(a6) | main.rs:232:80:232:81 | a6 | -| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:55:232:56 | a6 | -| main.rs:232:35:232:82 | SSA phi(a6) | main.rs:232:80:232:81 | a6 | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:22:240:23 | a7 | -| main.rs:240:9:240:44 | [match(true)] SSA phi(a7) | main.rs:240:42:240:43 | a7 | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:27:252:29 | a11 | -| main.rs:252:14:252:51 | [match(true)] SSA phi(a11) | main.rs:252:48:252:50 | a11 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:27:274:29 | a13 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:54:274:56 | a13 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:79:274:81 | a13 | -| main.rs:274:9:274:109 | SSA phi(a13) | main.rs:274:106:274:108 | a13 | -| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:54:274:56 | a13 | -| main.rs:274:35:274:82 | [match(true)] SSA phi(a13) | main.rs:274:79:274:81 | a13 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:33:395:34 | a9 | -| main.rs:395:20:395:55 | SSA phi(a9) | main.rs:395:53:395:54 | a9 | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:613:9:613:9 | x | -| main.rs:611:13:620:5 | SSA phi(x) | main.rs:617:9:617:9 | x | -| main.rs:748:17:750:9 | SSA phi(x) | main.rs:746:19:751:5 | x | -| main.rs:748:17:750:9 | SSA phi(x) | main.rs:749:13:749:13 | x | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:22:245:23 | a3 | +| main.rs:245:9:245:44 | SSA phi(a3) | main.rs:245:42:245:43 | a3 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:28:259:29 | a4 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:54:259:55 | a4 | +| main.rs:259:9:259:81 | SSA phi(a4) | main.rs:259:79:259:80 | a4 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:29:263:30 | a5 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:55:263:56 | a5 | +| main.rs:263:9:263:83 | SSA phi(a5) | main.rs:263:81:263:82 | a5 | +| main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | main.rs:263:29:263:30 | a5 | +| main.rs:263:10:263:57 | [match(true)] SSA phi(a5) | main.rs:263:55:263:56 | a5 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:28:267:29 | a6 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:55:267:56 | a6 | +| main.rs:267:9:267:83 | SSA phi(a6) | main.rs:267:80:267:81 | a6 | +| main.rs:267:35:267:82 | SSA phi(a6) | main.rs:267:55:267:56 | a6 | +| main.rs:267:35:267:82 | SSA phi(a6) | main.rs:267:80:267:81 | a6 | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:22:275:23 | a7 | +| main.rs:275:9:275:44 | [match(true)] SSA phi(a7) | main.rs:275:42:275:43 | a7 | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:27:287:29 | a11 | +| main.rs:287:14:287:51 | [match(true)] SSA phi(a11) | main.rs:287:48:287:50 | a11 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:27:309:29 | a13 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:54:309:56 | a13 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:79:309:81 | a13 | +| main.rs:309:9:309:109 | SSA phi(a13) | main.rs:309:106:309:108 | a13 | +| main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | main.rs:309:54:309:56 | a13 | +| main.rs:309:35:309:82 | [match(true)] SSA phi(a13) | main.rs:309:79:309:81 | a13 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:33:431:34 | a9 | +| main.rs:431:20:431:55 | SSA phi(a9) | main.rs:431:53:431:54 | a9 | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:649:9:649:9 | x | +| main.rs:647:13:656:5 | SSA phi(x) | main.rs:653:9:653:9 | x | +| main.rs:784:17:786:9 | SSA phi(x) | main.rs:782:19:787:5 | x | +| main.rs:784:17:786:9 | SSA phi(x) | main.rs:785:13:785:13 | x | assigns | main.rs:20:9:20:10 | x1 | main.rs:20:14:20:16 | "a" | | main.rs:25:13:25:14 | x2 | main.rs:25:18:25:18 | 4 | @@ -727,77 +767,87 @@ assigns | main.rs:91:9:91:10 | s1 | main.rs:91:14:91:41 | Some(...) | | main.rs:100:9:100:9 | x | main.rs:100:13:100:22 | Some(...) | | main.rs:104:13:104:13 | x | main.rs:105:13:105:13 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:14:113:41 | Some(...) | -| main.rs:122:9:122:10 | x6 | main.rs:122:14:122:20 | Some(...) | -| main.rs:123:9:123:10 | y1 | main.rs:123:14:123:15 | 10 | -| main.rs:139:9:139:15 | numbers | main.rs:139:19:139:35 | TupleExpr | -| main.rs:170:9:170:10 | p2 | main.rs:170:14:170:37 | Point {...} | -| main.rs:184:9:184:11 | msg | main.rs:184:15:184:38 | ...::Hello {...} | -| main.rs:208:9:208:14 | either | main.rs:208:18:208:33 | ...::Left(...) | -| main.rs:222:9:222:10 | tv | main.rs:222:14:222:36 | ...::Second(...) | -| main.rs:238:9:238:14 | either | main.rs:238:18:238:33 | ...::Left(...) | -| main.rs:248:9:248:14 | either | main.rs:248:18:248:33 | ...::Left(...) | -| main.rs:272:9:272:10 | fv | main.rs:272:14:272:35 | ...::Second(...) | -| main.rs:281:9:281:9 | x | main.rs:281:12:281:19 | Some(...) | -| main.rs:289:13:289:13 | x | main.rs:290:13:290:13 | x | -| main.rs:297:9:297:9 | x | main.rs:297:13:297:20 | Some(...) | -| main.rs:308:13:308:13 | x | main.rs:309:13:309:13 | x | -| main.rs:316:9:316:9 | x | main.rs:316:13:316:20 | Some(...) | -| main.rs:334:9:334:9 | x | main.rs:334:13:334:20 | Some(...) | -| main.rs:337:20:337:20 | x | main.rs:338:18:338:18 | x | -| main.rs:348:9:348:9 | x | main.rs:348:13:348:18 | Ok(...) | -| main.rs:364:9:364:9 | x | main.rs:364:13:364:19 | Some(...) | -| main.rs:373:9:373:9 | x | main.rs:373:13:373:20 | Some(...) | -| main.rs:438:9:438:23 | example_closure | main.rs:439:9:440:9 | \|...\| x | -| main.rs:441:9:441:10 | n1 | main.rs:442:9:442:26 | example_closure(...) | -| main.rs:446:9:446:26 | immutable_variable | main.rs:447:5:448:9 | \|...\| x | -| main.rs:449:9:449:10 | n2 | main.rs:450:9:450:29 | immutable_variable(...) | -| main.rs:456:9:456:9 | f | main.rs:457:9:458:9 | \|...\| x | -| main.rs:479:13:479:13 | f | main.rs:480:13:481:13 | \|...\| x | -| main.rs:487:9:487:9 | v | main.rs:487:13:487:41 | &... | -| main.rs:496:13:496:13 | a | main.rs:496:17:496:17 | 0 | -| main.rs:504:13:504:13 | i | main.rs:504:17:504:17 | 1 | -| main.rs:505:9:505:13 | ref_i | main.rs:506:9:506:14 | &mut i | -| main.rs:527:13:527:13 | x | main.rs:527:17:527:17 | 2 | -| main.rs:528:9:528:9 | y | main.rs:529:9:529:28 | mutate_param(...) | -| main.rs:535:13:535:13 | z | main.rs:535:17:535:17 | 4 | -| main.rs:536:9:536:9 | w | main.rs:537:9:537:19 | &mut ... | -| main.rs:549:13:549:13 | x | main.rs:549:17:549:17 | 1 | -| main.rs:550:9:550:9 | y | main.rs:551:9:551:14 | &mut x | -| main.rs:557:9:557:9 | x | main.rs:557:13:557:15 | 100 | -| main.rs:560:9:560:11 | cap | main.rs:560:15:562:5 | \|...\| ... | -| main.rs:568:13:568:13 | x | main.rs:568:17:568:17 | 1 | -| main.rs:571:9:571:16 | closure1 | main.rs:571:20:573:5 | \|...\| ... | -| main.rs:577:13:577:13 | y | main.rs:577:17:577:17 | 2 | -| main.rs:580:13:580:20 | closure2 | main.rs:580:24:582:5 | \|...\| ... | -| main.rs:581:9:581:9 | y | main.rs:581:13:581:13 | 3 | -| main.rs:586:13:586:13 | z | main.rs:586:17:586:17 | 2 | -| main.rs:589:13:589:20 | closure3 | main.rs:589:24:591:5 | \|...\| ... | -| main.rs:597:13:597:13 | i | main.rs:597:22:597:22 | 0 | -| main.rs:598:9:598:13 | block | main.rs:598:17:600:5 | { ... } | -| main.rs:599:9:599:9 | i | main.rs:599:13:599:13 | 1 | -| main.rs:607:13:607:13 | x | main.rs:607:17:607:17 | 1 | -| main.rs:613:9:613:9 | x | main.rs:613:13:613:13 | 2 | -| main.rs:617:9:617:9 | x | main.rs:617:13:617:13 | 3 | -| main.rs:625:9:625:9 | x | main.rs:625:13:625:13 | 1 | -| main.rs:657:17:657:17 | f | main.rs:657:21:660:9 | \|...\| ... | -| main.rs:667:13:667:13 | a | main.rs:667:17:667:35 | MyStruct {...} | -| main.rs:671:5:671:5 | a | main.rs:671:9:671:27 | MyStruct {...} | -| main.rs:676:13:676:13 | a | main.rs:676:17:676:25 | [...] | -| main.rs:680:5:680:5 | a | main.rs:680:9:680:17 | [...] | -| main.rs:685:9:685:9 | x | main.rs:685:13:685:14 | 16 | -| main.rs:689:9:689:9 | z | main.rs:689:13:689:14 | 17 | -| main.rs:704:13:704:13 | a | main.rs:704:17:704:35 | MyStruct {...} | -| main.rs:726:9:726:22 | var_from_macro | main.rs:727:9:727:25 | MacroExpr | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:23:727:24 | 37 | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:24:729:25 | 33 | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | 0 | -| main.rs:740:5:740:5 | x | main.rs:740:9:740:9 | 1 | -| main.rs:745:13:745:13 | x | main.rs:745:17:745:19 | 100 | -| main.rs:746:13:746:15 | cap | main.rs:746:19:751:5 | \|...\| ... | -| main.rs:749:13:749:13 | x | main.rs:749:17:749:19 | 200 | -| main.rs:759:13:759:13 | x | main.rs:759:17:759:24 | Some(...) | -| main.rs:760:13:760:13 | y | main.rs:761:13:767:9 | match x { ... } | -| main.rs:776:13:776:22 | test_alias | main.rs:777:13:777:16 | test | -| main.rs:778:13:778:16 | test | main.rs:779:13:779:24 | test_alias(...) | -| main.rs:787:13:787:13 | x | main.rs:787:17:787:23 | Some(...) | +| main.rs:113:9:113:9 | s | main.rs:113:13:113:40 | Some(...) | +| main.rs:133:9:133:9 | x | main.rs:133:13:133:13 | 1 | +| main.rs:134:12:134:12 | x | main.rs:135:9:135:13 | ... + ... | +| main.rs:136:12:136:12 | x | main.rs:137:9:137:13 | ... + ... | +| main.rs:138:12:138:12 | x | main.rs:139:9:139:13 | ... + ... | +| main.rs:140:12:140:12 | x | main.rs:141:9:141:13 | ... + ... | +| main.rs:142:12:142:12 | x | main.rs:143:9:143:13 | ... + ... | +| main.rs:144:12:144:12 | x | main.rs:145:9:145:13 | ... + ... | +| main.rs:146:12:146:12 | x | main.rs:147:9:147:13 | ... + ... | +| main.rs:157:9:157:10 | x6 | main.rs:157:14:157:20 | Some(...) | +| main.rs:158:9:158:10 | y1 | main.rs:158:14:158:15 | 10 | +| main.rs:174:9:174:15 | numbers | main.rs:174:19:174:35 | TupleExpr | +| main.rs:205:9:205:10 | p2 | main.rs:205:14:205:37 | Point {...} | +| main.rs:219:9:219:11 | msg | main.rs:219:15:219:38 | ...::Hello {...} | +| main.rs:243:9:243:14 | either | main.rs:243:18:243:33 | ...::Left(...) | +| main.rs:257:9:257:10 | tv | main.rs:257:14:257:36 | ...::Second(...) | +| main.rs:273:9:273:14 | either | main.rs:273:18:273:33 | ...::Left(...) | +| main.rs:283:9:283:14 | either | main.rs:283:18:283:33 | ...::Left(...) | +| main.rs:307:9:307:10 | fv | main.rs:307:14:307:35 | ...::Second(...) | +| main.rs:316:9:316:9 | x | main.rs:316:12:316:19 | Some(...) | +| main.rs:324:13:324:13 | x | main.rs:325:13:325:13 | x | +| main.rs:332:9:332:9 | x | main.rs:332:13:332:20 | Some(...) | +| main.rs:343:13:343:13 | x | main.rs:344:13:344:13 | x | +| main.rs:351:9:351:9 | x | main.rs:351:13:351:20 | Some(...) | +| main.rs:369:9:369:9 | x | main.rs:369:13:369:20 | Some(...) | +| main.rs:372:20:372:20 | x | main.rs:373:18:373:18 | x | +| main.rs:383:9:383:9 | x | main.rs:383:13:383:18 | Ok(...) | +| main.rs:399:9:399:9 | x | main.rs:399:13:399:19 | Some(...) | +| main.rs:408:9:408:9 | x | main.rs:408:13:408:20 | Some(...) | +| main.rs:474:9:474:23 | example_closure | main.rs:475:9:476:9 | \|...\| x | +| main.rs:477:9:477:10 | n1 | main.rs:478:9:478:26 | example_closure(...) | +| main.rs:482:9:482:26 | immutable_variable | main.rs:483:5:484:9 | \|...\| x | +| main.rs:485:9:485:10 | n2 | main.rs:486:9:486:29 | immutable_variable(...) | +| main.rs:492:9:492:9 | f | main.rs:493:9:494:9 | \|...\| x | +| main.rs:515:13:515:13 | f | main.rs:516:13:517:13 | \|...\| x | +| main.rs:523:9:523:9 | v | main.rs:523:13:523:41 | &... | +| main.rs:532:13:532:13 | a | main.rs:532:17:532:17 | 0 | +| main.rs:540:13:540:13 | i | main.rs:540:17:540:17 | 1 | +| main.rs:541:9:541:13 | ref_i | main.rs:542:9:542:14 | &mut i | +| main.rs:563:13:563:13 | x | main.rs:563:17:563:17 | 2 | +| main.rs:564:9:564:9 | y | main.rs:565:9:565:28 | mutate_param(...) | +| main.rs:571:13:571:13 | z | main.rs:571:17:571:17 | 4 | +| main.rs:572:9:572:9 | w | main.rs:573:9:573:19 | &mut ... | +| main.rs:585:13:585:13 | x | main.rs:585:17:585:17 | 1 | +| main.rs:586:9:586:9 | y | main.rs:587:9:587:14 | &mut x | +| main.rs:593:9:593:9 | x | main.rs:593:13:593:15 | 100 | +| main.rs:596:9:596:11 | cap | main.rs:596:15:598:5 | \|...\| ... | +| main.rs:604:13:604:13 | x | main.rs:604:17:604:17 | 1 | +| main.rs:607:9:607:16 | closure1 | main.rs:607:20:609:5 | \|...\| ... | +| main.rs:613:13:613:13 | y | main.rs:613:17:613:17 | 2 | +| main.rs:616:13:616:20 | closure2 | main.rs:616:24:618:5 | \|...\| ... | +| main.rs:617:9:617:9 | y | main.rs:617:13:617:13 | 3 | +| main.rs:622:13:622:13 | z | main.rs:622:17:622:17 | 2 | +| main.rs:625:13:625:20 | closure3 | main.rs:625:24:627:5 | \|...\| ... | +| main.rs:633:13:633:13 | i | main.rs:633:22:633:22 | 0 | +| main.rs:634:9:634:13 | block | main.rs:634:17:636:5 | { ... } | +| main.rs:635:9:635:9 | i | main.rs:635:13:635:13 | 1 | +| main.rs:643:13:643:13 | x | main.rs:643:17:643:17 | 1 | +| main.rs:649:9:649:9 | x | main.rs:649:13:649:13 | 2 | +| main.rs:653:9:653:9 | x | main.rs:653:13:653:13 | 3 | +| main.rs:661:9:661:9 | x | main.rs:661:13:661:13 | 1 | +| main.rs:693:17:693:17 | f | main.rs:693:21:696:9 | \|...\| ... | +| main.rs:703:13:703:13 | a | main.rs:703:17:703:35 | MyStruct {...} | +| main.rs:707:5:707:5 | a | main.rs:707:9:707:27 | MyStruct {...} | +| main.rs:712:13:712:13 | a | main.rs:712:17:712:25 | [...] | +| main.rs:716:5:716:5 | a | main.rs:716:9:716:17 | [...] | +| main.rs:721:9:721:9 | x | main.rs:721:13:721:14 | 16 | +| main.rs:725:9:725:9 | z | main.rs:725:13:725:14 | 17 | +| main.rs:740:13:740:13 | a | main.rs:740:17:740:35 | MyStruct {...} | +| main.rs:762:9:762:22 | var_from_macro | main.rs:763:9:763:25 | MacroExpr | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:23:763:24 | 37 | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:24:765:25 | 33 | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | 0 | +| main.rs:776:5:776:5 | x | main.rs:776:9:776:9 | 1 | +| main.rs:781:13:781:13 | x | main.rs:781:17:781:19 | 100 | +| main.rs:782:13:782:15 | cap | main.rs:782:19:787:5 | \|...\| ... | +| main.rs:785:13:785:13 | x | main.rs:785:17:785:19 | 200 | +| main.rs:795:13:795:13 | x | main.rs:795:17:795:24 | Some(...) | +| main.rs:796:13:796:13 | y | main.rs:797:13:803:9 | match x { ... } | +| main.rs:812:13:812:22 | test_alias | main.rs:813:13:813:16 | test | +| main.rs:814:13:814:16 | test | main.rs:815:13:815:24 | test_alias(...) | +| main.rs:823:13:823:13 | x | main.rs:823:17:823:23 | Some(...) | +| main.rs:838:9:838:9 | x | main.rs:838:13:838:13 | 1 | +| main.rs:840:13:840:13 | x | main.rs:840:17:840:17 | 1 | diff --git a/rust/ql/test/library-tests/variables/main.rs b/rust/ql/test/library-tests/variables/main.rs index fe13f89b1775..1435d79aaca8 100644 --- a/rust/ql/test/library-tests/variables/main.rs +++ b/rust/ql/test/library-tests/variables/main.rs @@ -110,11 +110,46 @@ fn let_pattern4() { } fn let_pattern5() { - let s1 = Some(String::from("Hello!")); // s1 + let s = Some(String::from("Hello!")); // s1 - while let Some(ref s2) // s2 - = s1 { // $ read_access=s1 - print_str(s2); // $ read_access=s2 + while let Some(ref s) // s2 + = s { // $ read_access=s1 + print_str(s); // $ read_access=s2 + } +} + +#[rustfmt::skip] +fn let_pattern6() { + if let Some(x) = Some(43) // x1 + && let Ok(x) = // x2 + Ok::<_, ()>(x) // $ read_access=x1 + { + print_i64(x); // $ read_access=x2 + } +} + +#[rustfmt::skip] +fn let_pattern7() { + let x = 1; // x1 + if let x = // x2 + x + 1 // $ read_access=x1 + && let x = // x3 + x + 1 // $ read_access=x2 + && let x = // x4 + x + 1 // $ read_access=x3 + && let x = // x5 + x + 1 // $ read_access=x4 + && let x = // x6 + x + 1 // $ read_access=x5 + && let x = // x7 + x + 1 // $ read_access=x6 + && let x = // x8 + x + 1 // $ read_access=x7 + { + print_i64(x); // $ read_access=x8 + } + else { + print_i64(x); // $ read_access=x1 } } @@ -373,7 +408,8 @@ fn match_pattern16() { let x = Some(32); match x { // $ read_access=x Some(y) // y1 - if let Some(y) = // y2 + if y > 0 && // $ read_access=y1 + let Some(y) = // y2 Some(y) // $ read_access=y1 => print_i64(y), // $ read_access=y2 _ => {}, @@ -798,6 +834,18 @@ mod patterns { } } +fn let_in_block_in_cond() { + let x = 1; // x1 + if { + let x = 1; // x2 + x > 0 // $ read_access=x2 + } { + print_i64(x); // $ read_access=x1 + } else { + print_i64(x); // $ read_access=x1 + } +} + fn main() { immutable_variable(); mutable_variable(); @@ -808,6 +856,8 @@ fn main() { let_pattern2(); let_pattern3(); let_pattern4(); + let_pattern5(); + let_pattern6(); match_pattern1(); match_pattern2(); match_pattern3(); @@ -842,4 +892,5 @@ fn main() { ref_methodcall_receiver(); macro_invocation(); capture_phi(); + let_in_block_in_cond(); } diff --git a/rust/ql/test/library-tests/variables/variables.expected b/rust/ql/test/library-tests/variables/variables.expected index ea360357d970..de94e8263937 100644 --- a/rust/ql/test/library-tests/variables/variables.expected +++ b/rust/ql/test/library-tests/variables/variables.expected @@ -22,134 +22,146 @@ variable | main.rs:100:9:100:9 | x | | main.rs:101:14:101:14 | x | | main.rs:104:13:104:13 | x | -| main.rs:113:9:113:10 | s1 | -| main.rs:115:24:115:25 | s2 | -| main.rs:122:9:122:10 | x6 | -| main.rs:123:9:123:10 | y1 | -| main.rs:127:14:127:15 | y1 | -| main.rs:139:9:139:15 | numbers | -| main.rs:144:13:144:17 | first | -| main.rs:146:13:146:17 | third | -| main.rs:148:13:148:17 | fifth | -| main.rs:159:13:159:17 | first | -| main.rs:161:13:161:16 | last | -| main.rs:170:9:170:10 | p2 | -| main.rs:174:16:174:17 | x7 | -| main.rs:184:9:184:11 | msg | -| main.rs:189:17:189:27 | id_variable | -| main.rs:194:26:194:27 | id | -| main.rs:208:9:208:14 | either | -| main.rs:210:9:210:44 | a3 | -| main.rs:222:9:222:10 | tv | -| main.rs:224:9:224:81 | a4 | -| main.rs:228:9:228:83 | a5 | -| main.rs:232:9:232:83 | a6 | -| main.rs:238:9:238:14 | either | -| main.rs:240:9:240:44 | a7 | -| main.rs:248:9:248:14 | either | -| main.rs:251:13:251:13 | e | -| main.rs:252:14:252:51 | a11 | -| main.rs:255:33:255:35 | a12 | -| main.rs:272:9:272:10 | fv | -| main.rs:274:9:274:109 | a13 | -| main.rs:281:9:281:9 | x | -| main.rs:282:17:282:17 | x | -| main.rs:289:13:289:13 | x | -| main.rs:297:9:297:9 | x | -| main.rs:298:17:298:17 | x | -| main.rs:301:14:301:14 | x | -| main.rs:308:13:308:13 | x | +| main.rs:113:9:113:9 | s | +| main.rs:115:24:115:24 | s | +| main.rs:123:17:123:17 | x | +| main.rs:124:19:124:19 | x | +| main.rs:133:9:133:9 | x | +| main.rs:134:12:134:12 | x | +| main.rs:136:12:136:12 | x | +| main.rs:138:12:138:12 | x | +| main.rs:140:12:140:12 | x | +| main.rs:142:12:142:12 | x | +| main.rs:144:12:144:12 | x | +| main.rs:146:12:146:12 | x | +| main.rs:157:9:157:10 | x6 | +| main.rs:158:9:158:10 | y1 | +| main.rs:162:14:162:15 | y1 | +| main.rs:174:9:174:15 | numbers | +| main.rs:179:13:179:17 | first | +| main.rs:181:13:181:17 | third | +| main.rs:183:13:183:17 | fifth | +| main.rs:194:13:194:17 | first | +| main.rs:196:13:196:16 | last | +| main.rs:205:9:205:10 | p2 | +| main.rs:209:16:209:17 | x7 | +| main.rs:219:9:219:11 | msg | +| main.rs:224:17:224:27 | id_variable | +| main.rs:229:26:229:27 | id | +| main.rs:243:9:243:14 | either | +| main.rs:245:9:245:44 | a3 | +| main.rs:257:9:257:10 | tv | +| main.rs:259:9:259:81 | a4 | +| main.rs:263:9:263:83 | a5 | +| main.rs:267:9:267:83 | a6 | +| main.rs:273:9:273:14 | either | +| main.rs:275:9:275:44 | a7 | +| main.rs:283:9:283:14 | either | +| main.rs:286:13:286:13 | e | +| main.rs:287:14:287:51 | a11 | +| main.rs:290:33:290:35 | a12 | +| main.rs:307:9:307:10 | fv | +| main.rs:309:9:309:109 | a13 | | main.rs:316:9:316:9 | x | -| main.rs:317:20:317:20 | x | -| main.rs:320:14:320:14 | x | -| main.rs:334:9:334:9 | x | +| main.rs:317:17:317:17 | x | +| main.rs:324:13:324:13 | x | +| main.rs:332:9:332:9 | x | +| main.rs:333:17:333:17 | x | | main.rs:336:14:336:14 | x | -| main.rs:337:20:337:20 | x | -| main.rs:348:9:348:9 | x | -| main.rs:349:16:349:16 | x | -| main.rs:354:20:354:20 | x | -| main.rs:364:9:364:9 | x | -| main.rs:366:18:366:18 | x | -| main.rs:373:9:373:9 | x | -| main.rs:375:14:375:14 | y | -| main.rs:376:25:376:25 | y | -| main.rs:384:5:384:6 | a8 | -| main.rs:386:9:386:10 | b3 | -| main.rs:387:9:387:10 | c1 | -| main.rs:395:20:395:55 | a9 | -| main.rs:402:13:402:15 | a10 | -| main.rs:403:13:403:14 | b4 | -| main.rs:404:13:404:14 | c2 | -| main.rs:425:13:425:15 | a10 | -| main.rs:426:13:426:14 | b4 | -| main.rs:438:9:438:23 | example_closure | -| main.rs:439:10:439:10 | x | -| main.rs:441:9:441:10 | n1 | -| main.rs:446:9:446:26 | immutable_variable | -| main.rs:447:6:447:6 | x | -| main.rs:449:9:449:10 | n2 | -| main.rs:456:9:456:9 | f | -| main.rs:457:10:457:10 | x | -| main.rs:461:10:461:10 | x | -| main.rs:470:14:470:14 | x | -| main.rs:479:13:479:13 | f | -| main.rs:480:14:480:14 | x | -| main.rs:487:9:487:9 | v | -| main.rs:489:9:489:12 | text | -| main.rs:496:13:496:13 | a | -| main.rs:504:13:504:13 | i | -| main.rs:505:9:505:13 | ref_i | -| main.rs:511:17:511:17 | x | -| main.rs:518:22:518:22 | x | -| main.rs:518:38:518:38 | y | -| main.rs:527:13:527:13 | x | -| main.rs:528:9:528:9 | y | -| main.rs:535:13:535:13 | z | -| main.rs:536:9:536:9 | w | -| main.rs:549:13:549:13 | x | -| main.rs:550:9:550:9 | y | -| main.rs:557:9:557:9 | x | -| main.rs:560:9:560:11 | cap | -| main.rs:568:13:568:13 | x | -| main.rs:571:9:571:16 | closure1 | -| main.rs:577:13:577:13 | y | -| main.rs:580:13:580:20 | closure2 | -| main.rs:586:13:586:13 | z | -| main.rs:589:13:589:20 | closure3 | -| main.rs:597:13:597:13 | i | -| main.rs:598:9:598:13 | block | -| main.rs:606:8:606:8 | b | -| main.rs:607:13:607:13 | x | -| main.rs:624:13:624:14 | b1 | -| main.rs:624:23:624:24 | b2 | -| main.rs:625:9:625:9 | x | -| main.rs:648:20:648:23 | self | -| main.rs:652:11:652:14 | self | -| main.rs:656:23:656:26 | self | -| main.rs:657:17:657:17 | f | -| main.rs:657:22:657:22 | n | -| main.rs:667:13:667:13 | a | -| main.rs:676:13:676:13 | a | -| main.rs:685:9:685:9 | x | -| main.rs:689:9:689:9 | z | -| main.rs:698:17:698:20 | self | -| main.rs:704:13:704:13 | a | -| main.rs:726:9:726:22 | var_from_macro | -| main.rs:727:9:727:21 | var_in_macro | -| main.rs:729:9:729:20 | var_in_macro | -| main.rs:734:15:734:28 | var_in_macro | -| main.rs:739:9:739:9 | x | -| main.rs:745:13:745:13 | x | -| main.rs:746:13:746:15 | cap | -| main.rs:746:20:746:20 | b | -| main.rs:759:13:759:13 | x | -| main.rs:760:13:760:13 | y | -| main.rs:762:18:762:18 | y | -| main.rs:769:13:769:16 | N0ne | -| main.rs:776:13:776:22 | test_alias | -| main.rs:778:13:778:16 | test | -| main.rs:787:13:787:13 | x | -| main.rs:789:18:789:18 | x | +| main.rs:343:13:343:13 | x | +| main.rs:351:9:351:9 | x | +| main.rs:352:20:352:20 | x | +| main.rs:355:14:355:14 | x | +| main.rs:369:9:369:9 | x | +| main.rs:371:14:371:14 | x | +| main.rs:372:20:372:20 | x | +| main.rs:383:9:383:9 | x | +| main.rs:384:16:384:16 | x | +| main.rs:389:20:389:20 | x | +| main.rs:399:9:399:9 | x | +| main.rs:401:18:401:18 | x | +| main.rs:408:9:408:9 | x | +| main.rs:410:14:410:14 | y | +| main.rs:412:22:412:22 | y | +| main.rs:420:5:420:6 | a8 | +| main.rs:422:9:422:10 | b3 | +| main.rs:423:9:423:10 | c1 | +| main.rs:431:20:431:55 | a9 | +| main.rs:438:13:438:15 | a10 | +| main.rs:439:13:439:14 | b4 | +| main.rs:440:13:440:14 | c2 | +| main.rs:461:13:461:15 | a10 | +| main.rs:462:13:462:14 | b4 | +| main.rs:474:9:474:23 | example_closure | +| main.rs:475:10:475:10 | x | +| main.rs:477:9:477:10 | n1 | +| main.rs:482:9:482:26 | immutable_variable | +| main.rs:483:6:483:6 | x | +| main.rs:485:9:485:10 | n2 | +| main.rs:492:9:492:9 | f | +| main.rs:493:10:493:10 | x | +| main.rs:497:10:497:10 | x | +| main.rs:506:14:506:14 | x | +| main.rs:515:13:515:13 | f | +| main.rs:516:14:516:14 | x | +| main.rs:523:9:523:9 | v | +| main.rs:525:9:525:12 | text | +| main.rs:532:13:532:13 | a | +| main.rs:540:13:540:13 | i | +| main.rs:541:9:541:13 | ref_i | +| main.rs:547:17:547:17 | x | +| main.rs:554:22:554:22 | x | +| main.rs:554:38:554:38 | y | +| main.rs:563:13:563:13 | x | +| main.rs:564:9:564:9 | y | +| main.rs:571:13:571:13 | z | +| main.rs:572:9:572:9 | w | +| main.rs:585:13:585:13 | x | +| main.rs:586:9:586:9 | y | +| main.rs:593:9:593:9 | x | +| main.rs:596:9:596:11 | cap | +| main.rs:604:13:604:13 | x | +| main.rs:607:9:607:16 | closure1 | +| main.rs:613:13:613:13 | y | +| main.rs:616:13:616:20 | closure2 | +| main.rs:622:13:622:13 | z | +| main.rs:625:13:625:20 | closure3 | +| main.rs:633:13:633:13 | i | +| main.rs:634:9:634:13 | block | +| main.rs:642:8:642:8 | b | +| main.rs:643:13:643:13 | x | +| main.rs:660:13:660:14 | b1 | +| main.rs:660:23:660:24 | b2 | +| main.rs:661:9:661:9 | x | +| main.rs:684:20:684:23 | self | +| main.rs:688:11:688:14 | self | +| main.rs:692:23:692:26 | self | +| main.rs:693:17:693:17 | f | +| main.rs:693:22:693:22 | n | +| main.rs:703:13:703:13 | a | +| main.rs:712:13:712:13 | a | +| main.rs:721:9:721:9 | x | +| main.rs:725:9:725:9 | z | +| main.rs:734:17:734:20 | self | +| main.rs:740:13:740:13 | a | +| main.rs:762:9:762:22 | var_from_macro | +| main.rs:763:9:763:21 | var_in_macro | +| main.rs:765:9:765:20 | var_in_macro | +| main.rs:770:15:770:28 | var_in_macro | +| main.rs:775:9:775:9 | x | +| main.rs:781:13:781:13 | x | +| main.rs:782:13:782:15 | cap | +| main.rs:782:20:782:20 | b | +| main.rs:795:13:795:13 | x | +| main.rs:796:13:796:13 | y | +| main.rs:798:18:798:18 | y | +| main.rs:805:13:805:16 | N0ne | +| main.rs:812:13:812:22 | test_alias | +| main.rs:814:13:814:16 | test | +| main.rs:823:13:823:13 | x | +| main.rs:825:18:825:18 | x | +| main.rs:838:9:838:9 | x | +| main.rs:840:13:840:13 | x | variableAccess | main.rs:7:20:7:20 | s | main.rs:5:14:5:14 | s | | main.rs:12:20:12:20 | i | main.rs:10:14:10:14 | i | @@ -183,218 +195,233 @@ variableAccess | main.rs:105:13:105:13 | x | main.rs:100:9:100:9 | x | | main.rs:106:19:106:19 | x | main.rs:104:13:104:13 | x | | main.rs:109:15:109:15 | x | main.rs:101:14:101:14 | x | -| main.rs:116:11:116:12 | s1 | main.rs:113:9:113:10 | s1 | -| main.rs:117:19:117:20 | s2 | main.rs:115:24:115:25 | s2 | -| main.rs:125:11:125:12 | x6 | main.rs:122:9:122:10 | x6 | -| main.rs:130:23:130:24 | y1 | main.rs:127:14:127:15 | y1 | -| main.rs:135:15:135:16 | y1 | main.rs:123:9:123:10 | y1 | -| main.rs:141:11:141:17 | numbers | main.rs:139:9:139:15 | numbers | -| main.rs:150:23:150:27 | first | main.rs:144:13:144:17 | first | -| main.rs:151:23:151:27 | third | main.rs:146:13:146:17 | third | -| main.rs:152:23:152:27 | fifth | main.rs:148:13:148:17 | fifth | -| main.rs:156:11:156:17 | numbers | main.rs:139:9:139:15 | numbers | -| main.rs:163:23:163:27 | first | main.rs:159:13:159:17 | first | -| main.rs:164:23:164:26 | last | main.rs:161:13:161:16 | last | -| main.rs:172:11:172:12 | p2 | main.rs:170:9:170:10 | p2 | -| main.rs:175:24:175:25 | x7 | main.rs:174:16:174:17 | x7 | -| main.rs:186:11:186:13 | msg | main.rs:184:9:184:11 | msg | -| main.rs:190:24:190:34 | id_variable | main.rs:189:17:189:27 | id_variable | -| main.rs:197:23:197:24 | id | main.rs:194:26:194:27 | id | -| main.rs:209:11:209:16 | either | main.rs:208:9:208:14 | either | -| main.rs:211:26:211:27 | a3 | main.rs:210:9:210:44 | a3 | -| main.rs:223:11:223:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:225:26:225:27 | a4 | main.rs:224:9:224:81 | a4 | -| main.rs:227:11:227:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:229:26:229:27 | a5 | main.rs:228:9:228:83 | a5 | -| main.rs:231:11:231:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:233:26:233:27 | a6 | main.rs:232:9:232:83 | a6 | -| main.rs:239:11:239:16 | either | main.rs:238:9:238:14 | either | -| main.rs:241:16:241:17 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:242:26:242:27 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:250:11:250:16 | either | main.rs:248:9:248:14 | either | -| main.rs:254:23:254:25 | a11 | main.rs:252:14:252:51 | a11 | -| main.rs:256:15:256:15 | e | main.rs:251:13:251:13 | e | -| main.rs:257:28:257:30 | a12 | main.rs:255:33:255:35 | a12 | -| main.rs:273:11:273:12 | fv | main.rs:272:9:272:10 | fv | -| main.rs:275:26:275:28 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:283:7:283:7 | x | main.rs:281:9:281:9 | x | -| main.rs:285:5:285:5 | x | main.rs:282:17:282:17 | x | -| main.rs:287:19:287:19 | x | main.rs:282:17:282:17 | x | -| main.rs:290:13:290:13 | x | main.rs:281:9:281:9 | x | -| main.rs:291:19:291:19 | x | main.rs:289:13:289:13 | x | -| main.rs:299:7:299:7 | x | main.rs:297:9:297:9 | x | -| main.rs:302:12:302:12 | x | main.rs:298:17:298:17 | x | -| main.rs:304:5:304:5 | x | main.rs:301:14:301:14 | x | -| main.rs:306:19:306:19 | x | main.rs:301:14:301:14 | x | -| main.rs:309:13:309:13 | x | main.rs:297:9:297:9 | x | -| main.rs:310:19:310:19 | x | main.rs:308:13:308:13 | x | +| main.rs:116:11:116:11 | s | main.rs:113:9:113:9 | s | +| main.rs:117:19:117:19 | s | main.rs:115:24:115:24 | s | +| main.rs:125:25:125:25 | x | main.rs:123:17:123:17 | x | +| main.rs:127:19:127:19 | x | main.rs:124:19:124:19 | x | +| main.rs:135:9:135:9 | x | main.rs:133:9:133:9 | x | +| main.rs:137:9:137:9 | x | main.rs:134:12:134:12 | x | +| main.rs:139:9:139:9 | x | main.rs:136:12:136:12 | x | +| main.rs:141:9:141:9 | x | main.rs:138:12:138:12 | x | +| main.rs:143:9:143:9 | x | main.rs:140:12:140:12 | x | +| main.rs:145:9:145:9 | x | main.rs:142:12:142:12 | x | +| main.rs:147:9:147:9 | x | main.rs:144:12:144:12 | x | +| main.rs:149:19:149:19 | x | main.rs:146:12:146:12 | x | +| main.rs:152:19:152:19 | x | main.rs:133:9:133:9 | x | +| main.rs:160:11:160:12 | x6 | main.rs:157:9:157:10 | x6 | +| main.rs:165:23:165:24 | y1 | main.rs:162:14:162:15 | y1 | +| main.rs:170:15:170:16 | y1 | main.rs:158:9:158:10 | y1 | +| main.rs:176:11:176:17 | numbers | main.rs:174:9:174:15 | numbers | +| main.rs:185:23:185:27 | first | main.rs:179:13:179:17 | first | +| main.rs:186:23:186:27 | third | main.rs:181:13:181:17 | third | +| main.rs:187:23:187:27 | fifth | main.rs:183:13:183:17 | fifth | +| main.rs:191:11:191:17 | numbers | main.rs:174:9:174:15 | numbers | +| main.rs:198:23:198:27 | first | main.rs:194:13:194:17 | first | +| main.rs:199:23:199:26 | last | main.rs:196:13:196:16 | last | +| main.rs:207:11:207:12 | p2 | main.rs:205:9:205:10 | p2 | +| main.rs:210:24:210:25 | x7 | main.rs:209:16:209:17 | x7 | +| main.rs:221:11:221:13 | msg | main.rs:219:9:219:11 | msg | +| main.rs:225:24:225:34 | id_variable | main.rs:224:17:224:27 | id_variable | +| main.rs:232:23:232:24 | id | main.rs:229:26:229:27 | id | +| main.rs:244:11:244:16 | either | main.rs:243:9:243:14 | either | +| main.rs:246:26:246:27 | a3 | main.rs:245:9:245:44 | a3 | +| main.rs:258:11:258:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:260:26:260:27 | a4 | main.rs:259:9:259:81 | a4 | +| main.rs:262:11:262:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:264:26:264:27 | a5 | main.rs:263:9:263:83 | a5 | +| main.rs:266:11:266:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:268:26:268:27 | a6 | main.rs:267:9:267:83 | a6 | +| main.rs:274:11:274:16 | either | main.rs:273:9:273:14 | either | +| main.rs:276:16:276:17 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:277:26:277:27 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:285:11:285:16 | either | main.rs:283:9:283:14 | either | +| main.rs:289:23:289:25 | a11 | main.rs:287:14:287:51 | a11 | +| main.rs:291:15:291:15 | e | main.rs:286:13:286:13 | e | +| main.rs:292:28:292:30 | a12 | main.rs:290:33:290:35 | a12 | +| main.rs:308:11:308:12 | fv | main.rs:307:9:307:10 | fv | +| main.rs:310:26:310:28 | a13 | main.rs:309:9:309:109 | a13 | | main.rs:318:7:318:7 | x | main.rs:316:9:316:9 | x | -| main.rs:321:12:321:12 | x | main.rs:317:20:317:20 | x | -| main.rs:323:5:323:5 | x | main.rs:320:14:320:14 | x | -| main.rs:325:19:325:19 | x | main.rs:320:14:320:14 | x | -| main.rs:329:15:329:15 | x | main.rs:316:9:316:9 | x | -| main.rs:335:11:335:11 | x | main.rs:334:9:334:9 | x | -| main.rs:338:18:338:18 | x | main.rs:336:14:336:14 | x | -| main.rs:339:19:339:19 | x | main.rs:337:20:337:20 | x | -| main.rs:343:15:343:15 | x | main.rs:334:9:334:9 | x | -| main.rs:350:7:350:7 | x | main.rs:348:9:348:9 | x | -| main.rs:352:19:352:19 | x | main.rs:349:16:349:16 | x | -| main.rs:355:7:355:7 | x | main.rs:348:9:348:9 | x | -| main.rs:357:19:357:19 | x | main.rs:354:20:354:20 | x | -| main.rs:359:19:359:19 | x | main.rs:348:9:348:9 | x | -| main.rs:365:11:365:11 | x | main.rs:364:9:364:9 | x | -| main.rs:367:20:367:20 | x | main.rs:366:18:366:18 | x | -| main.rs:374:11:374:11 | x | main.rs:373:9:373:9 | x | -| main.rs:377:22:377:22 | y | main.rs:375:14:375:14 | y | -| main.rs:378:26:378:26 | y | main.rs:376:25:376:25 | y | -| main.rs:390:15:390:16 | a8 | main.rs:384:5:384:6 | a8 | -| main.rs:391:15:391:16 | b3 | main.rs:386:9:386:10 | b3 | -| main.rs:392:15:392:16 | c1 | main.rs:387:9:387:10 | c1 | -| main.rs:397:15:397:16 | a9 | main.rs:395:20:395:55 | a9 | -| main.rs:406:15:406:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:407:15:407:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:408:15:408:16 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:411:9:411:10 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:415:9:415:11 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:416:9:416:10 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:417:9:417:10 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:419:15:419:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:420:15:420:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:421:15:421:16 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:428:23:428:25 | a10 | main.rs:425:13:425:15 | a10 | -| main.rs:429:23:429:24 | b4 | main.rs:426:13:426:14 | b4 | -| main.rs:433:15:433:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:434:15:434:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:440:9:440:9 | x | main.rs:439:10:439:10 | x | -| main.rs:442:9:442:23 | example_closure | main.rs:438:9:438:23 | example_closure | -| main.rs:443:15:443:16 | n1 | main.rs:441:9:441:10 | n1 | -| main.rs:448:9:448:9 | x | main.rs:447:6:447:6 | x | -| main.rs:450:9:450:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | -| main.rs:451:15:451:16 | n2 | main.rs:449:9:449:10 | n2 | -| main.rs:458:9:458:9 | x | main.rs:457:10:457:10 | x | -| main.rs:459:15:459:15 | f | main.rs:456:9:456:9 | f | -| main.rs:463:9:463:9 | x | main.rs:461:10:461:10 | x | -| main.rs:466:15:466:15 | f | main.rs:456:9:456:9 | f | -| main.rs:472:17:472:17 | x | main.rs:470:14:470:14 | x | -| main.rs:481:13:481:13 | x | main.rs:480:14:480:14 | x | -| main.rs:482:19:482:19 | f | main.rs:479:13:479:13 | f | -| main.rs:490:12:490:12 | v | main.rs:487:9:487:9 | v | -| main.rs:491:19:491:22 | text | main.rs:489:9:489:12 | text | -| main.rs:497:5:497:5 | a | main.rs:496:13:496:13 | a | -| main.rs:498:15:498:15 | a | main.rs:496:13:496:13 | a | -| main.rs:499:11:499:11 | a | main.rs:496:13:496:13 | a | -| main.rs:500:15:500:15 | a | main.rs:496:13:496:13 | a | -| main.rs:506:14:506:14 | i | main.rs:504:13:504:13 | i | -| main.rs:507:6:507:10 | ref_i | main.rs:505:9:505:13 | ref_i | -| main.rs:508:15:508:15 | i | main.rs:504:13:504:13 | i | -| main.rs:512:6:512:6 | x | main.rs:511:17:511:17 | x | -| main.rs:513:10:513:10 | x | main.rs:511:17:511:17 | x | -| main.rs:514:10:514:10 | x | main.rs:511:17:511:17 | x | -| main.rs:515:12:515:12 | x | main.rs:511:17:511:17 | x | -| main.rs:519:6:519:6 | x | main.rs:518:22:518:22 | x | -| main.rs:520:10:520:10 | x | main.rs:518:22:518:22 | x | -| main.rs:521:10:521:10 | x | main.rs:518:22:518:22 | x | -| main.rs:522:6:522:6 | y | main.rs:518:38:518:38 | y | -| main.rs:523:9:523:9 | x | main.rs:518:22:518:22 | x | -| main.rs:529:27:529:27 | x | main.rs:527:13:527:13 | x | -| main.rs:530:6:530:6 | y | main.rs:528:9:528:9 | y | -| main.rs:533:15:533:15 | x | main.rs:527:13:527:13 | x | -| main.rs:537:19:537:19 | x | main.rs:527:13:527:13 | x | -| main.rs:539:14:539:14 | z | main.rs:535:13:535:13 | z | -| main.rs:540:9:540:9 | w | main.rs:536:9:536:9 | w | -| main.rs:542:7:542:7 | w | main.rs:536:9:536:9 | w | -| main.rs:545:15:545:15 | z | main.rs:535:13:535:13 | z | -| main.rs:551:14:551:14 | x | main.rs:549:13:549:13 | x | -| main.rs:552:6:552:6 | y | main.rs:550:9:550:9 | y | -| main.rs:553:15:553:15 | x | main.rs:549:13:549:13 | x | -| main.rs:561:19:561:19 | x | main.rs:557:9:557:9 | x | -| main.rs:563:5:563:7 | cap | main.rs:560:9:560:11 | cap | -| main.rs:564:15:564:15 | x | main.rs:557:9:557:9 | x | -| main.rs:572:19:572:19 | x | main.rs:568:13:568:13 | x | -| main.rs:574:5:574:12 | closure1 | main.rs:571:9:571:16 | closure1 | -| main.rs:575:15:575:15 | x | main.rs:568:13:568:13 | x | -| main.rs:581:9:581:9 | y | main.rs:577:13:577:13 | y | -| main.rs:583:5:583:12 | closure2 | main.rs:580:13:580:20 | closure2 | -| main.rs:584:15:584:15 | y | main.rs:577:13:577:13 | y | -| main.rs:590:9:590:9 | z | main.rs:586:13:586:13 | z | -| main.rs:592:5:592:12 | closure3 | main.rs:589:13:589:20 | closure3 | -| main.rs:593:15:593:15 | z | main.rs:586:13:586:13 | z | -| main.rs:599:9:599:9 | i | main.rs:597:13:597:13 | i | -| main.rs:602:5:602:9 | block | main.rs:598:9:598:13 | block | -| main.rs:603:15:603:15 | i | main.rs:597:13:597:13 | i | -| main.rs:608:15:608:15 | x | main.rs:607:13:607:13 | x | -| main.rs:609:15:609:15 | x | main.rs:607:13:607:13 | x | -| main.rs:611:16:611:16 | b | main.rs:606:8:606:8 | b | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | -| main.rs:614:19:614:19 | x | main.rs:607:13:607:13 | x | -| main.rs:615:19:615:19 | x | main.rs:607:13:607:13 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | -| main.rs:618:19:618:19 | x | main.rs:607:13:607:13 | x | -| main.rs:619:19:619:19 | x | main.rs:607:13:607:13 | x | -| main.rs:621:15:621:15 | x | main.rs:607:13:607:13 | x | -| main.rs:627:16:627:17 | b1 | main.rs:624:13:624:14 | b1 | -| main.rs:629:19:629:19 | x | main.rs:625:9:625:9 | x | -| main.rs:631:19:631:19 | x | main.rs:625:9:625:9 | x | -| main.rs:635:16:635:17 | b2 | main.rs:624:23:624:24 | b2 | -| main.rs:637:19:637:19 | x | main.rs:625:9:625:9 | x | -| main.rs:639:19:639:19 | x | main.rs:625:9:625:9 | x | -| main.rs:649:16:649:19 | self | main.rs:648:20:648:23 | self | -| main.rs:653:9:653:12 | self | main.rs:652:11:652:14 | self | -| main.rs:659:13:659:16 | self | main.rs:656:23:656:26 | self | -| main.rs:659:25:659:25 | n | main.rs:657:22:657:22 | n | -| main.rs:661:9:661:9 | f | main.rs:657:17:657:17 | f | -| main.rs:662:9:662:9 | f | main.rs:657:17:657:17 | f | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | -| main.rs:669:5:669:5 | a | main.rs:667:13:667:13 | a | -| main.rs:670:15:670:15 | a | main.rs:667:13:667:13 | a | -| main.rs:671:5:671:5 | a | main.rs:667:13:667:13 | a | -| main.rs:672:15:672:15 | a | main.rs:667:13:667:13 | a | -| main.rs:677:15:677:15 | a | main.rs:676:13:676:13 | a | -| main.rs:678:5:678:5 | a | main.rs:676:13:676:13 | a | -| main.rs:679:15:679:15 | a | main.rs:676:13:676:13 | a | -| main.rs:680:5:680:5 | a | main.rs:676:13:676:13 | a | -| main.rs:681:15:681:15 | a | main.rs:676:13:676:13 | a | -| main.rs:686:20:686:20 | x | main.rs:685:9:685:9 | x | -| main.rs:687:15:687:15 | x | main.rs:685:9:685:9 | x | -| main.rs:690:20:690:20 | z | main.rs:689:9:689:9 | z | -| main.rs:699:10:699:13 | self | main.rs:698:17:698:20 | self | -| main.rs:705:5:705:5 | a | main.rs:704:13:704:13 | a | -| main.rs:708:15:708:15 | a | main.rs:704:13:704:13 | a | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | -| main.rs:728:15:728:28 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | -| main.rs:734:30:734:41 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | -| main.rs:735:15:735:26 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | -| main.rs:740:5:740:5 | x | main.rs:739:9:739:9 | x | -| main.rs:741:15:741:15 | x | main.rs:739:9:739:9 | x | -| main.rs:748:20:748:20 | b | main.rs:746:20:746:20 | b | -| main.rs:749:13:749:13 | x | main.rs:745:13:745:13 | x | -| main.rs:752:5:752:7 | cap | main.rs:746:13:746:15 | cap | -| main.rs:753:15:753:15 | x | main.rs:745:13:745:13 | x | -| main.rs:761:19:761:19 | x | main.rs:759:13:759:13 | x | -| main.rs:768:15:768:15 | y | main.rs:760:13:760:13 | y | -| main.rs:770:17:770:20 | N0ne | main.rs:769:13:769:16 | N0ne | -| main.rs:779:13:779:22 | test_alias | main.rs:776:13:776:22 | test_alias | -| main.rs:780:9:780:12 | test | main.rs:778:13:778:16 | test | -| main.rs:788:15:788:15 | x | main.rs:787:13:787:13 | x | -| main.rs:790:20:790:20 | x | main.rs:789:18:789:18 | x | -| main.rs:793:15:793:15 | x | main.rs:787:13:787:13 | x | +| main.rs:320:5:320:5 | x | main.rs:317:17:317:17 | x | +| main.rs:322:19:322:19 | x | main.rs:317:17:317:17 | x | +| main.rs:325:13:325:13 | x | main.rs:316:9:316:9 | x | +| main.rs:326:19:326:19 | x | main.rs:324:13:324:13 | x | +| main.rs:334:7:334:7 | x | main.rs:332:9:332:9 | x | +| main.rs:337:12:337:12 | x | main.rs:333:17:333:17 | x | +| main.rs:339:5:339:5 | x | main.rs:336:14:336:14 | x | +| main.rs:341:19:341:19 | x | main.rs:336:14:336:14 | x | +| main.rs:344:13:344:13 | x | main.rs:332:9:332:9 | x | +| main.rs:345:19:345:19 | x | main.rs:343:13:343:13 | x | +| main.rs:353:7:353:7 | x | main.rs:351:9:351:9 | x | +| main.rs:356:12:356:12 | x | main.rs:352:20:352:20 | x | +| main.rs:358:5:358:5 | x | main.rs:355:14:355:14 | x | +| main.rs:360:19:360:19 | x | main.rs:355:14:355:14 | x | +| main.rs:364:15:364:15 | x | main.rs:351:9:351:9 | x | +| main.rs:370:11:370:11 | x | main.rs:369:9:369:9 | x | +| main.rs:373:18:373:18 | x | main.rs:371:14:371:14 | x | +| main.rs:374:19:374:19 | x | main.rs:372:20:372:20 | x | +| main.rs:378:15:378:15 | x | main.rs:369:9:369:9 | x | +| main.rs:385:7:385:7 | x | main.rs:383:9:383:9 | x | +| main.rs:387:19:387:19 | x | main.rs:384:16:384:16 | x | +| main.rs:390:7:390:7 | x | main.rs:383:9:383:9 | x | +| main.rs:392:19:392:19 | x | main.rs:389:20:389:20 | x | +| main.rs:394:19:394:19 | x | main.rs:383:9:383:9 | x | +| main.rs:400:11:400:11 | x | main.rs:399:9:399:9 | x | +| main.rs:402:20:402:20 | x | main.rs:401:18:401:18 | x | +| main.rs:409:11:409:11 | x | main.rs:408:9:408:9 | x | +| main.rs:411:16:411:16 | y | main.rs:410:14:410:14 | y | +| main.rs:413:22:413:22 | y | main.rs:410:14:410:14 | y | +| main.rs:414:26:414:26 | y | main.rs:412:22:412:22 | y | +| main.rs:426:15:426:16 | a8 | main.rs:420:5:420:6 | a8 | +| main.rs:427:15:427:16 | b3 | main.rs:422:9:422:10 | b3 | +| main.rs:428:15:428:16 | c1 | main.rs:423:9:423:10 | c1 | +| main.rs:433:15:433:16 | a9 | main.rs:431:20:431:55 | a9 | +| main.rs:442:15:442:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:443:15:443:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:444:15:444:16 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:447:9:447:10 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:451:9:451:11 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:452:9:452:10 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:453:9:453:10 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:455:15:455:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:456:15:456:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:457:15:457:16 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:464:23:464:25 | a10 | main.rs:461:13:461:15 | a10 | +| main.rs:465:23:465:24 | b4 | main.rs:462:13:462:14 | b4 | +| main.rs:469:15:469:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:470:15:470:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:476:9:476:9 | x | main.rs:475:10:475:10 | x | +| main.rs:478:9:478:23 | example_closure | main.rs:474:9:474:23 | example_closure | +| main.rs:479:15:479:16 | n1 | main.rs:477:9:477:10 | n1 | +| main.rs:484:9:484:9 | x | main.rs:483:6:483:6 | x | +| main.rs:486:9:486:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | +| main.rs:487:15:487:16 | n2 | main.rs:485:9:485:10 | n2 | +| main.rs:494:9:494:9 | x | main.rs:493:10:493:10 | x | +| main.rs:495:15:495:15 | f | main.rs:492:9:492:9 | f | +| main.rs:499:9:499:9 | x | main.rs:497:10:497:10 | x | +| main.rs:502:15:502:15 | f | main.rs:492:9:492:9 | f | +| main.rs:508:17:508:17 | x | main.rs:506:14:506:14 | x | +| main.rs:517:13:517:13 | x | main.rs:516:14:516:14 | x | +| main.rs:518:19:518:19 | f | main.rs:515:13:515:13 | f | +| main.rs:526:12:526:12 | v | main.rs:523:9:523:9 | v | +| main.rs:527:19:527:22 | text | main.rs:525:9:525:12 | text | +| main.rs:533:5:533:5 | a | main.rs:532:13:532:13 | a | +| main.rs:534:15:534:15 | a | main.rs:532:13:532:13 | a | +| main.rs:535:11:535:11 | a | main.rs:532:13:532:13 | a | +| main.rs:536:15:536:15 | a | main.rs:532:13:532:13 | a | +| main.rs:542:14:542:14 | i | main.rs:540:13:540:13 | i | +| main.rs:543:6:543:10 | ref_i | main.rs:541:9:541:13 | ref_i | +| main.rs:544:15:544:15 | i | main.rs:540:13:540:13 | i | +| main.rs:548:6:548:6 | x | main.rs:547:17:547:17 | x | +| main.rs:549:10:549:10 | x | main.rs:547:17:547:17 | x | +| main.rs:550:10:550:10 | x | main.rs:547:17:547:17 | x | +| main.rs:551:12:551:12 | x | main.rs:547:17:547:17 | x | +| main.rs:555:6:555:6 | x | main.rs:554:22:554:22 | x | +| main.rs:556:10:556:10 | x | main.rs:554:22:554:22 | x | +| main.rs:557:10:557:10 | x | main.rs:554:22:554:22 | x | +| main.rs:558:6:558:6 | y | main.rs:554:38:554:38 | y | +| main.rs:559:9:559:9 | x | main.rs:554:22:554:22 | x | +| main.rs:565:27:565:27 | x | main.rs:563:13:563:13 | x | +| main.rs:566:6:566:6 | y | main.rs:564:9:564:9 | y | +| main.rs:569:15:569:15 | x | main.rs:563:13:563:13 | x | +| main.rs:573:19:573:19 | x | main.rs:563:13:563:13 | x | +| main.rs:575:14:575:14 | z | main.rs:571:13:571:13 | z | +| main.rs:576:9:576:9 | w | main.rs:572:9:572:9 | w | +| main.rs:578:7:578:7 | w | main.rs:572:9:572:9 | w | +| main.rs:581:15:581:15 | z | main.rs:571:13:571:13 | z | +| main.rs:587:14:587:14 | x | main.rs:585:13:585:13 | x | +| main.rs:588:6:588:6 | y | main.rs:586:9:586:9 | y | +| main.rs:589:15:589:15 | x | main.rs:585:13:585:13 | x | +| main.rs:597:19:597:19 | x | main.rs:593:9:593:9 | x | +| main.rs:599:5:599:7 | cap | main.rs:596:9:596:11 | cap | +| main.rs:600:15:600:15 | x | main.rs:593:9:593:9 | x | +| main.rs:608:19:608:19 | x | main.rs:604:13:604:13 | x | +| main.rs:610:5:610:12 | closure1 | main.rs:607:9:607:16 | closure1 | +| main.rs:611:15:611:15 | x | main.rs:604:13:604:13 | x | +| main.rs:617:9:617:9 | y | main.rs:613:13:613:13 | y | +| main.rs:619:5:619:12 | closure2 | main.rs:616:13:616:20 | closure2 | +| main.rs:620:15:620:15 | y | main.rs:613:13:613:13 | y | +| main.rs:626:9:626:9 | z | main.rs:622:13:622:13 | z | +| main.rs:628:5:628:12 | closure3 | main.rs:625:13:625:20 | closure3 | +| main.rs:629:15:629:15 | z | main.rs:622:13:622:13 | z | +| main.rs:635:9:635:9 | i | main.rs:633:13:633:13 | i | +| main.rs:638:5:638:9 | block | main.rs:634:9:634:13 | block | +| main.rs:639:15:639:15 | i | main.rs:633:13:633:13 | i | +| main.rs:644:15:644:15 | x | main.rs:643:13:643:13 | x | +| main.rs:645:15:645:15 | x | main.rs:643:13:643:13 | x | +| main.rs:647:16:647:16 | b | main.rs:642:8:642:8 | b | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | +| main.rs:650:19:650:19 | x | main.rs:643:13:643:13 | x | +| main.rs:651:19:651:19 | x | main.rs:643:13:643:13 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | +| main.rs:654:19:654:19 | x | main.rs:643:13:643:13 | x | +| main.rs:655:19:655:19 | x | main.rs:643:13:643:13 | x | +| main.rs:657:15:657:15 | x | main.rs:643:13:643:13 | x | +| main.rs:663:16:663:17 | b1 | main.rs:660:13:660:14 | b1 | +| main.rs:665:19:665:19 | x | main.rs:661:9:661:9 | x | +| main.rs:667:19:667:19 | x | main.rs:661:9:661:9 | x | +| main.rs:671:16:671:17 | b2 | main.rs:660:23:660:24 | b2 | +| main.rs:673:19:673:19 | x | main.rs:661:9:661:9 | x | +| main.rs:675:19:675:19 | x | main.rs:661:9:661:9 | x | +| main.rs:685:16:685:19 | self | main.rs:684:20:684:23 | self | +| main.rs:689:9:689:12 | self | main.rs:688:11:688:14 | self | +| main.rs:695:13:695:16 | self | main.rs:692:23:692:26 | self | +| main.rs:695:25:695:25 | n | main.rs:693:22:693:22 | n | +| main.rs:697:9:697:9 | f | main.rs:693:17:693:17 | f | +| main.rs:698:9:698:9 | f | main.rs:693:17:693:17 | f | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | +| main.rs:705:5:705:5 | a | main.rs:703:13:703:13 | a | +| main.rs:706:15:706:15 | a | main.rs:703:13:703:13 | a | +| main.rs:707:5:707:5 | a | main.rs:703:13:703:13 | a | +| main.rs:708:15:708:15 | a | main.rs:703:13:703:13 | a | +| main.rs:713:15:713:15 | a | main.rs:712:13:712:13 | a | +| main.rs:714:5:714:5 | a | main.rs:712:13:712:13 | a | +| main.rs:715:15:715:15 | a | main.rs:712:13:712:13 | a | +| main.rs:716:5:716:5 | a | main.rs:712:13:712:13 | a | +| main.rs:717:15:717:15 | a | main.rs:712:13:712:13 | a | +| main.rs:722:20:722:20 | x | main.rs:721:9:721:9 | x | +| main.rs:723:15:723:15 | x | main.rs:721:9:721:9 | x | +| main.rs:726:20:726:20 | z | main.rs:725:9:725:9 | z | +| main.rs:735:10:735:13 | self | main.rs:734:17:734:20 | self | +| main.rs:741:5:741:5 | a | main.rs:740:13:740:13 | a | +| main.rs:744:15:744:15 | a | main.rs:740:13:740:13 | a | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | +| main.rs:764:15:764:28 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | +| main.rs:770:30:770:41 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | +| main.rs:771:15:771:26 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | +| main.rs:776:5:776:5 | x | main.rs:775:9:775:9 | x | +| main.rs:777:15:777:15 | x | main.rs:775:9:775:9 | x | +| main.rs:784:20:784:20 | b | main.rs:782:20:782:20 | b | +| main.rs:785:13:785:13 | x | main.rs:781:13:781:13 | x | +| main.rs:788:5:788:7 | cap | main.rs:782:13:782:15 | cap | +| main.rs:789:15:789:15 | x | main.rs:781:13:781:13 | x | +| main.rs:797:19:797:19 | x | main.rs:795:13:795:13 | x | +| main.rs:804:15:804:15 | y | main.rs:796:13:796:13 | y | +| main.rs:806:17:806:20 | N0ne | main.rs:805:13:805:16 | N0ne | +| main.rs:815:13:815:22 | test_alias | main.rs:812:13:812:22 | test_alias | +| main.rs:816:9:816:12 | test | main.rs:814:13:814:16 | test | +| main.rs:824:15:824:15 | x | main.rs:823:13:823:13 | x | +| main.rs:826:20:826:20 | x | main.rs:825:18:825:18 | x | +| main.rs:829:15:829:15 | x | main.rs:823:13:823:13 | x | +| main.rs:841:9:841:9 | x | main.rs:840:13:840:13 | x | +| main.rs:843:19:843:19 | x | main.rs:838:9:838:9 | x | +| main.rs:845:19:845:19 | x | main.rs:838:9:838:9 | x | variableWriteAccess | main.rs:27:5:27:6 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:29:5:29:6 | x2 | main.rs:25:13:25:14 | x2 | | main.rs:36:5:36:5 | x | main.rs:34:13:34:13 | x | -| main.rs:411:9:411:10 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:412:9:412:10 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:413:9:413:11 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:581:9:581:9 | y | main.rs:577:13:577:13 | y | -| main.rs:599:9:599:9 | i | main.rs:597:13:597:13 | i | -| main.rs:613:9:613:9 | x | main.rs:607:13:607:13 | x | -| main.rs:617:9:617:9 | x | main.rs:607:13:607:13 | x | -| main.rs:671:5:671:5 | a | main.rs:667:13:667:13 | a | -| main.rs:680:5:680:5 | a | main.rs:676:13:676:13 | a | -| main.rs:740:5:740:5 | x | main.rs:739:9:739:9 | x | -| main.rs:749:13:749:13 | x | main.rs:745:13:745:13 | x | +| main.rs:447:9:447:10 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:448:9:448:10 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:449:9:449:11 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:617:9:617:9 | y | main.rs:613:13:613:13 | y | +| main.rs:635:9:635:9 | i | main.rs:633:13:633:13 | i | +| main.rs:649:9:649:9 | x | main.rs:643:13:643:13 | x | +| main.rs:653:9:653:9 | x | main.rs:643:13:643:13 | x | +| main.rs:707:5:707:5 | a | main.rs:703:13:703:13 | a | +| main.rs:716:5:716:5 | a | main.rs:712:13:712:13 | a | +| main.rs:776:5:776:5 | x | main.rs:775:9:775:9 | x | +| main.rs:785:13:785:13 | x | main.rs:781:13:781:13 | x | variableReadAccess | main.rs:7:20:7:20 | s | main.rs:5:14:5:14 | s | | main.rs:12:20:12:20 | i | main.rs:10:14:10:14 | i | @@ -423,183 +450,198 @@ variableReadAccess | main.rs:105:13:105:13 | x | main.rs:100:9:100:9 | x | | main.rs:106:19:106:19 | x | main.rs:104:13:104:13 | x | | main.rs:109:15:109:15 | x | main.rs:101:14:101:14 | x | -| main.rs:116:11:116:12 | s1 | main.rs:113:9:113:10 | s1 | -| main.rs:117:19:117:20 | s2 | main.rs:115:24:115:25 | s2 | -| main.rs:125:11:125:12 | x6 | main.rs:122:9:122:10 | x6 | -| main.rs:130:23:130:24 | y1 | main.rs:127:14:127:15 | y1 | -| main.rs:135:15:135:16 | y1 | main.rs:123:9:123:10 | y1 | -| main.rs:141:11:141:17 | numbers | main.rs:139:9:139:15 | numbers | -| main.rs:150:23:150:27 | first | main.rs:144:13:144:17 | first | -| main.rs:151:23:151:27 | third | main.rs:146:13:146:17 | third | -| main.rs:152:23:152:27 | fifth | main.rs:148:13:148:17 | fifth | -| main.rs:156:11:156:17 | numbers | main.rs:139:9:139:15 | numbers | -| main.rs:163:23:163:27 | first | main.rs:159:13:159:17 | first | -| main.rs:164:23:164:26 | last | main.rs:161:13:161:16 | last | -| main.rs:172:11:172:12 | p2 | main.rs:170:9:170:10 | p2 | -| main.rs:175:24:175:25 | x7 | main.rs:174:16:174:17 | x7 | -| main.rs:186:11:186:13 | msg | main.rs:184:9:184:11 | msg | -| main.rs:190:24:190:34 | id_variable | main.rs:189:17:189:27 | id_variable | -| main.rs:197:23:197:24 | id | main.rs:194:26:194:27 | id | -| main.rs:209:11:209:16 | either | main.rs:208:9:208:14 | either | -| main.rs:211:26:211:27 | a3 | main.rs:210:9:210:44 | a3 | -| main.rs:223:11:223:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:225:26:225:27 | a4 | main.rs:224:9:224:81 | a4 | -| main.rs:227:11:227:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:229:26:229:27 | a5 | main.rs:228:9:228:83 | a5 | -| main.rs:231:11:231:12 | tv | main.rs:222:9:222:10 | tv | -| main.rs:233:26:233:27 | a6 | main.rs:232:9:232:83 | a6 | -| main.rs:239:11:239:16 | either | main.rs:238:9:238:14 | either | -| main.rs:241:16:241:17 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:242:26:242:27 | a7 | main.rs:240:9:240:44 | a7 | -| main.rs:250:11:250:16 | either | main.rs:248:9:248:14 | either | -| main.rs:254:23:254:25 | a11 | main.rs:252:14:252:51 | a11 | -| main.rs:256:15:256:15 | e | main.rs:251:13:251:13 | e | -| main.rs:257:28:257:30 | a12 | main.rs:255:33:255:35 | a12 | -| main.rs:273:11:273:12 | fv | main.rs:272:9:272:10 | fv | -| main.rs:275:26:275:28 | a13 | main.rs:274:9:274:109 | a13 | -| main.rs:283:7:283:7 | x | main.rs:281:9:281:9 | x | -| main.rs:285:5:285:5 | x | main.rs:282:17:282:17 | x | -| main.rs:287:19:287:19 | x | main.rs:282:17:282:17 | x | -| main.rs:290:13:290:13 | x | main.rs:281:9:281:9 | x | -| main.rs:291:19:291:19 | x | main.rs:289:13:289:13 | x | -| main.rs:299:7:299:7 | x | main.rs:297:9:297:9 | x | -| main.rs:302:12:302:12 | x | main.rs:298:17:298:17 | x | -| main.rs:304:5:304:5 | x | main.rs:301:14:301:14 | x | -| main.rs:306:19:306:19 | x | main.rs:301:14:301:14 | x | -| main.rs:309:13:309:13 | x | main.rs:297:9:297:9 | x | -| main.rs:310:19:310:19 | x | main.rs:308:13:308:13 | x | +| main.rs:116:11:116:11 | s | main.rs:113:9:113:9 | s | +| main.rs:117:19:117:19 | s | main.rs:115:24:115:24 | s | +| main.rs:125:25:125:25 | x | main.rs:123:17:123:17 | x | +| main.rs:127:19:127:19 | x | main.rs:124:19:124:19 | x | +| main.rs:135:9:135:9 | x | main.rs:133:9:133:9 | x | +| main.rs:137:9:137:9 | x | main.rs:134:12:134:12 | x | +| main.rs:139:9:139:9 | x | main.rs:136:12:136:12 | x | +| main.rs:141:9:141:9 | x | main.rs:138:12:138:12 | x | +| main.rs:143:9:143:9 | x | main.rs:140:12:140:12 | x | +| main.rs:145:9:145:9 | x | main.rs:142:12:142:12 | x | +| main.rs:147:9:147:9 | x | main.rs:144:12:144:12 | x | +| main.rs:149:19:149:19 | x | main.rs:146:12:146:12 | x | +| main.rs:152:19:152:19 | x | main.rs:133:9:133:9 | x | +| main.rs:160:11:160:12 | x6 | main.rs:157:9:157:10 | x6 | +| main.rs:165:23:165:24 | y1 | main.rs:162:14:162:15 | y1 | +| main.rs:170:15:170:16 | y1 | main.rs:158:9:158:10 | y1 | +| main.rs:176:11:176:17 | numbers | main.rs:174:9:174:15 | numbers | +| main.rs:185:23:185:27 | first | main.rs:179:13:179:17 | first | +| main.rs:186:23:186:27 | third | main.rs:181:13:181:17 | third | +| main.rs:187:23:187:27 | fifth | main.rs:183:13:183:17 | fifth | +| main.rs:191:11:191:17 | numbers | main.rs:174:9:174:15 | numbers | +| main.rs:198:23:198:27 | first | main.rs:194:13:194:17 | first | +| main.rs:199:23:199:26 | last | main.rs:196:13:196:16 | last | +| main.rs:207:11:207:12 | p2 | main.rs:205:9:205:10 | p2 | +| main.rs:210:24:210:25 | x7 | main.rs:209:16:209:17 | x7 | +| main.rs:221:11:221:13 | msg | main.rs:219:9:219:11 | msg | +| main.rs:225:24:225:34 | id_variable | main.rs:224:17:224:27 | id_variable | +| main.rs:232:23:232:24 | id | main.rs:229:26:229:27 | id | +| main.rs:244:11:244:16 | either | main.rs:243:9:243:14 | either | +| main.rs:246:26:246:27 | a3 | main.rs:245:9:245:44 | a3 | +| main.rs:258:11:258:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:260:26:260:27 | a4 | main.rs:259:9:259:81 | a4 | +| main.rs:262:11:262:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:264:26:264:27 | a5 | main.rs:263:9:263:83 | a5 | +| main.rs:266:11:266:12 | tv | main.rs:257:9:257:10 | tv | +| main.rs:268:26:268:27 | a6 | main.rs:267:9:267:83 | a6 | +| main.rs:274:11:274:16 | either | main.rs:273:9:273:14 | either | +| main.rs:276:16:276:17 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:277:26:277:27 | a7 | main.rs:275:9:275:44 | a7 | +| main.rs:285:11:285:16 | either | main.rs:283:9:283:14 | either | +| main.rs:289:23:289:25 | a11 | main.rs:287:14:287:51 | a11 | +| main.rs:291:15:291:15 | e | main.rs:286:13:286:13 | e | +| main.rs:292:28:292:30 | a12 | main.rs:290:33:290:35 | a12 | +| main.rs:308:11:308:12 | fv | main.rs:307:9:307:10 | fv | +| main.rs:310:26:310:28 | a13 | main.rs:309:9:309:109 | a13 | | main.rs:318:7:318:7 | x | main.rs:316:9:316:9 | x | -| main.rs:321:12:321:12 | x | main.rs:317:20:317:20 | x | -| main.rs:323:5:323:5 | x | main.rs:320:14:320:14 | x | -| main.rs:325:19:325:19 | x | main.rs:320:14:320:14 | x | -| main.rs:329:15:329:15 | x | main.rs:316:9:316:9 | x | -| main.rs:335:11:335:11 | x | main.rs:334:9:334:9 | x | -| main.rs:338:18:338:18 | x | main.rs:336:14:336:14 | x | -| main.rs:339:19:339:19 | x | main.rs:337:20:337:20 | x | -| main.rs:343:15:343:15 | x | main.rs:334:9:334:9 | x | -| main.rs:350:7:350:7 | x | main.rs:348:9:348:9 | x | -| main.rs:352:19:352:19 | x | main.rs:349:16:349:16 | x | -| main.rs:355:7:355:7 | x | main.rs:348:9:348:9 | x | -| main.rs:357:19:357:19 | x | main.rs:354:20:354:20 | x | -| main.rs:359:19:359:19 | x | main.rs:348:9:348:9 | x | -| main.rs:365:11:365:11 | x | main.rs:364:9:364:9 | x | -| main.rs:367:20:367:20 | x | main.rs:366:18:366:18 | x | -| main.rs:374:11:374:11 | x | main.rs:373:9:373:9 | x | -| main.rs:377:22:377:22 | y | main.rs:375:14:375:14 | y | -| main.rs:378:26:378:26 | y | main.rs:376:25:376:25 | y | -| main.rs:390:15:390:16 | a8 | main.rs:384:5:384:6 | a8 | -| main.rs:391:15:391:16 | b3 | main.rs:386:9:386:10 | b3 | -| main.rs:392:15:392:16 | c1 | main.rs:387:9:387:10 | c1 | -| main.rs:397:15:397:16 | a9 | main.rs:395:20:395:55 | a9 | -| main.rs:406:15:406:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:407:15:407:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:408:15:408:16 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:415:9:415:11 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:416:9:416:10 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:417:9:417:10 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:419:15:419:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:420:15:420:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:421:15:421:16 | c2 | main.rs:404:13:404:14 | c2 | -| main.rs:428:23:428:25 | a10 | main.rs:425:13:425:15 | a10 | -| main.rs:429:23:429:24 | b4 | main.rs:426:13:426:14 | b4 | -| main.rs:433:15:433:17 | a10 | main.rs:402:13:402:15 | a10 | -| main.rs:434:15:434:16 | b4 | main.rs:403:13:403:14 | b4 | -| main.rs:440:9:440:9 | x | main.rs:439:10:439:10 | x | -| main.rs:442:9:442:23 | example_closure | main.rs:438:9:438:23 | example_closure | -| main.rs:443:15:443:16 | n1 | main.rs:441:9:441:10 | n1 | -| main.rs:448:9:448:9 | x | main.rs:447:6:447:6 | x | -| main.rs:450:9:450:26 | immutable_variable | main.rs:446:9:446:26 | immutable_variable | -| main.rs:451:15:451:16 | n2 | main.rs:449:9:449:10 | n2 | -| main.rs:458:9:458:9 | x | main.rs:457:10:457:10 | x | -| main.rs:459:15:459:15 | f | main.rs:456:9:456:9 | f | -| main.rs:463:9:463:9 | x | main.rs:461:10:461:10 | x | -| main.rs:466:15:466:15 | f | main.rs:456:9:456:9 | f | -| main.rs:472:17:472:17 | x | main.rs:470:14:470:14 | x | -| main.rs:481:13:481:13 | x | main.rs:480:14:480:14 | x | -| main.rs:482:19:482:19 | f | main.rs:479:13:479:13 | f | -| main.rs:490:12:490:12 | v | main.rs:487:9:487:9 | v | -| main.rs:491:19:491:22 | text | main.rs:489:9:489:12 | text | -| main.rs:498:15:498:15 | a | main.rs:496:13:496:13 | a | -| main.rs:500:15:500:15 | a | main.rs:496:13:496:13 | a | -| main.rs:507:6:507:10 | ref_i | main.rs:505:9:505:13 | ref_i | -| main.rs:508:15:508:15 | i | main.rs:504:13:504:13 | i | -| main.rs:512:6:512:6 | x | main.rs:511:17:511:17 | x | -| main.rs:513:10:513:10 | x | main.rs:511:17:511:17 | x | -| main.rs:514:10:514:10 | x | main.rs:511:17:511:17 | x | -| main.rs:515:12:515:12 | x | main.rs:511:17:511:17 | x | -| main.rs:519:6:519:6 | x | main.rs:518:22:518:22 | x | -| main.rs:520:10:520:10 | x | main.rs:518:22:518:22 | x | -| main.rs:521:10:521:10 | x | main.rs:518:22:518:22 | x | -| main.rs:522:6:522:6 | y | main.rs:518:38:518:38 | y | -| main.rs:523:9:523:9 | x | main.rs:518:22:518:22 | x | -| main.rs:530:6:530:6 | y | main.rs:528:9:528:9 | y | -| main.rs:533:15:533:15 | x | main.rs:527:13:527:13 | x | -| main.rs:540:9:540:9 | w | main.rs:536:9:536:9 | w | -| main.rs:542:7:542:7 | w | main.rs:536:9:536:9 | w | -| main.rs:545:15:545:15 | z | main.rs:535:13:535:13 | z | -| main.rs:552:6:552:6 | y | main.rs:550:9:550:9 | y | -| main.rs:553:15:553:15 | x | main.rs:549:13:549:13 | x | -| main.rs:561:19:561:19 | x | main.rs:557:9:557:9 | x | -| main.rs:563:5:563:7 | cap | main.rs:560:9:560:11 | cap | -| main.rs:564:15:564:15 | x | main.rs:557:9:557:9 | x | -| main.rs:572:19:572:19 | x | main.rs:568:13:568:13 | x | -| main.rs:574:5:574:12 | closure1 | main.rs:571:9:571:16 | closure1 | -| main.rs:575:15:575:15 | x | main.rs:568:13:568:13 | x | -| main.rs:583:5:583:12 | closure2 | main.rs:580:13:580:20 | closure2 | -| main.rs:584:15:584:15 | y | main.rs:577:13:577:13 | y | -| main.rs:590:9:590:9 | z | main.rs:586:13:586:13 | z | -| main.rs:592:5:592:12 | closure3 | main.rs:589:13:589:20 | closure3 | -| main.rs:593:15:593:15 | z | main.rs:586:13:586:13 | z | -| main.rs:602:5:602:9 | block | main.rs:598:9:598:13 | block | -| main.rs:603:15:603:15 | i | main.rs:597:13:597:13 | i | -| main.rs:608:15:608:15 | x | main.rs:607:13:607:13 | x | -| main.rs:609:15:609:15 | x | main.rs:607:13:607:13 | x | -| main.rs:611:16:611:16 | b | main.rs:606:8:606:8 | b | -| main.rs:614:19:614:19 | x | main.rs:607:13:607:13 | x | -| main.rs:615:19:615:19 | x | main.rs:607:13:607:13 | x | -| main.rs:618:19:618:19 | x | main.rs:607:13:607:13 | x | -| main.rs:619:19:619:19 | x | main.rs:607:13:607:13 | x | -| main.rs:621:15:621:15 | x | main.rs:607:13:607:13 | x | -| main.rs:627:16:627:17 | b1 | main.rs:624:13:624:14 | b1 | -| main.rs:629:19:629:19 | x | main.rs:625:9:625:9 | x | -| main.rs:631:19:631:19 | x | main.rs:625:9:625:9 | x | -| main.rs:635:16:635:17 | b2 | main.rs:624:23:624:24 | b2 | -| main.rs:637:19:637:19 | x | main.rs:625:9:625:9 | x | -| main.rs:639:19:639:19 | x | main.rs:625:9:625:9 | x | -| main.rs:649:16:649:19 | self | main.rs:648:20:648:23 | self | -| main.rs:653:9:653:12 | self | main.rs:652:11:652:14 | self | -| main.rs:659:13:659:16 | self | main.rs:656:23:656:26 | self | -| main.rs:659:25:659:25 | n | main.rs:657:22:657:22 | n | -| main.rs:661:9:661:9 | f | main.rs:657:17:657:17 | f | -| main.rs:662:9:662:9 | f | main.rs:657:17:657:17 | f | -| main.rs:668:15:668:15 | a | main.rs:667:13:667:13 | a | -| main.rs:669:5:669:5 | a | main.rs:667:13:667:13 | a | -| main.rs:670:15:670:15 | a | main.rs:667:13:667:13 | a | -| main.rs:672:15:672:15 | a | main.rs:667:13:667:13 | a | -| main.rs:677:15:677:15 | a | main.rs:676:13:676:13 | a | -| main.rs:678:5:678:5 | a | main.rs:676:13:676:13 | a | -| main.rs:679:15:679:15 | a | main.rs:676:13:676:13 | a | -| main.rs:681:15:681:15 | a | main.rs:676:13:676:13 | a | -| main.rs:687:15:687:15 | x | main.rs:685:9:685:9 | x | -| main.rs:699:10:699:13 | self | main.rs:698:17:698:20 | self | -| main.rs:705:5:705:5 | a | main.rs:704:13:704:13 | a | -| main.rs:708:15:708:15 | a | main.rs:704:13:704:13 | a | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:9:727:21 | var_in_macro | -| main.rs:728:15:728:28 | var_from_macro | main.rs:726:9:726:22 | var_from_macro | -| main.rs:734:30:734:41 | var_in_macro | main.rs:734:15:734:28 | var_in_macro | -| main.rs:735:15:735:26 | var_in_macro | main.rs:729:9:729:20 | var_in_macro | -| main.rs:741:15:741:15 | x | main.rs:739:9:739:9 | x | -| main.rs:748:20:748:20 | b | main.rs:746:20:746:20 | b | -| main.rs:752:5:752:7 | cap | main.rs:746:13:746:15 | cap | -| main.rs:753:15:753:15 | x | main.rs:745:13:745:13 | x | -| main.rs:761:19:761:19 | x | main.rs:759:13:759:13 | x | -| main.rs:768:15:768:15 | y | main.rs:760:13:760:13 | y | -| main.rs:770:17:770:20 | N0ne | main.rs:769:13:769:16 | N0ne | -| main.rs:779:13:779:22 | test_alias | main.rs:776:13:776:22 | test_alias | -| main.rs:780:9:780:12 | test | main.rs:778:13:778:16 | test | -| main.rs:788:15:788:15 | x | main.rs:787:13:787:13 | x | -| main.rs:790:20:790:20 | x | main.rs:789:18:789:18 | x | -| main.rs:793:15:793:15 | x | main.rs:787:13:787:13 | x | +| main.rs:320:5:320:5 | x | main.rs:317:17:317:17 | x | +| main.rs:322:19:322:19 | x | main.rs:317:17:317:17 | x | +| main.rs:325:13:325:13 | x | main.rs:316:9:316:9 | x | +| main.rs:326:19:326:19 | x | main.rs:324:13:324:13 | x | +| main.rs:334:7:334:7 | x | main.rs:332:9:332:9 | x | +| main.rs:337:12:337:12 | x | main.rs:333:17:333:17 | x | +| main.rs:339:5:339:5 | x | main.rs:336:14:336:14 | x | +| main.rs:341:19:341:19 | x | main.rs:336:14:336:14 | x | +| main.rs:344:13:344:13 | x | main.rs:332:9:332:9 | x | +| main.rs:345:19:345:19 | x | main.rs:343:13:343:13 | x | +| main.rs:353:7:353:7 | x | main.rs:351:9:351:9 | x | +| main.rs:356:12:356:12 | x | main.rs:352:20:352:20 | x | +| main.rs:358:5:358:5 | x | main.rs:355:14:355:14 | x | +| main.rs:360:19:360:19 | x | main.rs:355:14:355:14 | x | +| main.rs:364:15:364:15 | x | main.rs:351:9:351:9 | x | +| main.rs:370:11:370:11 | x | main.rs:369:9:369:9 | x | +| main.rs:373:18:373:18 | x | main.rs:371:14:371:14 | x | +| main.rs:374:19:374:19 | x | main.rs:372:20:372:20 | x | +| main.rs:378:15:378:15 | x | main.rs:369:9:369:9 | x | +| main.rs:385:7:385:7 | x | main.rs:383:9:383:9 | x | +| main.rs:387:19:387:19 | x | main.rs:384:16:384:16 | x | +| main.rs:390:7:390:7 | x | main.rs:383:9:383:9 | x | +| main.rs:392:19:392:19 | x | main.rs:389:20:389:20 | x | +| main.rs:394:19:394:19 | x | main.rs:383:9:383:9 | x | +| main.rs:400:11:400:11 | x | main.rs:399:9:399:9 | x | +| main.rs:402:20:402:20 | x | main.rs:401:18:401:18 | x | +| main.rs:409:11:409:11 | x | main.rs:408:9:408:9 | x | +| main.rs:411:16:411:16 | y | main.rs:410:14:410:14 | y | +| main.rs:413:22:413:22 | y | main.rs:410:14:410:14 | y | +| main.rs:414:26:414:26 | y | main.rs:412:22:412:22 | y | +| main.rs:426:15:426:16 | a8 | main.rs:420:5:420:6 | a8 | +| main.rs:427:15:427:16 | b3 | main.rs:422:9:422:10 | b3 | +| main.rs:428:15:428:16 | c1 | main.rs:423:9:423:10 | c1 | +| main.rs:433:15:433:16 | a9 | main.rs:431:20:431:55 | a9 | +| main.rs:442:15:442:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:443:15:443:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:444:15:444:16 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:451:9:451:11 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:452:9:452:10 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:453:9:453:10 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:455:15:455:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:456:15:456:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:457:15:457:16 | c2 | main.rs:440:13:440:14 | c2 | +| main.rs:464:23:464:25 | a10 | main.rs:461:13:461:15 | a10 | +| main.rs:465:23:465:24 | b4 | main.rs:462:13:462:14 | b4 | +| main.rs:469:15:469:17 | a10 | main.rs:438:13:438:15 | a10 | +| main.rs:470:15:470:16 | b4 | main.rs:439:13:439:14 | b4 | +| main.rs:476:9:476:9 | x | main.rs:475:10:475:10 | x | +| main.rs:478:9:478:23 | example_closure | main.rs:474:9:474:23 | example_closure | +| main.rs:479:15:479:16 | n1 | main.rs:477:9:477:10 | n1 | +| main.rs:484:9:484:9 | x | main.rs:483:6:483:6 | x | +| main.rs:486:9:486:26 | immutable_variable | main.rs:482:9:482:26 | immutable_variable | +| main.rs:487:15:487:16 | n2 | main.rs:485:9:485:10 | n2 | +| main.rs:494:9:494:9 | x | main.rs:493:10:493:10 | x | +| main.rs:495:15:495:15 | f | main.rs:492:9:492:9 | f | +| main.rs:499:9:499:9 | x | main.rs:497:10:497:10 | x | +| main.rs:502:15:502:15 | f | main.rs:492:9:492:9 | f | +| main.rs:508:17:508:17 | x | main.rs:506:14:506:14 | x | +| main.rs:517:13:517:13 | x | main.rs:516:14:516:14 | x | +| main.rs:518:19:518:19 | f | main.rs:515:13:515:13 | f | +| main.rs:526:12:526:12 | v | main.rs:523:9:523:9 | v | +| main.rs:527:19:527:22 | text | main.rs:525:9:525:12 | text | +| main.rs:534:15:534:15 | a | main.rs:532:13:532:13 | a | +| main.rs:536:15:536:15 | a | main.rs:532:13:532:13 | a | +| main.rs:543:6:543:10 | ref_i | main.rs:541:9:541:13 | ref_i | +| main.rs:544:15:544:15 | i | main.rs:540:13:540:13 | i | +| main.rs:548:6:548:6 | x | main.rs:547:17:547:17 | x | +| main.rs:549:10:549:10 | x | main.rs:547:17:547:17 | x | +| main.rs:550:10:550:10 | x | main.rs:547:17:547:17 | x | +| main.rs:551:12:551:12 | x | main.rs:547:17:547:17 | x | +| main.rs:555:6:555:6 | x | main.rs:554:22:554:22 | x | +| main.rs:556:10:556:10 | x | main.rs:554:22:554:22 | x | +| main.rs:557:10:557:10 | x | main.rs:554:22:554:22 | x | +| main.rs:558:6:558:6 | y | main.rs:554:38:554:38 | y | +| main.rs:559:9:559:9 | x | main.rs:554:22:554:22 | x | +| main.rs:566:6:566:6 | y | main.rs:564:9:564:9 | y | +| main.rs:569:15:569:15 | x | main.rs:563:13:563:13 | x | +| main.rs:576:9:576:9 | w | main.rs:572:9:572:9 | w | +| main.rs:578:7:578:7 | w | main.rs:572:9:572:9 | w | +| main.rs:581:15:581:15 | z | main.rs:571:13:571:13 | z | +| main.rs:588:6:588:6 | y | main.rs:586:9:586:9 | y | +| main.rs:589:15:589:15 | x | main.rs:585:13:585:13 | x | +| main.rs:597:19:597:19 | x | main.rs:593:9:593:9 | x | +| main.rs:599:5:599:7 | cap | main.rs:596:9:596:11 | cap | +| main.rs:600:15:600:15 | x | main.rs:593:9:593:9 | x | +| main.rs:608:19:608:19 | x | main.rs:604:13:604:13 | x | +| main.rs:610:5:610:12 | closure1 | main.rs:607:9:607:16 | closure1 | +| main.rs:611:15:611:15 | x | main.rs:604:13:604:13 | x | +| main.rs:619:5:619:12 | closure2 | main.rs:616:13:616:20 | closure2 | +| main.rs:620:15:620:15 | y | main.rs:613:13:613:13 | y | +| main.rs:626:9:626:9 | z | main.rs:622:13:622:13 | z | +| main.rs:628:5:628:12 | closure3 | main.rs:625:13:625:20 | closure3 | +| main.rs:629:15:629:15 | z | main.rs:622:13:622:13 | z | +| main.rs:638:5:638:9 | block | main.rs:634:9:634:13 | block | +| main.rs:639:15:639:15 | i | main.rs:633:13:633:13 | i | +| main.rs:644:15:644:15 | x | main.rs:643:13:643:13 | x | +| main.rs:645:15:645:15 | x | main.rs:643:13:643:13 | x | +| main.rs:647:16:647:16 | b | main.rs:642:8:642:8 | b | +| main.rs:650:19:650:19 | x | main.rs:643:13:643:13 | x | +| main.rs:651:19:651:19 | x | main.rs:643:13:643:13 | x | +| main.rs:654:19:654:19 | x | main.rs:643:13:643:13 | x | +| main.rs:655:19:655:19 | x | main.rs:643:13:643:13 | x | +| main.rs:657:15:657:15 | x | main.rs:643:13:643:13 | x | +| main.rs:663:16:663:17 | b1 | main.rs:660:13:660:14 | b1 | +| main.rs:665:19:665:19 | x | main.rs:661:9:661:9 | x | +| main.rs:667:19:667:19 | x | main.rs:661:9:661:9 | x | +| main.rs:671:16:671:17 | b2 | main.rs:660:23:660:24 | b2 | +| main.rs:673:19:673:19 | x | main.rs:661:9:661:9 | x | +| main.rs:675:19:675:19 | x | main.rs:661:9:661:9 | x | +| main.rs:685:16:685:19 | self | main.rs:684:20:684:23 | self | +| main.rs:689:9:689:12 | self | main.rs:688:11:688:14 | self | +| main.rs:695:13:695:16 | self | main.rs:692:23:692:26 | self | +| main.rs:695:25:695:25 | n | main.rs:693:22:693:22 | n | +| main.rs:697:9:697:9 | f | main.rs:693:17:693:17 | f | +| main.rs:698:9:698:9 | f | main.rs:693:17:693:17 | f | +| main.rs:704:15:704:15 | a | main.rs:703:13:703:13 | a | +| main.rs:705:5:705:5 | a | main.rs:703:13:703:13 | a | +| main.rs:706:15:706:15 | a | main.rs:703:13:703:13 | a | +| main.rs:708:15:708:15 | a | main.rs:703:13:703:13 | a | +| main.rs:713:15:713:15 | a | main.rs:712:13:712:13 | a | +| main.rs:714:5:714:5 | a | main.rs:712:13:712:13 | a | +| main.rs:715:15:715:15 | a | main.rs:712:13:712:13 | a | +| main.rs:717:15:717:15 | a | main.rs:712:13:712:13 | a | +| main.rs:723:15:723:15 | x | main.rs:721:9:721:9 | x | +| main.rs:735:10:735:13 | self | main.rs:734:17:734:20 | self | +| main.rs:741:5:741:5 | a | main.rs:740:13:740:13 | a | +| main.rs:744:15:744:15 | a | main.rs:740:13:740:13 | a | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:9:763:21 | var_in_macro | +| main.rs:764:15:764:28 | var_from_macro | main.rs:762:9:762:22 | var_from_macro | +| main.rs:770:30:770:41 | var_in_macro | main.rs:770:15:770:28 | var_in_macro | +| main.rs:771:15:771:26 | var_in_macro | main.rs:765:9:765:20 | var_in_macro | +| main.rs:777:15:777:15 | x | main.rs:775:9:775:9 | x | +| main.rs:784:20:784:20 | b | main.rs:782:20:782:20 | b | +| main.rs:788:5:788:7 | cap | main.rs:782:13:782:15 | cap | +| main.rs:789:15:789:15 | x | main.rs:781:13:781:13 | x | +| main.rs:797:19:797:19 | x | main.rs:795:13:795:13 | x | +| main.rs:804:15:804:15 | y | main.rs:796:13:796:13 | y | +| main.rs:806:17:806:20 | N0ne | main.rs:805:13:805:16 | N0ne | +| main.rs:815:13:815:22 | test_alias | main.rs:812:13:812:22 | test_alias | +| main.rs:816:9:816:12 | test | main.rs:814:13:814:16 | test | +| main.rs:824:15:824:15 | x | main.rs:823:13:823:13 | x | +| main.rs:826:20:826:20 | x | main.rs:825:18:825:18 | x | +| main.rs:829:15:829:15 | x | main.rs:823:13:823:13 | x | +| main.rs:841:9:841:9 | x | main.rs:840:13:840:13 | x | +| main.rs:843:19:843:19 | x | main.rs:838:9:838:9 | x | +| main.rs:845:19:845:19 | x | main.rs:838:9:838:9 | x | variableInitializer | main.rs:20:9:20:10 | x1 | main.rs:20:14:20:16 | "a" | | main.rs:25:13:25:14 | x2 | main.rs:25:18:25:18 | 4 | @@ -612,88 +654,98 @@ variableInitializer | main.rs:91:9:91:10 | s1 | main.rs:91:14:91:41 | Some(...) | | main.rs:100:9:100:9 | x | main.rs:100:13:100:22 | Some(...) | | main.rs:104:13:104:13 | x | main.rs:105:13:105:13 | x | -| main.rs:113:9:113:10 | s1 | main.rs:113:14:113:41 | Some(...) | -| main.rs:122:9:122:10 | x6 | main.rs:122:14:122:20 | Some(...) | -| main.rs:123:9:123:10 | y1 | main.rs:123:14:123:15 | 10 | -| main.rs:139:9:139:15 | numbers | main.rs:139:19:139:35 | TupleExpr | -| main.rs:170:9:170:10 | p2 | main.rs:170:14:170:37 | Point {...} | -| main.rs:184:9:184:11 | msg | main.rs:184:15:184:38 | ...::Hello {...} | -| main.rs:208:9:208:14 | either | main.rs:208:18:208:33 | ...::Left(...) | -| main.rs:222:9:222:10 | tv | main.rs:222:14:222:36 | ...::Second(...) | -| main.rs:238:9:238:14 | either | main.rs:238:18:238:33 | ...::Left(...) | -| main.rs:248:9:248:14 | either | main.rs:248:18:248:33 | ...::Left(...) | -| main.rs:272:9:272:10 | fv | main.rs:272:14:272:35 | ...::Second(...) | -| main.rs:281:9:281:9 | x | main.rs:281:12:281:19 | Some(...) | -| main.rs:289:13:289:13 | x | main.rs:290:13:290:13 | x | -| main.rs:297:9:297:9 | x | main.rs:297:13:297:20 | Some(...) | -| main.rs:308:13:308:13 | x | main.rs:309:13:309:13 | x | -| main.rs:316:9:316:9 | x | main.rs:316:13:316:20 | Some(...) | -| main.rs:334:9:334:9 | x | main.rs:334:13:334:20 | Some(...) | -| main.rs:337:20:337:20 | x | main.rs:338:18:338:18 | x | -| main.rs:348:9:348:9 | x | main.rs:348:13:348:18 | Ok(...) | -| main.rs:364:9:364:9 | x | main.rs:364:13:364:19 | Some(...) | -| main.rs:373:9:373:9 | x | main.rs:373:13:373:20 | Some(...) | -| main.rs:438:9:438:23 | example_closure | main.rs:439:9:440:9 | \|...\| x | -| main.rs:441:9:441:10 | n1 | main.rs:442:9:442:26 | example_closure(...) | -| main.rs:446:9:446:26 | immutable_variable | main.rs:447:5:448:9 | \|...\| x | -| main.rs:449:9:449:10 | n2 | main.rs:450:9:450:29 | immutable_variable(...) | -| main.rs:456:9:456:9 | f | main.rs:457:9:458:9 | \|...\| x | -| main.rs:479:13:479:13 | f | main.rs:480:13:481:13 | \|...\| x | -| main.rs:487:9:487:9 | v | main.rs:487:13:487:41 | &... | -| main.rs:496:13:496:13 | a | main.rs:496:17:496:17 | 0 | -| main.rs:504:13:504:13 | i | main.rs:504:17:504:17 | 1 | -| main.rs:505:9:505:13 | ref_i | main.rs:506:9:506:14 | &mut i | -| main.rs:527:13:527:13 | x | main.rs:527:17:527:17 | 2 | -| main.rs:528:9:528:9 | y | main.rs:529:9:529:28 | mutate_param(...) | -| main.rs:535:13:535:13 | z | main.rs:535:17:535:17 | 4 | -| main.rs:536:9:536:9 | w | main.rs:537:9:537:19 | &mut ... | -| main.rs:549:13:549:13 | x | main.rs:549:17:549:17 | 1 | -| main.rs:550:9:550:9 | y | main.rs:551:9:551:14 | &mut x | -| main.rs:557:9:557:9 | x | main.rs:557:13:557:15 | 100 | -| main.rs:560:9:560:11 | cap | main.rs:560:15:562:5 | \|...\| ... | -| main.rs:568:13:568:13 | x | main.rs:568:17:568:17 | 1 | -| main.rs:571:9:571:16 | closure1 | main.rs:571:20:573:5 | \|...\| ... | -| main.rs:577:13:577:13 | y | main.rs:577:17:577:17 | 2 | -| main.rs:580:13:580:20 | closure2 | main.rs:580:24:582:5 | \|...\| ... | -| main.rs:586:13:586:13 | z | main.rs:586:17:586:17 | 2 | -| main.rs:589:13:589:20 | closure3 | main.rs:589:24:591:5 | \|...\| ... | -| main.rs:597:13:597:13 | i | main.rs:597:22:597:22 | 0 | -| main.rs:598:9:598:13 | block | main.rs:598:17:600:5 | { ... } | -| main.rs:607:13:607:13 | x | main.rs:607:17:607:17 | 1 | -| main.rs:625:9:625:9 | x | main.rs:625:13:625:13 | 1 | -| main.rs:657:17:657:17 | f | main.rs:657:21:660:9 | \|...\| ... | -| main.rs:667:13:667:13 | a | main.rs:667:17:667:35 | MyStruct {...} | -| main.rs:676:13:676:13 | a | main.rs:676:17:676:25 | [...] | -| main.rs:685:9:685:9 | x | main.rs:685:13:685:14 | 16 | -| main.rs:689:9:689:9 | z | main.rs:689:13:689:14 | 17 | -| main.rs:704:13:704:13 | a | main.rs:704:17:704:35 | MyStruct {...} | -| main.rs:726:9:726:22 | var_from_macro | main.rs:727:9:727:25 | MacroExpr | -| main.rs:727:9:727:21 | var_in_macro | main.rs:727:23:727:24 | 37 | -| main.rs:729:9:729:20 | var_in_macro | main.rs:729:24:729:25 | 33 | -| main.rs:734:15:734:28 | var_in_macro | main.rs:734:15:734:28 | 0 | -| main.rs:745:13:745:13 | x | main.rs:745:17:745:19 | 100 | -| main.rs:746:13:746:15 | cap | main.rs:746:19:751:5 | \|...\| ... | -| main.rs:759:13:759:13 | x | main.rs:759:17:759:24 | Some(...) | -| main.rs:760:13:760:13 | y | main.rs:761:13:767:9 | match x { ... } | -| main.rs:776:13:776:22 | test_alias | main.rs:777:13:777:16 | test | -| main.rs:778:13:778:16 | test | main.rs:779:13:779:24 | test_alias(...) | -| main.rs:787:13:787:13 | x | main.rs:787:17:787:23 | Some(...) | +| main.rs:113:9:113:9 | s | main.rs:113:13:113:40 | Some(...) | +| main.rs:133:9:133:9 | x | main.rs:133:13:133:13 | 1 | +| main.rs:134:12:134:12 | x | main.rs:135:9:135:13 | ... + ... | +| main.rs:136:12:136:12 | x | main.rs:137:9:137:13 | ... + ... | +| main.rs:138:12:138:12 | x | main.rs:139:9:139:13 | ... + ... | +| main.rs:140:12:140:12 | x | main.rs:141:9:141:13 | ... + ... | +| main.rs:142:12:142:12 | x | main.rs:143:9:143:13 | ... + ... | +| main.rs:144:12:144:12 | x | main.rs:145:9:145:13 | ... + ... | +| main.rs:146:12:146:12 | x | main.rs:147:9:147:13 | ... + ... | +| main.rs:157:9:157:10 | x6 | main.rs:157:14:157:20 | Some(...) | +| main.rs:158:9:158:10 | y1 | main.rs:158:14:158:15 | 10 | +| main.rs:174:9:174:15 | numbers | main.rs:174:19:174:35 | TupleExpr | +| main.rs:205:9:205:10 | p2 | main.rs:205:14:205:37 | Point {...} | +| main.rs:219:9:219:11 | msg | main.rs:219:15:219:38 | ...::Hello {...} | +| main.rs:243:9:243:14 | either | main.rs:243:18:243:33 | ...::Left(...) | +| main.rs:257:9:257:10 | tv | main.rs:257:14:257:36 | ...::Second(...) | +| main.rs:273:9:273:14 | either | main.rs:273:18:273:33 | ...::Left(...) | +| main.rs:283:9:283:14 | either | main.rs:283:18:283:33 | ...::Left(...) | +| main.rs:307:9:307:10 | fv | main.rs:307:14:307:35 | ...::Second(...) | +| main.rs:316:9:316:9 | x | main.rs:316:12:316:19 | Some(...) | +| main.rs:324:13:324:13 | x | main.rs:325:13:325:13 | x | +| main.rs:332:9:332:9 | x | main.rs:332:13:332:20 | Some(...) | +| main.rs:343:13:343:13 | x | main.rs:344:13:344:13 | x | +| main.rs:351:9:351:9 | x | main.rs:351:13:351:20 | Some(...) | +| main.rs:369:9:369:9 | x | main.rs:369:13:369:20 | Some(...) | +| main.rs:372:20:372:20 | x | main.rs:373:18:373:18 | x | +| main.rs:383:9:383:9 | x | main.rs:383:13:383:18 | Ok(...) | +| main.rs:399:9:399:9 | x | main.rs:399:13:399:19 | Some(...) | +| main.rs:408:9:408:9 | x | main.rs:408:13:408:20 | Some(...) | +| main.rs:474:9:474:23 | example_closure | main.rs:475:9:476:9 | \|...\| x | +| main.rs:477:9:477:10 | n1 | main.rs:478:9:478:26 | example_closure(...) | +| main.rs:482:9:482:26 | immutable_variable | main.rs:483:5:484:9 | \|...\| x | +| main.rs:485:9:485:10 | n2 | main.rs:486:9:486:29 | immutable_variable(...) | +| main.rs:492:9:492:9 | f | main.rs:493:9:494:9 | \|...\| x | +| main.rs:515:13:515:13 | f | main.rs:516:13:517:13 | \|...\| x | +| main.rs:523:9:523:9 | v | main.rs:523:13:523:41 | &... | +| main.rs:532:13:532:13 | a | main.rs:532:17:532:17 | 0 | +| main.rs:540:13:540:13 | i | main.rs:540:17:540:17 | 1 | +| main.rs:541:9:541:13 | ref_i | main.rs:542:9:542:14 | &mut i | +| main.rs:563:13:563:13 | x | main.rs:563:17:563:17 | 2 | +| main.rs:564:9:564:9 | y | main.rs:565:9:565:28 | mutate_param(...) | +| main.rs:571:13:571:13 | z | main.rs:571:17:571:17 | 4 | +| main.rs:572:9:572:9 | w | main.rs:573:9:573:19 | &mut ... | +| main.rs:585:13:585:13 | x | main.rs:585:17:585:17 | 1 | +| main.rs:586:9:586:9 | y | main.rs:587:9:587:14 | &mut x | +| main.rs:593:9:593:9 | x | main.rs:593:13:593:15 | 100 | +| main.rs:596:9:596:11 | cap | main.rs:596:15:598:5 | \|...\| ... | +| main.rs:604:13:604:13 | x | main.rs:604:17:604:17 | 1 | +| main.rs:607:9:607:16 | closure1 | main.rs:607:20:609:5 | \|...\| ... | +| main.rs:613:13:613:13 | y | main.rs:613:17:613:17 | 2 | +| main.rs:616:13:616:20 | closure2 | main.rs:616:24:618:5 | \|...\| ... | +| main.rs:622:13:622:13 | z | main.rs:622:17:622:17 | 2 | +| main.rs:625:13:625:20 | closure3 | main.rs:625:24:627:5 | \|...\| ... | +| main.rs:633:13:633:13 | i | main.rs:633:22:633:22 | 0 | +| main.rs:634:9:634:13 | block | main.rs:634:17:636:5 | { ... } | +| main.rs:643:13:643:13 | x | main.rs:643:17:643:17 | 1 | +| main.rs:661:9:661:9 | x | main.rs:661:13:661:13 | 1 | +| main.rs:693:17:693:17 | f | main.rs:693:21:696:9 | \|...\| ... | +| main.rs:703:13:703:13 | a | main.rs:703:17:703:35 | MyStruct {...} | +| main.rs:712:13:712:13 | a | main.rs:712:17:712:25 | [...] | +| main.rs:721:9:721:9 | x | main.rs:721:13:721:14 | 16 | +| main.rs:725:9:725:9 | z | main.rs:725:13:725:14 | 17 | +| main.rs:740:13:740:13 | a | main.rs:740:17:740:35 | MyStruct {...} | +| main.rs:762:9:762:22 | var_from_macro | main.rs:763:9:763:25 | MacroExpr | +| main.rs:763:9:763:21 | var_in_macro | main.rs:763:23:763:24 | 37 | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:24:765:25 | 33 | +| main.rs:770:15:770:28 | var_in_macro | main.rs:770:15:770:28 | 0 | +| main.rs:781:13:781:13 | x | main.rs:781:17:781:19 | 100 | +| main.rs:782:13:782:15 | cap | main.rs:782:19:787:5 | \|...\| ... | +| main.rs:795:13:795:13 | x | main.rs:795:17:795:24 | Some(...) | +| main.rs:796:13:796:13 | y | main.rs:797:13:803:9 | match x { ... } | +| main.rs:812:13:812:22 | test_alias | main.rs:813:13:813:16 | test | +| main.rs:814:13:814:16 | test | main.rs:815:13:815:24 | test_alias(...) | +| main.rs:823:13:823:13 | x | main.rs:823:17:823:23 | Some(...) | +| main.rs:838:9:838:9 | x | main.rs:838:13:838:13 | 1 | +| main.rs:840:13:840:13 | x | main.rs:840:17:840:17 | 1 | capturedVariable -| main.rs:557:9:557:9 | x | -| main.rs:568:13:568:13 | x | -| main.rs:577:13:577:13 | y | -| main.rs:586:13:586:13 | z | -| main.rs:597:13:597:13 | i | -| main.rs:656:23:656:26 | self | -| main.rs:745:13:745:13 | x | +| main.rs:593:9:593:9 | x | +| main.rs:604:13:604:13 | x | +| main.rs:613:13:613:13 | y | +| main.rs:622:13:622:13 | z | +| main.rs:633:13:633:13 | i | +| main.rs:692:23:692:26 | self | +| main.rs:781:13:781:13 | x | capturedAccess -| main.rs:561:19:561:19 | x | -| main.rs:572:19:572:19 | x | -| main.rs:581:9:581:9 | y | -| main.rs:590:9:590:9 | z | -| main.rs:599:9:599:9 | i | -| main.rs:659:13:659:16 | self | -| main.rs:749:13:749:13 | x | +| main.rs:597:19:597:19 | x | +| main.rs:608:19:608:19 | x | +| main.rs:617:9:617:9 | y | +| main.rs:626:9:626:9 | z | +| main.rs:635:9:635:9 | i | +| main.rs:695:13:695:16 | self | +| main.rs:785:13:785:13 | x | nestedFunctionAccess -| main.rs:469:19:469:19 | f | main.rs:470:9:473:9 | fn f | -| main.rs:476:23:476:23 | f | main.rs:470:9:473:9 | fn f | +| main.rs:505:19:505:19 | f | main.rs:506:9:509:9 | fn f | +| main.rs:512:23:512:23 | f | main.rs:506:9:509:9 | fn f | diff --git a/shared/namebinding/codeql/namebinding/LocalNameBinding.qll b/shared/namebinding/codeql/namebinding/LocalNameBinding.qll new file mode 100644 index 000000000000..46636758ec71 --- /dev/null +++ b/shared/namebinding/codeql/namebinding/LocalNameBinding.qll @@ -0,0 +1,386 @@ +/** + * Provides a library for resolving local names based on syntactic scopes, including + * handling of shadowing declarations. + */ +overlay[local?] +module; + +private import codeql.util.DenseRank +private import codeql.util.Location + +/** Provides the input to `LocalNameBinding`. */ +signature module LocalNameBindingInputSig { + /** + * Reverse references to the cached predicates that reference + * `CachedStage::ref()`. + */ + default predicate cacheRevRef() { none() } + + /** An AST node. */ + class AstNode { + /** Gets a textual representation of this element. */ + string toString(); + + /** Gets the location of this element. */ + Location getLocation(); + } + + /** Gets the child of AST node `n` at the specified index. */ + AstNode getChild(AstNode n, int index); + + /** + * A conditional where any local declarations in the condition are in scope + * in the then-branch but not the else-branch. + * + * Example: + * + * ```rust + * if let Some(x) = opt { + * // x is in scope here + * } else { + * // x is not in scope here + * } + * ``` + */ + class Conditional extends AstNode { + /** Gets the condition of this conditional. */ + AstNode getCondition(); + + /** Gets the then-branch of this conditional. */ + AstNode getThen(); + + /** Gets the else-branch of this conditional. */ + AstNode getElse(); + } + + /** + * A shadowing declaration where any local declarations in the left-hand side + * are in scope _after_ the declaration and shadow any declarations with the + * same name preceding it. + * + * Example: + * ```rust + * let x = 1; + * let x = x + 1; // this declaration of `x` shadows the previous one, but the `x` in the right-hand side still refers to the first declaration + * println!("{}", x); // this access of `x` refers to the second declaration + * ``` + */ + class ShadowingDecl extends AstNode { + /** Gets the left-hand side of this declaration. */ + AstNode getLhs(); + + /** + * Gets the right-hand side of this declaration. + * + * Any local declared in the left-hand side of this declaration is _not_ in scope + * in the right-hand side. + */ + AstNode getRhs(); + + /** + * Gets the else-branch of this declaration, if any. + * + * Any local declared in the left-hand side of this declaration is _not_ in scope + * in the else-branch. + */ + AstNode getElse(); + } + + /** + * Holds if a local declaration named `name` exists at `definingNode` inside + * the syntactic scope `scope`. + * + * Note that declarations with a `definingNode` in the left-hand side of a + * shadowing declaration `decl` should use `scope = decl`. + */ + predicate declInScope(AstNode definingNode, string name, AstNode scope); + + /** + * Holds if `n` is a node that may access a local named `name`. + */ + predicate accessCand(AstNode n, string name); + + /** + * Holds the access candidate `n` should begin its lookup in `scope` instead + * of its immediately enclosing scope. + * + * For example, the `this` variable in an instance field initializer might need + * to be resolved relative to a constructor body. + * + * If `scope` declares a local with the name of `n`, then `scope` is guaranteed + * to be the scope that `n` ultimately resolves to. This can thus be used to take + * full control of scope resolution for for specific types of references. + */ + default predicate lookupStartsAt(AstNode n, AstNode scope) { none() } +} + +/** + * Provides logic for resolving local names based on syntactic scopes, including + * handling of shadowing declarations. + */ +module LocalNameBinding Input> { + private import Input + + final private class AstNodeFinal = AstNode; + + private class Scope extends AstNodeFinal { + Scope() { + declInScope(_, _, this) + or + lookupStartsAt(_, this) + } + } + + pragma[nomagic] + private predicate conditionHasChildAt(Conditional conditional, AstNode condition, int index) { + condition = conditional.getCondition() and + ( + exists(getChild(condition, index)) + or + // safeguard against empty conditions + not exists(getChild(condition, _)) and index = 0 + ) + } + + /** + * An adjusted version of `getChild` from the `Input` module where in conditionals like + * `if cond body`, instead of letting `body` be a child of `if`, we make it the last + * child of `cond`. This ensures that shadowing declarations inside `cond` are properly + * handled inside `body`. + * + * Example: + * + * ```rust + * if let Some(x) = opt && let x = x + 1 { + * // the second declaration of `x` is in scope here + * } + * ``` + * + * We also move any `else` branch _before_ the condition to ensure that shadowing declarations + * inside the condition are not in scope. + */ + private AstNode getChildAdj(AstNode parent, int index) { + result = getChild(parent, index) and + not exists(Conditional cond | result = [cond.getElse(), cond.getThen()]) + or + exists(Conditional cond | + parent = cond and + result = cond.getElse() and + index = -1 + or + exists(int last | + result = cond.getThen() and + last = max(int i | conditionHasChildAt(cond, parent, i)) and + index = last + 1 + ) + ) + } + + private module DenseRankInput implements DenseRankInputSig1 { + class C = AstNode; + + class Ranked = AstNode; + + int getRank(C parent, Ranked child) { + child = getChildAdj(parent, result) and + getChildAdj(parent, _) instanceof ShadowingDecl + } + } + + private predicate getRankedChild = DenseRank1::denseRank/2; + + /** + * Holds if `n` is the `i`th child of `parent`, but should instead be considered + * a child of a shadowing declaration `decl` when resolving accesses. + * + * This is the case when `decl` is the nearest shadowing declaration preceding `n` + * amongst all the children of `parent`. + * + * Note that `decl` may itself also have to be nested under another shadowing + * declaration. + */ + private predicate shouldBeShadowingDeclChild(AstNode parent, ShadowingDecl decl, int i, AstNode n) { + n = getRankedChild(parent, i) and + ( + decl = getRankedChild(parent, i - 1) + or + shouldBeShadowingDeclChild(parent, decl, i - 1, + any(AstNode prev | not prev instanceof ShadowingDecl)) + ) + } + + /** + * Gets the AST parent of `n` with respect to determining enclosing scopes. + * + * For example, in + * + * ```rust + * let x = 1; + * let x = x + 1; + * println!("{}", x); + * ``` + * + * we will have (eliding leaf nodes) + * + * ```text + * let x = 1; + * / \ + * x + 1 let x = x + 1 + * | + * println!("{}", x); + * ``` + * + * and in + * + * ```rust + * if let Some(x) = opt && let x = x + 1 { + * println!("{}", x); + * } + * ``` + * + * we will have (again eliding leaf nodes) + * + * ```text + * if ... + * | + * ... && ... + * / \ + * let Some(x) = opt opt + * / \ + * let x = x + 1 x + 1 + * | + * println!("{}", x); + * ``` + */ + private AstNode getParentForScoping(AstNode n) { + not shouldBeShadowingDeclChild(_, _, _, n) and + not exists(ShadowingDecl decl | n = [decl.getRhs(), decl.getElse()]) and + n = getChildAdj(result, _) + or + shouldBeShadowingDeclChild(_, result, _, n) + or + exists(ShadowingDecl decl | + result = getParentForScoping(decl) and + n = [decl.getRhs(), decl.getElse()] + ) + } + + /** Gets the immediately enclosing variable scope of `n`. */ + private Scope getEnclosingScope(AstNode n) { + result = getParentForScoping(n) + or + exists(AstNode mid | + result = getEnclosingScope(mid) and + mid = getParentForScoping(n) and + not mid instanceof Scope + ) + } + + private predicate accessCandInLookupScope(AstNode n, string name, Scope lookup) { + accessCand(n, name) and + ( + lookupStartsAt(n, lookup) + or + not lookupStartsAt(n, _) and + lookup = getEnclosingScope(n) + ) + } + + pragma[nomagic] + private predicate lookupInScope(string name, Scope lookup, Scope scope) { + accessCandInLookupScope(_, name, lookup) and + scope = lookup + or + exists(Scope mid | + lookupInScope(name, lookup, mid) and + not declInScope(_, name, mid) and + scope = getEnclosingScope(mid) + ) + } + + cached + private newtype TLocal = + MkLocal(AstNode definingNode, string name) { + CachedStage::ref() and + declInScope(definingNode, name, _) + } + + /** A locally declared entity, for example a variable or a parameter. */ + final class Local extends MkLocal { + private AstNode definingNode; + private string name; + + Local() { this = MkLocal(definingNode, name) } + + /** Gets the AST node that defines this local entity. */ + AstNode getDefiningNode() { result = definingNode } + + /** Gets the name of this local entity. */ + string getName() { result = name } + + /** Gets the location of this local entity. */ + Location getLocation() { result = definingNode.getLocation() } + + /** Gets a textual representation of this local entity. */ + string toString() { result = this.getName() } + + /** Gets an access to this local entity. */ + LocalAccess getAnAccess() { result.getLocal() = this } + } + + pragma[nomagic] + private predicate resolveInScope(string name, Scope lookup, Local l) { + exists(Scope scope, AstNode definingNode | + lookupInScope(name, lookup, scope) and + declInScope(definingNode, name, scope) and + l = MkLocal(definingNode, name) + ) + } + + cached + private predicate access(AstNode access, Local l) { + CachedStage::ref() and + exists(Scope lookup, string name | + accessCandInLookupScope(access, name, lookup) and + resolveInScope(name, lookup, l) + ) + } + + /** A local access. */ + final class LocalAccess extends AstNodeFinal { + private Local l; + + LocalAccess() { access(this, l) } + + /** Gets the local entity being accessed. */ + Local getLocal() { result = l } + } + + /** + * The cached stage of this module. + * + * Should not be exposed. + */ + cached + module CachedStage { + /** Reference to the cached stage of this module. */ + cached + predicate ref() { any() } + + /** + * DO NOT USE! + * + * Reverse references to the cached predicates that reference `ref()`. + */ + cached + predicate revRef() { + any() + or + cacheRevRef() + or + (exists(Local l) implies any()) + or + (exists(LocalAccess a) implies any()) + } + } +} diff --git a/shared/namebinding/qlpack.yml b/shared/namebinding/qlpack.yml new file mode 100644 index 000000000000..1bd12ee05dde --- /dev/null +++ b/shared/namebinding/qlpack.yml @@ -0,0 +1,7 @@ +name: codeql/namebinding +version: 0.0.1-dev +groups: shared +library: true +dependencies: + codeql/util: ${workspace} +warnOnImplicitThis: true