diff --git a/rust/ql/lib/codeql/rust/controlflow/BasicBlocks.qll b/rust/ql/lib/codeql/rust/controlflow/BasicBlocks.qll index 4ed935440234..44a40cc24926 100644 --- a/rust/ql/lib/codeql/rust/controlflow/BasicBlocks.qll +++ b/rust/ql/lib/codeql/rust/controlflow/BasicBlocks.qll @@ -1,29 +1,71 @@ private import codeql.controlflow.BasicBlock as BB private import codeql.Locations +private import codeql.rust.elements.internal.generated.Raw +private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.controlflow.ControlFlowGraph as ControlFlowGraph private import internal.ControlFlowGraphImpl as CfgImpl -private import CfgImpl::BasicBlocks as BasicBlocksImpl -class BasicBlock = BasicBlocksImpl::BasicBlock; +class BasicBlock = CfgImpl::Cfg::BasicBlock; -final class EntryBasicBlock = BasicBlocksImpl::EntryBasicBlock; +/** A basic block containing the entry node of a callable. */ +final class EntryBasicBlock extends BasicBlock { + EntryBasicBlock() { this.getFirstNode() instanceof CfgImpl::ControlFlow::EntryNode } +} + +/** A basic block containing the final exit node of a callable. */ +final class ExitBasicBlock extends BasicBlock { + ExitBasicBlock() { this.getLastNode() instanceof CfgImpl::ControlFlow::ExitNode } +} + +/** A basic block containing an annotated normal or exceptional exit node. */ +final class AnnotatedExitBasicBlock extends BasicBlock { + AnnotatedExitBasicBlock() { this.getANode() instanceof CfgImpl::ControlFlow::AnnotatedExitNode } + + /** Holds if this block represents normal exit. */ + predicate isNormal() { this.getANode() instanceof CfgImpl::ControlFlow::NormalExitNode } +} -final class ExitBasicBlock = BasicBlocksImpl::ExitBasicBlock; +/** A basic block whose last node is a condition. */ +final class ConditionBasicBlock extends BasicBlock { + ConditionBasicBlock() { this.getLastNode().(ControlFlowGraph::CfgNode).isCondition() } +} + +/** A basic block whose first node joins multiple predecessors. */ +final class JoinBasicBlock extends BasicBlock { + JoinBasicBlock() { this.getFirstNode().(ControlFlowGraph::CfgNode).isJoin() } + + /** Gets the `i`th predecessor of this join block in a stable arbitrary order. */ + JoinPredecessorBasicBlock getJoinBlockPredecessor(int i) { + result = + rank[i + 1](JoinPredecessorBasicBlock pred, int id, string tag | + pred = this.getAPredecessor() and + id = getNodeId(pred.getFirstNode()) and + tag = pred.getFirstNode().getIdTag() + | + pred order by id, tag + ) + } +} -final class AnnotatedExitBasicBlock = BasicBlocksImpl::AnnotatedExitBasicBlock; +/** A predecessor basic block of a join block. */ +final class JoinPredecessorBasicBlock extends BasicBlock { + JoinPredecessorBasicBlock() { this.getASuccessor() instanceof JoinBasicBlock } +} -final class ConditionBasicBlock = BasicBlocksImpl::ConditionBasicBlock; +private predicate id(Raw::AstNode x, Raw::AstNode y) { x = y } -final class JoinBasicBlock = BasicBlocksImpl::JoinBasicBlock; +private predicate idOfDbAstNode(Raw::AstNode x, int y) = equivalenceRelation(id/2)(x, y) -final class JoinPredecessorBasicBlock = BasicBlocksImpl::JoinPredecessorBasicBlock; +private int getNodeId(CfgImpl::ControlFlowNode node) { + idOfDbAstNode(Synth::convertAstNodeToRaw(node.getAstNode()), result) +} module Cfg implements BB::CfgSig { - class ControlFlowNode = ControlFlowGraph::CfgNode; + class ControlFlowNode = CfgImpl::Cfg::ControlFlowNode; - class BasicBlock = BasicBlocksImpl::BasicBlock; + class BasicBlock = CfgImpl::Cfg::BasicBlock; - class EntryBasicBlock = BasicBlocksImpl::EntryBasicBlock; + class EntryBasicBlock = CfgImpl::Cfg::EntryBasicBlock; - predicate dominatingEdge = BasicBlocksImpl::dominatingEdge/2; + predicate dominatingEdge = CfgImpl::Cfg::dominatingEdge/2; } diff --git a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll index eeed7086546f..4a9698b934ac 100644 --- a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll @@ -5,15 +5,24 @@ private import rust private import ControlFlowGraph -private import internal.ControlFlowGraphImpl as CfgImpl private import internal.CfgNodes import Nodes -class AstCfgNode = CfgImpl::AstCfgNode; +/** + * A CFG node that uniquely represents an AST node. + */ +class AstCfgNode extends CfgNode { + AstCfgNode() { this.injects(_) } + + /** Gets the represented AST node. */ + AstNode getAstNode() { this.injects(result) } +} -class ExitCfgNode = CfgImpl::ExitNode; +/** A CFG node representing the final exit from a callable. */ +class ExitCfgNode extends CfgNode instanceof ControlFlow::ExitNode { } -class AnnotatedExitCfgNode = CfgImpl::AnnotatedExitNode; +/** A CFG node representing a normal or exceptional exit from a callable. */ +class AnnotatedExitCfgNode extends CfgNode instanceof ControlFlow::AnnotatedExitNode { } /** A variable access. */ final class VariableAccessCfgNode extends PathExprBaseCfgNode { diff --git a/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll b/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll index b586a1aafee4..0227c92754fe 100644 --- a/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll +++ b/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll @@ -1,9 +1,25 @@ /** Provides classes representing the control flow graph. */ -private import internal.ControlFlowGraphImpl -private import internal.Scope as Scope +private import internal.ControlFlowGraphImpl as CfgImpl import codeql.controlflow.SuccessorType -final class CfgScope = Scope::CfgScope; +final class CfgScope = CfgImpl::CfgScope; -final class CfgNode = Node; +/** + * A node in the control flow graph. + */ +class CfgNode extends CfgImpl::ControlFlowNode { + /** Gets the CFG scope containing this node. */ + CfgScope getScope() { result = this.getEnclosingCallable() } + + /** Holds if this node has conditional successors. */ + predicate isCondition() { exists(this.getASuccessor(any(ConditionalSuccessor t))) } + + /** Holds if this node has more than one predecessor. */ + predicate isJoin() { strictcount(this.getAPredecessor()) > 1 } + + /** Holds if this node has more than one successor. */ + predicate isBranch() { strictcount(this.getASuccessor()) > 1 } +} + +module ControlFlow = CfgImpl::ControlFlow; diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/CfgConsistency.qll b/rust/ql/lib/codeql/rust/controlflow/internal/CfgConsistency.qll index 02393cb98c26..2d9105d93e44 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/CfgConsistency.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/CfgConsistency.qll @@ -3,124 +3,30 @@ */ private import rust -private import codeql.rust.controlflow.internal.ControlFlowGraphImpl::Consistency as Consistency -import Consistency -private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.controlflow.internal.ControlFlowGraphImpl as CfgImpl -private import codeql.rust.controlflow.internal.Completion private import codeql.rust.controlflow.internal.CfgNodes::Consistency as CfgNodes private import codeql.rust.Diagnostics - -private predicate nonPostOrderExpr(Expr e) { - not e instanceof LetExpr and - not e instanceof ParenExpr and - exists(AstNode last, Completion c | - CfgImpl::last(e, last, c) and - last != e and - c instanceof NormalCompletion - ) -} - -/** - * All `Expr` nodes are `PostOrderTree`s - */ -query predicate nonPostOrderExpr(Expr e, string cls) { - nonPostOrderExpr(e) and - cls = e.getPrimaryQlClasses() -} - -/** - * Holds if CFG scope `scope` lacks an initial AST node. Overrides shared consistency predicate. - */ -query predicate scopeNoFirst(CfgScope scope) { - Consistency::scopeNoFirst(scope) and - not scope = - [ - any(AstNode f | not f.(Callable).hasBody()), - any(AsyncBlockExpr b | not b.hasStmtList()) - ] -} - -/** Holds if `be` is the `else` branch of a `let` statement that results in a panic. */ -private predicate letElsePanic(BlockExpr be) { - be = any(LetStmt let).getLetElse().getBlockExpr() and - exists(Completion c | CfgImpl::last(be, _, c) | completionIsNormal(c)) -} - -/** - * Holds if `node` is lacking a successor. Overrides shared consistency predicate. - */ -query predicate deadEnd(CfgImpl::Node node) { - Consistency::deadEnd(node) and - successfullyExtractedFile(node.getLocation().getFile()) and - not letElsePanic(node.getAstNode()) -} +import CfgImpl::ControlFlow::Consistency pragma[nomagic] private predicate successfullyExtractedFile(File f) { - not exists(ExtractionWarning ee | ee.getLocation().getFile() = f) + not exists(ExtractionWarning warning | warning.getLocation().getFile() = f) } -query predicate missingCfgChild(CfgNode parent, string pred, int i, AstNode child) { +query predicate missingCfgChild(CfgImpl::ControlFlowNode parent, string pred, int i, AstNode child) { CfgNodes::missingCfgChild(parent, pred, i, child) and - successfullyExtractedFile(child.getLocation().getFile()) and - not exists(AstNode last, CfgImpl::Completion c | CfgImpl::last(child, last, c) | - // In for example `if (a && true) ...`, there is no edge from the CFG node - // for `true` into the `[false] a && true` node. - strictcount(ConditionalSuccessor cs | exists(last.getACfgNode().getASuccessor(cs)) | cs) = 1 - or - // In for example `x && return`, there is no edge from the node for - // `return` into the `&&` node. - not c instanceof CfgImpl::NormalCompletion - ) + successfullyExtractedFile(child.getLocation().getFile()) } /** * Gets counts of control flow graph inconsistencies of each type. */ int getCfgInconsistencyCounts(string type) { - // total results from all the CFG consistency query predicates in: - // - `codeql.rust.controlflow.internal.CfgConsistency` (this file) - // - `shared.controlflow.codeql.controlflow.Cfg` - type = "Non-unique set representation" and - result = count(CfgImpl::Splits ss | nonUniqueSetRepresentation(ss, _) | ss) - or - type = "Splitting invariant 2" and - result = count(AstNode n | breakInvariant2(n, _, _, _, _, _) | n) - or - type = "Splitting invariant 3" and - result = count(AstNode n | breakInvariant3(n, _, _, _, _, _) | n) - or - type = "Splitting invariant 4" and - result = count(AstNode n | breakInvariant4(n, _, _, _, _, _) | n) - or - type = "Splitting invariant 5" and - result = count(AstNode n | breakInvariant5(n, _, _, _, _, _) | n) - or - type = "Multiple successors of the same type" and - result = count(CfgNode n | multipleSuccessors(n, _, _) | n) - or - type = "Simple and normal successors" and - result = count(CfgNode n | simpleAndNormalSuccessors(n, _, _, _, _) | n) - or - type = "Dead end" and - result = count(CfgNode n | deadEnd(n) | n) - or - type = "Non-unique split kind" and - result = count(CfgImpl::SplitImpl si | nonUniqueSplitKind(si, _) | si) - or - type = "Non-unique list order" and - result = count(CfgImpl::SplitKind sk | nonUniqueListOrder(sk, _) | sk) - or - type = "Multiple toStrings" and - result = count(CfgNode n | multipleToString(n) | n) - or - type = "CFG scope lacks initial AST node" and - result = count(CfgScope s | scopeNoFirst(s) | s) - or - type = "Non-PostOrderTree Expr node" and - result = count(Expr e | nonPostOrderExpr(e) | e) + CfgImpl::ControlFlow::Consistency::consistencyOverview(type, result) or type = "Missing CFG child" and - result = count(CfgNode parent, string pred, int child | missingCfgChild(parent, pred, child, _)) + result = + count(CfgImpl::ControlFlowNode parent, string pred, int child | + missingCfgChild(parent, pred, child, _) + ) } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll index ee1c0e6ab6b2..08546477924d 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll @@ -1,26 +1,10 @@ private import rust private import codeql.rust.controlflow.internal.generated.CfgNodes -private import codeql.rust.controlflow.internal.ControlFlowGraphImpl as CfgImpl private import codeql.rust.controlflow.ControlFlowGraph -private import codeql.rust.controlflow.BasicBlocks private import codeql.rust.controlflow.CfgNodes private import codeql.rust.internal.CachedStages -private predicate isPostOrder(AstNode n) { - n instanceof Expr - or - n instanceof OrPat - or - n instanceof IdentPat - or - n instanceof LiteralPat - or - n instanceof Param -} - private module CfgNodesInput implements InputSig { - private import codeql.rust.controlflow.ControlFlowGraph as Cfg - class CfgNode = AstCfgNode; private AstNode desugar(AstNode n) { @@ -81,8 +65,26 @@ class MacroCallChildMapping extends ParentAstNode, MacroCall { override predicate relevantChild(AstNode child) { child = this.getMacroCallExpansion() } } -class FormatArgsExprChildMapping extends ParentAstNode, CfgImpl::ExprTrees::FormatArgsExprTree { - override predicate relevantChild(AstNode child) { child = this.getChildNode(_) } +class FormatArgsExprChildMapping extends ParentAstNode, FormatArgsExpr { + override predicate relevantChild(AstNode child) { + child = this.getTemplate() + or + child = this.getAnArg().getExpr() + or + child = + any(FormatTemplateVariableAccess v, Format f | + f = this.getAFormat() and + ( + v.getArgument() = f.getArgumentRef() + or + v.getArgument() = f.getWidthArgument() + or + v.getArgument() = f.getPrecisionArgument() + ) + | + v + ) + } } class AssignmentExprChildMapping extends ParentAstNode, AssignmentExpr { @@ -92,76 +94,10 @@ class AssignmentExprChildMapping extends ParentAstNode, AssignmentExpr { } private class ChildMappingImpl extends ChildMapping { - /** Gets a CFG node for `child`, where `child` is a relevant child node of `parent`. */ - private CfgNode getRelevantChildCfgNode(AstNode parent, AstNode child) { - this.relevantChild(parent, child) and - result = CfgNodesInput::getDesugared(child).getACfgNode() - } - - pragma[nomagic] - private BasicBlock getARelevantBasicBlock(AstNode parent) { - result.getANode().getAstNode() = parent or - result.getANode() = this.getRelevantChildCfgNode(parent, _) - } - - /** - * Holds if CFG node `cfnChild` can reach basic block `bb`, without going - * through an intermediate block that contains a CFG node for `parent` or - * any other relevant child of `parent`. - */ - pragma[nomagic] - predicate childNodeReachesBasicBlock( - AstNode parent, AstNode child, CfgNode cfnChild, BasicBlock bb - ) { - exists(BasicBlock bb0 | - cfnChild = this.getRelevantChildCfgNode(parent, child) and - bb0.getANode() = cfnChild - | - bb = bb0 - or - not bb0.getANode().getAstNode() = parent and - if isPostOrder(parent) then bb = bb0.getASuccessor() else bb = bb0.getAPredecessor() - ) - or - exists(BasicBlock mid | - this.childNodeReachesBasicBlock(parent, child, cfnChild, mid) and - not mid = this.getARelevantBasicBlock(parent) and - if isPostOrder(parent) then bb = mid.getASuccessor() else bb = mid.getAPredecessor() - ) - } - - /** - * Holds if CFG node `cfnChild` can reach CFG node `cfnParent`, without going - * through an intermediate block that contains a CFG node for `parent`. - */ - pragma[nomagic] - predicate childNodeReachesParentNode( - AstNode parent, CfgNode cfnParent, AstNode child, CfgNode cfnChild - ) { - // `cfnChild` can reach `cfnParent` directly - exists(BasicBlock bb | - this.childNodeReachesBasicBlock(parent, child, cfnChild, bb) and - cfnParent.getAstNode() = parent - | - cfnParent = bb.getANode() - or - if isPostOrder(parent) - then cfnParent = bb.getASuccessor().getANode() - else cfnParent = bb.getAPredecessor().getANode() - ) - or - // `cfnChild` can reach `cfnParent` by going via another relevant child - exists(CfgNode cfnOtherChild | - this.childNodeReachesParentNode(parent, cfnParent, _, cfnOtherChild) and - exists(BasicBlock bb | - this.childNodeReachesBasicBlock(parent, child, cfnChild, bb) and - bb.getANode() = cfnOtherChild - ) - ) - } - override predicate hasCfgChild(AstNode parent, AstNode child, AstCfgNode cfn, AstCfgNode cfnChild) { Stages::CfgStage::ref() and - this.childNodeReachesParentNode(parent, cfn, child, cfnChild) + this.relevantChild(parent, child) and + cfn.getAstNode() = CfgNodesInput::getDesugared(parent) and + cfnChild.getAstNode() = CfgNodesInput::getDesugared(child) } } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll b/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll deleted file mode 100644 index 33da4db473eb..000000000000 --- a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll +++ /dev/null @@ -1,231 +0,0 @@ -private import codeql.util.Boolean -private import codeql.rust.controlflow.ControlFlowGraph -private import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl -private import rust - -newtype TCompletion = - TSimpleCompletion() or - TBooleanCompletion(Boolean b) or - TMatchCompletion(Boolean isMatch) or - TBreakCompletion() or - TContinueCompletion() or - TReturnCompletion() - -/** A completion of a statement or an expression. */ -abstract class Completion extends TCompletion { - /** Gets a textual representation of this completion. */ - abstract string toString(); - - predicate isValidForSpecific(AstNode e) { none() } - - predicate isValidFor(AstNode e) { this.isValidForSpecific(e) } - - /** Gets a successor type that matches this completion. */ - abstract SuccessorType getAMatchingSuccessorType(); -} - -/** - * A completion that represents normal evaluation of a statement or an - * expression. - */ -abstract class NormalCompletion extends Completion { } - -/** A simple (normal) completion. */ -class SimpleCompletion extends NormalCompletion, TSimpleCompletion { - override DirectSuccessor getAMatchingSuccessorType() { any() } - - // `SimpleCompletion` is the "default" completion type, thus it is valid for - // any node where there isn't another more specific completion type. - override predicate isValidFor(AstNode e) { not any(Completion c).isValidForSpecific(e) } - - override string toString() { result = "simple" } -} - -/** - * A completion that represents evaluation of an expression, whose value - * determines the successor. - */ -abstract class ConditionalCompletion extends NormalCompletion { - boolean value; - - bindingset[value] - ConditionalCompletion() { any() } - - /** Gets the Boolean value of this conditional completion. */ - final boolean getValue() { result = value } - - final predicate succeeded() { value = true } - - final predicate failed() { value = false } - - /** Gets the dual completion. */ - abstract ConditionalCompletion getDual(); -} - -/** Holds if node `le` has the constant Boolean value `value`. */ -private predicate isBooleanConstant(LiteralExpr le, Boolean value) { - le.getTextValue() = value.toString() -} - -/** - * A completion that represents evaluation of an expression - * with a Boolean value. - */ -class BooleanCompletion extends ConditionalCompletion, TBooleanCompletion { - BooleanCompletion() { this = TBooleanCompletion(value) } - - private predicate isValidForSpecific0(AstNode e) { - e = any(IfExpr c).getCondition() - or - e = any(WhileExpr c).getCondition() - or - any(MatchGuard guard).getCondition() = e - or - e = any(BinaryLogicalOperation blo).getLhs() - or - exists(Expr parent | this.isValidForSpecific0(parent) | - e = parent.(ParenExpr).getExpr() - or - e = parent.(LogicalNotExpr).getExpr() - or - e = parent.(BinaryLogicalOperation).getRhs() - or - e = parent.(IfExpr).getABranch() - or - e = parent.(MatchExpr).getAnArm().getExpr() - or - e = parent.(BlockExpr).getStmtList().getTailExpr() - or - e = any(BreakExpr be | be.getTarget() = parent).getExpr() - ) - } - - override predicate isValidForSpecific(AstNode e) { - this.isValidForSpecific0(e) and - ( - isBooleanConstant(e, value) - or - not isBooleanConstant(e, _) - ) - } - - /** Gets the dual Boolean completion. */ - override BooleanCompletion getDual() { result = TBooleanCompletion(value.booleanNot()) } - - override BooleanSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - override string toString() { result = "boolean(" + value + ")" } -} - -/** - * Holds if `pat` can not _itself_ be the cause of a pattern match failure. This - * does not mean that `pat` is irrefutable, as its children might be the cause - * of a failure. - */ -private predicate cannotCauseMatchFailure(Pat pat) { - pat instanceof RangePat or - pat = any(IdentPat p | p.hasPat() or VariableImpl::variableDecl(_, p.getName(), _)) or - pat instanceof WildcardPat or - pat instanceof RestPat or - pat instanceof RefPat or - pat instanceof TuplePat or - pat instanceof MacroPat -} - -/** - * Holds if `pat` is guaranteed to match at the point in the AST where it occurs - * due to Rust's exhaustiveness checks. - */ -private predicate guaranteedMatchPosition(Pat pat) { - // `let` statements without an `else` branch must match - pat = any(LetStmt let | not let.hasLetElse()).getPat() - or - // `match` expressions must be exhaustive, so last arm must match - pat = any(MatchExpr me).getLastArm().getPat() - or - // parameter patterns must match - pat = any(Param p).getPat() - or - exists(Pat parent | guaranteedMatchPosition(parent) | - // propagate to all children except for or patterns - parent = pat.getParentPat() and not parent instanceof OrPat - or - // for or patterns only the last child inherits the property - parent.(OrPat).getLastPat() = pat - or - // for macro patterns we propagate to the expanded pattern - parent.(MacroPat).getMacroCall().getMacroCallExpansion() = pat - ) -} - -private predicate guaranteedMatch(Pat pat) { - (cannotCauseMatchFailure(pat) or guaranteedMatchPosition(pat)) and - // In `for` loops we use a no-match edge from the pattern to terminate the - // loop, hence we special case and always allow the no-match edge. - not pat = any(ForExpr for).getPat() -} - -/** - * A completion that represents the result of a pattern match. - */ -class MatchCompletion extends TMatchCompletion, ConditionalCompletion { - MatchCompletion() { this = TMatchCompletion(value) } - - override predicate isValidForSpecific(AstNode e) { - e instanceof Pat and - if guaranteedMatch(e) then value = true else any() - or - e instanceof TryExpr and value = true - } - - override MatchingSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - /** Gets the dual match completion. */ - override MatchCompletion getDual() { result = TMatchCompletion(value.booleanNot()) } - - override string toString() { result = "match(" + value + ")" } -} - -/** - * A completion that represents a `break`. - */ -class BreakCompletion extends TBreakCompletion, Completion { - override BreakSuccessor getAMatchingSuccessorType() { any() } - - override predicate isValidForSpecific(AstNode e) { e instanceof BreakExpr } - - override string toString() { result = this.getAMatchingSuccessorType().toString() } -} - -/** - * A completion that represents a `continue`. - */ -class ContinueCompletion extends TContinueCompletion, Completion { - override ContinueSuccessor getAMatchingSuccessorType() { any() } - - override predicate isValidForSpecific(AstNode e) { e instanceof ContinueExpr } - - override string toString() { result = this.getAMatchingSuccessorType().toString() } -} - -/** - * A completion that represents a return. - */ -class ReturnCompletion extends TReturnCompletion, Completion { - override ReturnSuccessor getAMatchingSuccessorType() { any() } - - override predicate isValidForSpecific(AstNode e) { - e instanceof ReturnExpr or e instanceof TryExpr - } - - override string toString() { result = "return" } -} - -/** Hold if `c` represents normal evaluation of a statement or an expression. */ -predicate completionIsNormal(Completion c) { c instanceof NormalCompletion } - -/** Hold if `c` represents simple and normal evaluation of a statement or an expression. */ -predicate completionIsSimple(Completion c) { c instanceof SimpleCompletion } - -/** Holds if `c` is a valid completion for `n`. */ -predicate completionIsValidFor(Completion c, AstNode n) { c.isValidFor(n) } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index 03c00f0bf3dc..a603e9a7caf6 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -1,709 +1,1124 @@ -private import rust -import codeql.controlflow.Cfg -import Completion -private import Scope as Scope -private import codeql.rust.controlflow.ControlFlowGraph as Cfg -private import codeql.rust.elements.internal.generated.Raw -private import codeql.rust.elements.internal.generated.Synth +private import rust as Rust +private import codeql.Locations +private import codeql.controlflow.ControlFlowGraph +private import codeql.controlflow.SuccessorType +private import codeql.rust.controlflow.internal.Scope as Scope +private import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl -private module CfgInput implements InputSig { - private import codeql.rust.internal.CachedStages - private import rust as Rust - private import Completion as C +private module Cfg0 = Make0; - class AstNode = Rust::AstNode; +private module Cfg1 = Make1; - class Completion = C::Completion; +private module Cfg2 = Make2; - predicate completionIsNormal = C::completionIsNormal/1; +private import Cfg0 +private import Cfg1 +private import Cfg2 +import Public - predicate completionIsSimple = C::completionIsSimple/1; +class CfgScope = Ast::Callable; - predicate completionIsValidFor = C::completionIsValidFor/2; - - /** An AST node with an associated control flow graph. */ - class CfgScope = Scope::CfgScope; +/** + * Provides an implementation of the shared control-flow AST signature for Rust. + */ +private module Ast implements AstSig { + /** + * Removes transparent parenthesized AST nodes. + */ + additional AstNode desugar(Rust::AstNode n) { + result = desugar(n.(Rust::ParenExpr).getExpr()) + or + result = desugar(n.(Rust::ParenPat).getPat()) + or + not n instanceof Rust::ParenExpr and + not n instanceof Rust::ParenPat and + result = n + } - CfgScope getCfgScope(AstNode n) { - result = n.getEnclosingCfgScope() and - Stages::CfgStage::ref() + class AstNode extends Rust::AstNode { + AstNode() { + not this instanceof Rust::ParenExpr and + not this instanceof Rust::ParenPat + } } - private class SuccessorType = Cfg::SuccessorType; + private Rust::AstNode runtimeChild(Rust::AstNode parent, int index) { + parent instanceof Rust::Param and + index = 0 and + result = parent.(Rust::Param).getPat() + or + parent instanceof Rust::SelfParam and + index = 0 and + result = parent.(Rust::SelfParam).getName() + or + parent instanceof Rust::ExprStmt and + index = 0 and + result = parent.(Rust::ExprStmt).getExpr() + or + parent instanceof Rust::LetStmt and + ( + index = 0 and result = parent.(Rust::LetStmt).getInitializer() + or + index = 1 and result = parent.(Rust::LetStmt).getPat() + or + index = 2 and result = parent.(Rust::LetStmt).getLetElse().getBlockExpr() + ) + or + parent instanceof Rust::MacroCall and + not parent.getParentNode() instanceof Rust::MacroPat and + index = 0 and + result = parent.(Rust::MacroCall).getMacroCallExpansion() + or + parent instanceof Rust::BlockExpr and + not parent.(Rust::BlockExpr).isAsync() and + result = parent.(Rust::BlockExpr).getStmtList().getStmtOrExpr(index) and + not result instanceof Rust::Const and + not result instanceof Rust::Static + or + parent instanceof Rust::StmtList and + parent.getParentNode() instanceof Rust::AsyncBlockExpr and + result = parent.(Rust::StmtList).getStmtOrExpr(index) and + not result instanceof Rust::Const and + not result instanceof Rust::Static + or + parent instanceof Rust::ArrayExpr and + result = parent.(Rust::ArrayExpr).getExpr(index) + or + parent instanceof Rust::AwaitExpr and + index = 0 and + result = parent.(Rust::AwaitExpr).getExpr() + or + parent instanceof Rust::BecomeExpr and + index = 0 and + result = parent.(Rust::BecomeExpr).getExpr() + or + parent instanceof Rust::BreakExpr and + index = 0 and + result = parent.(Rust::BreakExpr).getExpr() + or + parent instanceof Rust::CallExpr and + ( + index = 0 and result = parent.(Rust::CallExpr).getFunction() + or + result = parent.(Rust::CallExpr).getSyntacticPositionalArgument(index - 1) + ) + or + parent instanceof Rust::InvocationExpr and + not parent instanceof Rust::CallExpr and + ( + index = 0 and result = parent.(Rust::InvocationExpr).getSyntacticReceiver() + or + result = parent.(Rust::InvocationExpr).getSyntacticPositionalArgument(index - 1) + ) + or + parent instanceof Rust::CastExpr and + index = 0 and + result = parent.(Rust::CastExpr).getExpr() + or + parent instanceof Rust::FieldExpr and + index = 0 and + result = parent.(Rust::FieldExpr).getContainer() + or + parent instanceof Rust::IfExpr and + ( + index = 0 and result = parent.(Rust::IfExpr).getCondition() + or + index = 1 and result = parent.(Rust::IfExpr).getThen() + or + index = 2 and result = parent.(Rust::IfExpr).getElse() + ) + or + parent instanceof Rust::FormatArgsExpr and + ( + index = -1 and result = parent.(Rust::FormatArgsExpr).getTemplate() + or + result = parent.(Rust::FormatArgsExpr).getArg(index).getExpr() + or + result = + any(Rust::FormatTemplateVariableAccess v, Rust::Format f, int i, int kind | + f = parent.(Rust::FormatArgsExpr).getFormat(i) and + ( + v.getArgument() = f.getArgumentRef() and kind = 0 + or + v.getArgument() = f.getWidthArgument() and kind = 1 + or + v.getArgument() = f.getPrecisionArgument() and kind = 2 + ) and + index = parent.(Rust::FormatArgsExpr).getNumberOfArgs() + i * 3 + kind + | + v + ) + ) + or + parent instanceof Rust::LetExpr and + ( + index = 0 and result = parent.(Rust::LetExpr).getScrutinee() + or + index = 1 and result = parent.(Rust::LetExpr).getPat() + ) + or + parent instanceof Rust::LoopExpr and + index = 0 and + result = parent.(Rust::LoopExpr).getLoopBody() + or + parent instanceof Rust::WhileExpr and + ( + index = 0 and result = parent.(Rust::WhileExpr).getCondition() + or + index = 1 and result = parent.(Rust::WhileExpr).getLoopBody() + ) + or + parent instanceof Rust::ForExpr and + ( + index = 0 and result = parent.(Rust::ForExpr).getIterable() + or + index = 1 and result = parent.(Rust::ForExpr).getPat() + or + index = 2 and result = parent.(Rust::ForExpr).getLoopBody() + ) + or + parent instanceof Rust::MacroExpr and + index = 0 and + result = parent.(Rust::MacroExpr).getMacroCall() + or + parent instanceof Rust::MatchExpr and + ( + index = 0 and result = parent.(Rust::MatchExpr).getScrutinee() + or + exists(int i | + index = 3 * i + 1 and result = parent.(Rust::MatchExpr).getArm(i).getPat() + or + index = 3 * i + 2 and + result = parent.(Rust::MatchExpr).getArm(i).getGuard().getCondition() + or + index = 3 * i + 3 and result = parent.(Rust::MatchExpr).getArm(i).getExpr() + ) + ) + or + parent instanceof Rust::RangeExpr and + ( + index = 0 and result = parent.(Rust::RangeExpr).getStart() + or + index = 1 and result = parent.(Rust::RangeExpr).getEnd() + ) + or + parent instanceof Rust::StructExpr and + result = parent.(Rust::StructExpr).getStructExprFieldList().getField(index).getExpr() + or + parent instanceof Rust::ReturnExpr and + index = 0 and + result = parent.(Rust::ReturnExpr).getExpr() + or + parent instanceof Rust::TryExpr and + index = 0 and + result = parent.(Rust::TryExpr).getExpr() + or + parent instanceof Rust::TupleExpr and + result = parent.(Rust::TupleExpr).getField(index) + or + parent instanceof Rust::YieldExpr and + index = 0 and + result = parent.(Rust::YieldExpr).getExpr() + or + parent instanceof Rust::YeetExpr and + index = 0 and + result = parent.(Rust::YeetExpr).getExpr() + or + parent instanceof Rust::IdentPat and + ( + index = 0 and result = parent.(Rust::IdentPat).getPat() + or + index = 1 and result = parent.(Rust::IdentPat).getName() + ) + or + parent instanceof Rust::BoxPat and + index = 0 and + result = parent.(Rust::BoxPat).getPat() + or + parent instanceof Rust::DerefPat and + index = 0 and + result = parent.(Rust::DerefPat).getPat() + or + parent instanceof Rust::LiteralPat and + index = 0 and + result = parent.(Rust::LiteralPat).getLiteral() + or + parent instanceof Rust::MacroPat and + index = 0 and + result = parent.(Rust::MacroPat).getMacroCall().getMacroCallExpansion() + or + parent instanceof Rust::OrPat and + result = parent.(Rust::OrPat).getPat(index) + or + parent instanceof Rust::RangePat and + ( + index = 0 and result = parent.(Rust::RangePat).getStart() + or + index = 1 and result = parent.(Rust::RangePat).getEnd() + ) + or + parent instanceof Rust::StructPat and + ( + result = parent.(Rust::StructPat).getStructPatFieldList().getField(index).getPat() + or + index = parent.(Rust::StructPat).getStructPatFieldList().getNumberOfFields() and + result = parent.(Rust::StructPat).getStructPatFieldList().getRestPat() + ) + or + parent instanceof Rust::RefPat and + index = 0 and + result = parent.(Rust::RefPat).getPat() + or + parent instanceof Rust::SlicePat and + result = parent.(Rust::SlicePat).getPat(index) + or + parent instanceof Rust::TuplePat and + result = parent.(Rust::TuplePat).getField(index) + or + parent instanceof Rust::TupleStructPat and + result = parent.(Rust::TupleStructPat).getField(index) + } - /** Gets a successor type that matches completion `c`. */ - SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } + AstNode getChild(AstNode parent, int index) { result = desugar(runtimeChild(parent, index)) } - /** Hold if `t` represents a conditional successor type. */ - predicate successorTypeIsCondition(SuccessorType t) { t instanceof Cfg::BooleanSuccessor } + private Callable getEnclosingCallableImpl(Rust::AstNode node) { + exists(Rust::AstNode parent | parent = node.getParentNode() | + result = parent + or + not parent instanceof Scope::CfgScope and + not node instanceof Rust::Const and + not node instanceof Rust::Static and + result = getEnclosingCallableImpl(parent) + ) + or + ( + node instanceof Rust::Const or + node instanceof Rust::Static + ) and + result.(Rust::SourceFile).getFile() = node.getFile() + } - /** Holds if `first` is first executed when entering `scope`. */ - predicate scopeFirst(CfgScope scope, AstNode first) { scope.scopeFirst(first) } + Callable getEnclosingCallable(AstNode node) { result = getEnclosingCallableImpl(node) } - /** Holds if `scope` is exited when `last` finishes with completion `c`. */ - predicate scopeLast(CfgScope scope, AstNode last, Completion c) { scope.scopeLast(last, c) } + class Callable extends AstNode instanceof Scope::CfgScope { } - private predicate id(Raw::AstNode x, Raw::AstNode y) { x = y } + AstNode callableGetBody(Callable c) { + result = c.(Rust::Callable).getBody() + or + result = c.(Rust::AsyncBlockExpr).getStmtList() + } - private predicate idOfDbAstNode(Raw::AstNode x, int y) = equivalenceRelation(id/2)(x, y) + class Parameter extends AstNode instanceof Rust::ParamBase { + AstNode getPattern() { result = this } - // TODO: does not work if fresh ipa entities (`ipa: on:`) turn out to be first of the block - int idOfAstNode(AstNode node) { idOfDbAstNode(Synth::convertAstNodeToRaw(node), result) } + Expr getDefaultValue() { none() } + } - int idOfCfgScope(CfgScope node) { result = idOfAstNode(node) } -} + Parameter callableGetParameter(Callable c, int index) { + index = 0 and + result = c.(Rust::Callable).getSelfParam() + or + result = c.(Rust::Callable).getParam(index - 1) + } -private module CfgSplittingInput implements SplittingInputSig { - private import Splitting as S + class Stmt extends AstNode { + Stmt() { + this instanceof Rust::Stmt + or + this instanceof Rust::Expr + or + this instanceof Rust::StmtList + } + } - class SplitKindBase = S::TSplitKind; + class LabeledStmt extends Stmt { + LabeledStmt() { none() } - class Split = S::Split; -} + Stmt getStmt() { none() } + } -private module ConditionalCompletionSplittingInput implements - ConditionalCompletionSplittingInputSig -{ - import Splitting::ConditionalCompletionSplitting::ConditionalCompletionSplittingInput -} + class Expr extends AstNode { + Expr() { + this instanceof Rust::Expr + or + this instanceof Rust::Pat + } + } -private module CfgImpl = - MakeWithSplitting; + class BlockStmt extends Stmt { + BlockStmt() { + this instanceof Rust::BlockExpr and + not this.(Rust::BlockExpr).isAsync() + or + this instanceof Rust::StmtList and + this.getParentNode() instanceof Rust::AsyncBlockExpr + } -import CfgImpl + Stmt getStmt(int n) { + result = desugar(this.(Rust::BlockExpr).getStmtList().getStmtOrExpr(n)) + or + result = desugar(this.(Rust::StmtList).getStmtOrExpr(n)) + } -class CallableScopeTree extends StandardTree, PreOrderTree, PostOrderTree, Scope::CallableScope { - override predicate propagatesAbnormal(AstNode child) { none() } + Stmt getLastStmt() { + result = desugar(this.(Rust::BlockExpr).getStmtList().getTailExpr()) + or + result = desugar(this.(Rust::StmtList).getTailExpr()) + } + } - override AstNode getChildNode(int i) { - i = 0 and - result = this.getSelfParam() - or - result = this.getParam(i - 1) - or - i = this.getParamList().getNumberOfParams() + 1 and - result = this.getBody() + class ExprStmt extends Stmt instanceof Rust::ExprStmt { + Expr getExpr() { result = desugar(Rust::ExprStmt.super.getExpr()) } } -} -class ParamTree extends StandardPostOrderTree, Param { - override AstNode getChildNode(int i) { i = 0 and result = this.getPat() } -} + class IfStmt extends Stmt { + IfStmt() { none() } -class ExprStmtTree extends StandardPreOrderTree instanceof ExprStmt { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } -} + Expr getCondition() { none() } -class FormatTemplateVariableAccessTree extends LeafTree, FormatTemplateVariableAccess { } + Stmt getThen() { none() } -class ItemTree extends LeafTree, Item { - ItemTree() { - not this instanceof MacroCall and - not this instanceof Const and - not this instanceof Static and - this = any(StmtList s).getAStatement() + Stmt getElse() { none() } } -} -class LetStmtTree extends PreOrderTree, LetStmt { - final override predicate propagatesAbnormal(AstNode child) { - child = [this.getInitializer(), this.getLetElse().getBlockExpr()] + class LoopStmt extends Stmt instanceof Rust::LoopingExpr { + Stmt getBody() { result = this.(Rust::LoopingExpr).getLoopBody() } } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge to start of initializer. - pred = this and first(this.getInitializer(), succ) and completionIsSimple(c) - or - // Edge to pattern when there is no initializer. - pred = this and - first(this.getPat(), succ) and - completionIsSimple(c) and - not this.hasInitializer() - or - // Edge from end of initializer to pattern. - last(this.getInitializer(), pred, c) and first(this.getPat(), succ) and completionIsNormal(c) - or - // Edge from failed pattern to `else` branch. - last(this.getPat(), pred, c) and - first(this.getLetElse().getBlockExpr(), succ) and - c.(MatchCompletion).failed() + class WhileStmt extends LoopStmt instanceof Rust::WhileExpr { + Expr getCondition() { result = desugar(this.(Rust::WhileExpr).getCondition()) } } - override predicate last(AstNode node, Completion c) { - // Edge out of a successfully matched pattern. - last(this.getPat(), node, c) and c.(MatchCompletion).succeeded() - // NOTE: No edge out of the `else` branch as that is guaranteed to diverge. + class DoStmt extends LoopStmt { + DoStmt() { none() } + + Expr getCondition() { none() } } -} -class MacroCallTree extends StandardPostOrderTree, MacroCall { - MacroCallTree() { not this.getParentNode() instanceof MacroPat } + class UntilStmt extends LoopStmt { + UntilStmt() { none() } - override AstNode getChildNode(int i) { i = 0 and result = this.getMacroCallExpansion() } -} + Expr getCondition() { none() } + } -class MatchArmTree extends ControlFlowTree, MatchArm { - override predicate propagatesAbnormal(AstNode child) { child = this.getExpr() } + class ForStmt extends LoopStmt { + ForStmt() { none() } - override predicate first(AstNode node) { first(this.getPat(), node) } + AstNode getInit(int index) { none() } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge from pattern to guard/arm if match succeeds. - last(this.getPat(), pred, c) and - c.(MatchCompletion).succeeded() and - ( - first(this.getGuard().getCondition(), succ) - or - not this.hasGuard() and first(this.getExpr(), succ) - ) - or - // Edge from guard to arm if the guard succeeds. - last(this.getGuard().getCondition(), pred, c) and - first(this.getExpr(), succ) and - c.(BooleanCompletion).succeeded() - } + Expr getCondition() { none() } - override predicate last(AstNode node, Completion c) { - last(this.getPat(), node, c) and c.(MatchCompletion).failed() - or - last(this.getGuard().getCondition(), node, c) and c.(BooleanCompletion).failed() - or - last(this.getExpr(), node, c) + AstNode getUpdate(int index) { none() } } -} -class NameTree extends LeafTree, Name { } + class ForEachStmt extends LoopStmt { + ForEachStmt() { none() } -class NameRefTree extends LeafTree, NameRef { } + Expr getVariable() { none() } -class SelfParamTree extends StandardPostOrderTree, SelfParam { - override AstNode getChildNode(int i) { i = 0 and result = this.getName() } -} - -class TypeReprTree extends LeafTree instanceof TypeRepr { } + Expr getCollection() { none() } + } -/** - * Provides `ControlFlowTree`s for expressions. - * - * Since expressions construct values, they are modeled in post-order. - */ -module ExprTrees { - class ArrayExprTree extends StandardPostOrderTree, ArrayExpr { - override AstNode getChildNode(int i) { result = this.getExpr(i) } + class BreakStmt extends Stmt { + BreakStmt() { none() } } - class AsmExprTree extends LeafTree instanceof AsmExpr { } + class ContinueStmt extends Stmt instanceof Rust::ContinueExpr { } - class AwaitExprTree extends StandardPostOrderTree instanceof AwaitExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + class GotoStmt extends Stmt { + GotoStmt() { none() } } - // NOTE: `become` is a reserved but unused keyword. - class BecomeExprTree extends StandardPostOrderTree instanceof BecomeExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + class ReturnStmt extends Stmt instanceof Rust::ReturnExpr { + Expr getExpr() { result = desugar(this.(Rust::ReturnExpr).getExpr()) } } - class InvocationExprTree extends StandardPostOrderTree instanceof InvocationExpr { - InvocationExprTree() { - not this instanceof CallExpr and - not this instanceof BinaryLogicalOperation - } + class Throw extends AstNode { + Throw() { none() } - override AstNode getChildNode(int i) { - i = 0 and - result = super.getSyntacticReceiver() - or - result = super.getSyntacticPositionalArgument(i - 1) - } + Expr getExpr() { none() } } - class LogicalOrExprTree extends PostOrderTree, LogicalOrExpr { - final override predicate propagatesAbnormal(AstNode child) { child = this.getAnOperand() } + class TryStmt extends Stmt { + TryStmt() { none() } - override predicate first(AstNode node) { first(this.getLhs(), node) } + AstNode getBody(int index) { none() } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge from lhs to rhs - last(this.getLhs(), pred, c) and - c.(BooleanCompletion).failed() and - first(this.getRhs(), succ) - or - // Edge from lhs to this - last(this.getLhs(), pred, c) and - c.(BooleanCompletion).succeeded() and - succ = this - or - // Edge from rhs to this - last(this.getRhs(), pred, c) and - succ = this and - completionIsNormal(c) - } + CatchClause getCatch(int index) { none() } + + Stmt getFinally() { none() } } - class LogicalAndExprTree extends PostOrderTree, LogicalAndExpr { - final override predicate propagatesAbnormal(AstNode child) { child = this.getAnOperand() } + class CatchClause extends AstNode { + CatchClause() { none() } - override predicate first(AstNode node) { first(this.getLhs(), node) } + AstNode getPattern() { none() } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge from lhs to rhs - last(this.getLhs(), pred, c) and - c.(BooleanCompletion).succeeded() and - first(this.getRhs(), succ) - or - // Edge from lhs to this - last(this.getLhs(), pred, c) and - c.(BooleanCompletion).failed() and - succ = this - or - // Edge from rhs to this - last(this.getRhs(), pred, c) and - succ = this and - completionIsNormal(c) - } - } + AstNode getVariable() { none() } - class AsyncBlockExprTree extends StandardTree, PreOrderTree, PostOrderTree, AsyncBlockExpr { - override AstNode getChildNode(int i) { result = this.getStmtList().getStmtOrExpr(i) } + Expr getCondition() { none() } - override predicate propagatesAbnormal(AstNode child) { none() } + Stmt getBody() { none() } } - class BlockExprTree extends StandardPostOrderTree, BlockExpr { - BlockExprTree() { not this.isAsync() } + class Switch extends AstNode { + Switch() { none() } + + Expr getExpr() { none() } - override AstNode getChildNode(int i) { result = this.getStmtList().getStmtOrExpr(i) } + Case getCase(int index) { none() } - override predicate propagatesAbnormal(AstNode child) { child = this.getChildNode(_) } + Stmt getStmt(int index) { none() } } - class BreakExprTree extends StandardPostOrderTree, BreakExpr { - override AstNode getChildNode(int i) { i = 0 and result = this.getExpr() } + class Case extends AstNode { + Case() { none() } - override predicate last(AstNode last, Completion c) { none() } + AstNode getPattern(int index) { none() } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - super.succ(pred, succ, c) - or - pred = this and c.isValidFor(pred) and succ = this.getTarget() - } - } + Expr getGuard() { none() } - class CallExprTree extends StandardPostOrderTree instanceof CallExpr { - override AstNode getChildNode(int i) { - i = 0 and result = super.getFunction() - or - result = super.getSyntacticPositionalArgument(i - 1) - } + AstNode getBody() { none() } } - class CastExprTree extends StandardPostOrderTree instanceof CastExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + class DefaultCase extends Case { + DefaultCase() { none() } } - class ContinueExprTree extends LeafTree, ContinueExpr { - override predicate last(AstNode last, Completion c) { none() } + class ConditionalExpr extends Expr instanceof Rust::IfExpr { + Expr getCondition() { result = desugar(this.(Rust::IfExpr).getCondition()) } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - pred = this and - c.isValidFor(pred) and - first(this.getTarget().(LoopingExprTree).getLoopContinue(), succ) - } + Expr getThen() { result = desugar(this.(Rust::IfExpr).getThen()) } + + Expr getElse() { result = desugar(this.(Rust::IfExpr).getElse()) } } - class FieldExprTree extends StandardPostOrderTree instanceof FieldExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getContainer() } + class BinaryExpr extends Expr instanceof Rust::BinaryExpr { + Expr getLeftOperand() { result = desugar(this.(Rust::BinaryExpr).getLhs()) } + + Expr getRightOperand() { result = desugar(this.(Rust::BinaryExpr).getRhs()) } } - class IfExprTree extends PostOrderTree instanceof IfExpr { - override predicate first(AstNode node) { first(super.getCondition(), node) } + class LogicalAndExpr extends BinaryExpr instanceof Rust::LogicalAndExpr { } - override predicate propagatesAbnormal(AstNode child) { - child = [super.getCondition(), super.getABranch()] - } + class LogicalOrExpr extends BinaryExpr instanceof Rust::LogicalOrExpr { } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edges from the condition to the branches - last(super.getCondition(), pred, c) and - ( - first(super.getThen(), succ) and c.(ConditionalCompletion).succeeded() - or - first(super.getElse(), succ) and c.(ConditionalCompletion).failed() - or - not super.hasElse() and succ = this and c.(ConditionalCompletion).failed() - ) - or - // An edge from the then branch to the last node - last(super.getThen(), pred, c) and - succ = this and - completionIsNormal(c) - or - // An edge from the else branch to the last node - last(super.getElse(), pred, c) and - succ = this and - completionIsNormal(c) - } + class NullCoalescingExpr extends BinaryExpr { + NullCoalescingExpr() { none() } } - class FormatArgsExprTree extends StandardPostOrderTree, FormatArgsExpr { - override AstNode getChildNode(int i) { - i = -1 and result = this.getTemplate() - or - result = this.getArg(i).getExpr() - or - result = - any(FormatTemplateVariableAccess v, Format f, int index, int kind | - f = this.getFormat(index) and - ( - v.getArgument() = f.getArgumentRef() and kind = 0 - or - v.getArgument() = f.getWidthArgument() and kind = 1 - or - v.getArgument() = f.getPrecisionArgument() and kind = 2 - ) and - i = this.getNumberOfArgs() + index * 3 + kind - | - v - ) - } + class UnaryExpr extends Expr instanceof Rust::PrefixExpr { + Expr getOperand() { result = desugar(this.(Rust::PrefixExpr).getExpr()) } } - class LetExprTree extends StandardPostOrderTree, LetExpr { - override AstNode getChildNode(int i) { - i = 0 and - result = this.getScrutinee() - or - i = 1 and - result = this.getPat() - } - } + class LogicalNotExpr extends UnaryExpr instanceof Rust::LogicalNotExpr { } - class LiteralExprTree extends LeafTree instanceof LiteralExpr { } + class Assignment extends BinaryExpr instanceof Rust::AssignmentOperation { } - class CfgPredExprTree extends LeafTree instanceof CfgPredExpr { } + class AssignExpr extends Assignment instanceof Rust::AssignmentExpr { } - abstract class LoopingExprTree extends PostOrderTree { - override predicate propagatesAbnormal(AstNode child) { child = this.getLoopBody() } + class CompoundAssignment extends Assignment instanceof Rust::CompoundAssignmentExpr { } - abstract BlockExpr getLoopBody(); + class AssignLogicalAndExpr extends CompoundAssignment { + AssignLogicalAndExpr() { none() } + } + + class AssignLogicalOrExpr extends CompoundAssignment { + AssignLogicalOrExpr() { none() } + } - /** - * Gets the node to execute when continuing the loop; either after - * executing the last node in the body or after an explicit `continue`. - */ - abstract AstNode getLoopContinue(); + class AssignNullCoalescingExpr extends CompoundAssignment { + AssignNullCoalescingExpr() { none() } + } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge back to the start for final expression and continue expressions - last(this.getLoopBody(), pred, c) and - completionIsNormal(c) and - first(this.getLoopContinue(), succ) + class BooleanLiteral extends Expr instanceof Rust::BooleanLiteralExpr { + boolean getValue() { + this.(Rust::BooleanLiteralExpr).getTextValue() = "true" and result = true + or + this.(Rust::BooleanLiteralExpr).getTextValue() = "false" and result = false } } - class LoopExprTree extends LoopingExprTree instanceof LoopExpr { - override BlockExpr getLoopBody() { result = LoopExpr.super.getLoopBody() } + class PatternMatchExpr extends Expr { + PatternMatchExpr() { none() } - override AstNode getLoopContinue() { result = this.getLoopBody() } + Expr getExpr() { none() } - override predicate first(AstNode node) { first(this.getLoopBody(), node) } + AstNode getPattern() { none() } } +} - class WhileExprTree extends LoopingExprTree instanceof WhileExpr { - override BlockExpr getLoopBody() { result = WhileExpr.super.getLoopBody() } +/** + * Holds if `pat` cannot itself cause a match failure. + */ +private predicate cannotCauseMatchFailure(Rust::Pat pat) { + pat instanceof Rust::RangePat + or + pat = + any(Rust::IdentPat p | + p.hasPat() or + VariableImpl::variableDecl(_, p.getName(), _) + ) + or + pat instanceof Rust::WildcardPat + or + pat instanceof Rust::RestPat + or + pat instanceof Rust::RefPat + or + pat instanceof Rust::TuplePat + or + pat instanceof Rust::MacroPat +} + +/** + * Holds if `pat` is guaranteed to match at its position in the AST. + */ +private predicate guaranteedMatchPosition(Rust::Pat pat) { + pat = any(Rust::LetStmt let | not let.hasLetElse()).getPat() + or + pat = any(Rust::MatchExpr match).getLastArm().getPat() + or + pat = any(Rust::Param p).getPat() + or + exists(Rust::Pat parent | guaranteedMatchPosition(parent) | + parent = pat.getParentPat() and not parent instanceof Rust::OrPat + or + parent.(Rust::OrPat).getLastPat() = pat + or + parent.(Rust::MacroPat).getMacroCall().getMacroCallExpansion() = pat + ) +} - override AstNode getLoopContinue() { result = super.getCondition() } +private predicate guaranteedMatch(Rust::Pat pat) { + (cannotCauseMatchFailure(pat) or guaranteedMatchPosition(pat)) and + not pat = any(Rust::ForExpr for).getPat() +} - override predicate propagatesAbnormal(AstNode child) { - super.propagatesAbnormal(child) - or - child = super.getCondition() - } +private module Input implements InputSig1, InputSig2 { + private import codeql.util.Void - override predicate first(AstNode node) { first(super.getCondition(), node) } + predicate cfgCachedStageRef() { CfgCachedStage::ref() } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - super.succ(pred, succ, c) - or - last(super.getCondition(), pred, c) and - c.(ConditionalCompletion).succeeded() and - first(this.getLoopBody(), succ) + private newtype TLabel = + TTarget(Rust::Expr target) or + TTargetValue(Rust::Expr target, boolean value) { value = true or value = false } + + class Label extends TLabel { + string toString() { + exists(Rust::Expr target | + this = TTarget(target) and + result = target.toString() + ) or - last(super.getCondition(), pred, c) and - c.(ConditionalCompletion).failed() and - succ = this + exists(Rust::Expr target, boolean value | + this = TTargetValue(target, value) and + result = target.toString() + " [" + value.toString() + "]" + ) } } - class ForExprTree extends LoopingExprTree instanceof ForExpr { - override BlockExpr getLoopBody() { result = ForExpr.super.getLoopBody() } + predicate hasLabel(Ast::AstNode n, Label l) { + l = TTarget(n.(Rust::ContinueExpr).getTarget()) + or + l = TTarget(n.(Rust::LoopingExpr)) + } - override AstNode getLoopContinue() { result = super.getPat() } + class CallableContext = Void; - override predicate propagatesAbnormal(AstNode child) { - super.propagatesAbnormal(child) + private predicate valueContext(Rust::AstNode n, ConditionKind kind) { + kind.isBoolean() and + ( + n = Ast::desugar(any(Rust::IfExpr e).getCondition()) or - child = super.getIterable() - } - - override predicate first(AstNode node) { first(super.getIterable(), node) } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { - super.succ(pred, succ, c) + n = Ast::desugar(any(Rust::WhileExpr e).getCondition()) + or + n = Ast::desugar(any(Rust::MatchGuard g).getCondition()) or - last(super.getIterable(), pred, c) and - first(super.getPat(), succ) and - completionIsNormal(c) + n = Ast::desugar(any(Rust::BinaryLogicalOperation e).getLhs()) + ) + or + exists(Rust::Expr parent | valueContext(parent, kind) | + n = Ast::desugar(parent.(Rust::LogicalNotExpr).getExpr()) or - last(super.getPat(), pred, c) and - c.(MatchCompletion).succeeded() and - first(this.getLoopBody(), succ) + n = Ast::desugar(parent.(Rust::BinaryLogicalOperation).getRhs()) or - last(super.getPat(), pred, c) and - c.(MatchCompletion).failed() and - succ = this - } + n = Ast::desugar(parent.(Rust::IfExpr).getABranch()) + or + n = Ast::desugar(parent.(Rust::MatchExpr).getAnArm().getExpr()) + or + n = Ast::desugar(parent.(Rust::BlockExpr).getStmtList().getTailExpr()) + or + n = Ast::desugar(any(Rust::BreakExpr b | b.getTarget() = parent).getExpr()) + ) } - class MacroExprTree extends StandardPostOrderTree, MacroExpr { - override AstNode getChildNode(int i) { i = 0 and result = this.getMacroCall() } + predicate inConditionalContext(Ast::AstNode n, ConditionKind kind) { + valueContext(n, kind) + or + kind.isMatching() and + ( + n instanceof Rust::Pat + or + n = Ast::desugar(any(Rust::TryExpr e).getExpr()) + ) } - class MatchExprTree extends PostOrderTree instanceof MatchExpr { - override predicate propagatesAbnormal(AstNode child) { - child = [super.getScrutinee(), super.getAnArm().getExpr()] - } - - override predicate first(AstNode node) { first(super.getScrutinee(), node) } + predicate preOrderExpr(Ast::Expr e) { + e instanceof Rust::MatchExpr + or + e instanceof Rust::LetExpr + or + e instanceof Rust::LoopingExpr + or + e instanceof Rust::BreakExpr + or + e instanceof Rust::TryExpr + or + e instanceof Rust::Pat and + not e instanceof Rust::IdentPat and + not e instanceof Rust::LiteralPat + } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge from the scrutinee to the first arm or to the match expression if no arms. - last(super.getScrutinee(), pred, c) and - ( - first(super.getArm(0).getPat(), succ) - or - not exists(super.getArm(0)) and succ = this - ) and - completionIsNormal(c) - or - // Edge from a failed pattern or guard in one arm to the beginning of the next arm. - exists(int i | - ( - last(super.getArm(i).getPat(), pred, c) or - last(super.getArm(i).getGuard().getCondition(), pred, c) - ) and - first(super.getArm(i + 1), succ) and - c.(ConditionalCompletion).failed() - ) - or - // Edge from the end of each arm to the match expression. - last(super.getArm(_).getExpr(), pred, c) and succ = this and completionIsNormal(c) - } + predicate postOrInOrder(Ast::AstNode n) { + n instanceof Rust::ParamBase + or + n instanceof Rust::MacroCall } - class OffsetOfExprTree extends LeafTree instanceof OffsetOfExpr { } + private string breakTag() { result = "[break]" } - class ParenExprTree extends ControlFlowTree, ParenExpr { - private ControlFlowTree expr; + private string breakValueTag(boolean value) { + value = true and result = "[break-true]" + or + value = false and result = "[break-false]" + } - ParenExprTree() { expr = super.getExpr() } + private string tryReturnTag() { result = "[try-return]" } - override predicate propagatesAbnormal(AstNode child) { expr.propagatesAbnormal(child) } + private string patternStartTag() { result = "[pattern-start]" } - override predicate first(AstNode first) { expr.first(first) } + private string emptyMatchTag() { result = "[empty-match]" } - override predicate last(AstNode last, Completion c) { expr.last(last, c) } + private string letElseDivergeTag() { result = "[let-else-diverge]" } - override predicate succ(AstNode pred, AstNode succ, Completion c) { none() } + private predicate conditionalBreak(Rust::BreakExpr b) { + exists(b.getExpr()) and + valueContext(b.getTarget(), any(ConditionKind kind | kind.isBoolean())) } - class PathExprTree extends LeafTree instanceof PathExpr { } - - class RangeExprTree extends StandardPostOrderTree instanceof RangeExpr { - override AstNode getChildNode(int i) { - i = 0 and result = super.getStart() + predicate additionalNode(Ast::AstNode n, string tag, NormalSuccessor t) { + ( + t instanceof DirectSuccessor and + ( + n instanceof Rust::BreakExpr and + ( + conditionalBreak(n) and tag = breakValueTag(_) + or + not conditionalBreak(n) and tag = breakTag() + ) + or + n instanceof Rust::TryExpr and tag = tryReturnTag() + or + n instanceof Rust::MatchExpr and + not exists(n.(Rust::MatchExpr).getAnArm()) and + tag = emptyMatchTag() + or + n = any(Rust::LetStmt let).getLetElse().getBlockExpr() and + tag = letElseDivergeTag() + ) or - i = 1 and result = super.getEnd() - } + n instanceof Rust::Pat and + not n instanceof Rust::OrPat and + exists(getPatternChild(n, _)) and + tag = patternStartTag() and + t.(MatchingSuccessor).getValue() = true + ) } - class StructExprTree extends StandardPostOrderTree instanceof StructExpr { - override AstNode getChildNode(int i) { - result = super.getStructExprFieldList().getField(i).getExpr() - } + private Rust::Pat getPatternChild(Rust::Pat parent, int index) { + parent instanceof Rust::BoxPat and + index = 0 and + result = parent.(Rust::BoxPat).getPat() + or + parent instanceof Rust::DerefPat and + index = 0 and + result = parent.(Rust::DerefPat).getPat() + or + parent instanceof Rust::MacroPat and + index = 0 and + result = parent.(Rust::MacroPat).getMacroCall().getMacroCallExpansion() + or + parent instanceof Rust::OrPat and + result = parent.(Rust::OrPat).getPat(index) + or + parent instanceof Rust::RangePat and + ( + index = 0 and result = parent.(Rust::RangePat).getStart() + or + index = 1 and result = parent.(Rust::RangePat).getEnd() + ) + or + parent instanceof Rust::StructPat and + ( + result = parent.(Rust::StructPat).getStructPatFieldList().getField(index).getPat() + or + index = parent.(Rust::StructPat).getStructPatFieldList().getNumberOfFields() and + result = parent.(Rust::StructPat).getStructPatFieldList().getRestPat() + ) + or + parent instanceof Rust::RefPat and + index = 0 and + result = parent.(Rust::RefPat).getPat() + or + parent instanceof Rust::SlicePat and + result = parent.(Rust::SlicePat).getPat(index) + or + parent instanceof Rust::TuplePat and + result = parent.(Rust::TuplePat).getField(index) + or + parent instanceof Rust::TupleStructPat and + result = parent.(Rust::TupleStructPat).getField(index) } - class ReturnExprTree extends StandardPostOrderTree instanceof ReturnExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + private Rust::Pat getRankedPatternChild(Rust::Pat parent, int childRank) { + result = + rank[childRank](Rust::Pat child, int index | + child = getPatternChild(parent, index) + | + child order by index + ) } - class TryExprTree extends StandardPostOrderTree instanceof TryExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + private predicate isAfterMatch(PreControlFlowNode n, Rust::AstNode ast, boolean value) { + n.isAfterValue(Ast::desugar(ast), any(MatchingSuccessor t | t.getValue() = value)) } - class TupleExprTree extends StandardPostOrderTree instanceof TupleExpr { - override AstNode getChildNode(int i) { result = super.getField(i) } + private predicate parameterStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::ParamBase p, Ast::AstNode child | child = Ast::getChild(p, _) | + n1.isBefore(p) and n2.isBefore(child) + or + p instanceof Rust::Param and + isAfterMatch(n1, child, true) and + n2.isIn(p) + or + p instanceof Rust::SelfParam and + n1.isAfter(child) and + n2.isIn(p) + or + n1.isIn(p) and n2.isAfter(p) + ) } - class UnderscoreExprTree extends LeafTree instanceof UnderscoreExpr { } - - // NOTE: `yield` is a reserved but unused keyword. - class YieldExprTree extends StandardPostOrderTree instanceof YieldExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + private predicate letStmtStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::LetStmt let | + n1.isBefore(let) and + ( + n2.isBefore(Ast::desugar(let.getInitializer())) + or + not let.hasInitializer() and n2.isBefore(Ast::desugar(let.getPat())) + ) + or + n1.isAfter(Ast::desugar(let.getInitializer())) and + n2.isBefore(Ast::desugar(let.getPat())) + or + isAfterMatch(n1, let.getPat(), true) and n2.isAfter(let) + or + isAfterMatch(n1, let.getPat(), false) and + n2.isBefore(Ast::desugar(let.getLetElse().getBlockExpr())) + or + n1.isAfter(Ast::desugar(let.getLetElse().getBlockExpr())) and + n2.isAdditional(let.getLetElse().getBlockExpr(), letElseDivergeTag()) + ) } - // NOTE: `yeet` is experimental and not a part of Rust. - class YeetExprTree extends StandardPostOrderTree instanceof YeetExpr { - override AstNode getChildNode(int i) { i = 0 and result = super.getExpr() } + private predicate letExprStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::LetExpr let | + n1.isBefore(let) and n2.isBefore(Ast::desugar(let.getScrutinee())) + or + n1.isAfter(Ast::desugar(let.getScrutinee())) and + n2.isBefore(Ast::desugar(let.getPat())) + or + isAfterMatch(n1, let.getPat(), true) and n2.isAfterTrue(let) + or + isAfterMatch(n1, let.getPat(), false) and n2.isAfterFalse(let) + ) } -} - -/** - * Provides `ControlFlowTree`s for patterns. - * - * Since patterns destruct values, they are modeled in pre-order, except for - * `LiteralPat`s, `OrPat`s, and `IdentPat`s. - */ -module PatternTrees { - abstract class StandardPatTree extends StandardTree { - abstract Pat getPat(int i); - Pat getPatRanked(int i) { - result = rank[i + 1](Pat pat, int j | pat = this.getPat(j) | pat order by j) - } + private predicate matchArmStart(Rust::MatchExpr match, int index, PreControlFlowNode n) { + n.isBefore(Ast::desugar(match.getArm(index).getPat())) + } - override AstNode getChildNode(int i) { result = this.getPat(i) } + private predicate matchArmBodyStart(Rust::MatchArm arm, PreControlFlowNode n) { + n.isBefore(Ast::desugar(arm.getGuard().getCondition())) + or + not arm.hasGuard() and n.isBefore(Ast::desugar(arm.getExpr())) } - abstract class PreOrderPatTree extends StandardPatTree, StandardPreOrderTree { - override predicate succ(AstNode pred, AstNode succ, Completion c) { - c.(MatchCompletion).succeeded() and + private predicate matchStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::MatchExpr match | + n1.isBefore(match) and n2.isBefore(Ast::desugar(match.getScrutinee())) + or + n1.isAfter(Ast::desugar(match.getScrutinee())) and ( - StandardPatTree.super.succ(pred, succ, c) + matchArmStart(match, 0, n2) or - pred = this and first(this.getFirstChildTree(), succ) and completionIsValidFor(c, this) + not exists(match.getAnArm()) and n2.isAdditional(match, emptyMatchTag()) ) - } - - override predicate last(AstNode node, Completion c) { - super.last(node, c) or - c.(MatchCompletion).failed() and - completionIsValidFor(c, node) and - (node = this or last(this.getPatRanked(_), node, c)) - } + exists(int i, Rust::MatchArm arm | arm = match.getArm(i) | + isAfterMatch(n1, arm.getPat(), true) and matchArmBodyStart(arm, n2) + or + ( + isAfterMatch(n1, arm.getPat(), false) + or + n1.isAfterFalse(Ast::desugar(arm.getGuard().getCondition())) + ) and + matchArmStart(match, i + 1, n2) + or + n1.isAfterTrue(Ast::desugar(arm.getGuard().getCondition())) and + n2.isBefore(Ast::desugar(arm.getExpr())) + or + exists(ConditionalSuccessor t | + n1.isAfterValue(Ast::desugar(arm.getExpr()), t) and + n2.isAfterValue(match, t) + ) + or + not valueContext(match, _) and + n1.isAfter(Ast::desugar(arm.getExpr())) and + n2.isAfter(match) + ) + ) } - abstract class PostOrderPatTree extends StandardPatTree, StandardPostOrderTree { } - - class IdentPatTree extends PostOrderTree, IdentPat { - override predicate first(AstNode node) { - first(this.getPat(), node) - or - not this.hasPat() and node = this.getName() - } - - override predicate last(AstNode node, Completion c) { - super.last(node, c) + private predicate genericPatternStep(Rust::Pat pat, PreControlFlowNode n1, PreControlFlowNode n2) { + not pat instanceof Rust::IdentPat and + not pat instanceof Rust::LiteralPat and + not pat instanceof Rust::OrPat and + ( + n1.isBefore(Ast::desugar(pat)) and + ( + exists(getRankedPatternChild(pat, _)) and + n2.isAdditional(pat, patternStartTag()) + or + not exists(getRankedPatternChild(pat, _)) and isAfterMatch(n2, pat, true) + or + not guaranteedMatch(pat) and isAfterMatch(n2, pat, false) + ) or - last(this.getPat(), node, c) and c.(MatchCompletion).failed() - } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Edge from successful subpattern to name - last(this.getPat(), pred, c) and - first(this.getName(), succ) and - c.(MatchCompletion).succeeded() + n1.isAdditional(pat, patternStartTag()) and + n2.isBefore(Ast::desugar(getRankedPatternChild(pat, 1))) or - // Edge from name to the identifier pattern itself - last(this.getName(), pred, c) and succ = this and completionIsNormal(c) - } - - override predicate propagatesAbnormal(AstNode child) { child = this.getPat() } + exists(int i, Rust::Pat child | child = getRankedPatternChild(pat, i) | + isAfterMatch(n1, child, true) and + ( + n2.isBefore(Ast::desugar(getRankedPatternChild(pat, i + 1))) + or + not exists(getRankedPatternChild(pat, i + 1)) and + isAfterMatch(n2, pat, true) + ) + or + isAfterMatch(n1, child, false) and isAfterMatch(n2, pat, false) + ) + ) } - class BoxPatTree extends PreOrderPatTree, BoxPat { - override Pat getPat(int i) { i = 0 and result = this.getPat() } + private predicate literalPatternStep( + Rust::LiteralPat pat, PreControlFlowNode n1, PreControlFlowNode n2 + ) { + n1.isBefore(pat) and n2.isBefore(Ast::desugar(pat.getLiteral())) + or + n1.isAfter(Ast::desugar(pat.getLiteral())) and n2.isIn(pat) + or + n1.isIn(pat) and isAfterMatch(n2, pat, true) + or + n1.isIn(pat) and not guaranteedMatch(pat) and isAfterMatch(n2, pat, false) } - class DerefPatTree extends PreOrderPatTree, DerefPat { - override Pat getPat(int i) { i = 0 and result = this.getPat() } + private predicate identPatternStep( + Rust::IdentPat pat, PreControlFlowNode n1, PreControlFlowNode n2 + ) { + n1.isBefore(pat) and + ( + n2.isBefore(Ast::desugar(pat.getPat())) + or + not pat.hasPat() and n2.isBefore(Ast::desugar(pat.getName())) + ) + or + isAfterMatch(n1, pat.getPat(), true) and n2.isBefore(Ast::desugar(pat.getName())) + or + isAfterMatch(n1, pat.getPat(), false) and isAfterMatch(n2, pat, false) + or + n1.isAfter(Ast::desugar(pat.getName())) and n2.isIn(pat) + or + n1.isIn(pat) and isAfterMatch(n2, pat, true) + or + n1.isIn(pat) and not guaranteedMatch(pat) and isAfterMatch(n2, pat, false) } - class RestPatTree extends LeafTree, RestPat { } - - class CfgPredPatTree extends LeafTree, CfgPredPat { } - - class LiteralPatTree extends StandardPostOrderTree, LiteralPat { - override AstNode getChildNode(int i) { i = 0 and result = this.getLiteral() } + private predicate orPatternStep(Rust::OrPat pat, PreControlFlowNode n1, PreControlFlowNode n2) { + n1.isBefore(pat) and n2.isBefore(Ast::desugar(getRankedPatternChild(pat, 1))) + or + exists(int i, Rust::Pat child | child = getRankedPatternChild(pat, i) | + isAfterMatch(n1, child, true) and isAfterMatch(n2, pat, true) + or + isAfterMatch(n1, child, false) and + ( + n2.isBefore(Ast::desugar(getRankedPatternChild(pat, i + 1))) + or + not exists(getRankedPatternChild(pat, i + 1)) and + not guaranteedMatch(pat) and + isAfterMatch(n2, pat, false) + ) + ) } - class MacroPatTree extends PreOrderPatTree, MacroPat { - override Pat getPat(int i) { i = 0 and result = this.getMacroCall().getMacroCallExpansion() } + private predicate patternStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::Pat pat | + Ast::desugar(pat) = pat and + ( + genericPatternStep(pat, n1, n2) + or + literalPatternStep(pat, n1, n2) + or + identPatternStep(pat, n1, n2) + or + orPatternStep(pat, n1, n2) + ) + ) } - class OrPatTree extends PostOrderPatTree instanceof OrPat { - override Pat getPat(int i) { result = OrPat.super.getPat(i) } + private string loopHeaderTag() { result = "[LoopHeader]" } - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Failed patterns advance normally between children - c.(MatchCompletion).failed() and super.succ(pred, succ, c) + private predicate loopStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::LoopExpr loop | + n1.isBefore(loop) and n2.isBefore(Ast::desugar(loop.getLoopBody())) or - // Successful pattern step to this - c.(MatchCompletion).succeeded() and succ = this and last(this.getPat(_), pred, c) - } - } - - class ParenPatTree extends ControlFlowTree, ParenPat { - private ControlFlowTree pat; - - ParenPatTree() { pat = this.getPat() } - - override predicate propagatesAbnormal(AstNode child) { pat.propagatesAbnormal(child) } - - override predicate first(AstNode first) { pat.first(first) } - - override predicate last(AstNode last, Completion c) { pat.last(last, c) } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { none() } + n1.isAfter(Ast::desugar(loop.getLoopBody())) and + n2.isAdditional(loop, loopHeaderTag()) + or + n1.isAdditional(loop, loopHeaderTag()) and + n2.isBefore(Ast::desugar(loop.getLoopBody())) + ) + or + exists(Rust::ForExpr for | + n1.isBefore(for) and n2.isBefore(Ast::desugar(for.getIterable())) + or + n1.isAfter(Ast::desugar(for.getIterable())) and + n2.isBefore(Ast::desugar(for.getPat())) + or + isAfterMatch(n1, for.getPat(), true) and + n2.isBefore(Ast::desugar(for.getLoopBody())) + or + isAfterMatch(n1, for.getPat(), false) and n2.isAfter(for) + or + n1.isAfter(Ast::desugar(for.getLoopBody())) and + n2.isAdditional(for, loopHeaderTag()) + or + n1.isAdditional(for, loopHeaderTag()) and + n2.isBefore(Ast::desugar(for.getPat())) + ) } - class PathPatTree extends LeafTree, PathPat { } - - class WildcardPatTree extends LeafTree, WildcardPat { } - - class RangePatTree extends PreOrderPatTree, RangePat { - override Pat getPat(int i) { - i = 0 and result = this.getStart() + private predicate breakStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::BreakExpr break | + n1.isBefore(break) and + ( + n2.isBefore(Ast::desugar(break.getExpr())) + or + not exists(break.getExpr()) and n2.isAdditional(break, breakTag()) + ) or - i = 1 and result = this.getEnd() - } + conditionalBreak(break) and + exists(BooleanSuccessor t | + n1.isAfterValue(Ast::desugar(break.getExpr()), t) and + n2.isAdditional(break, breakValueTag(t.getValue())) + ) + or + not conditionalBreak(break) and + n1.isAfter(Ast::desugar(break.getExpr())) and + n2.isAdditional(break, breakTag()) + ) } - class StructPatTree extends PreOrderPatTree, StructPat { - override Pat getPat(int i) { - result = this.getStructPatFieldList().getField(i).getPat() + private predicate tryStep(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Rust::TryExpr try | + n1.isBefore(try) and n2.isBefore(Ast::desugar(try.getExpr())) or - i = this.getStructPatFieldList().getNumberOfFields() and - result = this.getStructPatFieldList().getRestPat() - } + isAfterMatch(n1, try.getExpr(), true) and n2.isAfter(try) + or + isAfterMatch(n1, try.getExpr(), false) and + n2.isAdditional(try, tryReturnTag()) + ) } - class RefPatTree extends PreOrderPatTree, RefPat { - override Pat getPat(int i) { i = 0 and result = super.getPat() } + predicate beginAbruptCompletion( + Ast::AstNode ast, PreControlFlowNode n, AbruptCompletion c, boolean always + ) { + exists(Rust::BreakExpr break | + ast = break and + c.getSuccessorType() instanceof BreakSuccessor and + always = true and + ( + n.isAdditional(break, breakTag()) and + c.hasLabel(TTarget(break.getTarget())) + or + exists(boolean value | + n.isAdditional(break, breakValueTag(value)) and + c.hasLabel(TTargetValue(break.getTarget(), value)) + ) + ) + ) + or + ast instanceof Rust::TryExpr and + n.isAdditional(ast, tryReturnTag()) and + c.asSimpleAbruptCompletion() instanceof ReturnSuccessor and + always = true + or + ast instanceof Rust::MatchExpr and + n.isAdditional(ast, emptyMatchTag()) and + c.asSimpleAbruptCompletion() instanceof ExceptionSuccessor and + always = true + or + ast = any(Rust::LetStmt let).getLetElse().getBlockExpr() and + n.isAdditional(ast, letElseDivergeTag()) and + c.asSimpleAbruptCompletion() instanceof ExceptionSuccessor and + always = true } - class SlicePatTree extends PreOrderPatTree instanceof SlicePat { - override Pat getPat(int i) { result = SlicePat.super.getPat(i) } + private predicate targetChild(Rust::Expr target, Ast::AstNode child) { + child = Ast::getChild(target, _) } - class TuplePatTree extends PreOrderPatTree, TuplePat { - override Pat getPat(int i) { result = this.getField(i) } + predicate endAbruptCompletion(Ast::AstNode ast, PreControlFlowNode n, AbruptCompletion c) { + exists(Rust::Expr target | + targetChild(target, ast) and + c.getSuccessorType() instanceof BreakSuccessor + | + c.hasLabel(TTarget(target)) and n.isAfter(target) + or + exists(boolean value | + c.hasLabel(TTargetValue(target, value)) and + n.isAfterValue(target, any(BooleanSuccessor t | t.getValue() = value)) + ) + ) } - class TupleStructPatTree extends PreOrderPatTree, TupleStructPat { - override Pat getPat(int i) { result = this.getField(i) } + predicate step(PreControlFlowNode n1, PreControlFlowNode n2) { + parameterStep(n1, n2) + or + letStmtStep(n1, n2) + or + letExprStep(n1, n2) + or + matchStep(n1, n2) + or + patternStep(n1, n2) + or + loopStep(n1, n2) + or + breakStep(n1, n2) + or + tryStep(n1, n2) } - - class ConstBlockPatTree extends LeafTree, ConstBlockPat { } // todo? } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/Scope.qll b/rust/ql/lib/codeql/rust/controlflow/internal/Scope.qll index 3ee1430f556e..33a893cea443 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/Scope.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/Scope.qll @@ -1,59 +1,15 @@ private import rust -private import Completion -private import ControlFlowGraphImpl -private import codeql.rust.elements.internal.generated.ParentChild /** * A control flow graph (CFG) scope. */ -abstract private class CfgScopeImpl extends AstNode { - /** Holds if `first` is executed first when entering `scope`. */ - abstract predicate scopeFirst(AstNode first); - - /** Holds if `scope` is exited when `last` finishes with completion `c`. */ - abstract predicate scopeLast(AstNode last, Completion c); -} - -final class CfgScope = CfgScopeImpl; - -final class AsyncBlockScope extends CfgScopeImpl, AsyncBlockExpr instanceof ExprTrees::AsyncBlockExprTree -{ - override predicate scopeFirst(AstNode first) { first(super.getFirstChildTree(), first) } - - override predicate scopeLast(AstNode last, Completion c) { - last(super.getLastChildTree(), last, c) +final class CfgScope extends AstNode { + CfgScope() { + this instanceof AsyncBlockExpr or - last(super.getChildNode(_), last, c) and - not c instanceof NormalCompletion - } -} - -/** - * A CFG scope for a callable (a function or a closure) with a body. - */ -final class CallableScope extends CfgScopeImpl, Callable { - CallableScope() { - // A function without a body corresponds to a trait method signature and - // should not have a CFG scope. - this.hasBody() and - this.fromSource() // exclude stubs in tests defined using `additionalExternalFile` - } - - override predicate scopeFirst(AstNode first) { - first(this.(CallableScopeTree).getFirstChildTree(), first) + this.(Callable).hasBody() and + this.fromSource() + or + this instanceof SourceFile } - - /** Holds if `scope` is exited when `last` finishes with completion `c`. */ - override predicate scopeLast(AstNode last, Completion c) { last(this.getBody(), last, c) } -} - -/** - * A special scope used to represent the context in which `const`s and - * `static`s are initialized. We do not actually compute a CFG for such - * scopes. - */ -final class SourceFileScope extends CfgScopeImpl, SourceFile { - override predicate scopeFirst(AstNode first) { none() } - - override predicate scopeLast(AstNode last, Completion c) { none() } } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/Splitting.qll b/rust/ql/lib/codeql/rust/controlflow/internal/Splitting.qll deleted file mode 100644 index a91bdeb44528..000000000000 --- a/rust/ql/lib/codeql/rust/controlflow/internal/Splitting.qll +++ /dev/null @@ -1,125 +0,0 @@ -private import rust -private import ControlFlowGraphImpl -private import Scope - -cached -private module Cached { - private import codeql.rust.internal.CachedStages - - cached - newtype TSplitKind = TConditionalCompletionSplitKind() { Stages::CfgStage::ref() } - - cached - newtype TSplit = TConditionalCompletionSplit(ConditionalCompletion c) -} - -import Cached - -/** A split for a control flow node. */ -abstract private class Split_ extends TSplit { - /** Gets a textual representation of this split. */ - abstract string toString(); -} - -final class Split = Split_; - -module ConditionalCompletionSplitting { - /** - * A split for conditional completions. For example, in - * - * ```rust - * if x && !y { - * // ... - * } - * ``` - * - * we record whether `x`, `y`, and `!y` evaluate to `true` or `false`, and restrict - * the edges out of `!y` and `x && !y` accordingly. - */ - class ConditionalCompletionSplit extends Split_, TConditionalCompletionSplit { - ConditionalCompletion completion; - - ConditionalCompletionSplit() { this = TConditionalCompletionSplit(completion) } - - ConditionalCompletion getCompletion() { result = completion } - - override string toString() { result = completion.toString() } - } - - private class ConditionalCompletionSplitKind_ extends SplitKind, TConditionalCompletionSplitKind { - override int getListOrder() { result = 0 } - - override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } - - override string toString() { result = "ConditionalCompletion" } - } - - module ConditionalCompletionSplittingInput { - private import Completion as Comp - - class ConditionalCompletion = Comp::ConditionalCompletion; - - class ConditionalCompletionSplitKind extends ConditionalCompletionSplitKind_, TSplitKind { } - - class ConditionalCompletionSplit = ConditionalCompletionSplitting::ConditionalCompletionSplit; - - bindingset[parent, parentCompletion] - predicate condPropagateExpr( - AstNode parent, ConditionalCompletion parentCompletion, AstNode child, - ConditionalCompletion childCompletion - ) { - child = parent.(LogicalNotExpr).getExpr() and - childCompletion.getDual() = parentCompletion - or - childCompletion = parentCompletion and - ( - child = parent.(BinaryLogicalOperation).getAnOperand() - or - child = parent.(IfExpr).getABranch() - or - child = parent.(MatchExpr).getAnArm().getExpr() - or - child = parent.(BlockExpr).getStmtList().getTailExpr() - or - child = parent.(PatternTrees::PreOrderPatTree).getPat(_) and - childCompletion.(MatchCompletion).failed() - or - child = parent.(PatternTrees::PostOrderPatTree).getPat(_) - ) - or - child = parent.(LetExpr).getPat() and - childCompletion.(MatchCompletion).getValue() = parentCompletion.(BooleanCompletion).getValue() - } - } - - private class ConditionalCompletionSplitImpl extends SplitImplementations::ConditionalCompletionSplitting::ConditionalCompletionSplitImpl - { - /** - * Gets a `break` expression whose target can have a Boolean completion that - * matches this split. - */ - private BreakExpr getABreakExpr(Expr target) { - target = result.getTarget() and - last(target, _, this.getCompletion()) - } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - super.hasEntry(pred, succ, c) - or - succ(pred, succ, c) and - last(succ.(BreakExpr).getExpr(), pred, c) and - succ = this.getABreakExpr(_) and - c = this.getCompletion() - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - super.hasSuccessor(pred, succ, c) - or - this.appliesTo(pred) and - succ(pred, succ, c) and - pred = this.getABreakExpr(succ) - } - } - - int getNextListOrder() { result = 1 } -} diff --git a/rust/ql/lib/codeql/rust/dataflow/Ssa.qll b/rust/ql/lib/codeql/rust/dataflow/Ssa.qll index 52e7d35e3b48..83001bf9f4b1 100644 --- a/rust/ql/lib/codeql/rust/dataflow/Ssa.qll +++ b/rust/ql/lib/codeql/rust/dataflow/Ssa.qll @@ -9,7 +9,6 @@ module Ssa { private import rust private import codeql.rust.controlflow.BasicBlocks private import codeql.rust.controlflow.ControlFlowGraph - private import codeql.rust.controlflow.internal.ControlFlowGraphImpl as CfgImpl private import internal.SsaImpl as SsaImpl class Variable = SsaImpl::SsaInput::SourceVariable; @@ -269,20 +268,7 @@ module Ssa { inp = SsaImpl::phiHasInputFromBlock(this, bb) } - private string getSplitString() { - result = this.getBasicBlock().getFirstNode().(CfgImpl::AstCfgNode).getSplitsString() - } - - override string toString() { - exists(string prefix | - prefix = "[" + this.getSplitString() + "] " - or - not exists(this.getSplitString()) and - prefix = "" - | - result = prefix + SsaImpl::PhiDefinition.super.toString() - ) - } + override string toString() { result = SsaImpl::PhiDefinition.super.toString() } /* * The location of a phi definition is the same as the location of the first node diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll index a21552cb3355..a9851d127fe8 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll @@ -1,7 +1,6 @@ import codeql.rust.dataflow.DataFlow::DataFlow as DataFlow private import rust private import codeql.rust.controlflow.ControlFlowGraph -private import codeql.rust.controlflow.internal.Splitting private import codeql.rust.controlflow.CfgNodes as CfgNodes private import codeql.rust.dataflow.internal.DataFlowImpl private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 60ec0fca820f..dce74df28352 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -252,7 +252,7 @@ class LambdaCallKind = Unit; predicate lambdaCreationExpr(Expr creation) { creation instanceof ClosureExpr or - creation instanceof Scope::AsyncBlockScope + creation instanceof AsyncBlockExpr } /** @@ -1076,7 +1076,7 @@ module VariableCapture { } class Expr extends AstNode { - predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { this = bb.getNode(i).getAstNode() } + predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { bb.getNode(i).injects(this) } } class VariableWrite extends Expr { diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll index 58932fc2ae46..ae3bc68a1a78 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll @@ -158,7 +158,11 @@ module Input2 implements Impl::Private::InputSig2 { exists(Callable c | sc = Impl::Private::SummaryComponent::return(_) and c = getCallable(this) and - result.getACfgNode().getASuccessor() instanceof AnnotatedExitCfgNode and + ( + result.getACfgNode().getASuccessor() instanceof AnnotatedExitCfgNode + or + result = c.getBody() + ) and result.getEnclosingCfgScope() = c ) } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index b82c0f9221a1..04780ea42ac4 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -127,10 +127,6 @@ abstract class AstNodeNode extends Node { /** * A node in the data flow graph that corresponds to an expression in the * AST. - * - * Note that because of control flow splitting, one `Expr` may correspond - * to multiple `ExprNode`s, just like it may correspond to multiple - * `ControlFlow::Node`s. */ class ExprNode extends AstNodeNode, TExprNode { override Expr n; @@ -473,7 +469,13 @@ abstract class ReturnNode extends Node { } final class ExprReturnNode extends ExprNode, ReturnNode { - ExprReturnNode() { n.getACfgNode().getASuccessor() instanceof AnnotatedExitCfgNode } + ExprReturnNode() { + n.getACfgNode().getASuccessor() instanceof AnnotatedExitCfgNode + or + n = any(Callable callable).getBody() + or + n = any(AsyncBlockExpr block).getStmtList().getTailExpr() + } override ReturnKind getKind() { result = TNormalReturnKind() } } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll index 874126f6a08c..67fcf74933d8 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll @@ -3,7 +3,6 @@ private import codeql.rust.controlflow.BasicBlocks as BasicBlocks private import BasicBlocks private import codeql.rust.controlflow.ControlFlowGraph as Cfg private import Cfg -private import codeql.rust.controlflow.internal.ControlFlowGraphImpl as ControlFlowGraphImpl private import codeql.ssa.Ssa as SsaImplCommon /** @@ -37,7 +36,7 @@ predicate variableWrite(AstNode write, AstNode access, Variable v) { } private predicate variableReadCertain(BasicBlock bb, int i, VariableAccess va, Variable v) { - bb.getNode(i).getAstNode() = va and + bb.getNode(i).injects(va) and va = v.getAnAccess() and ( va instanceof VariableReadAccess @@ -66,7 +65,7 @@ module SsaInput implements SsaImplCommon::InputSig { ( capturedCallWrite(_, bb, i, v) or - mutablyBorrows(bb.getNode(i).getAstNode(), v) + exists(Expr e | bb.getNode(i).injects(e) and mutablyBorrows(e, v)) ) and certain = false } @@ -123,7 +122,7 @@ private predicate hasVariableReadWithCapturedWrite( } private VariableAccess getACapturedVariableAccess(BasicBlock bb, Variable v) { - result = bb.getANode().getAstNode() and + bb.getANode().injects(result) and result.isCapture() and result.getVariable() = v } @@ -168,7 +167,7 @@ private predicate capturedCallRead(Expr call, BasicBlock bb, int i, Variable v) variableWriteInOuterScope(bb, any(int j | j < i), v, scope) or variableWriteInOuterScope(bb.getImmediateDominator+(), _, v, scope) ) and - call = bb.getNode(i).getAstNode() + bb.getNode(i).injects(call) ) } @@ -178,7 +177,7 @@ private predicate capturedCallRead(Expr call, BasicBlock bb, int i, Variable v) */ predicate capturedCallWrite(Expr call, BasicBlock bb, int i, Variable v) { isControlFlowJump(call) and - call = bb.getNode(i).getAstNode() and + bb.getNode(i).injects(call) and exists(Cfg::CfgScope scope | hasVariableReadWithCapturedWrite(bb, any(int j | j > i), v, scope) or @@ -224,6 +223,7 @@ private module Cached { cached predicate variableWriteActual(BasicBlock bb, int i, Variable v, CfgNode write) { bb.getNode(i) = write and + write.injects(write.getAstNode()) and variableWrite(write.getAstNode(), _, v) } @@ -360,10 +360,11 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu } predicate allowFlowIntoUncertainDef(UncertainWriteDefinition def) { - exists(Variable v, BasicBlock bb, int i | + exists(Variable v, BasicBlock bb, int i, Expr e | def.definesAt(v, bb, i) and - mutablyBorrows(bb.getNode(i).getAstNode(), v) and - isArg(_, bb.getNode(i).getAstNode()) + bb.getNode(i).injects(e) and + mutablyBorrows(e, v) and + isArg(_, e) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll index 0c9d736cc57c..54a3c0ecd34d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll @@ -98,36 +98,7 @@ module Impl { */ predicate isFromMacroExpansion() { ElementImpl::MacroExpansion::isFromMacroExpansion(this) } - /** - * Gets a control flow node for this AST node, if any. - * - * Note that because of _control flow splitting_, one `AstNode` node may correspond - * to multiple `CfgNode`s. Example: - * - * ```rust - * if a && b { - * // ... - * } - * ``` - * - * The CFG for the condition above looks like - * - * ```mermaid - * flowchart TD - * 1["a"] - * 2["b"] - * 3["[false] a && b"] - * 4["[true] a && b"] - * - * 1 -- false --> 3 - * 1 -- true --> 2 - * 2 -- false --> 3 - * 2 -- true --> 4 - * ``` - * - * That is, the AST node for `a && b` corresponds to _two_ CFG nodes (it is - * split into two). - */ - CfgNode getACfgNode() { this = result.getAstNode() } + /** Gets the control flow node that uniquely represents this AST node, if any. */ + CfgNode getACfgNode() { result.injects(this) } } } diff --git a/rust/ql/lib/codeql/rust/internal/CachedStages.qll b/rust/ql/lib/codeql/rust/internal/CachedStages.qll index 020cf83188e7..89e73c353369 100644 --- a/rust/ql/lib/codeql/rust/internal/CachedStages.qll +++ b/rust/ql/lib/codeql/rust/internal/CachedStages.qll @@ -66,7 +66,6 @@ module Stages { */ cached module CfgStage { - private import codeql.rust.controlflow.internal.Splitting private import codeql.rust.controlflow.internal.ControlFlowGraphImpl private import codeql.rust.controlflow.CfgNodes @@ -86,8 +85,6 @@ module Stages { predicate backref() { 1 = 1 or - exists(TConditionalCompletionSplitKind()) - or exists(AstCfgNode n) or exists(CallExprCfgNode n | exists(n.getFunction())) diff --git a/rust/ql/lib/codeql/rust/security/InsecureCookieExtensions.qll b/rust/ql/lib/codeql/rust/security/InsecureCookieExtensions.qll index bd74dcb8728b..17e4c125f941 100644 --- a/rust/ql/lib/codeql/rust/security/InsecureCookieExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/InsecureCookieExtensions.qll @@ -114,7 +114,7 @@ module InsecureCookie { exists(BasicBlock bb, int i | // associated SSA node node.(SsaNode).asDefinition().definesAt(_, bb, i) and - call.getReceiver() = bb.getNode(i).getAstNode() + bb.getNode(i).injects(call.getReceiver()) ) ) ) diff --git a/rust/ql/lib/ide-contextual-queries/PrintCfg.ql b/rust/ql/lib/ide-contextual-queries/PrintCfg.ql index e7b25ea8df8e..a285168303e4 100644 --- a/rust/ql/lib/ide-contextual-queries/PrintCfg.ql +++ b/rust/ql/lib/ide-contextual-queries/PrintCfg.ql @@ -8,7 +8,6 @@ */ private import codeql.files.FileSystem -private import codeql.rust.controlflow.internal.ControlFlowGraphImpl private import codeql.rust.controlflow.ControlFlowGraph /** @@ -32,7 +31,7 @@ external int selectedSourceColumn(); private predicate selectedSourceColumnAlias = selectedSourceColumn/0; -private module ViewCfgQueryInput implements ViewCfgQueryInputSig { +private module ViewCfgQueryInput implements ControlFlow::ViewCfgQueryInputSig { predicate selectedSourceFile = selectedSourceFileAlias/0; predicate selectedSourceLine = selectedSourceLineAlias/0; @@ -47,4 +46,4 @@ private module ViewCfgQueryInput implements ViewCfgQueryInputSig { } } -import ViewCfgQuery +import ControlFlow::ViewCfgQuery diff --git a/rust/ql/src/queries/unusedentities/UnreachableCode.ql b/rust/ql/src/queries/unusedentities/UnreachableCode.ql index bb9092fb5703..4d4fb6254215 100644 --- a/rust/ql/src/queries/unusedentities/UnreachableCode.ql +++ b/rust/ql/src/queries/unusedentities/UnreachableCode.ql @@ -11,68 +11,117 @@ import rust import codeql.rust.controlflow.ControlFlowGraph -import codeql.rust.controlflow.internal.ControlFlowGraphImpl as ControlFlowGraphImpl /** - * Successor relation that includes unreachable AST nodes. + * Gets the AST node represented by `n`, ignoring transparent parentheses. */ -private predicate succ(AstNode a, AstNode b) { - exists(ControlFlowGraphImpl::ControlFlowTree cft | cft.succ(a, b, _)) -} - -/** - * Gets a node we'd prefer not to report as unreachable. These will be removed - * from the AST for the purposes of this query, with successor links being - * made across them where appropriate. - */ -predicate hiddenNode(AstNode n) { - // isolated node (not intended to be part of the CFG) - not succ(n, _) and - not succ(_, n) +private AstNode desugar(AstNode n) { + result = desugar(n.(ParenExpr).getExpr()) or - n instanceof ControlFlowGraphImpl::PostOrderTree and // location is counter-intuitive - not n instanceof MacroExpr + result = desugar(n.(ParenPat).getPat()) or - n.isFromMacroExpansion() + not n instanceof ParenExpr and + not n instanceof ParenPat and + result = n } /** - * Successor relation for edges out of `hiddenNode`s. + * Holds if `n` has a node in the reachable control-flow graph. + * + * The shared control-flow library only creates nodes for reachable code. */ -private predicate succHidden(AstNode a, AstNode b) { - hiddenNode(a) and - succ(a, b) +private predicate reachable(AstNode n) { any(CfgNode cfg).getAstNode() = desugar(n) } + +/** Holds if normal execution of `n` reaches its after-node. */ +private predicate reachesAfter(AstNode n) { any(CfgNode cfg).isAfter(desugar(n)) } + +/** Holds if `n` is a direct element of a statement list. */ +private predicate statementListElement(AstNode n) { n = any(StmtList list).getStmtOrExpr(_) } + +/** Holds if `n` is a statement-list element that executes at runtime. */ +private predicate runtimeStatementListElement(AstNode n) { + statementListElement(n) and + not n instanceof Const and + not n instanceof Static +} + +/** Gets the runtime statement-list element immediately preceding `n`, if any. */ +private AstNode getPreviousRuntimeStatementListElement(AstNode n) { + exists(StmtList list, int i | + n = list.getStmtOrExpr(i) and + ( + result = list.getStmtOrExpr(i - 1) and runtimeStatementListElement(result) + or + not runtimeStatementListElement(list.getStmtOrExpr(i - 1)) and + result = getPreviousRuntimeStatementListElement(list.getStmtOrExpr(i - 1)) + ) + ) } /** - * Successor relation that removes / links over `hiddenNode`s. + * Holds if `n` is an `if` expression, possibly wrapped in an expression + * statement, with an unreachable branch. */ -private predicate succWithHiding(AstNode a, AstNode b) { - exists(AstNode mid | - not hiddenNode(a) and - succ(a, mid) and - succHidden*(mid, b) and - not hiddenNode(b) +private predicate hasUnreachableIfBranch(AstNode n) { + exists(IfExpr ifExpr, AstNode child | + ( + ifExpr = n + or + ifExpr = n.(ExprStmt).getExpr() + ) and + statementListElement(child) and + child.getParentNode+() = ifExpr and + not reachable(child) ) } /** - * An AST node that is reachable. + * Holds if `n` is the first unreachable element in a run of unreachable + * statement-list elements. */ -predicate reachable(AstNode n) { n = any(CfgNode cfn).getAstNode() } +private predicate firstUnreachableStatementListElement(AstNode n) { + runtimeStatementListElement(n) and + not reachable(n) and + ( + not exists(getPreviousRuntimeStatementListElement(n)) + or + reachesAfter(getPreviousRuntimeStatementListElement(n)) + or + reachable(getPreviousRuntimeStatementListElement(n)) and + not hasUnreachableIfBranch(getPreviousRuntimeStatementListElement(n)) + ) +} /** - * Holds if `n` is an AST node that's unreachable, and any predecessors - * of it are reachable (to avoid duplicate results). + * Holds if `macro` is an unreachable macro expression inside a reachable + * statement-list element. This captures unreachable right-hand sides of + * short-circuiting expressions without reporting every unreachable subexpression. */ +private predicate unreachableNestedMacro(MacroExpr macro) { + not statementListElement(macro) and + not reachable(macro) and + exists(AstNode enclosing | + statementListElement(enclosing) and + macro.getParentNode*() = enclosing and + reachable(enclosing) + ) and + not exists(AstNode enclosing | + statementListElement(enclosing) and + macro.getParentNode*() = enclosing and + not reachable(enclosing) + ) +} + +/** Holds if `n` is the first useful AST node to report as unreachable. */ private predicate firstUnreachable(AstNode n) { - not reachable(n) and - not hiddenNode(n) and - forall(AstNode pred | succWithHiding(pred, n) | reachable(pred)) + firstUnreachableStatementListElement(n) + or + n instanceof MacroExpr and unreachableNestedMacro(n) } from AstNode n where firstUnreachable(n) and + not n.isFromMacroExpansion() and exists(n.getFile().getRelativePath()) // in source select n, "This code is never reached." diff --git a/rust/ql/test/library-tests/controlflow-unstable/Cfg.expected b/rust/ql/test/library-tests/controlflow-unstable/Cfg.expected index 38fc5fe08733..5954f9d1f439 100644 --- a/rust/ql/test/library-tests/controlflow-unstable/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow-unstable/Cfg.expected @@ -1,62 +1,114 @@ edges -| test.rs:5:5:11:5 | enter fn test_and_if_let | test.rs:5:24:5:24 | a | | -| test.rs:5:5:11:5 | exit fn test_and_if_let (normal) | test.rs:5:5:11:5 | exit fn test_and_if_let | | +| test.rs:5:5:11:5 | Entry | test.rs:5:24:5:30 | Before ...: bool | | +| test.rs:5:5:11:5 | Normal Exit | test.rs:5:5:11:5 | Exit | | +| test.rs:5:24:5:24 | After a [match] | test.rs:5:24:5:30 | ...: bool | | +| test.rs:5:24:5:24 | Before a | test.rs:5:24:5:24 | a | | +| test.rs:5:24:5:24 | a | test.rs:5:24:5:24 | After a [match] | match | | test.rs:5:24:5:24 | a | test.rs:5:24:5:24 | a | | -| test.rs:5:24:5:24 | a | test.rs:5:24:5:30 | ...: bool | match | -| test.rs:5:24:5:30 | ...: bool | test.rs:5:33:5:33 | b | | +| test.rs:5:24:5:30 | ...: bool | test.rs:5:24:5:30 | After ...: bool | | +| test.rs:5:24:5:30 | After ...: bool | test.rs:5:33:5:47 | Before ...: Option::<...> | | +| test.rs:5:24:5:30 | Before ...: bool | test.rs:5:24:5:24 | Before a | | +| test.rs:5:33:5:33 | After b [match] | test.rs:5:33:5:47 | ...: Option::<...> | | +| test.rs:5:33:5:33 | Before b | test.rs:5:33:5:33 | b | | +| test.rs:5:33:5:33 | b | test.rs:5:33:5:33 | After b [match] | match | | test.rs:5:33:5:33 | b | test.rs:5:33:5:33 | b | | -| test.rs:5:33:5:33 | b | test.rs:5:33:5:47 | ...: Option::<...> | match | -| test.rs:5:33:5:47 | ...: Option::<...> | test.rs:5:50:5:50 | c | | +| test.rs:5:33:5:47 | ...: Option::<...> | test.rs:5:33:5:47 | After ...: Option::<...> | | +| test.rs:5:33:5:47 | After ...: Option::<...> | test.rs:5:50:5:56 | Before ...: bool | | +| test.rs:5:33:5:47 | Before ...: Option::<...> | test.rs:5:33:5:33 | Before b | | +| test.rs:5:50:5:50 | After c [match] | test.rs:5:50:5:56 | ...: bool | | +| test.rs:5:50:5:50 | Before c | test.rs:5:50:5:50 | c | | +| test.rs:5:50:5:50 | c | test.rs:5:50:5:50 | After c [match] | match | | test.rs:5:50:5:50 | c | test.rs:5:50:5:50 | c | | -| test.rs:5:50:5:50 | c | test.rs:5:50:5:56 | ...: bool | match | -| test.rs:5:50:5:56 | ...: bool | test.rs:6:12:6:12 | a | | -| test.rs:5:67:11:5 | { ... } | test.rs:5:5:11:5 | exit fn test_and_if_let (normal) | | -| test.rs:6:9:10:9 | if ... {...} else {...} | test.rs:5:67:11:5 | { ... } | | -| test.rs:6:12:6:12 | a | test.rs:6:12:6:31 | [boolean(false)] ... && ... | false | -| test.rs:6:12:6:12 | a | test.rs:6:31:6:31 | b | true | -| test.rs:6:12:6:31 | [boolean(false)] ... && ... | test.rs:9:13:9:17 | false | false | -| test.rs:6:12:6:31 | [boolean(true)] ... && ... | test.rs:7:13:7:13 | d | true | -| test.rs:6:17:6:31 | [boolean(false)] let ... = b | test.rs:6:12:6:31 | [boolean(false)] ... && ... | false | -| test.rs:6:17:6:31 | [boolean(true)] let ... = b | test.rs:6:12:6:31 | [boolean(true)] ... && ... | true | -| test.rs:6:21:6:27 | Some(...) | test.rs:6:17:6:31 | [boolean(false)] let ... = b | no-match | -| test.rs:6:21:6:27 | Some(...) | test.rs:6:26:6:26 | d | match | -| test.rs:6:26:6:26 | d | test.rs:6:17:6:31 | [boolean(true)] let ... = b | match | +| test.rs:5:50:5:56 | ...: bool | test.rs:5:50:5:56 | After ...: bool | | +| test.rs:5:50:5:56 | After ...: bool | test.rs:5:67:11:5 | { ... } | | +| test.rs:5:50:5:56 | Before ...: bool | test.rs:5:50:5:50 | Before c | | +| test.rs:5:67:11:5 | After { ... } | test.rs:5:5:11:5 | Normal Exit | | +| test.rs:5:67:11:5 | { ... } | test.rs:6:9:10:9 | if ... {...} else {...} | | +| test.rs:6:9:10:9 | After if ... {...} else {...} | test.rs:5:67:11:5 | After { ... } | | +| test.rs:6:9:10:9 | if ... {...} else {...} | test.rs:6:12:6:31 | ... && ... | | +| test.rs:6:12:6:12 | After a [false] | test.rs:6:12:6:31 | After ... && ... [false] | false | +| test.rs:6:12:6:12 | After a [true] | test.rs:6:17:6:31 | let ... = b | | +| test.rs:6:12:6:12 | a | test.rs:6:12:6:12 | After a [false] | false | +| test.rs:6:12:6:12 | a | test.rs:6:12:6:12 | After a [true] | true | +| test.rs:6:12:6:31 | ... && ... | test.rs:6:12:6:12 | a | | +| test.rs:6:12:6:31 | After ... && ... [false] | test.rs:8:16:10:9 | { ... } | | +| test.rs:6:12:6:31 | After ... && ... [true] | test.rs:6:33:8:9 | { ... } | | +| test.rs:6:17:6:31 | After let ... = b [false] | test.rs:6:12:6:31 | After ... && ... [false] | false | +| test.rs:6:17:6:31 | After let ... = b [true] | test.rs:6:12:6:31 | After ... && ... [true] | true | +| test.rs:6:17:6:31 | let ... = b | test.rs:6:31:6:31 | b | | +| test.rs:6:21:6:27 | After Some(...) [match] | test.rs:6:17:6:31 | After let ... = b [true] | true | +| test.rs:6:21:6:27 | After Some(...) [no-match] | test.rs:6:17:6:31 | After let ... = b [false] | false | +| test.rs:6:21:6:27 | Some(...) | test.rs:6:21:6:27 | After Some(...) [no-match] | no-match | +| test.rs:6:21:6:27 | Some(...) | test.rs:6:21:6:27 | [pattern-start] Some(...) | match | +| test.rs:6:21:6:27 | [pattern-start] Some(...) | test.rs:6:26:6:26 | Before d | | +| test.rs:6:26:6:26 | After d [match] | test.rs:6:21:6:27 | After Some(...) [match] | match | +| test.rs:6:26:6:26 | Before d | test.rs:6:26:6:26 | d | | +| test.rs:6:26:6:26 | d | test.rs:6:26:6:26 | After d [match] | match | | test.rs:6:26:6:26 | d | test.rs:6:26:6:26 | d | | | test.rs:6:31:6:31 | b | test.rs:6:21:6:27 | Some(...) | | -| test.rs:6:33:8:9 | { ... } | test.rs:6:9:10:9 | if ... {...} else {...} | | -| test.rs:7:13:7:13 | d | test.rs:6:33:8:9 | { ... } | | -| test.rs:8:16:10:9 | { ... } | test.rs:6:9:10:9 | if ... {...} else {...} | | -| test.rs:9:13:9:17 | false | test.rs:8:16:10:9 | { ... } | | -| test.rs:13:5:21:5 | enter fn test_and_if_let2 | test.rs:13:25:13:25 | a | | -| test.rs:13:5:21:5 | exit fn test_and_if_let2 (normal) | test.rs:13:5:21:5 | exit fn test_and_if_let2 | | +| test.rs:6:33:8:9 | After { ... } | test.rs:6:9:10:9 | After if ... {...} else {...} | | +| test.rs:6:33:8:9 | { ... } | test.rs:7:13:7:13 | d | | +| test.rs:7:13:7:13 | d | test.rs:6:33:8:9 | After { ... } | | +| test.rs:8:16:10:9 | After { ... } | test.rs:6:9:10:9 | After if ... {...} else {...} | | +| test.rs:8:16:10:9 | { ... } | test.rs:9:13:9:17 | false | | +| test.rs:9:13:9:17 | false | test.rs:8:16:10:9 | After { ... } | | +| test.rs:13:5:21:5 | Entry | test.rs:13:25:13:31 | Before ...: bool | | +| test.rs:13:5:21:5 | Normal Exit | test.rs:13:5:21:5 | Exit | | +| test.rs:13:25:13:25 | After a [match] | test.rs:13:25:13:31 | ...: bool | | +| test.rs:13:25:13:25 | Before a | test.rs:13:25:13:25 | a | | +| test.rs:13:25:13:25 | a | test.rs:13:25:13:25 | After a [match] | match | | test.rs:13:25:13:25 | a | test.rs:13:25:13:25 | a | | -| test.rs:13:25:13:25 | a | test.rs:13:25:13:31 | ...: bool | match | -| test.rs:13:25:13:31 | ...: bool | test.rs:13:34:13:34 | b | | +| test.rs:13:25:13:31 | ...: bool | test.rs:13:25:13:31 | After ...: bool | | +| test.rs:13:25:13:31 | After ...: bool | test.rs:13:34:13:39 | Before ...: i64 | | +| test.rs:13:25:13:31 | Before ...: bool | test.rs:13:25:13:25 | Before a | | +| test.rs:13:34:13:34 | After b [match] | test.rs:13:34:13:39 | ...: i64 | | +| test.rs:13:34:13:34 | Before b | test.rs:13:34:13:34 | b | | +| test.rs:13:34:13:34 | b | test.rs:13:34:13:34 | After b [match] | match | | test.rs:13:34:13:34 | b | test.rs:13:34:13:34 | b | | -| test.rs:13:34:13:34 | b | test.rs:13:34:13:39 | ...: i64 | match | -| test.rs:13:34:13:39 | ...: i64 | test.rs:13:42:13:42 | c | | +| test.rs:13:34:13:39 | ...: i64 | test.rs:13:34:13:39 | After ...: i64 | | +| test.rs:13:34:13:39 | After ...: i64 | test.rs:13:42:13:48 | Before ...: bool | | +| test.rs:13:34:13:39 | Before ...: i64 | test.rs:13:34:13:34 | Before b | | +| test.rs:13:42:13:42 | After c [match] | test.rs:13:42:13:48 | ...: bool | | +| test.rs:13:42:13:42 | Before c | test.rs:13:42:13:42 | c | | +| test.rs:13:42:13:42 | c | test.rs:13:42:13:42 | After c [match] | match | | test.rs:13:42:13:42 | c | test.rs:13:42:13:42 | c | | -| test.rs:13:42:13:42 | c | test.rs:13:42:13:48 | ...: bool | match | -| test.rs:13:42:13:48 | ...: bool | test.rs:14:12:14:12 | a | | -| test.rs:13:59:21:5 | { ... } | test.rs:13:5:21:5 | exit fn test_and_if_let2 (normal) | | -| test.rs:14:9:20:9 | if ... {...} else {...} | test.rs:13:59:21:5 | { ... } | | -| test.rs:14:12:14:12 | a | test.rs:14:12:14:25 | [boolean(false)] ... && ... | false | -| test.rs:14:12:14:12 | a | test.rs:14:25:14:25 | b | true | -| test.rs:14:12:14:25 | [boolean(false)] ... && ... | test.rs:14:12:15:16 | [boolean(false)] ... && ... | false | -| test.rs:14:12:14:25 | [boolean(true)] ... && ... | test.rs:15:16:15:16 | c | true | -| test.rs:14:12:15:16 | [boolean(false)] ... && ... | test.rs:19:13:19:17 | false | false | -| test.rs:14:12:15:16 | [boolean(true)] ... && ... | test.rs:17:13:17:13 | d | true | -| test.rs:14:17:14:25 | [boolean(true)] let ... = b | test.rs:14:12:14:25 | [boolean(true)] ... && ... | true | -| test.rs:14:21:14:21 | d | test.rs:14:17:14:25 | [boolean(true)] let ... = b | match | +| test.rs:13:42:13:48 | ...: bool | test.rs:13:42:13:48 | After ...: bool | | +| test.rs:13:42:13:48 | After ...: bool | test.rs:13:59:21:5 | { ... } | | +| test.rs:13:42:13:48 | Before ...: bool | test.rs:13:42:13:42 | Before c | | +| test.rs:13:59:21:5 | After { ... } | test.rs:13:5:21:5 | Normal Exit | | +| test.rs:13:59:21:5 | { ... } | test.rs:14:9:20:9 | if ... {...} else {...} | | +| test.rs:14:9:20:9 | After if ... {...} else {...} | test.rs:13:59:21:5 | After { ... } | | +| test.rs:14:9:20:9 | if ... {...} else {...} | test.rs:14:12:15:16 | ... && ... | | +| test.rs:14:12:14:12 | After a [false] | test.rs:14:12:14:25 | After ... && ... [false] | false | +| test.rs:14:12:14:12 | After a [true] | test.rs:14:17:14:25 | let ... = b | | +| test.rs:14:12:14:12 | a | test.rs:14:12:14:12 | After a [false] | false | +| test.rs:14:12:14:12 | a | test.rs:14:12:14:12 | After a [true] | true | +| test.rs:14:12:14:25 | ... && ... | test.rs:14:12:14:12 | a | | +| test.rs:14:12:14:25 | After ... && ... [false] | test.rs:14:12:15:16 | After ... && ... [false] | false | +| test.rs:14:12:14:25 | After ... && ... [true] | test.rs:15:16:15:16 | c | | +| test.rs:14:12:15:16 | ... && ... | test.rs:14:12:14:25 | ... && ... | | +| test.rs:14:12:15:16 | After ... && ... [false] | test.rs:18:16:20:9 | { ... } | | +| test.rs:14:12:15:16 | After ... && ... [true] | test.rs:16:9:18:9 | { ... } | | +| test.rs:14:17:14:25 | After let ... = b [true] | test.rs:14:12:14:25 | After ... && ... [true] | true | +| test.rs:14:17:14:25 | let ... = b | test.rs:14:25:14:25 | b | | +| test.rs:14:21:14:21 | After d [match] | test.rs:14:17:14:25 | After let ... = b [true] | true | +| test.rs:14:21:14:21 | Before d | test.rs:14:21:14:21 | d | | +| test.rs:14:21:14:21 | d | test.rs:14:21:14:21 | After d [match] | match | | test.rs:14:21:14:21 | d | test.rs:14:21:14:21 | d | | -| test.rs:14:25:14:25 | b | test.rs:14:21:14:21 | d | | -| test.rs:15:16:15:16 | c | test.rs:14:12:15:16 | [boolean(false)] ... && ... | false | -| test.rs:15:16:15:16 | c | test.rs:14:12:15:16 | [boolean(true)] ... && ... | true | -| test.rs:16:9:18:9 | { ... } | test.rs:14:9:20:9 | if ... {...} else {...} | | +| test.rs:14:25:14:25 | b | test.rs:14:21:14:21 | Before d | | +| test.rs:15:16:15:16 | After c [false] | test.rs:14:12:15:16 | After ... && ... [false] | false | +| test.rs:15:16:15:16 | After c [true] | test.rs:14:12:15:16 | After ... && ... [true] | true | +| test.rs:15:16:15:16 | c | test.rs:15:16:15:16 | After c [false] | false | +| test.rs:15:16:15:16 | c | test.rs:15:16:15:16 | After c [true] | true | +| test.rs:16:9:18:9 | After { ... } | test.rs:14:9:20:9 | After if ... {...} else {...} | | +| test.rs:16:9:18:9 | { ... } | test.rs:17:13:17:17 | Before ... > ... | | | test.rs:17:13:17:13 | d | test.rs:17:17:17:17 | 0 | | -| test.rs:17:13:17:17 | ... > ... | test.rs:16:9:18:9 | { ... } | | +| test.rs:17:13:17:17 | ... > ... | test.rs:17:13:17:17 | After ... > ... | | +| test.rs:17:13:17:17 | After ... > ... | test.rs:16:9:18:9 | After { ... } | | +| test.rs:17:13:17:17 | Before ... > ... | test.rs:17:13:17:13 | d | | | test.rs:17:17:17:17 | 0 | test.rs:17:13:17:17 | ... > ... | | -| test.rs:18:16:20:9 | { ... } | test.rs:14:9:20:9 | if ... {...} else {...} | | -| test.rs:19:13:19:17 | false | test.rs:18:16:20:9 | { ... } | | +| test.rs:18:16:20:9 | After { ... } | test.rs:14:9:20:9 | After if ... {...} else {...} | | +| test.rs:18:16:20:9 | { ... } | test.rs:19:13:19:17 | false | | +| test.rs:19:13:19:17 | false | test.rs:18:16:20:9 | After { ... } | | breakTarget continueTarget diff --git a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected index 99d1fce9e2c7..5633c224b2ab 100644 --- a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected +++ b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected @@ -1,2281 +1,2401 @@ dominates -| cfg.rs:1:1:3:1 | enter fn cfg_expr | cfg.rs:1:1:3:1 | enter fn cfg_expr | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:6:5:9:5 | match value { ... } | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:7:23:7:26 | true | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:8:9:8:9 | _ | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:6:5:9:5 | match value { ... } | -| cfg.rs:7:23:7:26 | true | cfg.rs:7:23:7:26 | true | -| cfg.rs:8:9:8:9 | _ | cfg.rs:8:9:8:9 | _ | -| test.rs:5:5:8:5 | enter fn function_call | test.rs:5:5:8:5 | enter fn function_call | -| test.rs:10:5:13:5 | enter fn method_call | test.rs:10:5:13:5 | enter fn method_call | -| test.rs:18:5:24:5 | enter fn next | test.rs:18:5:24:5 | enter fn next | -| test.rs:18:5:24:5 | enter fn next | test.rs:19:9:23:9 | if ... {...} else {...} | -| test.rs:18:5:24:5 | enter fn next | test.rs:20:13:20:13 | n | -| test.rs:18:5:24:5 | enter fn next | test.rs:22:13:22:13 | 3 | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:19:9:23:9 | if ... {...} else {...} | -| test.rs:20:13:20:13 | n | test.rs:20:13:20:13 | n | -| test.rs:22:13:22:13 | 3 | test.rs:22:13:22:13 | 3 | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:26:5:42:5 | enter fn test_break_and_continue | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:29:13:29:24 | ExprStmt | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:30:13:32:13 | if ... {...} | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:31:17:31:29 | ExprStmt | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:33:13:35:13 | if ... {...} | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:34:17:34:22 | ExprStmt | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:36:13:38:13 | if ... {...} | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:37:17:37:25 | ExprStmt | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | -| test.rs:29:13:29:24 | ExprStmt | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | -| test.rs:29:13:29:24 | ExprStmt | test.rs:29:13:29:24 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:30:13:32:13 | if ... {...} | -| test.rs:29:13:29:24 | ExprStmt | test.rs:31:17:31:29 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:33:13:35:13 | if ... {...} | -| test.rs:29:13:29:24 | ExprStmt | test.rs:34:17:34:22 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:36:13:38:13 | if ... {...} | -| test.rs:29:13:29:24 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | -| test.rs:30:13:32:13 | if ... {...} | test.rs:30:13:32:13 | if ... {...} | -| test.rs:30:13:32:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | -| test.rs:30:13:32:13 | if ... {...} | test.rs:34:17:34:22 | ExprStmt | -| test.rs:30:13:32:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | -| test.rs:30:13:32:13 | if ... {...} | test.rs:37:17:37:25 | ExprStmt | -| test.rs:31:17:31:29 | ExprStmt | test.rs:31:17:31:29 | ExprStmt | -| test.rs:33:13:35:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | -| test.rs:33:13:35:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | -| test.rs:33:13:35:13 | if ... {...} | test.rs:37:17:37:25 | ExprStmt | -| test.rs:34:17:34:22 | ExprStmt | test.rs:34:17:34:22 | ExprStmt | -| test.rs:36:13:38:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | -| test.rs:37:17:37:25 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:47:17:51:17 | ExprStmt | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:48:21:48:26 | ExprStmt | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:49:24:51:17 | if b {...} | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:49:27:49:27 | b | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:50:21:50:33 | ExprStmt | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:47:17:51:17 | ExprStmt | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:47:17:51:17 | ExprStmt | test.rs:47:17:51:17 | ExprStmt | -| test.rs:47:17:51:17 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:24:51:17 | if b {...} | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:27:49:27 | b | -| test.rs:47:17:51:17 | ExprStmt | test.rs:50:21:50:33 | ExprStmt | -| test.rs:48:21:48:26 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | -| test.rs:49:24:51:17 | if b {...} | test.rs:49:24:51:17 | if b {...} | -| test.rs:49:27:49:27 | b | test.rs:49:24:51:17 | if b {...} | -| test.rs:49:27:49:27 | b | test.rs:49:27:49:27 | b | -| test.rs:49:27:49:27 | b | test.rs:50:21:50:33 | ExprStmt | -| test.rs:50:21:50:33 | ExprStmt | test.rs:50:21:50:33 | ExprStmt | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:58:5:70:5 | enter fn test_continue_with_labels | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:60:13:60:14 | ExprStmt | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:62:17:66:17 | ExprStmt | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:63:21:63:29 | ExprStmt | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:64:24:66:17 | if b {...} | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:64:27:64:27 | b | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:65:21:65:36 | ExprStmt | -| test.rs:60:13:60:14 | ExprStmt | test.rs:60:13:60:14 | ExprStmt | -| test.rs:60:13:60:14 | ExprStmt | test.rs:62:17:66:17 | ExprStmt | -| test.rs:60:13:60:14 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | -| test.rs:60:13:60:14 | ExprStmt | test.rs:64:24:66:17 | if b {...} | -| test.rs:60:13:60:14 | ExprStmt | test.rs:64:27:64:27 | b | -| test.rs:60:13:60:14 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | -| test.rs:62:17:66:17 | ExprStmt | test.rs:62:17:66:17 | ExprStmt | -| test.rs:62:17:66:17 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:24:66:17 | if b {...} | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:27:64:27 | b | -| test.rs:62:17:66:17 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | -| test.rs:63:21:63:29 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | -| test.rs:64:24:66:17 | if b {...} | test.rs:64:24:66:17 | if b {...} | -| test.rs:64:27:64:27 | b | test.rs:64:24:66:17 | if b {...} | -| test.rs:64:27:64:27 | b | test.rs:64:27:64:27 | b | -| test.rs:64:27:64:27 | b | test.rs:65:21:65:36 | ExprStmt | -| test.rs:65:21:65:36 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:76:17:80:17 | ExprStmt | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:77:21:77:29 | ExprStmt | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:78:24:80:17 | if b {...} | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:78:27:78:27 | b | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:79:21:79:36 | ExprStmt | -| test.rs:76:17:80:17 | ExprStmt | test.rs:76:17:80:17 | ExprStmt | -| test.rs:76:17:80:17 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:24:80:17 | if b {...} | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:27:78:27 | b | -| test.rs:76:17:80:17 | ExprStmt | test.rs:79:21:79:36 | ExprStmt | -| test.rs:77:21:77:29 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | -| test.rs:78:24:80:17 | if b {...} | test.rs:78:24:80:17 | if b {...} | -| test.rs:78:27:78:27 | b | test.rs:78:24:80:17 | if b {...} | -| test.rs:78:27:78:27 | b | test.rs:78:27:78:27 | b | -| test.rs:78:27:78:27 | b | test.rs:79:21:79:36 | ExprStmt | -| test.rs:79:21:79:36 | ExprStmt | test.rs:79:21:79:36 | ExprStmt | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:86:5:95:5 | enter fn test_while | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:88:9:94:9 | while b { ... } | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:88:15:88:15 | b | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:89:13:89:14 | ExprStmt | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:90:13:92:13 | if ... {...} | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:91:17:91:22 | ExprStmt | -| test.rs:88:9:94:9 | while b { ... } | test.rs:88:9:94:9 | while b { ... } | -| test.rs:88:15:88:15 | b | test.rs:88:9:94:9 | while b { ... } | -| test.rs:88:15:88:15 | b | test.rs:88:15:88:15 | b | -| test.rs:88:15:88:15 | b | test.rs:89:13:89:14 | ExprStmt | -| test.rs:88:15:88:15 | b | test.rs:90:13:92:13 | if ... {...} | -| test.rs:88:15:88:15 | b | test.rs:91:17:91:22 | ExprStmt | -| test.rs:89:13:89:14 | ExprStmt | test.rs:89:13:89:14 | ExprStmt | -| test.rs:89:13:89:14 | ExprStmt | test.rs:90:13:92:13 | if ... {...} | -| test.rs:89:13:89:14 | ExprStmt | test.rs:91:17:91:22 | ExprStmt | -| test.rs:90:13:92:13 | if ... {...} | test.rs:90:13:92:13 | if ... {...} | -| test.rs:91:17:91:22 | ExprStmt | test.rs:91:17:91:22 | ExprStmt | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:97:5:104:5 | enter fn test_while_let | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:99:9:103:9 | while ... { ... } | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:99:24:99:24 | x | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:99:29:99:32 | iter | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:100:13:102:13 | if ... {...} | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:100:17:100:17 | x | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:101:17:101:22 | ExprStmt | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:9:103:9 | while ... { ... } | -| test.rs:99:15:99:39 | [boolean(false)] let ... = ... | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | -| test.rs:99:24:99:24 | x | test.rs:99:24:99:24 | x | -| test.rs:99:24:99:24 | x | test.rs:100:13:102:13 | if ... {...} | -| test.rs:99:24:99:24 | x | test.rs:100:17:100:17 | x | -| test.rs:99:24:99:24 | x | test.rs:101:17:101:22 | ExprStmt | -| test.rs:99:29:99:32 | iter | test.rs:99:9:103:9 | while ... { ... } | -| test.rs:99:29:99:32 | iter | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | -| test.rs:99:29:99:32 | iter | test.rs:99:24:99:24 | x | -| test.rs:99:29:99:32 | iter | test.rs:99:29:99:32 | iter | -| test.rs:99:29:99:32 | iter | test.rs:100:13:102:13 | if ... {...} | -| test.rs:99:29:99:32 | iter | test.rs:100:17:100:17 | x | -| test.rs:99:29:99:32 | iter | test.rs:101:17:101:22 | ExprStmt | -| test.rs:100:13:102:13 | if ... {...} | test.rs:100:13:102:13 | if ... {...} | -| test.rs:100:17:100:17 | x | test.rs:100:13:102:13 | if ... {...} | -| test.rs:100:17:100:17 | x | test.rs:100:17:100:17 | x | -| test.rs:100:17:100:17 | x | test.rs:101:17:101:22 | ExprStmt | -| test.rs:101:17:101:22 | ExprStmt | test.rs:101:17:101:22 | ExprStmt | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:106:5:113:5 | enter fn test_for | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:107:9:112:9 | for ... in ... { ... } | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:107:13:107:13 | i | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:108:13:110:13 | ExprStmt | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:108:13:110:13 | if ... {...} | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:109:17:109:22 | ExprStmt | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:9:112:9 | for ... in ... { ... } | -| test.rs:107:13:107:13 | i | test.rs:107:9:112:9 | for ... in ... { ... } | -| test.rs:107:13:107:13 | i | test.rs:107:13:107:13 | i | -| test.rs:107:13:107:13 | i | test.rs:108:13:110:13 | ExprStmt | -| test.rs:107:13:107:13 | i | test.rs:108:13:110:13 | if ... {...} | -| test.rs:107:13:107:13 | i | test.rs:109:17:109:22 | ExprStmt | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | ExprStmt | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | if ... {...} | -| test.rs:108:13:110:13 | ExprStmt | test.rs:109:17:109:22 | ExprStmt | -| test.rs:108:13:110:13 | if ... {...} | test.rs:108:13:110:13 | if ... {...} | -| test.rs:109:17:109:22 | ExprStmt | test.rs:109:17:109:22 | ExprStmt | -| test.rs:115:5:119:5 | enter fn break_with_return | test.rs:115:5:119:5 | enter fn break_with_return | -| test.rs:122:1:125:1 | enter fn test_nested_function | test.rs:122:1:125:1 | enter fn test_nested_function | -| test.rs:123:19:123:27 | enter \|...\| ... | test.rs:123:19:123:27 | enter \|...\| ... | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:130:9:134:9 | if ... {...} else {...} | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:131:13:131:13 | 0 | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:133:13:133:13 | n | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:130:9:134:9 | if ... {...} else {...} | -| test.rs:131:13:131:13 | 0 | test.rs:131:13:131:13 | 0 | -| test.rs:133:13:133:13 | n | test.rs:133:13:133:13 | n | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:137:5:143:5 | enter fn test_if_without_else | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:139:9:141:9 | if b {...} | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:140:13:140:19 | ExprStmt | -| test.rs:139:9:141:9 | if b {...} | test.rs:139:9:141:9 | if b {...} | -| test.rs:140:13:140:19 | ExprStmt | test.rs:140:13:140:19 | ExprStmt | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:146:9:150:9 | if ... {...} else {...} | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:146:21:146:21 | n | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:147:13:147:13 | n | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:149:13:149:13 | 0 | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:146:9:150:9 | if ... {...} else {...} | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:149:13:149:13 | 0 | -| test.rs:146:21:146:21 | n | test.rs:146:21:146:21 | n | -| test.rs:146:21:146:21 | n | test.rs:147:13:147:13 | n | -| test.rs:147:13:147:13 | n | test.rs:147:13:147:13 | n | -| test.rs:149:13:149:13 | 0 | test.rs:149:13:149:13 | 0 | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:153:5:158:5 | exit fn test_if_let (normal) | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:154:9:156:9 | if ... {...} | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:154:21:154:21 | n | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:155:13:155:21 | ExprStmt | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:153:5:158:5 | exit fn test_if_let (normal) | -| test.rs:154:9:156:9 | if ... {...} | test.rs:154:9:156:9 | if ... {...} | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:9:156:9 | if ... {...} | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:154:21:154:21 | n | test.rs:154:21:154:21 | n | -| test.rs:154:21:154:21 | n | test.rs:155:13:155:21 | ExprStmt | -| test.rs:155:13:155:21 | ExprStmt | test.rs:155:13:155:21 | ExprStmt | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:9:165:9 | if ... {...} else {...} | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:24:161:24 | a | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:41:161:41 | a | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:162:13:162:13 | 1 | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:164:13:164:13 | 0 | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:9:165:9 | if ... {...} else {...} | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:164:13:164:13 | 0 | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:162:13:162:13 | 1 | -| test.rs:161:22:161:32 | [boolean(false)] { ... } | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:161:22:161:32 | [boolean(true)] { ... } | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:161:24:161:24 | a | test.rs:161:24:161:24 | a | -| test.rs:161:39:161:48 | [boolean(false)] { ... } | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:161:39:161:48 | [boolean(true)] { ... } | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:161:41:161:41 | a | test.rs:161:41:161:41 | a | -| test.rs:162:13:162:13 | 1 | test.rs:162:13:162:13 | 1 | -| test.rs:164:13:164:13 | 0 | test.rs:164:13:164:13 | 0 | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:168:5:177:5 | enter fn test_nested_if_2 | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:169:9:176:9 | if cond1 {...} | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:170:13:174:13 | ExprStmt | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:170:13:174:13 | if cond2 {...} else {...} | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:171:17:171:30 | ExprStmt | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:173:17:173:30 | ExprStmt | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:169:9:176:9 | if cond1 {...} | -| test.rs:170:13:174:13 | ExprStmt | test.rs:170:13:174:13 | ExprStmt | -| test.rs:170:13:174:13 | ExprStmt | test.rs:170:13:174:13 | if cond2 {...} else {...} | -| test.rs:170:13:174:13 | ExprStmt | test.rs:171:17:171:30 | ExprStmt | -| test.rs:170:13:174:13 | ExprStmt | test.rs:173:17:173:30 | ExprStmt | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:170:13:174:13 | if cond2 {...} else {...} | -| test.rs:171:17:171:30 | ExprStmt | test.rs:171:17:171:30 | ExprStmt | -| test.rs:173:17:173:30 | ExprStmt | test.rs:173:17:173:30 | ExprStmt | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:180:9:187:9 | if ... {...} else {...} | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:181:18:181:21 | true | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:182:13:182:13 | _ | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:184:13:184:13 | 1 | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:186:13:186:13 | 0 | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:180:9:187:9 | if ... {...} else {...} | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:186:13:186:13 | 0 | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:184:13:184:13 | 1 | -| test.rs:181:18:181:21 | true | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:181:18:181:21 | true | test.rs:181:18:181:21 | true | -| test.rs:181:18:181:21 | true | test.rs:184:13:184:13 | 1 | -| test.rs:182:13:182:13 | _ | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:182:13:182:13 | _ | test.rs:182:13:182:13 | _ | -| test.rs:182:13:182:13 | _ | test.rs:186:13:186:13 | 0 | -| test.rs:184:13:184:13 | 1 | test.rs:184:13:184:13 | 1 | -| test.rs:186:13:186:13 | 0 | test.rs:186:13:186:13 | 0 | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:9:198:9 | if ... {...} else {...} | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:195:13:195:13 | 1 | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:197:13:197:13 | 0 | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:191:9:198:9 | if ... {...} else {...} | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:197:13:197:13 | 0 | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:195:13:195:13 | 1 | -| test.rs:195:13:195:13 | 1 | test.rs:195:13:195:13 | 1 | -| test.rs:197:13:197:13 | 0 | test.rs:197:13:197:13 | 0 | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:9:210:9 | if ... {...} else {...} | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:207:13:207:13 | 1 | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:209:13:209:13 | 0 | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:203:9:210:9 | if ... {...} else {...} | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:209:13:209:13 | 0 | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:207:13:207:13 | 1 | -| test.rs:207:13:207:13 | 1 | test.rs:207:13:207:13 | 1 | -| test.rs:209:13:209:13 | 0 | test.rs:209:13:209:13 | 0 | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:214:9:223:9 | if ... {...} else {...} | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:215:13:217:13 | if ... {...} | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:215:13:217:14 | ExprStmt | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:216:17:216:29 | ExprStmt | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:220:13:220:13 | 1 | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:222:13:222:13 | 0 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:214:9:223:9 | if ... {...} else {...} | -| test.rs:215:13:217:13 | if ... {...} | test.rs:215:13:217:13 | if ... {...} | -| test.rs:215:13:217:14 | ExprStmt | test.rs:214:9:223:9 | if ... {...} else {...} | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:14 | ExprStmt | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:29 | ExprStmt | -| test.rs:215:13:217:14 | ExprStmt | test.rs:220:13:220:13 | 1 | -| test.rs:215:13:217:14 | ExprStmt | test.rs:222:13:222:13 | 0 | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:222:13:222:13 | 0 | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:220:13:220:13 | 1 | -| test.rs:216:17:216:29 | ExprStmt | test.rs:214:9:223:9 | if ... {...} else {...} | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:29 | ExprStmt | -| test.rs:216:17:216:29 | ExprStmt | test.rs:220:13:220:13 | 1 | -| test.rs:216:17:216:29 | ExprStmt | test.rs:222:13:222:13 | 0 | -| test.rs:220:13:220:13 | 1 | test.rs:220:13:220:13 | 1 | -| test.rs:222:13:222:13 | 0 | test.rs:222:13:222:13 | 0 | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:227:9:236:9 | if ... {...} else {...} | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:228:13:230:13 | if ... {...} | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:228:13:230:14 | ExprStmt | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:229:17:229:36 | ExprStmt | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:233:13:233:13 | 1 | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:235:13:235:13 | 0 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:227:9:236:9 | if ... {...} else {...} | -| test.rs:228:13:230:13 | if ... {...} | test.rs:228:13:230:13 | if ... {...} | -| test.rs:228:13:230:14 | ExprStmt | test.rs:227:9:236:9 | if ... {...} else {...} | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:14 | ExprStmt | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:36 | ExprStmt | -| test.rs:228:13:230:14 | ExprStmt | test.rs:233:13:233:13 | 1 | -| test.rs:228:13:230:14 | ExprStmt | test.rs:235:13:235:13 | 0 | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:235:13:235:13 | 0 | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:233:13:233:13 | 1 | -| test.rs:229:17:229:36 | ExprStmt | test.rs:227:9:236:9 | if ... {...} else {...} | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:36 | ExprStmt | -| test.rs:229:17:229:36 | ExprStmt | test.rs:233:13:233:13 | 1 | -| test.rs:229:17:229:36 | ExprStmt | test.rs:235:13:235:13 | 0 | -| test.rs:233:13:233:13 | 1 | test.rs:233:13:233:13 | 1 | -| test.rs:235:13:235:13 | 0 | test.rs:235:13:235:13 | 0 | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:240:9:246:9 | if ... {...} else {...} | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:243:13:243:13 | 1 | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:245:13:245:13 | 0 | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:240:9:246:9 | if ... {...} else {...} | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:245:13:245:13 | 0 | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:243:13:243:13 | 1 | -| test.rs:243:13:243:13 | 1 | test.rs:243:13:243:13 | 1 | -| test.rs:245:13:245:13 | 0 | test.rs:245:13:245:13 | 0 | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:17:253:22 | [boolean(false)] ... && ... | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:17:253:27 | ... && ... | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:22:253:22 | b | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:27:253:27 | c | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:253:17:253:22 | [boolean(false)] ... && ... | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:27:253:27 | c | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:27 | ... && ... | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:253:22:253:22 | b | test.rs:253:22:253:22 | b | -| test.rs:253:22:253:22 | b | test.rs:253:27:253:27 | c | -| test.rs:253:27:253:27 | c | test.rs:253:27:253:27 | c | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:17:258:27 | ... \|\| ... | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:22:258:22 | b | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:27:258:27 | c | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:27:258:27 | c | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:27 | ... \|\| ... | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:258:22:258:22 | b | test.rs:258:22:258:22 | b | -| test.rs:258:22:258:22 | b | test.rs:258:27:258:27 | c | -| test.rs:258:27:258:27 | c | test.rs:258:27:258:27 | c | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:17:263:35 | ... \|\| ... | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:23:263:23 | b | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:35:263:35 | c | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:35:263:35 | c | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:35 | ... \|\| ... | -| test.rs:263:23:263:23 | b | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:263:23:263:23 | b | test.rs:263:23:263:23 | b | -| test.rs:263:23:263:23 | b | test.rs:263:35:263:35 | c | -| test.rs:263:35:263:35 | c | test.rs:263:35:263:35 | c | -| test.rs:267:5:270:5 | enter fn test_not_operator | test.rs:267:5:270:5 | enter fn test_not_operator | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:9:277:9 | if ... {...} else {...} | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:17:273:17 | b | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:22:273:22 | c | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:274:13:274:16 | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:276:13:276:17 | false | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:9:277:9 | if ... {...} else {...} | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:22:273:22 | c | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:276:13:276:17 | false | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:17:273:17 | b | test.rs:273:17:273:17 | b | -| test.rs:273:17:273:17 | b | test.rs:273:22:273:22 | c | -| test.rs:273:17:273:17 | b | test.rs:274:13:274:16 | true | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:22:273:22 | c | test.rs:273:22:273:22 | c | -| test.rs:273:22:273:22 | c | test.rs:274:13:274:16 | true | -| test.rs:274:13:274:16 | true | test.rs:274:13:274:16 | true | -| test.rs:276:13:276:17 | false | test.rs:276:13:276:17 | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:9:285:9 | if ... {...} else {...} | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:17:281:17 | b | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:22:281:22 | c | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:282:13:282:16 | true | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:284:13:284:17 | false | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:9:285:9 | if ... {...} else {...} | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:22:281:22 | c | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:282:13:282:16 | true | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:17:281:17 | b | test.rs:281:17:281:17 | b | -| test.rs:281:17:281:17 | b | test.rs:281:22:281:22 | c | -| test.rs:281:17:281:17 | b | test.rs:284:13:284:17 | false | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:22:281:22 | c | test.rs:281:22:281:22 | c | -| test.rs:281:22:281:22 | c | test.rs:284:13:284:17 | false | -| test.rs:282:13:282:16 | true | test.rs:282:13:282:16 | true | -| test.rs:284:13:284:17 | false | test.rs:284:13:284:17 | false | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:9:293:9 | if ... {...} else {...} | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:290:13:290:16 | true | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:292:13:292:17 | false | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:289:9:293:9 | if ... {...} else {...} | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:292:13:292:17 | false | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:290:13:290:16 | true | -| test.rs:290:13:290:16 | true | test.rs:290:13:290:16 | true | -| test.rs:292:13:292:17 | false | test.rs:292:13:292:17 | false | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:296:5:298:5 | exit fn test_and_return (normal) | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:9:297:19 | ... && ... | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:14:297:19 | return | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:296:5:298:5 | exit fn test_and_return (normal) | -| test.rs:297:9:297:19 | ... && ... | test.rs:297:9:297:19 | ... && ... | -| test.rs:297:14:297:19 | return | test.rs:297:14:297:19 | return | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:300:5:305:5 | exit fn test_and_true (normal) | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:9:303:9 | if ... {...} | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:18:301:21 | true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:302:13:302:21 | ExprStmt | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:300:5:305:5 | exit fn test_and_true (normal) | -| test.rs:301:9:303:9 | if ... {...} | test.rs:301:9:303:9 | if ... {...} | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:9:303:9 | if ... {...} | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:302:13:302:21 | ExprStmt | -| test.rs:301:18:301:21 | true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:301:18:301:21 | true | test.rs:301:18:301:21 | true | -| test.rs:301:18:301:21 | true | test.rs:302:13:302:21 | ExprStmt | -| test.rs:302:13:302:21 | ExprStmt | test.rs:302:13:302:21 | ExprStmt | -| test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | -| test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | -| test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | test.rs:312:32:312:32 | 4 | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | -| test.rs:312:32:312:32 | 4 | test.rs:312:32:312:32 | 4 | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:316:9:319:9 | match ... { ... } | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:317:13:317:16 | true | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:317:21:317:24 | Some | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:318:13:318:17 | false | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:316:9:319:9 | match ... { ... } | -| test.rs:317:13:317:16 | true | test.rs:316:9:319:9 | match ... { ... } | -| test.rs:317:13:317:16 | true | test.rs:317:13:317:16 | true | -| test.rs:317:13:317:16 | true | test.rs:317:21:317:24 | Some | -| test.rs:317:13:317:16 | true | test.rs:318:13:318:17 | false | -| test.rs:317:21:317:24 | Some | test.rs:317:21:317:24 | Some | -| test.rs:318:13:318:17 | false | test.rs:318:13:318:17 | false | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:327:9:331:9 | match maybe_digit { ... } | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:328:26:328:26 | x | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:328:42:328:42 | x | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:329:26:329:26 | x | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:330:13:330:24 | ...::None | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:327:9:331:9 | match maybe_digit { ... } | -| test.rs:328:26:328:26 | x | test.rs:328:26:328:26 | x | -| test.rs:328:26:328:26 | x | test.rs:328:42:328:42 | x | -| test.rs:328:42:328:42 | x | test.rs:328:42:328:42 | x | +| cfg.rs:1:1:3:1 | Entry | cfg.rs:1:1:3:1 | Entry | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:5:1:10:1 | Entry | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:6:5:9:5 | After match value { ... } | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [match] | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:6:5:9:5 | After match value { ... } | +| cfg.rs:7:13:7:18 | After CfgPredPat [match] | cfg.rs:7:13:7:18 | After CfgPredPat [match] | +| cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | +| test.rs:5:5:8:5 | Entry | test.rs:5:5:8:5 | Entry | +| test.rs:10:5:13:5 | Entry | test.rs:10:5:13:5 | Entry | +| test.rs:18:5:24:5 | Entry | test.rs:18:5:24:5 | Entry | +| test.rs:18:5:24:5 | Entry | test.rs:19:9:23:9 | After if ... {...} else {...} | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [false] | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [true] | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:9:23:9 | After if ... {...} else {...} | +| test.rs:19:12:19:21 | After ... == ... [false] | test.rs:19:12:19:21 | After ... == ... [false] | +| test.rs:19:12:19:21 | After ... == ... [true] | test.rs:19:12:19:21 | After ... == ... [true] | +| test.rs:26:5:42:5 | Entry | test.rs:26:5:42:5 | Entry | +| test.rs:26:5:42:5 | Entry | test.rs:26:5:42:5 | Normal Exit | +| test.rs:26:5:42:5 | Entry | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:26:5:42:5 | Entry | test.rs:28:14:40:9 | { ... } | +| test.rs:26:5:42:5 | Entry | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:26:5:42:5 | Entry | test.rs:30:16:30:24 | After ... > ... [true] | +| test.rs:26:5:42:5 | Entry | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:26:5:42:5 | Entry | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:26:5:42:5 | Entry | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:26:5:42:5 | Entry | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:26:5:42:5 | Normal Exit | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:28:14:40:9 | { ... } | test.rs:26:5:42:5 | Normal Exit | +| test.rs:28:14:40:9 | { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:28:14:40:9 | { ... } | test.rs:28:14:40:9 | { ... } | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [true] | +| test.rs:28:14:40:9 | { ... } | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:30:16:30:24 | After ... > ... [true] | test.rs:30:16:30:24 | After ... > ... [true] | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:33:16:33:21 | After ... == ... [true] | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:36:16:36:25 | After ... != ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:36:16:36:25 | After ... != ... [true] | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:44:5:56:5 | Entry | test.rs:44:5:56:5 | Entry | +| test.rs:44:5:56:5 | Entry | test.rs:45:22:54:9 | { ... } | +| test.rs:44:5:56:5 | Entry | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:44:5:56:5 | Entry | test.rs:47:20:47:20 | After b [false] | +| test.rs:44:5:56:5 | Entry | test.rs:47:20:47:20 | After b [true] | +| test.rs:44:5:56:5 | Entry | test.rs:49:27:49:27 | After b [false] | +| test.rs:44:5:56:5 | Entry | test.rs:49:27:49:27 | After b [true] | +| test.rs:45:22:54:9 | { ... } | test.rs:45:22:54:9 | { ... } | +| test.rs:45:22:54:9 | { ... } | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [false] | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [true] | +| test.rs:45:22:54:9 | { ... } | test.rs:49:27:49:27 | After b [false] | +| test.rs:45:22:54:9 | { ... } | test.rs:49:27:49:27 | After b [true] | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:47:20:47:20 | After b [false] | test.rs:47:20:47:20 | After b [false] | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [false] | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [true] | +| test.rs:47:20:47:20 | After b [true] | test.rs:47:20:47:20 | After b [true] | +| test.rs:49:27:49:27 | After b [false] | test.rs:49:27:49:27 | After b [false] | +| test.rs:49:27:49:27 | After b [true] | test.rs:49:27:49:27 | After b [true] | +| test.rs:58:5:70:5 | Entry | test.rs:58:5:70:5 | Entry | +| test.rs:58:5:70:5 | Entry | test.rs:59:22:69:9 | { ... } | +| test.rs:58:5:70:5 | Entry | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | +| test.rs:58:5:70:5 | Entry | test.rs:61:26:68:13 | { ... } | +| test.rs:58:5:70:5 | Entry | test.rs:62:20:62:20 | After b [false] | +| test.rs:58:5:70:5 | Entry | test.rs:62:20:62:20 | After b [true] | +| test.rs:58:5:70:5 | Entry | test.rs:64:27:64:27 | After b [false] | +| test.rs:58:5:70:5 | Entry | test.rs:64:27:64:27 | After b [true] | +| test.rs:59:22:69:9 | { ... } | test.rs:59:22:69:9 | { ... } | +| test.rs:59:22:69:9 | { ... } | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | +| test.rs:59:22:69:9 | { ... } | test.rs:61:26:68:13 | { ... } | +| test.rs:59:22:69:9 | { ... } | test.rs:62:20:62:20 | After b [false] | +| test.rs:59:22:69:9 | { ... } | test.rs:62:20:62:20 | After b [true] | +| test.rs:59:22:69:9 | { ... } | test.rs:64:27:64:27 | After b [false] | +| test.rs:59:22:69:9 | { ... } | test.rs:64:27:64:27 | After b [true] | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | +| test.rs:61:26:68:13 | { ... } | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | +| test.rs:61:26:68:13 | { ... } | test.rs:61:26:68:13 | { ... } | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [false] | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [true] | +| test.rs:61:26:68:13 | { ... } | test.rs:64:27:64:27 | After b [false] | +| test.rs:61:26:68:13 | { ... } | test.rs:64:27:64:27 | After b [true] | +| test.rs:62:20:62:20 | After b [false] | test.rs:62:20:62:20 | After b [false] | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [false] | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [true] | +| test.rs:62:20:62:20 | After b [true] | test.rs:62:20:62:20 | After b [true] | +| test.rs:64:27:64:27 | After b [false] | test.rs:64:27:64:27 | After b [false] | +| test.rs:64:27:64:27 | After b [true] | test.rs:64:27:64:27 | After b [true] | +| test.rs:72:5:84:5 | Entry | test.rs:72:5:84:5 | Entry | +| test.rs:72:5:84:5 | Entry | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | +| test.rs:72:5:84:5 | Entry | test.rs:75:26:82:13 | { ... } | +| test.rs:72:5:84:5 | Entry | test.rs:76:20:76:20 | After b [false] | +| test.rs:72:5:84:5 | Entry | test.rs:76:20:76:20 | After b [true] | +| test.rs:72:5:84:5 | Entry | test.rs:78:27:78:27 | After b [false] | +| test.rs:72:5:84:5 | Entry | test.rs:78:27:78:27 | After b [true] | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | +| test.rs:75:26:82:13 | { ... } | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | +| test.rs:75:26:82:13 | { ... } | test.rs:75:26:82:13 | { ... } | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [false] | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [true] | +| test.rs:75:26:82:13 | { ... } | test.rs:78:27:78:27 | After b [false] | +| test.rs:75:26:82:13 | { ... } | test.rs:78:27:78:27 | After b [true] | +| test.rs:76:20:76:20 | After b [false] | test.rs:76:20:76:20 | After b [false] | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [false] | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [true] | +| test.rs:76:20:76:20 | After b [true] | test.rs:76:20:76:20 | After b [true] | +| test.rs:78:27:78:27 | After b [false] | test.rs:78:27:78:27 | After b [false] | +| test.rs:78:27:78:27 | After b [true] | test.rs:78:27:78:27 | After b [true] | +| test.rs:86:5:95:5 | Entry | test.rs:86:5:95:5 | Entry | +| test.rs:86:5:95:5 | Entry | test.rs:88:9:94:9 | After while b { ... } | +| test.rs:86:5:95:5 | Entry | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:86:5:95:5 | Entry | test.rs:88:15:88:15 | After b [false] | +| test.rs:86:5:95:5 | Entry | test.rs:88:15:88:15 | After b [true] | +| test.rs:86:5:95:5 | Entry | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:86:5:95:5 | Entry | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:9:94:9 | After while b { ... } | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:9:94:9 | After while b { ... } | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [false] | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [true] | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:88:15:88:15 | After b [false] | test.rs:88:15:88:15 | After b [false] | +| test.rs:88:15:88:15 | After b [true] | test.rs:88:15:88:15 | After b [true] | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:90:17:90:21 | After ... > ... [false] | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:90:17:90:21 | After ... > ... [true] | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:97:5:104:5 | Entry | test.rs:97:5:104:5 | Entry | +| test.rs:97:5:104:5 | Entry | test.rs:99:9:103:9 | After while ... { ... } | +| test.rs:97:5:104:5 | Entry | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:97:5:104:5 | Entry | test.rs:99:19:99:25 | After Some(...) [no-match] | +| test.rs:97:5:104:5 | Entry | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:97:5:104:5 | Entry | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:97:5:104:5 | Entry | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:9:103:9 | After while ... { ... } | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:9:103:9 | After while ... { ... } | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | After Some(...) [no-match] | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:99:19:99:25 | After Some(...) [no-match] | test.rs:99:19:99:25 | After Some(...) [no-match] | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:100:17:100:22 | After ... == ... [false] | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:100:17:100:22 | After ... == ... [true] | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:106:5:113:5 | Entry | test.rs:106:5:113:5 | Entry | +| test.rs:106:5:113:5 | Entry | test.rs:107:9:112:9 | After for ... in ... { ... } | +| test.rs:106:5:113:5 | Entry | test.rs:107:13:107:13 | After i [match] | +| test.rs:106:5:113:5 | Entry | test.rs:107:13:107:13 | After i [no-match] | +| test.rs:106:5:113:5 | Entry | test.rs:107:13:107:13 | Before i | +| test.rs:106:5:113:5 | Entry | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:106:5:113:5 | Entry | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:9:112:9 | After for ... in ... { ... } | +| test.rs:107:13:107:13 | After i [match] | test.rs:107:13:107:13 | After i [match] | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:107:13:107:13 | After i [no-match] | test.rs:107:13:107:13 | After i [no-match] | +| test.rs:107:13:107:13 | Before i | test.rs:107:9:112:9 | After for ... in ... { ... } | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [match] | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [no-match] | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | Before i | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:108:17:108:22 | After ... == ... [false] | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:108:17:108:22 | After ... == ... [true] | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:115:5:119:5 | Entry | test.rs:115:5:119:5 | Entry | +| test.rs:122:1:125:1 | Entry | test.rs:122:1:125:1 | Entry | +| test.rs:123:19:123:27 | Entry | test.rs:123:19:123:27 | Entry | +| test.rs:129:5:135:5 | Entry | test.rs:129:5:135:5 | Entry | +| test.rs:129:5:135:5 | Entry | test.rs:130:9:134:9 | After if ... {...} else {...} | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [false] | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [true] | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:9:134:9 | After if ... {...} else {...} | +| test.rs:130:12:130:17 | After ... <= ... [false] | test.rs:130:12:130:17 | After ... <= ... [false] | +| test.rs:130:12:130:17 | After ... <= ... [true] | test.rs:130:12:130:17 | After ... <= ... [true] | +| test.rs:137:5:143:5 | Entry | test.rs:137:5:143:5 | Entry | +| test.rs:137:5:143:5 | Entry | test.rs:139:9:141:9 | After if b {...} | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [false] | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [true] | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:9:141:9 | After if b {...} | +| test.rs:139:12:139:12 | After b [false] | test.rs:139:12:139:12 | After b [false] | +| test.rs:139:12:139:12 | After b [true] | test.rs:139:12:139:12 | After b [true] | +| test.rs:145:5:151:5 | Entry | test.rs:145:5:151:5 | Entry | +| test.rs:145:5:151:5 | Entry | test.rs:146:9:150:9 | After if ... {...} else {...} | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | After Some(...) [no-match] | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | [pattern-start] Some(...) | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:9:150:9 | After if ... {...} else {...} | +| test.rs:146:16:146:22 | After Some(...) [no-match] | test.rs:146:16:146:22 | After Some(...) [no-match] | +| test.rs:146:16:146:22 | [pattern-start] Some(...) | test.rs:146:16:146:22 | [pattern-start] Some(...) | +| test.rs:153:5:158:5 | Entry | test.rs:153:5:158:5 | Entry | +| test.rs:153:5:158:5 | Entry | test.rs:153:5:158:5 | Normal Exit | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | After Some(...) [no-match] | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | [pattern-start] Some(...) | +| test.rs:153:5:158:5 | Normal Exit | test.rs:153:5:158:5 | Normal Exit | +| test.rs:154:16:154:22 | After Some(...) [no-match] | test.rs:154:16:154:22 | After Some(...) [no-match] | +| test.rs:154:16:154:22 | [pattern-start] Some(...) | test.rs:154:16:154:22 | [pattern-start] Some(...) | +| test.rs:160:5:166:5 | Entry | test.rs:160:5:166:5 | Entry | +| test.rs:160:5:166:5 | Entry | test.rs:161:9:165:9 | After if ... {...} else {...} | +| test.rs:160:5:166:5 | Entry | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | +| test.rs:160:5:166:5 | Entry | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:160:5:166:5 | Entry | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:160:5:166:5 | Entry | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:160:5:166:5 | Entry | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:160:5:166:5 | Entry | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:9:165:9 | After if ... {...} else {...} | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:161:24:161:30 | After ... < ... [false] | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:161:24:161:30 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:161:41:161:46 | After ... > ... [false] | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:161:41:161:46 | After ... > ... [true] | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:168:5:177:5 | Entry | test.rs:168:5:177:5 | Entry | +| test.rs:168:5:177:5 | Entry | test.rs:169:9:176:9 | After if cond1 {...} | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [false] | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:168:5:177:5 | Entry | test.rs:170:13:174:13 | After if cond2 {...} else {...} | +| test.rs:168:5:177:5 | Entry | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:168:5:177:5 | Entry | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:9:176:9 | After if cond1 {...} | +| test.rs:169:12:169:16 | After cond1 [false] | test.rs:169:12:169:16 | After cond1 [false] | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:13:174:13 | After if cond2 {...} else {...} | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:13:174:13 | After if cond2 {...} else {...} | +| test.rs:170:16:170:20 | After cond2 [false] | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:170:16:170:20 | After cond2 [true] | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:179:5:188:5 | Entry | test.rs:179:5:188:5 | Entry | +| test.rs:179:5:188:5 | Entry | test.rs:180:9:187:9 | After if ... {...} else {...} | +| test.rs:179:5:188:5 | Entry | test.rs:180:13:183:9 | After match a { ... } [false] | +| test.rs:179:5:188:5 | Entry | test.rs:180:13:183:9 | After match a { ... } [true] | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [match] | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [no-match] | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:9:187:9 | After if ... {...} else {...} | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:180:13:183:9 | After match a { ... } [false] | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:180:13:183:9 | After match a { ... } [true] | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:181:13:181:13 | After 0 [match] | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:181:13:181:13 | After 0 [no-match] | +| test.rs:190:5:199:5 | Entry | test.rs:190:5:199:5 | Entry | +| test.rs:190:5:199:5 | Entry | test.rs:191:9:198:9 | After if ... {...} else {...} | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [false] | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [true] | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:191:9:198:9 | After if ... {...} else {...} | +| test.rs:193:13:193:17 | After ... > ... [false] | test.rs:193:13:193:17 | After ... > ... [false] | +| test.rs:193:13:193:17 | After ... > ... [true] | test.rs:193:13:193:17 | After ... > ... [true] | +| test.rs:201:5:211:5 | Entry | test.rs:201:5:211:5 | Entry | +| test.rs:201:5:211:5 | Entry | test.rs:203:9:210:9 | After if ... {...} else {...} | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [false] | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [true] | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:203:9:210:9 | After if ... {...} else {...} | +| test.rs:205:13:205:13 | After x [false] | test.rs:205:13:205:13 | After x [false] | +| test.rs:205:13:205:13 | After x [true] | test.rs:205:13:205:13 | After x [true] | +| test.rs:213:5:224:5 | Entry | test.rs:213:5:224:5 | Entry | +| test.rs:213:5:224:5 | Entry | test.rs:214:9:223:9 | After if ... {...} else {...} | +| test.rs:213:5:224:5 | Entry | test.rs:214:18:219:9 | { ... } | +| test.rs:213:5:224:5 | Entry | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:213:5:224:5 | Entry | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:213:5:224:5 | Entry | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:213:5:224:5 | Entry | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:214:9:223:9 | After if ... {...} else {...} | +| test.rs:214:18:219:9 | { ... } | test.rs:214:9:223:9 | After if ... {...} else {...} | +| test.rs:214:18:219:9 | { ... } | test.rs:214:18:219:9 | { ... } | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:214:18:219:9 | { ... } | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:214:18:219:9 | { ... } | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:215:16:215:20 | After ... > ... [false] | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:214:9:223:9 | After if ... {...} else {...} | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:216:23:216:28 | After ... > ... [false] | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:216:23:216:28 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:226:5:237:5 | Entry | test.rs:226:5:237:5 | Entry | +| test.rs:226:5:237:5 | Entry | test.rs:227:9:236:9 | After if ... {...} else {...} | +| test.rs:226:5:237:5 | Entry | test.rs:227:26:232:9 | { ... } | +| test.rs:226:5:237:5 | Entry | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:226:5:237:5 | Entry | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:226:5:237:5 | Entry | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:226:5:237:5 | Entry | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:227:9:236:9 | After if ... {...} else {...} | +| test.rs:227:26:232:9 | { ... } | test.rs:227:9:236:9 | After if ... {...} else {...} | +| test.rs:227:26:232:9 | { ... } | test.rs:227:26:232:9 | { ... } | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:227:26:232:9 | { ... } | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:227:26:232:9 | { ... } | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:228:16:228:20 | After ... > ... [false] | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:227:9:236:9 | After if ... {...} else {...} | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:229:30:229:35 | After ... > ... [false] | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:229:30:229:35 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:239:5:247:5 | Entry | test.rs:239:5:247:5 | Entry | +| test.rs:239:5:247:5 | Entry | test.rs:240:9:246:9 | After if ... {...} else {...} | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [false] | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [true] | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:240:9:246:9 | After if ... {...} else {...} | +| test.rs:241:26:241:30 | After ... > ... [false] | test.rs:241:26:241:30 | After ... > ... [false] | +| test.rs:241:26:241:30 | After ... > ... [true] | test.rs:241:26:241:30 | After ... > ... [true] | +| test.rs:252:5:255:5 | Entry | test.rs:252:5:255:5 | Entry | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [false] | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [true] | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:22 | After ... && ... [false] | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:27 | After ... && ... | +| test.rs:252:5:255:5 | Entry | test.rs:253:22:253:22 | After b [false] | +| test.rs:252:5:255:5 | Entry | test.rs:253:22:253:22 | After b [true] | +| test.rs:253:17:253:17 | After a [false] | test.rs:253:17:253:17 | After a [false] | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:17:253:17 | After a [true] | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [false] | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [true] | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:17:253:22 | After ... && ... [false] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:27 | After ... && ... | +| test.rs:253:22:253:22 | After b [false] | test.rs:253:22:253:22 | After b [false] | +| test.rs:253:22:253:22 | After b [true] | test.rs:253:22:253:22 | After b [true] | +| test.rs:257:5:260:5 | Entry | test.rs:257:5:260:5 | Entry | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [false] | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [true] | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:22 | After ... \|\| ... [true] | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:27 | After ... \|\| ... | +| test.rs:257:5:260:5 | Entry | test.rs:258:22:258:22 | After b [false] | +| test.rs:257:5:260:5 | Entry | test.rs:258:22:258:22 | After b [true] | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:17:258:17 | After a [false] | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [false] | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [true] | +| test.rs:258:17:258:17 | After a [true] | test.rs:258:17:258:17 | After a [true] | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:27 | After ... \|\| ... | +| test.rs:258:22:258:22 | After b [false] | test.rs:258:22:258:22 | After b [false] | +| test.rs:258:22:258:22 | After b [true] | test.rs:258:22:258:22 | After b [true] | +| test.rs:262:5:265:5 | Entry | test.rs:262:5:265:5 | Entry | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [false] | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [true] | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:30 | After ... \|\| ... [true] | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:35 | After ... \|\| ... | +| test.rs:262:5:265:5 | Entry | test.rs:263:23:263:29 | After ... == ... [false] | +| test.rs:262:5:265:5 | Entry | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:17:263:17 | After a [false] | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [false] | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:263:17:263:17 | After a [true] | test.rs:263:17:263:17 | After a [true] | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:35 | After ... \|\| ... | +| test.rs:263:23:263:29 | After ... == ... [false] | test.rs:263:23:263:29 | After ... == ... [false] | +| test.rs:263:23:263:29 | After ... == ... [true] | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:267:5:270:5 | Entry | test.rs:267:5:270:5 | Entry | +| test.rs:272:5:278:5 | Entry | test.rs:272:5:278:5 | Entry | +| test.rs:272:5:278:5 | Entry | test.rs:273:9:277:9 | After if ... {...} else {...} | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [false] | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [true] | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:17 | After ... && ... [false] | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:22 | After ... && ... [false] | +| test.rs:272:5:278:5 | Entry | test.rs:273:17:273:17 | After b [false] | +| test.rs:272:5:278:5 | Entry | test.rs:273:17:273:17 | After b [true] | +| test.rs:272:5:278:5 | Entry | test.rs:273:22:273:22 | After c [false] | +| test.rs:272:5:278:5 | Entry | test.rs:273:22:273:22 | After c [true] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:9:277:9 | After if ... {...} else {...} | +| test.rs:273:12:273:12 | After a [false] | test.rs:273:12:273:12 | After a [false] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:12:273:12 | After a [true] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [true] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:22:273:22 | After c [true] | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:17 | After ... && ... [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:12:273:22 | After ... && ... [false] | +| test.rs:273:17:273:17 | After b [false] | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:17:273:17 | After b [true] | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [true] | +| test.rs:273:22:273:22 | After c [false] | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:22:273:22 | After c [true] | test.rs:273:22:273:22 | After c [true] | +| test.rs:280:5:286:5 | Entry | test.rs:280:5:286:5 | Entry | +| test.rs:280:5:286:5 | Entry | test.rs:281:9:285:9 | After if ... {...} else {...} | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [false] | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [true] | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:17 | After ... \|\| ... [true] | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:22 | After ... \|\| ... [true] | +| test.rs:280:5:286:5 | Entry | test.rs:281:17:281:17 | After b [false] | +| test.rs:280:5:286:5 | Entry | test.rs:281:17:281:17 | After b [true] | +| test.rs:280:5:286:5 | Entry | test.rs:281:22:281:22 | After c [false] | +| test.rs:280:5:286:5 | Entry | test.rs:281:22:281:22 | After c [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:9:285:9 | After if ... {...} else {...} | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:12:281:12 | After a [false] | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [false] | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:22:281:22 | After c [false] | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:22:281:22 | After c [true] | +| test.rs:281:12:281:12 | After a [true] | test.rs:281:12:281:12 | After a [true] | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:17:281:17 | After b [false] | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [false] | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [true] | +| test.rs:281:17:281:17 | After b [true] | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:22:281:22 | After c [false] | test.rs:281:22:281:22 | After c [false] | +| test.rs:281:22:281:22 | After c [true] | test.rs:281:22:281:22 | After c [true] | +| test.rs:288:5:294:5 | Entry | test.rs:288:5:294:5 | Entry | +| test.rs:288:5:294:5 | Entry | test.rs:289:9:293:9 | After if ... {...} else {...} | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [false] | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [true] | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:9:293:9 | After if ... {...} else {...} | +| test.rs:289:13:289:13 | After a [false] | test.rs:289:13:289:13 | After a [false] | +| test.rs:289:13:289:13 | After a [true] | test.rs:289:13:289:13 | After a [true] | +| test.rs:296:5:298:5 | Entry | test.rs:296:5:298:5 | Entry | +| test.rs:296:5:298:5 | Entry | test.rs:296:5:298:5 | Normal Exit | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [false] | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [true] | +| test.rs:296:5:298:5 | Normal Exit | test.rs:296:5:298:5 | Normal Exit | +| test.rs:297:9:297:9 | After a [false] | test.rs:297:9:297:9 | After a [false] | +| test.rs:297:9:297:9 | After a [true] | test.rs:297:9:297:9 | After a [true] | +| test.rs:300:5:305:5 | Entry | test.rs:300:5:305:5 | Entry | +| test.rs:300:5:305:5 | Entry | test.rs:300:5:305:5 | Normal Exit | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [false] | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [true] | +| test.rs:300:5:305:5 | Normal Exit | test.rs:300:5:305:5 | Normal Exit | +| test.rs:301:13:301:13 | After a [false] | test.rs:301:13:301:13 | After a [false] | +| test.rs:301:13:301:13 | After a [true] | test.rs:301:13:301:13 | After a [true] | +| test.rs:311:5:313:5 | Entry | test.rs:311:5:313:5 | Entry | +| test.rs:311:5:313:5 | Entry | test.rs:311:5:313:5 | Normal Exit | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [match] | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [no-match] | +| test.rs:311:5:313:5 | Normal Exit | test.rs:311:5:313:5 | Normal Exit | +| test.rs:312:12:312:27 | After s.parse() [match] | test.rs:312:12:312:27 | After s.parse() [match] | +| test.rs:312:12:312:27 | After s.parse() [no-match] | test.rs:312:12:312:27 | After s.parse() [no-match] | +| test.rs:315:5:320:5 | Entry | test.rs:315:5:320:5 | Entry | +| test.rs:315:5:320:5 | Entry | test.rs:315:5:320:5 | Normal Exit | +| test.rs:315:5:320:5 | Entry | test.rs:316:9:319:9 | After match ... { ... } | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [match] | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [no-match] | +| test.rs:315:5:320:5 | Entry | test.rs:317:13:317:16 | After true [match] | +| test.rs:315:5:320:5 | Entry | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:315:5:320:5 | Normal Exit | test.rs:315:5:320:5 | Normal Exit | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:316:9:319:9 | After match ... { ... } | +| test.rs:316:15:316:15 | After b [match] | test.rs:316:9:319:9 | After match ... { ... } | +| test.rs:316:15:316:15 | After b [match] | test.rs:316:15:316:15 | After b [match] | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [match] | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:316:15:316:15 | After b [no-match] | test.rs:316:15:316:15 | After b [no-match] | +| test.rs:317:13:317:16 | After true [match] | test.rs:317:13:317:16 | After true [match] | +| test.rs:317:13:317:16 | After true [no-match] | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:326:5:332:5 | Entry | test.rs:326:5:332:5 | Entry | +| test.rs:326:5:332:5 | Entry | test.rs:327:9:331:9 | After match maybe_digit { ... } | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:326:5:332:5 | Entry | test.rs:328:32:328:37 | After ... < ... [false] | +| test.rs:326:5:332:5 | Entry | test.rs:328:32:328:37 | After ... < ... [true] | +| test.rs:326:5:332:5 | Entry | test.rs:329:13:329:27 | ...::Some(...) | +| test.rs:326:5:332:5 | Entry | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | +| test.rs:326:5:332:5 | Entry | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:327:9:331:9 | After match maybe_digit { ... } | +| test.rs:328:13:328:27 | After ...::Some(...) [no-match] | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [false] | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [true] | +| test.rs:328:32:328:37 | After ... < ... [false] | test.rs:328:32:328:37 | After ... < ... [false] | +| test.rs:328:32:328:37 | After ... < ... [true] | test.rs:328:32:328:37 | After ... < ... [true] | | test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:26:329:26 | x | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:330:13:330:24 | ...::None | -| test.rs:329:26:329:26 | x | test.rs:329:26:329:26 | x | -| test.rs:330:13:330:24 | ...::None | test.rs:330:13:330:24 | ...::None | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:335:9:342:9 | match ... { ... } | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:336:13:336:21 | ExprStmt | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:338:13:338:23 | maybe_digit | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:340:26:340:26 | x | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:341:13:341:24 | ...::None | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:335:9:342:9 | match ... { ... } | -| test.rs:336:13:336:21 | ExprStmt | test.rs:336:13:336:21 | ExprStmt | -| test.rs:338:13:338:23 | maybe_digit | test.rs:335:9:342:9 | match ... { ... } | -| test.rs:338:13:338:23 | maybe_digit | test.rs:338:13:338:23 | maybe_digit | -| test.rs:338:13:338:23 | maybe_digit | test.rs:340:26:340:26 | x | -| test.rs:338:13:338:23 | maybe_digit | test.rs:341:13:341:24 | ...::None | -| test.rs:340:26:340:26 | x | test.rs:340:26:340:26 | x | -| test.rs:341:13:341:24 | ...::None | test.rs:341:13:341:24 | ...::None | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:346:9:349:18 | ... && ... | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:347:18:347:18 | a | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:348:13:348:13 | _ | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:349:15:349:18 | cond | -| test.rs:346:9:349:18 | ... && ... | test.rs:346:9:349:18 | ... && ... | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:349:15:349:18 | cond | -| test.rs:347:18:347:18 | a | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:347:18:347:18 | a | test.rs:347:18:347:18 | a | -| test.rs:347:18:347:18 | a | test.rs:349:15:349:18 | cond | -| test.rs:348:13:348:13 | _ | test.rs:348:13:348:13 | _ | -| test.rs:349:15:349:18 | cond | test.rs:349:15:349:18 | cond | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:353:9:356:9 | match r { ... } | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:354:16:354:20 | value | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:355:13:355:22 | Err(...) | -| test.rs:353:9:356:9 | match r { ... } | test.rs:353:9:356:9 | match r { ... } | -| test.rs:354:16:354:20 | value | test.rs:354:16:354:20 | value | -| test.rs:355:13:355:22 | Err(...) | test.rs:355:13:355:22 | Err(...) | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:363:18:363:18 | n | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:363:39:363:53 | ExprStmt | -| test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | -| test.rs:363:39:363:53 | ExprStmt | test.rs:363:39:363:53 | ExprStmt | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:369:18:369:20 | ret | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:370:13:370:16 | None | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | -| test.rs:369:18:369:20 | ret | test.rs:369:18:369:20 | ret | -| test.rs:370:13:370:16 | None | test.rs:370:13:370:16 | None | -| test.rs:378:5:381:5 | enter fn empty_tuple_pattern | test.rs:378:5:381:5 | enter fn empty_tuple_pattern | -| test.rs:387:5:391:5 | enter fn empty_struct_pattern | test.rs:387:5:391:5 | enter fn empty_struct_pattern | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:394:9:397:9 | match st { ... } | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:395:27:395:27 | 1 | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:395:34:395:34 | 0 | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:396:13:396:26 | MyStruct {...} | -| test.rs:394:9:397:9 | match st { ... } | test.rs:394:9:397:9 | match st { ... } | -| test.rs:395:27:395:27 | 1 | test.rs:395:27:395:27 | 1 | -| test.rs:395:27:395:27 | 1 | test.rs:395:34:395:34 | 0 | -| test.rs:395:34:395:34 | 0 | test.rs:395:34:395:34 | 0 | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:396:13:396:26 | MyStruct {...} | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:401:9:406:9 | match 42 { ... } | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:402:20:402:20 | 1 | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:403:13:403:16 | RangePat | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:403:16:403:16 | 2 | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:403:21:403:21 | 2 | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:404:13:404:15 | RangePat | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:404:20:404:20 | 3 | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:405:13:405:13 | _ | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:401:9:406:9 | match 42 { ... } | -| test.rs:402:20:402:20 | 1 | test.rs:402:20:402:20 | 1 | -| test.rs:403:13:403:16 | RangePat | test.rs:403:13:403:16 | RangePat | -| test.rs:403:13:403:16 | RangePat | test.rs:403:16:403:16 | 2 | -| test.rs:403:13:403:16 | RangePat | test.rs:403:21:403:21 | 2 | -| test.rs:403:13:403:16 | RangePat | test.rs:404:13:404:15 | RangePat | -| test.rs:403:13:403:16 | RangePat | test.rs:404:20:404:20 | 3 | -| test.rs:403:13:403:16 | RangePat | test.rs:405:13:405:13 | _ | -| test.rs:403:16:403:16 | 2 | test.rs:403:16:403:16 | 2 | -| test.rs:403:16:403:16 | 2 | test.rs:403:21:403:21 | 2 | -| test.rs:403:21:403:21 | 2 | test.rs:403:21:403:21 | 2 | -| test.rs:404:13:404:15 | RangePat | test.rs:404:13:404:15 | RangePat | -| test.rs:404:13:404:15 | RangePat | test.rs:404:20:404:20 | 3 | -| test.rs:404:13:404:15 | RangePat | test.rs:405:13:405:13 | _ | -| test.rs:404:20:404:20 | 3 | test.rs:404:20:404:20 | 3 | -| test.rs:405:13:405:13 | _ | test.rs:405:13:405:13 | _ | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:410:9:413:9 | match 43 { ... } | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:411:13:411:13 | n | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:411:20:411:21 | 10 | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:412:13:412:13 | _ | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:410:9:413:9 | match 43 { ... } | -| test.rs:411:13:411:13 | n | test.rs:411:13:411:13 | n | -| test.rs:411:20:411:21 | 10 | test.rs:411:13:411:13 | n | -| test.rs:411:20:411:21 | 10 | test.rs:411:20:411:21 | 10 | -| test.rs:412:13:412:13 | _ | test.rs:412:13:412:13 | _ | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:418:9:421:9 | match a { ... } | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:419:21:419:21 | n | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:419:28:419:29 | 10 | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:420:21:420:21 | n | -| test.rs:418:9:421:9 | match a { ... } | test.rs:418:9:421:9 | match a { ... } | -| test.rs:419:21:419:21 | n | test.rs:419:21:419:21 | n | -| test.rs:419:28:419:29 | 10 | test.rs:419:21:419:21 | n | -| test.rs:419:28:419:29 | 10 | test.rs:419:28:419:29 | 10 | -| test.rs:420:21:420:21 | n | test.rs:420:21:420:21 | n | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:426:9:430:9 | match ... { ... } | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:427:17:427:17 | _ | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:428:13:428:19 | TuplePat | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:428:24:428:24 | 3 | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:429:13:429:16 | TuplePat | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:426:9:430:9 | match ... { ... } | -| test.rs:427:17:427:17 | _ | test.rs:427:17:427:17 | _ | -| test.rs:428:13:428:19 | TuplePat | test.rs:428:13:428:19 | TuplePat | -| test.rs:428:13:428:19 | TuplePat | test.rs:428:24:428:24 | 3 | -| test.rs:428:13:428:19 | TuplePat | test.rs:429:13:429:16 | TuplePat | -| test.rs:428:24:428:24 | 3 | test.rs:428:24:428:24 | 3 | -| test.rs:429:13:429:16 | TuplePat | test.rs:429:13:429:16 | TuplePat | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:434:9:437:9 | match a { ... } | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:435:17:435:17 | 1 | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:435:21:435:21 | 2 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:434:9:437:9 | match a { ... } | -| test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | -| test.rs:435:17:435:17 | 1 | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:435:17:435:17 | 1 | test.rs:435:17:435:17 | 1 | -| test.rs:435:17:435:17 | 1 | test.rs:435:21:435:21 | 2 | -| test.rs:435:21:435:21 | 2 | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:435:21:435:21 | 2 | test.rs:435:21:435:21 | 2 | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:441:9:444:9 | match a { ... } | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:442:21:442:21 | 3 | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:443:13:443:22 | Some(...) | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:443:13:443:36 | ... \| ... | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:443:18:443:21 | true | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:443:26:443:36 | Some(...) | -| test.rs:441:9:444:9 | match a { ... } | test.rs:441:9:444:9 | match a { ... } | -| test.rs:442:21:442:21 | 3 | test.rs:442:21:442:21 | 3 | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:13:443:22 | Some(...) | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:13:443:36 | ... \| ... | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:18:443:21 | true | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:26:443:36 | Some(...) | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:13:443:36 | ... \| ... | -| test.rs:443:18:443:21 | true | test.rs:443:18:443:21 | true | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:26:443:36 | Some(...) | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:454:9:457:9 | match a { ... } | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:455:13:455:23 | 2 | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:454:9:457:9 | match a { ... } | -| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | 2 | -| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | -| test.rs:455:13:455:23 | [match(false)] 1 \| 2 | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:461:9:464:9 | match pair { ... } | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:462:32:462:32 | _ | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:463:13:463:13 | _ | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:461:9:464:9 | match pair { ... } | -| test.rs:462:32:462:32 | _ | test.rs:462:32:462:32 | _ | -| test.rs:463:13:463:13 | _ | test.rs:463:13:463:13 | _ | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:476:9:480:9 | match e { ... } | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:477:32:477:32 | _ | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:478:26:478:26 | _ | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:479:13:479:23 | UnitVariant | -| test.rs:476:9:480:9 | match e { ... } | test.rs:476:9:480:9 | match e { ... } | -| test.rs:477:32:477:32 | _ | test.rs:477:32:477:32 | _ | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:26:478:26 | _ | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:479:13:479:23 | UnitVariant | -| test.rs:478:26:478:26 | _ | test.rs:478:26:478:26 | _ | -| test.rs:479:13:479:23 | UnitVariant | test.rs:479:13:479:23 | UnitVariant | -| test.rs:485:5:490:5 | enter fn test_infinite_loop | test.rs:485:5:490:5 | enter fn test_infinite_loop | -| test.rs:485:5:490:5 | enter fn test_infinite_loop | test.rs:487:13:487:14 | TupleExpr | -| test.rs:487:13:487:14 | TupleExpr | test.rs:487:13:487:14 | TupleExpr | -| test.rs:494:5:496:5 | enter fn say_hello | test.rs:494:5:496:5 | enter fn say_hello | -| test.rs:498:5:517:5 | enter fn async_block | test.rs:498:5:517:5 | enter fn async_block | -| test.rs:499:26:501:9 | enter { ... } | test.rs:499:26:501:9 | enter { ... } | -| test.rs:502:31:504:9 | enter { ... } | test.rs:502:31:504:9 | enter { ... } | -| test.rs:511:22:516:9 | enter \|...\| ... | test.rs:511:22:516:9 | enter \|...\| ... | -| test.rs:511:28:516:9 | enter { ... } | test.rs:511:28:516:9 | enter { ... } | -| test.rs:511:28:516:9 | enter { ... } | test.rs:511:28:516:9 | exit { ... } (normal) | -| test.rs:511:28:516:9 | enter { ... } | test.rs:512:13:514:13 | if b {...} | -| test.rs:511:28:516:9 | enter { ... } | test.rs:513:17:513:41 | ExprStmt | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:511:28:516:9 | exit { ... } (normal) | -| test.rs:512:13:514:13 | if b {...} | test.rs:512:13:514:13 | if b {...} | -| test.rs:513:17:513:41 | ExprStmt | test.rs:513:17:513:41 | ExprStmt | -| test.rs:523:5:525:5 | enter fn add_two | test.rs:523:5:525:5 | enter fn add_two | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:13:533:19 | ExprStmt | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(false)] ! ... | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | if ... {...} | -| test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | ExprStmt | -| test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:19 | ExprStmt | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | if ... {...} | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | if false {...} | -| test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:553:9:553:17 | ExprStmt | -| test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | -| test.rs:558:1:558:16 | enter fn do_thing | test.rs:558:1:558:16 | enter fn do_thing | -| test.rs:560:1:562:1 | enter fn condition_not_met | test.rs:560:1:562:1 | enter fn condition_not_met | -| test.rs:564:1:564:21 | enter fn do_next_thing | test.rs:564:1:564:21 | enter fn do_next_thing | -| test.rs:566:1:566:21 | enter fn do_last_thing | test.rs:566:1:566:21 | enter fn do_last_thing | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:569:18:580:5 | 'block: { ... } | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:571:9:573:9 | if ... {...} | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:572:13:572:27 | ExprStmt | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:575:9:577:9 | if ... {...} | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:576:13:576:27 | ExprStmt | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:569:18:580:5 | 'block: { ... } | -| test.rs:571:9:573:9 | if ... {...} | test.rs:571:9:573:9 | if ... {...} | -| test.rs:571:9:573:9 | if ... {...} | test.rs:575:9:577:9 | if ... {...} | -| test.rs:571:9:573:9 | if ... {...} | test.rs:576:13:576:27 | ExprStmt | -| test.rs:572:13:572:27 | ExprStmt | test.rs:572:13:572:27 | ExprStmt | -| test.rs:575:9:577:9 | if ... {...} | test.rs:575:9:577:9 | if ... {...} | -| test.rs:576:13:576:27 | ExprStmt | test.rs:576:13:576:27 | ExprStmt | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:584:1:592:1 | enter fn labelled_block2 | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:585:18:591:5 | 'block: { ... } | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:587:18:587:18 | y | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:588:13:588:27 | ExprStmt | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:585:18:591:5 | 'block: { ... } | -| test.rs:587:18:587:18 | y | test.rs:587:18:587:18 | y | -| test.rs:588:13:588:27 | ExprStmt | test.rs:588:13:588:27 | ExprStmt | -| test.rs:594:1:600:1 | enter fn test_nested_function2 | test.rs:594:1:600:1 | enter fn test_nested_function2 | -| test.rs:596:5:598:5 | enter fn nested | test.rs:596:5:598:5 | enter fn nested | -| test.rs:611:5:613:5 | enter fn new | test.rs:611:5:613:5 | enter fn new | -| test.rs:615:5:617:5 | enter fn negated | test.rs:615:5:617:5 | enter fn negated | -| test.rs:619:5:621:5 | enter fn multifly_add | test.rs:619:5:621:5 | enter fn multifly_add | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | +| test.rs:329:13:329:27 | After ...::Some(...) [no-match] | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | +| test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | +| test.rs:334:5:343:5 | Entry | test.rs:334:5:343:5 | Entry | +| test.rs:334:5:343:5 | Entry | test.rs:334:5:343:5 | Normal Exit | +| test.rs:334:5:343:5 | Entry | test.rs:335:9:342:9 | After match ... { ... } | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [true] | +| test.rs:334:5:343:5 | Entry | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:334:5:343:5 | Entry | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:334:5:343:5 | Normal Exit | test.rs:334:5:343:5 | Normal Exit | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:335:9:342:9 | After match ... { ... } | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:335:9:342:9 | After match ... { ... } | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:335:19:335:40 | After ... == ... [true] | test.rs:335:19:335:40 | After ... == ... [true] | +| test.rs:340:13:340:27 | After ...::Some(...) [no-match] | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:345:5:350:5 | Entry | test.rs:345:5:350:5 | Entry | +| test.rs:345:5:350:5 | Entry | test.rs:346:9:349:18 | After ... && ... | +| test.rs:345:5:350:5 | Entry | test.rs:346:10:349:9 | After match r { ... } [false] | +| test.rs:345:5:350:5 | Entry | test.rs:346:10:349:9 | After match r { ... } [true] | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | After Some(...) [no-match] | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:345:5:350:5 | Entry | test.rs:347:24:347:24 | After a [false] | +| test.rs:345:5:350:5 | Entry | test.rs:347:24:347:24 | After a [true] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:9:349:18 | After ... && ... | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:346:10:349:9 | After match r { ... } [false] | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:346:10:349:9 | After match r { ... } [true] | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:347:13:347:19 | After Some(...) [no-match] | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [false] | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [true] | +| test.rs:347:24:347:24 | After a [false] | test.rs:347:24:347:24 | After a [false] | +| test.rs:347:24:347:24 | After a [true] | test.rs:347:24:347:24 | After a [true] | +| test.rs:352:5:357:5 | Entry | test.rs:352:5:357:5 | Entry | +| test.rs:352:5:357:5 | Entry | test.rs:352:5:357:5 | Exit | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | After Ok(...) [no-match] | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | [pattern-start] Ok(...) | +| test.rs:352:5:357:5 | Exit | test.rs:352:5:357:5 | Exit | +| test.rs:354:13:354:21 | After Ok(...) [no-match] | test.rs:354:13:354:21 | After Ok(...) [no-match] | +| test.rs:354:13:354:21 | [pattern-start] Ok(...) | test.rs:354:13:354:21 | [pattern-start] Ok(...) | +| test.rs:362:5:365:5 | Entry | test.rs:362:5:365:5 | Entry | +| test.rs:362:5:365:5 | Entry | test.rs:362:5:365:5 | Exit | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | After Some(...) [no-match] | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | [pattern-start] Some(...) | +| test.rs:362:5:365:5 | Exit | test.rs:362:5:365:5 | Exit | +| test.rs:363:13:363:19 | After Some(...) [no-match] | test.rs:363:13:363:19 | After Some(...) [no-match] | +| test.rs:363:13:363:19 | [pattern-start] Some(...) | test.rs:363:13:363:19 | [pattern-start] Some(...) | +| test.rs:367:5:373:5 | Entry | test.rs:367:5:373:5 | Entry | +| test.rs:367:5:373:5 | Entry | test.rs:367:5:373:5 | Normal Exit | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | After Some(...) [no-match] | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | [pattern-start] Some(...) | +| test.rs:367:5:373:5 | Normal Exit | test.rs:367:5:373:5 | Normal Exit | +| test.rs:369:13:369:21 | After Some(...) [no-match] | test.rs:369:13:369:21 | After Some(...) [no-match] | +| test.rs:369:13:369:21 | [pattern-start] Some(...) | test.rs:369:13:369:21 | [pattern-start] Some(...) | +| test.rs:378:5:381:5 | Entry | test.rs:378:5:381:5 | Entry | +| test.rs:387:5:391:5 | Entry | test.rs:387:5:391:5 | Entry | +| test.rs:393:5:398:5 | Entry | test.rs:393:5:398:5 | Entry | +| test.rs:393:5:398:5 | Entry | test.rs:394:9:397:9 | After match st { ... } | +| test.rs:393:5:398:5 | Entry | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | +| test.rs:393:5:398:5 | Entry | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:393:5:398:5 | Entry | test.rs:395:27:395:27 | After 1 [match] | +| test.rs:393:5:398:5 | Entry | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:394:9:397:9 | After match st { ... } | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [match] | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:395:27:395:27 | After 1 [match] | test.rs:395:27:395:27 | After 1 [match] | +| test.rs:395:27:395:27 | After 1 [no-match] | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:400:5:407:5 | Entry | +| test.rs:400:5:407:5 | Entry | test.rs:401:9:406:9 | After match 42 { ... } | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [match] | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:400:5:407:5 | Entry | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:400:5:407:5 | Entry | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:401:9:406:9 | After match 42 { ... } | +| test.rs:402:15:402:15 | After 0 [match] | test.rs:402:15:402:15 | After 0 [match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:403:13:403:13 | After 1 [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:403:16:403:16 | After 2 [match] | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:403:16:403:16 | After 2 [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:404:13:404:13 | After 5 [match] | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:404:13:404:13 | After 5 [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:409:5:414:5 | Entry | test.rs:409:5:414:5 | Entry | +| test.rs:409:5:414:5 | Entry | test.rs:410:9:413:9 | After match 43 { ... } | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [no-match] | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:21 | After RangePat [no-match] | +| test.rs:409:5:414:5 | Entry | test.rs:411:20:411:21 | After 10 [match] | +| test.rs:409:5:414:5 | Entry | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:410:9:413:9 | After match 43 { ... } | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [match] | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:411:17:411:17 | After 1 [no-match] | test.rs:411:17:411:17 | After 1 [no-match] | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | +| test.rs:411:20:411:21 | After 10 [match] | test.rs:411:20:411:21 | After 10 [match] | +| test.rs:411:20:411:21 | After 10 [no-match] | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:416:5:423:5 | Entry | test.rs:416:5:423:5 | Entry | +| test.rs:416:5:423:5 | Entry | test.rs:418:9:421:9 | After match a { ... } | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [no-match] | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:29 | After RangePat [no-match] | +| test.rs:416:5:423:5 | Entry | test.rs:419:28:419:29 | After 10 [match] | +| test.rs:416:5:423:5 | Entry | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:418:9:421:9 | After match a { ... } | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [match] | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:419:25:419:25 | After 1 [no-match] | test.rs:419:25:419:25 | After 1 [no-match] | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | +| test.rs:419:28:419:29 | After 10 [match] | test.rs:419:28:419:29 | After 10 [match] | +| test.rs:419:28:419:29 | After 10 [no-match] | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:425:5:431:5 | Entry | test.rs:425:5:431:5 | Entry | +| test.rs:425:5:431:5 | Entry | test.rs:426:9:430:9 | After match ... { ... } | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [match] | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:425:5:431:5 | Entry | test.rs:428:18:428:18 | After 2 [match] | +| test.rs:425:5:431:5 | Entry | test.rs:428:18:428:18 | After 2 [no-match] | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:426:9:430:9 | After match ... { ... } | +| test.rs:427:14:427:14 | After 1 [match] | test.rs:427:14:427:14 | After 1 [match] | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [match] | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [no-match] | +| test.rs:428:18:428:18 | After 2 [match] | test.rs:428:18:428:18 | After 2 [match] | +| test.rs:428:18:428:18 | After 2 [no-match] | test.rs:428:18:428:18 | After 2 [no-match] | +| test.rs:433:5:438:5 | Entry | test.rs:433:5:438:5 | Entry | +| test.rs:433:5:438:5 | Entry | test.rs:434:9:437:9 | After match a { ... } | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:433:5:438:5 | Entry | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:434:9:437:9 | After match a { ... } | +| test.rs:435:13:435:13 | After 0 [match] | test.rs:435:13:435:13 | After 0 [match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | +| test.rs:435:17:435:17 | After 1 [match] | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:435:21:435:21 | After 2 [match] | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:435:21:435:21 | After 2 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:440:5:445:5 | Entry | test.rs:440:5:445:5 | Entry | +| test.rs:440:5:445:5 | Entry | test.rs:441:9:444:9 | After match a { ... } | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [match] | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:36 | After ... \| ... [match] | +| test.rs:440:5:445:5 | Entry | test.rs:443:18:443:21 | After true [match] | +| test.rs:440:5:445:5 | Entry | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:441:9:444:9 | After match a { ... } | +| test.rs:442:13:442:16 | After None [match] | test.rs:442:13:442:16 | After None [match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:36 | After ... \| ... [match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:18:443:21 | After true [match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [match] | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:13:443:36 | After ... \| ... [match] | +| test.rs:443:18:443:21 | After true [match] | test.rs:443:18:443:21 | After true [match] | +| test.rs:443:18:443:21 | After true [no-match] | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:453:5:458:5 | Entry | test.rs:453:5:458:5 | Entry | +| test.rs:453:5:458:5 | Entry | test.rs:454:9:457:9 | After match a { ... } | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [match] | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 \| 2 [match] | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 2 [no-match] | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:454:9:457:9 | After match a { ... } | +| test.rs:455:13:455:23 | After 1 [match] | test.rs:455:13:455:23 | After 1 [match] | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [no-match] | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | +| test.rs:455:13:455:23 | After 2 [match] | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:455:13:455:23 | After 2 [no-match] | test.rs:455:13:455:23 | After 2 [no-match] | +| test.rs:460:5:465:5 | Entry | test.rs:460:5:465:5 | Entry | +| test.rs:460:5:465:5 | Entry | test.rs:461:9:464:9 | After match pair { ... } | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:461:9:464:9 | After match pair { ... } | +| test.rs:462:18:462:34 | After MyStruct {...} [no-match] | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | +| test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | +| test.rs:475:5:481:5 | Entry | test.rs:475:5:481:5 | Entry | +| test.rs:475:5:481:5 | Entry | test.rs:476:9:480:9 | After match e { ... } | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | +| test.rs:475:5:481:5 | Entry | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | +| test.rs:475:5:481:5 | Entry | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:476:9:480:9 | After match e { ... } | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | +| test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | +| test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | +| test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | +| test.rs:485:5:490:5 | Entry | test.rs:485:5:490:5 | Entry | +| test.rs:485:5:490:5 | Entry | test.rs:486:14:488:9 | { ... } | +| test.rs:486:14:488:9 | { ... } | test.rs:486:14:488:9 | { ... } | +| test.rs:494:5:496:5 | Entry | test.rs:494:5:496:5 | Entry | +| test.rs:498:5:517:5 | Entry | test.rs:498:5:517:5 | Entry | +| test.rs:499:26:501:9 | Entry | test.rs:499:26:501:9 | Entry | +| test.rs:502:31:504:9 | Entry | test.rs:502:31:504:9 | Entry | +| test.rs:505:20:505:27 | Entry | test.rs:505:20:505:27 | Entry | +| test.rs:511:22:516:9 | Entry | test.rs:511:22:516:9 | Entry | +| test.rs:511:28:516:9 | Entry | test.rs:511:28:516:9 | Entry | +| test.rs:511:28:516:9 | Entry | test.rs:511:28:516:9 | Normal Exit | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [false] | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [true] | +| test.rs:511:28:516:9 | Normal Exit | test.rs:511:28:516:9 | Normal Exit | +| test.rs:512:16:512:16 | After b [false] | test.rs:512:16:512:16 | After b [false] | +| test.rs:512:16:512:16 | After b [true] | test.rs:512:16:512:16 | After b [true] | +| test.rs:523:5:525:5 | Entry | test.rs:523:5:525:5 | Entry | +| test.rs:529:5:537:5 | Entry | test.rs:529:5:537:5 | Entry | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [false] | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [true] | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After if ... {...} | +| test.rs:533:21:533:48 | After ... > ... [false] | test.rs:533:21:533:48 | After ... > ... [false] | +| test.rs:533:21:533:48 | After ... > ... [true] | test.rs:533:21:533:48 | After ... > ... [true] | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After if ... {...} | +| test.rs:539:5:548:5 | Entry | test.rs:539:5:548:5 | Entry | +| test.rs:551:1:556:1 | Entry | test.rs:551:1:556:1 | Entry | +| test.rs:558:1:558:16 | Entry | test.rs:558:1:558:16 | Entry | +| test.rs:560:1:562:1 | Entry | test.rs:560:1:562:1 | Entry | +| test.rs:564:1:564:21 | Entry | test.rs:564:1:564:21 | Entry | +| test.rs:566:1:566:21 | Entry | test.rs:566:1:566:21 | Entry | +| test.rs:568:1:582:1 | Entry | test.rs:568:1:582:1 | Entry | +| test.rs:568:1:582:1 | Entry | test.rs:569:18:580:5 | After 'block: { ... } | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [true] | +| test.rs:568:1:582:1 | Entry | test.rs:575:12:575:30 | After condition_not_met(...) [false] | +| test.rs:568:1:582:1 | Entry | test.rs:575:12:575:30 | After condition_not_met(...) [true] | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:569:18:580:5 | After 'block: { ... } | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [false] | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [true] | +| test.rs:571:12:571:30 | After condition_not_met(...) [true] | test.rs:571:12:571:30 | After condition_not_met(...) [true] | +| test.rs:575:12:575:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [false] | +| test.rs:575:12:575:30 | After condition_not_met(...) [true] | test.rs:575:12:575:30 | After condition_not_met(...) [true] | +| test.rs:584:1:592:1 | Entry | test.rs:584:1:592:1 | Entry | +| test.rs:584:1:592:1 | Entry | test.rs:585:18:591:5 | After 'block: { ... } | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | After Some(...) [no-match] | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | [pattern-start] Some(...) | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:585:18:591:5 | After 'block: { ... } | +| test.rs:587:13:587:19 | After Some(...) [no-match] | test.rs:587:13:587:19 | After Some(...) [no-match] | +| test.rs:587:13:587:19 | [pattern-start] Some(...) | test.rs:587:13:587:19 | [pattern-start] Some(...) | +| test.rs:594:1:600:1 | Entry | test.rs:594:1:600:1 | Entry | +| test.rs:596:5:598:5 | Entry | test.rs:596:5:598:5 | Entry | +| test.rs:611:5:613:5 | Entry | test.rs:611:5:613:5 | Entry | +| test.rs:615:5:617:5 | Entry | test.rs:615:5:617:5 | Entry | +| test.rs:619:5:621:5 | Entry | test.rs:619:5:621:5 | Entry | postDominance -| cfg.rs:1:1:3:1 | enter fn cfg_expr | cfg.rs:1:1:3:1 | enter fn cfg_expr | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:6:5:9:5 | match value { ... } | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:7:23:7:26 | true | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:8:9:8:9 | _ | -| cfg.rs:7:23:7:26 | true | cfg.rs:7:23:7:26 | true | -| cfg.rs:8:9:8:9 | _ | cfg.rs:8:9:8:9 | _ | -| test.rs:5:5:8:5 | enter fn function_call | test.rs:5:5:8:5 | enter fn function_call | -| test.rs:10:5:13:5 | enter fn method_call | test.rs:10:5:13:5 | enter fn method_call | -| test.rs:18:5:24:5 | enter fn next | test.rs:18:5:24:5 | enter fn next | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:18:5:24:5 | enter fn next | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:19:9:23:9 | if ... {...} else {...} | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:20:13:20:13 | n | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:22:13:22:13 | 3 | -| test.rs:20:13:20:13 | n | test.rs:20:13:20:13 | n | -| test.rs:22:13:22:13 | 3 | test.rs:22:13:22:13 | 3 | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:26:5:42:5 | enter fn test_break_and_continue | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:26:5:42:5 | enter fn test_break_and_continue | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:29:13:29:24 | ExprStmt | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:30:13:32:13 | if ... {...} | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:31:17:31:29 | ExprStmt | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:33:13:35:13 | if ... {...} | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:34:17:34:22 | ExprStmt | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:36:13:38:13 | if ... {...} | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:37:17:37:25 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:26:5:42:5 | enter fn test_break_and_continue | -| test.rs:29:13:29:24 | ExprStmt | test.rs:29:13:29:24 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:33:13:35:13 | if ... {...} | -| test.rs:29:13:29:24 | ExprStmt | test.rs:36:13:38:13 | if ... {...} | -| test.rs:29:13:29:24 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | -| test.rs:30:13:32:13 | if ... {...} | test.rs:30:13:32:13 | if ... {...} | -| test.rs:31:17:31:29 | ExprStmt | test.rs:31:17:31:29 | ExprStmt | -| test.rs:33:13:35:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | -| test.rs:34:17:34:22 | ExprStmt | test.rs:34:17:34:22 | ExprStmt | -| test.rs:36:13:38:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | -| test.rs:37:17:37:25 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:48:21:48:26 | ExprStmt | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:49:24:51:17 | if b {...} | -| test.rs:47:17:51:17 | ExprStmt | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:47:17:51:17 | ExprStmt | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:47:17:51:17 | ExprStmt | test.rs:47:17:51:17 | ExprStmt | -| test.rs:47:17:51:17 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:24:51:17 | if b {...} | -| test.rs:48:21:48:26 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | -| test.rs:49:24:51:17 | if b {...} | test.rs:49:24:51:17 | if b {...} | -| test.rs:49:27:49:27 | b | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:49:27:49:27 | b | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:49:27:49:27 | b | test.rs:47:17:51:17 | ExprStmt | -| test.rs:49:27:49:27 | b | test.rs:48:21:48:26 | ExprStmt | -| test.rs:49:27:49:27 | b | test.rs:49:24:51:17 | if b {...} | -| test.rs:49:27:49:27 | b | test.rs:49:27:49:27 | b | -| test.rs:50:21:50:33 | ExprStmt | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:50:21:50:33 | ExprStmt | test.rs:46:13:53:13 | 'inner: loop { ... } | -| test.rs:50:21:50:33 | ExprStmt | test.rs:47:17:51:17 | ExprStmt | -| test.rs:50:21:50:33 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | -| test.rs:50:21:50:33 | ExprStmt | test.rs:49:24:51:17 | if b {...} | -| test.rs:50:21:50:33 | ExprStmt | test.rs:49:27:49:27 | b | -| test.rs:50:21:50:33 | ExprStmt | test.rs:50:21:50:33 | ExprStmt | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:58:5:70:5 | enter fn test_continue_with_labels | -| test.rs:60:13:60:14 | ExprStmt | test.rs:60:13:60:14 | ExprStmt | -| test.rs:62:17:66:17 | ExprStmt | test.rs:62:17:66:17 | ExprStmt | -| test.rs:63:21:63:29 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | -| test.rs:64:24:66:17 | if b {...} | test.rs:64:24:66:17 | if b {...} | -| test.rs:64:27:64:27 | b | test.rs:64:27:64:27 | b | -| test.rs:65:21:65:36 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | -| test.rs:76:17:80:17 | ExprStmt | test.rs:76:17:80:17 | ExprStmt | -| test.rs:77:21:77:29 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | -| test.rs:78:24:80:17 | if b {...} | test.rs:78:24:80:17 | if b {...} | -| test.rs:78:27:78:27 | b | test.rs:78:27:78:27 | b | -| test.rs:79:21:79:36 | ExprStmt | test.rs:79:21:79:36 | ExprStmt | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:86:5:95:5 | enter fn test_while | -| test.rs:88:9:94:9 | while b { ... } | test.rs:86:5:95:5 | enter fn test_while | -| test.rs:88:9:94:9 | while b { ... } | test.rs:88:9:94:9 | while b { ... } | -| test.rs:88:9:94:9 | while b { ... } | test.rs:88:15:88:15 | b | -| test.rs:88:9:94:9 | while b { ... } | test.rs:89:13:89:14 | ExprStmt | -| test.rs:88:9:94:9 | while b { ... } | test.rs:90:13:92:13 | if ... {...} | -| test.rs:88:9:94:9 | while b { ... } | test.rs:91:17:91:22 | ExprStmt | -| test.rs:88:15:88:15 | b | test.rs:86:5:95:5 | enter fn test_while | -| test.rs:88:15:88:15 | b | test.rs:88:15:88:15 | b | -| test.rs:88:15:88:15 | b | test.rs:90:13:92:13 | if ... {...} | -| test.rs:89:13:89:14 | ExprStmt | test.rs:89:13:89:14 | ExprStmt | -| test.rs:90:13:92:13 | if ... {...} | test.rs:90:13:92:13 | if ... {...} | -| test.rs:91:17:91:22 | ExprStmt | test.rs:91:17:91:22 | ExprStmt | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:97:5:104:5 | enter fn test_while_let | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:97:5:104:5 | enter fn test_while_let | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:9:103:9 | while ... { ... } | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:24:99:24 | x | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:29:99:32 | iter | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:100:13:102:13 | if ... {...} | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:100:17:100:17 | x | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:101:17:101:22 | ExprStmt | -| test.rs:99:15:99:39 | [boolean(false)] let ... = ... | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | -| test.rs:99:24:99:24 | x | test.rs:99:24:99:24 | x | -| test.rs:99:29:99:32 | iter | test.rs:97:5:104:5 | enter fn test_while_let | -| test.rs:99:29:99:32 | iter | test.rs:99:29:99:32 | iter | -| test.rs:99:29:99:32 | iter | test.rs:100:13:102:13 | if ... {...} | -| test.rs:100:13:102:13 | if ... {...} | test.rs:100:13:102:13 | if ... {...} | -| test.rs:100:17:100:17 | x | test.rs:99:24:99:24 | x | -| test.rs:100:17:100:17 | x | test.rs:100:17:100:17 | x | -| test.rs:101:17:101:22 | ExprStmt | test.rs:101:17:101:22 | ExprStmt | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:106:5:113:5 | enter fn test_for | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:106:5:113:5 | enter fn test_for | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:9:112:9 | for ... in ... { ... } | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:13:107:13 | i | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:108:13:110:13 | ExprStmt | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:108:13:110:13 | if ... {...} | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:109:17:109:22 | ExprStmt | -| test.rs:107:13:107:13 | i | test.rs:106:5:113:5 | enter fn test_for | -| test.rs:107:13:107:13 | i | test.rs:107:13:107:13 | i | -| test.rs:107:13:107:13 | i | test.rs:108:13:110:13 | if ... {...} | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | ExprStmt | -| test.rs:108:13:110:13 | if ... {...} | test.rs:108:13:110:13 | if ... {...} | -| test.rs:109:17:109:22 | ExprStmt | test.rs:109:17:109:22 | ExprStmt | -| test.rs:115:5:119:5 | enter fn break_with_return | test.rs:115:5:119:5 | enter fn break_with_return | -| test.rs:122:1:125:1 | enter fn test_nested_function | test.rs:122:1:125:1 | enter fn test_nested_function | -| test.rs:123:19:123:27 | enter \|...\| ... | test.rs:123:19:123:27 | enter \|...\| ... | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:130:9:134:9 | if ... {...} else {...} | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:131:13:131:13 | 0 | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:133:13:133:13 | n | -| test.rs:131:13:131:13 | 0 | test.rs:131:13:131:13 | 0 | -| test.rs:133:13:133:13 | n | test.rs:133:13:133:13 | n | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:137:5:143:5 | enter fn test_if_without_else | -| test.rs:139:9:141:9 | if b {...} | test.rs:137:5:143:5 | enter fn test_if_without_else | -| test.rs:139:9:141:9 | if b {...} | test.rs:139:9:141:9 | if b {...} | -| test.rs:139:9:141:9 | if b {...} | test.rs:140:13:140:19 | ExprStmt | -| test.rs:140:13:140:19 | ExprStmt | test.rs:140:13:140:19 | ExprStmt | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:146:9:150:9 | if ... {...} else {...} | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:146:21:146:21 | n | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:147:13:147:13 | n | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:149:13:149:13 | 0 | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:146:21:146:21 | n | test.rs:146:21:146:21 | n | -| test.rs:147:13:147:13 | n | test.rs:146:21:146:21 | n | -| test.rs:147:13:147:13 | n | test.rs:147:13:147:13 | n | -| test.rs:149:13:149:13 | 0 | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:149:13:149:13 | 0 | test.rs:149:13:149:13 | 0 | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:153:5:158:5 | exit fn test_if_let (normal) | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:154:9:156:9 | if ... {...} | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:154:21:154:21 | n | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:155:13:155:21 | ExprStmt | -| test.rs:154:9:156:9 | if ... {...} | test.rs:154:9:156:9 | if ... {...} | -| test.rs:154:9:156:9 | if ... {...} | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:154:21:154:21 | n | test.rs:154:21:154:21 | n | -| test.rs:155:13:155:21 | ExprStmt | test.rs:154:21:154:21 | n | -| test.rs:155:13:155:21 | ExprStmt | test.rs:155:13:155:21 | ExprStmt | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:9:165:9 | if ... {...} else {...} | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:24:161:24 | a | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:41:161:41 | a | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:162:13:162:13 | 1 | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:164:13:164:13 | 0 | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:161:22:161:32 | [boolean(false)] { ... } | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:161:22:161:32 | [boolean(true)] { ... } | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:161:24:161:24 | a | test.rs:161:24:161:24 | a | -| test.rs:161:39:161:48 | [boolean(false)] { ... } | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:161:39:161:48 | [boolean(true)] { ... } | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:161:41:161:41 | a | test.rs:161:41:161:41 | a | -| test.rs:162:13:162:13 | 1 | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:162:13:162:13 | 1 | test.rs:161:22:161:32 | [boolean(true)] { ... } | -| test.rs:162:13:162:13 | 1 | test.rs:161:39:161:48 | [boolean(true)] { ... } | -| test.rs:162:13:162:13 | 1 | test.rs:162:13:162:13 | 1 | -| test.rs:164:13:164:13 | 0 | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:164:13:164:13 | 0 | test.rs:161:22:161:32 | [boolean(false)] { ... } | -| test.rs:164:13:164:13 | 0 | test.rs:161:39:161:48 | [boolean(false)] { ... } | -| test.rs:164:13:164:13 | 0 | test.rs:164:13:164:13 | 0 | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:168:5:177:5 | enter fn test_nested_if_2 | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:168:5:177:5 | enter fn test_nested_if_2 | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:169:9:176:9 | if cond1 {...} | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:170:13:174:13 | ExprStmt | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:170:13:174:13 | if cond2 {...} else {...} | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:171:17:171:30 | ExprStmt | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:173:17:173:30 | ExprStmt | -| test.rs:170:13:174:13 | ExprStmt | test.rs:170:13:174:13 | ExprStmt | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:170:13:174:13 | ExprStmt | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:170:13:174:13 | if cond2 {...} else {...} | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:171:17:171:30 | ExprStmt | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:173:17:173:30 | ExprStmt | -| test.rs:171:17:171:30 | ExprStmt | test.rs:171:17:171:30 | ExprStmt | -| test.rs:173:17:173:30 | ExprStmt | test.rs:173:17:173:30 | ExprStmt | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:180:9:187:9 | if ... {...} else {...} | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:181:18:181:21 | true | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:182:13:182:13 | _ | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:184:13:184:13 | 1 | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:186:13:186:13 | 0 | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:182:13:182:13 | _ | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:181:18:181:21 | true | -| test.rs:181:18:181:21 | true | test.rs:181:18:181:21 | true | -| test.rs:182:13:182:13 | _ | test.rs:182:13:182:13 | _ | -| test.rs:184:13:184:13 | 1 | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:184:13:184:13 | 1 | test.rs:181:18:181:21 | true | -| test.rs:184:13:184:13 | 1 | test.rs:184:13:184:13 | 1 | -| test.rs:186:13:186:13 | 0 | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:186:13:186:13 | 0 | test.rs:182:13:182:13 | _ | -| test.rs:186:13:186:13 | 0 | test.rs:186:13:186:13 | 0 | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:191:9:198:9 | if ... {...} else {...} | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:195:13:195:13 | 1 | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:197:13:197:13 | 0 | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:195:13:195:13 | 1 | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:195:13:195:13 | 1 | test.rs:195:13:195:13 | 1 | -| test.rs:197:13:197:13 | 0 | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:197:13:197:13 | 0 | test.rs:197:13:197:13 | 0 | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:203:9:210:9 | if ... {...} else {...} | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:207:13:207:13 | 1 | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:209:13:209:13 | 0 | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:207:13:207:13 | 1 | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:207:13:207:13 | 1 | test.rs:207:13:207:13 | 1 | -| test.rs:209:13:209:13 | 0 | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:209:13:209:13 | 0 | test.rs:209:13:209:13 | 0 | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:214:9:223:9 | if ... {...} else {...} | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:215:13:217:13 | if ... {...} | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:215:13:217:14 | ExprStmt | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:216:17:216:29 | ExprStmt | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:220:13:220:13 | 1 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:222:13:222:13 | 0 | -| test.rs:215:13:217:13 | if ... {...} | test.rs:215:13:217:13 | if ... {...} | -| test.rs:215:13:217:14 | ExprStmt | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:14 | ExprStmt | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:216:17:216:29 | ExprStmt | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:216:17:216:29 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | -| test.rs:216:17:216:29 | ExprStmt | test.rs:215:13:217:14 | ExprStmt | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:29 | ExprStmt | -| test.rs:220:13:220:13 | 1 | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:220:13:220:13 | 1 | test.rs:220:13:220:13 | 1 | -| test.rs:222:13:222:13 | 0 | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:222:13:222:13 | 0 | test.rs:222:13:222:13 | 0 | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:227:9:236:9 | if ... {...} else {...} | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:228:13:230:13 | if ... {...} | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:228:13:230:14 | ExprStmt | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:229:17:229:36 | ExprStmt | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:233:13:233:13 | 1 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:235:13:235:13 | 0 | -| test.rs:228:13:230:13 | if ... {...} | test.rs:228:13:230:13 | if ... {...} | -| test.rs:228:13:230:14 | ExprStmt | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:14 | ExprStmt | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:229:17:229:36 | ExprStmt | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:229:17:229:36 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | -| test.rs:229:17:229:36 | ExprStmt | test.rs:228:13:230:14 | ExprStmt | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:36 | ExprStmt | -| test.rs:233:13:233:13 | 1 | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:233:13:233:13 | 1 | test.rs:233:13:233:13 | 1 | -| test.rs:235:13:235:13 | 0 | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:235:13:235:13 | 0 | test.rs:235:13:235:13 | 0 | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:240:9:246:9 | if ... {...} else {...} | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:243:13:243:13 | 1 | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:245:13:245:13 | 0 | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:243:13:243:13 | 1 | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:243:13:243:13 | 1 | test.rs:243:13:243:13 | 1 | -| test.rs:245:13:245:13 | 0 | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:245:13:245:13 | 0 | test.rs:245:13:245:13 | 0 | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:253:17:253:22 | [boolean(false)] ... && ... | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:253:17:253:27 | ... && ... | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:22 | [boolean(false)] ... && ... | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:27 | ... && ... | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:22:253:22 | b | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:27:253:27 | c | -| test.rs:253:22:253:22 | b | test.rs:253:22:253:22 | b | -| test.rs:253:27:253:27 | c | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:253:27:253:27 | c | test.rs:253:27:253:27 | c | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:27 | ... \|\| ... | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:22:258:22 | b | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:27:258:27 | c | -| test.rs:258:22:258:22 | b | test.rs:258:22:258:22 | b | -| test.rs:258:27:258:27 | c | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:258:27:258:27 | c | test.rs:258:27:258:27 | c | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:35 | ... \|\| ... | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:23:263:23 | b | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:35:263:35 | c | -| test.rs:263:23:263:23 | b | test.rs:263:23:263:23 | b | -| test.rs:263:35:263:35 | c | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:263:35:263:35 | c | test.rs:263:35:263:35 | c | -| test.rs:267:5:270:5 | enter fn test_not_operator | test.rs:267:5:270:5 | enter fn test_not_operator | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:9:277:9 | if ... {...} else {...} | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:17:273:17 | b | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:22:273:22 | c | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:274:13:274:16 | true | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:276:13:276:17 | false | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:273:17:273:17 | b | test.rs:273:17:273:17 | b | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:273:22:273:22 | c | test.rs:273:22:273:22 | c | -| test.rs:274:13:274:16 | true | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:274:13:274:16 | true | test.rs:274:13:274:16 | true | -| test.rs:276:13:276:17 | false | test.rs:273:12:273:17 | [boolean(false)] ... && ... | -| test.rs:276:13:276:17 | false | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:276:13:276:17 | false | test.rs:276:13:276:17 | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:9:285:9 | if ... {...} else {...} | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:17:281:17 | b | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:22:281:22 | c | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:282:13:282:16 | true | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:284:13:284:17 | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:281:17:281:17 | b | test.rs:281:17:281:17 | b | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:281:22:281:22 | c | test.rs:281:22:281:22 | c | -| test.rs:282:13:282:16 | true | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | -| test.rs:282:13:282:16 | true | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:282:13:282:16 | true | test.rs:282:13:282:16 | true | -| test.rs:284:13:284:17 | false | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:284:13:284:17 | false | test.rs:284:13:284:17 | false | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:289:9:293:9 | if ... {...} else {...} | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:290:13:290:16 | true | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:292:13:292:17 | false | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:290:13:290:16 | true | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:290:13:290:16 | true | test.rs:290:13:290:16 | true | -| test.rs:292:13:292:17 | false | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:292:13:292:17 | false | test.rs:292:13:292:17 | false | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:296:5:298:5 | exit fn test_and_return (normal) | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:297:9:297:19 | ... && ... | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:297:14:297:19 | return | -| test.rs:297:9:297:19 | ... && ... | test.rs:297:9:297:19 | ... && ... | -| test.rs:297:14:297:19 | return | test.rs:297:14:297:19 | return | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:300:5:305:5 | exit fn test_and_true (normal) | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:301:9:303:9 | if ... {...} | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:301:18:301:21 | true | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:302:13:302:21 | ExprStmt | -| test.rs:301:9:303:9 | if ... {...} | test.rs:301:9:303:9 | if ... {...} | -| test.rs:301:9:303:9 | if ... {...} | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:301:18:301:21 | true | -| test.rs:301:18:301:21 | true | test.rs:301:18:301:21 | true | -| test.rs:302:13:302:21 | ExprStmt | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:302:13:302:21 | ExprStmt | test.rs:301:18:301:21 | true | -| test.rs:302:13:302:21 | ExprStmt | test.rs:302:13:302:21 | ExprStmt | -| test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:312:32:312:32 | 4 | -| test.rs:312:32:312:32 | 4 | test.rs:312:32:312:32 | 4 | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:316:9:319:9 | match ... { ... } | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:317:13:317:16 | true | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:317:21:317:24 | Some | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:318:13:318:17 | false | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:316:9:319:9 | match ... { ... } | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:317:13:317:16 | true | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:317:21:317:24 | Some | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:318:13:318:17 | false | -| test.rs:317:13:317:16 | true | test.rs:317:13:317:16 | true | -| test.rs:317:21:317:24 | Some | test.rs:317:21:317:24 | Some | -| test.rs:318:13:318:17 | false | test.rs:318:13:318:17 | false | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:327:9:331:9 | match maybe_digit { ... } | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:328:26:328:26 | x | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:328:42:328:42 | x | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:329:26:329:26 | x | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:330:13:330:24 | ...::None | -| test.rs:328:26:328:26 | x | test.rs:328:26:328:26 | x | -| test.rs:328:42:328:42 | x | test.rs:328:42:328:42 | x | +| cfg.rs:1:1:3:1 | Entry | cfg.rs:1:1:3:1 | Entry | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:5:1:10:1 | Entry | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:5:1:10:1 | Entry | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:6:5:9:5 | After match value { ... } | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:7:13:7:18 | After CfgPredPat [match] | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | +| cfg.rs:7:13:7:18 | After CfgPredPat [match] | cfg.rs:7:13:7:18 | After CfgPredPat [match] | +| cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | +| test.rs:5:5:8:5 | Entry | test.rs:5:5:8:5 | Entry | +| test.rs:10:5:13:5 | Entry | test.rs:10:5:13:5 | Entry | +| test.rs:18:5:24:5 | Entry | test.rs:18:5:24:5 | Entry | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:18:5:24:5 | Entry | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:9:23:9 | After if ... {...} else {...} | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:12:19:21 | After ... == ... [false] | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:12:19:21 | After ... == ... [true] | +| test.rs:19:12:19:21 | After ... == ... [false] | test.rs:19:12:19:21 | After ... == ... [false] | +| test.rs:19:12:19:21 | After ... == ... [true] | test.rs:19:12:19:21 | After ... == ... [true] | +| test.rs:26:5:42:5 | Entry | test.rs:26:5:42:5 | Entry | +| test.rs:26:5:42:5 | Normal Exit | test.rs:26:5:42:5 | Entry | +| test.rs:26:5:42:5 | Normal Exit | test.rs:26:5:42:5 | Normal Exit | +| test.rs:26:5:42:5 | Normal Exit | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:26:5:42:5 | Normal Exit | test.rs:28:14:40:9 | { ... } | +| test.rs:26:5:42:5 | Normal Exit | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:30:16:30:24 | After ... > ... [true] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:26:5:42:5 | Normal Exit | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:28:14:40:9 | { ... } | test.rs:26:5:42:5 | Entry | +| test.rs:28:14:40:9 | { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | +| test.rs:28:14:40:9 | { ... } | test.rs:28:14:40:9 | { ... } | +| test.rs:28:14:40:9 | { ... } | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:30:16:30:24 | After ... > ... [true] | test.rs:30:16:30:24 | After ... > ... [true] | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:33:16:33:21 | After ... == ... [true] | test.rs:33:16:33:21 | After ... == ... [true] | +| test.rs:36:16:36:25 | After ... != ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | +| test.rs:36:16:36:25 | After ... != ... [true] | test.rs:36:16:36:25 | After ... != ... [true] | +| test.rs:44:5:56:5 | Entry | test.rs:44:5:56:5 | Entry | +| test.rs:45:22:54:9 | { ... } | test.rs:44:5:56:5 | Entry | +| test.rs:45:22:54:9 | { ... } | test.rs:45:22:54:9 | { ... } | +| test.rs:45:22:54:9 | { ... } | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [true] | +| test.rs:45:22:54:9 | { ... } | test.rs:49:27:49:27 | After b [false] | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:47:20:47:20 | After b [true] | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:49:27:49:27 | After b [false] | +| test.rs:47:20:47:20 | After b [false] | test.rs:44:5:56:5 | Entry | +| test.rs:47:20:47:20 | After b [false] | test.rs:45:22:54:9 | { ... } | +| test.rs:47:20:47:20 | After b [false] | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:47:20:47:20 | After b [false] | test.rs:47:20:47:20 | After b [false] | +| test.rs:47:20:47:20 | After b [false] | test.rs:47:20:47:20 | After b [true] | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [false] | +| test.rs:47:20:47:20 | After b [true] | test.rs:47:20:47:20 | After b [true] | +| test.rs:49:27:49:27 | After b [false] | test.rs:49:27:49:27 | After b [false] | +| test.rs:49:27:49:27 | After b [true] | test.rs:44:5:56:5 | Entry | +| test.rs:49:27:49:27 | After b [true] | test.rs:45:22:54:9 | { ... } | +| test.rs:49:27:49:27 | After b [true] | test.rs:46:13:53:13 | After 'inner: loop { ... } | +| test.rs:49:27:49:27 | After b [true] | test.rs:47:20:47:20 | After b [false] | +| test.rs:49:27:49:27 | After b [true] | test.rs:47:20:47:20 | After b [true] | +| test.rs:49:27:49:27 | After b [true] | test.rs:49:27:49:27 | After b [false] | +| test.rs:49:27:49:27 | After b [true] | test.rs:49:27:49:27 | After b [true] | +| test.rs:58:5:70:5 | Entry | test.rs:58:5:70:5 | Entry | +| test.rs:59:22:69:9 | { ... } | test.rs:59:22:69:9 | { ... } | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | +| test.rs:61:26:68:13 | { ... } | test.rs:61:26:68:13 | { ... } | +| test.rs:62:20:62:20 | After b [false] | test.rs:62:20:62:20 | After b [false] | +| test.rs:62:20:62:20 | After b [true] | test.rs:62:20:62:20 | After b [true] | +| test.rs:64:27:64:27 | After b [false] | test.rs:64:27:64:27 | After b [false] | +| test.rs:64:27:64:27 | After b [true] | test.rs:64:27:64:27 | After b [true] | +| test.rs:72:5:84:5 | Entry | test.rs:72:5:84:5 | Entry | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | +| test.rs:75:26:82:13 | { ... } | test.rs:75:26:82:13 | { ... } | +| test.rs:76:20:76:20 | After b [false] | test.rs:76:20:76:20 | After b [false] | +| test.rs:76:20:76:20 | After b [true] | test.rs:76:20:76:20 | After b [true] | +| test.rs:78:27:78:27 | After b [false] | test.rs:78:27:78:27 | After b [false] | +| test.rs:78:27:78:27 | After b [true] | test.rs:78:27:78:27 | After b [true] | +| test.rs:86:5:95:5 | Entry | test.rs:86:5:95:5 | Entry | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:86:5:95:5 | Entry | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:9:94:9 | After while b { ... } | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:15:88:15 | After b [false] | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:15:88:15 | After b [true] | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:86:5:95:5 | Entry | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:88:15:88:15 | After b [false] | test.rs:88:15:88:15 | After b [false] | +| test.rs:88:15:88:15 | After b [true] | test.rs:88:15:88:15 | After b [true] | +| test.rs:90:17:90:21 | After ... > ... [false] | test.rs:90:17:90:21 | After ... > ... [false] | +| test.rs:90:17:90:21 | After ... > ... [true] | test.rs:90:17:90:21 | After ... > ... [true] | +| test.rs:97:5:104:5 | Entry | test.rs:97:5:104:5 | Entry | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:97:5:104:5 | Entry | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:9:103:9 | After while ... { ... } | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:19:99:25 | After Some(...) [no-match] | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:97:5:104:5 | Entry | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:99:19:99:25 | After Some(...) [no-match] | test.rs:99:19:99:25 | After Some(...) [no-match] | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:100:17:100:22 | After ... == ... [false] | test.rs:100:17:100:22 | After ... == ... [false] | +| test.rs:100:17:100:22 | After ... == ... [true] | test.rs:100:17:100:22 | After ... == ... [true] | +| test.rs:106:5:113:5 | Entry | test.rs:106:5:113:5 | Entry | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:106:5:113:5 | Entry | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:9:112:9 | After for ... in ... { ... } | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:13:107:13 | After i [match] | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:13:107:13 | After i [no-match] | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:13:107:13 | Before i | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:107:13:107:13 | After i [match] | test.rs:107:13:107:13 | After i [match] | +| test.rs:107:13:107:13 | After i [no-match] | test.rs:107:13:107:13 | After i [no-match] | +| test.rs:107:13:107:13 | Before i | test.rs:106:5:113:5 | Entry | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | Before i | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:108:17:108:22 | After ... == ... [false] | test.rs:108:17:108:22 | After ... == ... [false] | +| test.rs:108:17:108:22 | After ... == ... [true] | test.rs:108:17:108:22 | After ... == ... [true] | +| test.rs:115:5:119:5 | Entry | test.rs:115:5:119:5 | Entry | +| test.rs:122:1:125:1 | Entry | test.rs:122:1:125:1 | Entry | +| test.rs:123:19:123:27 | Entry | test.rs:123:19:123:27 | Entry | +| test.rs:129:5:135:5 | Entry | test.rs:129:5:135:5 | Entry | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:129:5:135:5 | Entry | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:9:134:9 | After if ... {...} else {...} | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:12:130:17 | After ... <= ... [false] | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:12:130:17 | After ... <= ... [true] | +| test.rs:130:12:130:17 | After ... <= ... [false] | test.rs:130:12:130:17 | After ... <= ... [false] | +| test.rs:130:12:130:17 | After ... <= ... [true] | test.rs:130:12:130:17 | After ... <= ... [true] | +| test.rs:137:5:143:5 | Entry | test.rs:137:5:143:5 | Entry | +| test.rs:139:9:141:9 | After if b {...} | test.rs:137:5:143:5 | Entry | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:9:141:9 | After if b {...} | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:12:139:12 | After b [false] | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:12:139:12 | After b [true] | +| test.rs:139:12:139:12 | After b [false] | test.rs:139:12:139:12 | After b [false] | +| test.rs:139:12:139:12 | After b [true] | test.rs:139:12:139:12 | After b [true] | +| test.rs:145:5:151:5 | Entry | test.rs:145:5:151:5 | Entry | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:145:5:151:5 | Entry | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:9:150:9 | After if ... {...} else {...} | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:16:146:22 | After Some(...) [no-match] | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:16:146:22 | [pattern-start] Some(...) | +| test.rs:146:16:146:22 | After Some(...) [no-match] | test.rs:146:16:146:22 | After Some(...) [no-match] | +| test.rs:146:16:146:22 | [pattern-start] Some(...) | test.rs:146:16:146:22 | [pattern-start] Some(...) | +| test.rs:153:5:158:5 | Entry | test.rs:153:5:158:5 | Entry | +| test.rs:153:5:158:5 | Normal Exit | test.rs:153:5:158:5 | Entry | +| test.rs:153:5:158:5 | Normal Exit | test.rs:153:5:158:5 | Normal Exit | +| test.rs:153:5:158:5 | Normal Exit | test.rs:154:16:154:22 | After Some(...) [no-match] | +| test.rs:153:5:158:5 | Normal Exit | test.rs:154:16:154:22 | [pattern-start] Some(...) | +| test.rs:154:16:154:22 | After Some(...) [no-match] | test.rs:154:16:154:22 | After Some(...) [no-match] | +| test.rs:154:16:154:22 | [pattern-start] Some(...) | test.rs:154:16:154:22 | [pattern-start] Some(...) | +| test.rs:160:5:166:5 | Entry | test.rs:160:5:166:5 | Entry | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:160:5:166:5 | Entry | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:9:165:9 | After if ... {...} else {...} | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:161:24:161:30 | After ... < ... [false] | test.rs:161:24:161:30 | After ... < ... [false] | +| test.rs:161:24:161:30 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [true] | +| test.rs:161:41:161:46 | After ... > ... [false] | test.rs:161:41:161:46 | After ... > ... [false] | +| test.rs:161:41:161:46 | After ... > ... [true] | test.rs:161:41:161:46 | After ... > ... [true] | +| test.rs:168:5:177:5 | Entry | test.rs:168:5:177:5 | Entry | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:168:5:177:5 | Entry | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:9:176:9 | After if cond1 {...} | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:12:169:16 | After cond1 [false] | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:170:13:174:13 | After if cond2 {...} else {...} | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:169:12:169:16 | After cond1 [false] | test.rs:169:12:169:16 | After cond1 [false] | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:13:174:13 | After if cond2 {...} else {...} | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:170:16:170:20 | After cond2 [false] | test.rs:170:16:170:20 | After cond2 [false] | +| test.rs:170:16:170:20 | After cond2 [true] | test.rs:170:16:170:20 | After cond2 [true] | +| test.rs:179:5:188:5 | Entry | test.rs:179:5:188:5 | Entry | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:179:5:188:5 | Entry | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:9:187:9 | After if ... {...} else {...} | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:13:183:9 | After match a { ... } [false] | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:13:183:9 | After match a { ... } [true] | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:181:13:181:13 | After 0 [match] | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:181:13:181:13 | After 0 [no-match] | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:180:13:183:9 | After match a { ... } [false] | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:180:13:183:9 | After match a { ... } [true] | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:181:13:181:13 | After 0 [match] | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:181:13:181:13 | After 0 [no-match] | +| test.rs:190:5:199:5 | Entry | test.rs:190:5:199:5 | Entry | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:190:5:199:5 | Entry | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:191:9:198:9 | After if ... {...} else {...} | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:193:13:193:17 | After ... > ... [false] | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:193:13:193:17 | After ... > ... [true] | +| test.rs:193:13:193:17 | After ... > ... [false] | test.rs:193:13:193:17 | After ... > ... [false] | +| test.rs:193:13:193:17 | After ... > ... [true] | test.rs:193:13:193:17 | After ... > ... [true] | +| test.rs:201:5:211:5 | Entry | test.rs:201:5:211:5 | Entry | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:201:5:211:5 | Entry | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:203:9:210:9 | After if ... {...} else {...} | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:205:13:205:13 | After x [false] | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:205:13:205:13 | After x [true] | +| test.rs:205:13:205:13 | After x [false] | test.rs:205:13:205:13 | After x [false] | +| test.rs:205:13:205:13 | After x [true] | test.rs:205:13:205:13 | After x [true] | +| test.rs:213:5:224:5 | Entry | test.rs:213:5:224:5 | Entry | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:213:5:224:5 | Entry | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:214:9:223:9 | After if ... {...} else {...} | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:214:18:219:9 | { ... } | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:214:18:219:9 | { ... } | test.rs:213:5:224:5 | Entry | +| test.rs:214:18:219:9 | { ... } | test.rs:214:18:219:9 | { ... } | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:215:16:215:20 | After ... > ... [false] | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:213:5:224:5 | Entry | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:214:18:219:9 | { ... } | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:215:16:215:20 | After ... > ... [false] | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:216:23:216:28 | After ... > ... [false] | test.rs:216:23:216:28 | After ... > ... [false] | +| test.rs:216:23:216:28 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [true] | +| test.rs:226:5:237:5 | Entry | test.rs:226:5:237:5 | Entry | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:226:5:237:5 | Entry | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:227:9:236:9 | After if ... {...} else {...} | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:227:26:232:9 | { ... } | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:227:26:232:9 | { ... } | test.rs:226:5:237:5 | Entry | +| test.rs:227:26:232:9 | { ... } | test.rs:227:26:232:9 | { ... } | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:228:16:228:20 | After ... > ... [false] | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:226:5:237:5 | Entry | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:227:26:232:9 | { ... } | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:228:16:228:20 | After ... > ... [false] | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:229:30:229:35 | After ... > ... [false] | test.rs:229:30:229:35 | After ... > ... [false] | +| test.rs:229:30:229:35 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [true] | +| test.rs:239:5:247:5 | Entry | test.rs:239:5:247:5 | Entry | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:239:5:247:5 | Entry | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:240:9:246:9 | After if ... {...} else {...} | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:241:26:241:30 | After ... > ... [false] | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:241:26:241:30 | After ... > ... [true] | +| test.rs:241:26:241:30 | After ... > ... [false] | test.rs:241:26:241:30 | After ... > ... [false] | +| test.rs:241:26:241:30 | After ... > ... [true] | test.rs:241:26:241:30 | After ... > ... [true] | +| test.rs:252:5:255:5 | Entry | test.rs:252:5:255:5 | Entry | +| test.rs:253:17:253:17 | After a [false] | test.rs:253:17:253:17 | After a [false] | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:17:253:17 | After a [true] | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:17:253:17 | After a [false] | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:17:253:22 | After ... && ... [false] | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:22:253:22 | After b [false] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:252:5:255:5 | Entry | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:17 | After a [false] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:17 | After a [true] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:22 | After ... && ... [false] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:27 | After ... && ... | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:22:253:22 | After b [false] | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:22:253:22 | After b [true] | +| test.rs:253:22:253:22 | After b [false] | test.rs:253:22:253:22 | After b [false] | +| test.rs:253:22:253:22 | After b [true] | test.rs:253:22:253:22 | After b [true] | +| test.rs:257:5:260:5 | Entry | test.rs:257:5:260:5 | Entry | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:17:258:17 | After a [false] | +| test.rs:258:17:258:17 | After a [true] | test.rs:258:17:258:17 | After a [true] | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:17:258:17 | After a [true] | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:22:258:22 | After b [true] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:257:5:260:5 | Entry | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:17 | After a [false] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:17 | After a [true] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:22 | After ... \|\| ... [true] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:27 | After ... \|\| ... | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:22:258:22 | After b [false] | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:22:258:22 | After b [true] | +| test.rs:258:22:258:22 | After b [false] | test.rs:258:22:258:22 | After b [false] | +| test.rs:258:22:258:22 | After b [true] | test.rs:258:22:258:22 | After b [true] | +| test.rs:262:5:265:5 | Entry | test.rs:262:5:265:5 | Entry | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:17:263:17 | After a [false] | +| test.rs:263:17:263:17 | After a [true] | test.rs:263:17:263:17 | After a [true] | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:17:263:17 | After a [true] | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:262:5:265:5 | Entry | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:17 | After a [false] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:17 | After a [true] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:30 | After ... \|\| ... [true] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:35 | After ... \|\| ... | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:23:263:29 | After ... == ... [false] | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:263:23:263:29 | After ... == ... [false] | test.rs:263:23:263:29 | After ... == ... [false] | +| test.rs:263:23:263:29 | After ... == ... [true] | test.rs:263:23:263:29 | After ... == ... [true] | +| test.rs:267:5:270:5 | Entry | test.rs:267:5:270:5 | Entry | +| test.rs:272:5:278:5 | Entry | test.rs:272:5:278:5 | Entry | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:272:5:278:5 | Entry | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:9:277:9 | After if ... {...} else {...} | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:12:273:12 | After a [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:12:273:12 | After a [true] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:12:273:17 | After ... && ... [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:12:273:22 | After ... && ... [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:17:273:17 | After b [true] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:22:273:22 | After c [true] | +| test.rs:273:12:273:12 | After a [false] | test.rs:273:12:273:12 | After a [false] | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:12:273:12 | After a [true] | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:12 | After a [false] | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:17 | After ... && ... [false] | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:12:273:12 | After a [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:12:273:17 | After ... && ... [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:12:273:22 | After ... && ... [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:17:273:17 | After b [false] | test.rs:273:17:273:17 | After b [false] | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:17:273:17 | After b [true] | +| test.rs:273:22:273:22 | After c [false] | test.rs:273:22:273:22 | After c [false] | +| test.rs:273:22:273:22 | After c [true] | test.rs:273:22:273:22 | After c [true] | +| test.rs:280:5:286:5 | Entry | test.rs:280:5:286:5 | Entry | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:280:5:286:5 | Entry | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:9:285:9 | After if ... {...} else {...} | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:12:281:12 | After a [false] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:12:281:12 | After a [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:12:281:17 | After ... \|\| ... [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:12:281:22 | After ... \|\| ... [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:17:281:17 | After b [false] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:22:281:22 | After c [false] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:22:281:22 | After c [true] | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:12:281:12 | After a [false] | +| test.rs:281:12:281:12 | After a [true] | test.rs:281:12:281:12 | After a [true] | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:12 | After a [true] | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:12:281:12 | After a [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:22:281:22 | After c [true] | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:17:281:17 | After b [false] | +| test.rs:281:17:281:17 | After b [true] | test.rs:281:17:281:17 | After b [true] | +| test.rs:281:22:281:22 | After c [false] | test.rs:281:22:281:22 | After c [false] | +| test.rs:281:22:281:22 | After c [true] | test.rs:281:22:281:22 | After c [true] | +| test.rs:288:5:294:5 | Entry | test.rs:288:5:294:5 | Entry | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:288:5:294:5 | Entry | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:9:293:9 | After if ... {...} else {...} | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:13:289:13 | After a [false] | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:13:289:13 | After a [true] | +| test.rs:289:13:289:13 | After a [false] | test.rs:289:13:289:13 | After a [false] | +| test.rs:289:13:289:13 | After a [true] | test.rs:289:13:289:13 | After a [true] | +| test.rs:296:5:298:5 | Entry | test.rs:296:5:298:5 | Entry | +| test.rs:296:5:298:5 | Normal Exit | test.rs:296:5:298:5 | Entry | +| test.rs:296:5:298:5 | Normal Exit | test.rs:296:5:298:5 | Normal Exit | +| test.rs:296:5:298:5 | Normal Exit | test.rs:297:9:297:9 | After a [false] | +| test.rs:296:5:298:5 | Normal Exit | test.rs:297:9:297:9 | After a [true] | +| test.rs:297:9:297:9 | After a [false] | test.rs:297:9:297:9 | After a [false] | +| test.rs:297:9:297:9 | After a [true] | test.rs:297:9:297:9 | After a [true] | +| test.rs:300:5:305:5 | Entry | test.rs:300:5:305:5 | Entry | +| test.rs:300:5:305:5 | Normal Exit | test.rs:300:5:305:5 | Entry | +| test.rs:300:5:305:5 | Normal Exit | test.rs:300:5:305:5 | Normal Exit | +| test.rs:300:5:305:5 | Normal Exit | test.rs:301:13:301:13 | After a [false] | +| test.rs:300:5:305:5 | Normal Exit | test.rs:301:13:301:13 | After a [true] | +| test.rs:301:13:301:13 | After a [false] | test.rs:301:13:301:13 | After a [false] | +| test.rs:301:13:301:13 | After a [true] | test.rs:301:13:301:13 | After a [true] | +| test.rs:311:5:313:5 | Entry | test.rs:311:5:313:5 | Entry | +| test.rs:311:5:313:5 | Normal Exit | test.rs:311:5:313:5 | Entry | +| test.rs:311:5:313:5 | Normal Exit | test.rs:311:5:313:5 | Normal Exit | +| test.rs:311:5:313:5 | Normal Exit | test.rs:312:12:312:27 | After s.parse() [match] | +| test.rs:311:5:313:5 | Normal Exit | test.rs:312:12:312:27 | After s.parse() [no-match] | +| test.rs:312:12:312:27 | After s.parse() [match] | test.rs:312:12:312:27 | After s.parse() [match] | +| test.rs:312:12:312:27 | After s.parse() [no-match] | test.rs:312:12:312:27 | After s.parse() [no-match] | +| test.rs:315:5:320:5 | Entry | test.rs:315:5:320:5 | Entry | +| test.rs:315:5:320:5 | Normal Exit | test.rs:315:5:320:5 | Entry | +| test.rs:315:5:320:5 | Normal Exit | test.rs:315:5:320:5 | Normal Exit | +| test.rs:315:5:320:5 | Normal Exit | test.rs:316:9:319:9 | After match ... { ... } | +| test.rs:315:5:320:5 | Normal Exit | test.rs:316:15:316:15 | After b [match] | +| test.rs:315:5:320:5 | Normal Exit | test.rs:316:15:316:15 | After b [no-match] | +| test.rs:315:5:320:5 | Normal Exit | test.rs:317:13:317:16 | After true [match] | +| test.rs:315:5:320:5 | Normal Exit | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:316:9:319:9 | After match ... { ... } | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:316:15:316:15 | After b [match] | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:317:13:317:16 | After true [match] | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:316:15:316:15 | After b [match] | test.rs:316:15:316:15 | After b [match] | +| test.rs:316:15:316:15 | After b [no-match] | test.rs:316:15:316:15 | After b [no-match] | +| test.rs:317:13:317:16 | After true [match] | test.rs:317:13:317:16 | After true [match] | +| test.rs:317:13:317:16 | After true [no-match] | test.rs:317:13:317:16 | After true [no-match] | +| test.rs:326:5:332:5 | Entry | test.rs:326:5:332:5 | Entry | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:326:5:332:5 | Entry | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:327:9:331:9 | After match maybe_digit { ... } | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:328:32:328:37 | After ... < ... [false] | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:328:32:328:37 | After ... < ... [true] | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:329:13:329:27 | ...::Some(...) | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | +| test.rs:328:13:328:27 | After ...::Some(...) [no-match] | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:328:32:328:37 | After ... < ... [false] | test.rs:328:32:328:37 | After ... < ... [false] | +| test.rs:328:32:328:37 | After ... < ... [true] | test.rs:328:32:328:37 | After ... < ... [true] | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [false] | | test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:329:26:329:26 | x | test.rs:329:26:329:26 | x | -| test.rs:330:13:330:24 | ...::None | test.rs:330:13:330:24 | ...::None | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:335:9:342:9 | match ... { ... } | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:336:13:336:21 | ExprStmt | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:338:13:338:23 | maybe_digit | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:340:26:340:26 | x | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:341:13:341:24 | ...::None | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:335:9:342:9 | match ... { ... } | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:338:13:338:23 | maybe_digit | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:340:26:340:26 | x | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:341:13:341:24 | ...::None | -| test.rs:336:13:336:21 | ExprStmt | test.rs:336:13:336:21 | ExprStmt | -| test.rs:338:13:338:23 | maybe_digit | test.rs:338:13:338:23 | maybe_digit | -| test.rs:340:26:340:26 | x | test.rs:340:26:340:26 | x | -| test.rs:341:13:341:24 | ...::None | test.rs:341:13:341:24 | ...::None | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:346:9:349:18 | ... && ... | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:346:9:349:18 | ... && ... | test.rs:346:9:349:18 | ... && ... | -| test.rs:346:9:349:18 | ... && ... | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | -| test.rs:346:9:349:18 | ... && ... | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:346:9:349:18 | ... && ... | test.rs:347:18:347:18 | a | -| test.rs:346:9:349:18 | ... && ... | test.rs:348:13:348:13 | _ | -| test.rs:346:9:349:18 | ... && ... | test.rs:349:15:349:18 | cond | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:348:13:348:13 | _ | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:347:18:347:18 | a | test.rs:347:18:347:18 | a | -| test.rs:348:13:348:13 | _ | test.rs:348:13:348:13 | _ | -| test.rs:349:15:349:18 | cond | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:349:15:349:18 | cond | test.rs:349:15:349:18 | cond | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:353:9:356:9 | match r { ... } | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:353:9:356:9 | match r { ... } | test.rs:353:9:356:9 | match r { ... } | -| test.rs:353:9:356:9 | match r { ... } | test.rs:354:16:354:20 | value | -| test.rs:353:9:356:9 | match r { ... } | test.rs:355:13:355:22 | Err(...) | -| test.rs:354:16:354:20 | value | test.rs:354:16:354:20 | value | -| test.rs:355:13:355:22 | Err(...) | test.rs:355:13:355:22 | Err(...) | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:363:18:363:18 | n | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | -| test.rs:363:39:363:53 | ExprStmt | test.rs:363:39:363:53 | ExprStmt | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:369:18:369:20 | ret | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:370:13:370:16 | None | -| test.rs:369:18:369:20 | ret | test.rs:369:18:369:20 | ret | -| test.rs:370:13:370:16 | None | test.rs:370:13:370:16 | None | -| test.rs:378:5:381:5 | enter fn empty_tuple_pattern | test.rs:378:5:381:5 | enter fn empty_tuple_pattern | -| test.rs:387:5:391:5 | enter fn empty_struct_pattern | test.rs:387:5:391:5 | enter fn empty_struct_pattern | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:394:9:397:9 | match st { ... } | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:394:9:397:9 | match st { ... } | test.rs:394:9:397:9 | match st { ... } | -| test.rs:394:9:397:9 | match st { ... } | test.rs:395:27:395:27 | 1 | -| test.rs:394:9:397:9 | match st { ... } | test.rs:395:34:395:34 | 0 | -| test.rs:394:9:397:9 | match st { ... } | test.rs:396:13:396:26 | MyStruct {...} | -| test.rs:395:27:395:27 | 1 | test.rs:395:27:395:27 | 1 | -| test.rs:395:34:395:34 | 0 | test.rs:395:34:395:34 | 0 | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:396:13:396:26 | MyStruct {...} | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:401:9:406:9 | match 42 { ... } | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:402:20:402:20 | 1 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:403:13:403:16 | RangePat | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:403:16:403:16 | 2 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:403:21:403:21 | 2 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:404:13:404:15 | RangePat | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:404:20:404:20 | 3 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:405:13:405:13 | _ | -| test.rs:402:20:402:20 | 1 | test.rs:402:20:402:20 | 1 | -| test.rs:403:13:403:16 | RangePat | test.rs:403:13:403:16 | RangePat | -| test.rs:403:16:403:16 | 2 | test.rs:403:16:403:16 | 2 | -| test.rs:403:21:403:21 | 2 | test.rs:403:21:403:21 | 2 | -| test.rs:404:13:404:15 | RangePat | test.rs:404:13:404:15 | RangePat | -| test.rs:404:20:404:20 | 3 | test.rs:404:20:404:20 | 3 | -| test.rs:405:13:405:13 | _ | test.rs:405:13:405:13 | _ | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:410:9:413:9 | match 43 { ... } | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:411:13:411:13 | n | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:411:20:411:21 | 10 | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:412:13:412:13 | _ | -| test.rs:411:13:411:13 | n | test.rs:411:13:411:13 | n | -| test.rs:411:20:411:21 | 10 | test.rs:411:20:411:21 | 10 | -| test.rs:412:13:412:13 | _ | test.rs:412:13:412:13 | _ | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:418:9:421:9 | match a { ... } | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:418:9:421:9 | match a { ... } | test.rs:418:9:421:9 | match a { ... } | -| test.rs:418:9:421:9 | match a { ... } | test.rs:419:21:419:21 | n | -| test.rs:418:9:421:9 | match a { ... } | test.rs:419:28:419:29 | 10 | -| test.rs:418:9:421:9 | match a { ... } | test.rs:420:21:420:21 | n | -| test.rs:419:21:419:21 | n | test.rs:419:21:419:21 | n | -| test.rs:419:28:419:29 | 10 | test.rs:419:28:419:29 | 10 | -| test.rs:420:21:420:21 | n | test.rs:420:21:420:21 | n | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:426:9:430:9 | match ... { ... } | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:427:17:427:17 | _ | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:428:13:428:19 | TuplePat | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:428:24:428:24 | 3 | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:429:13:429:16 | TuplePat | -| test.rs:427:17:427:17 | _ | test.rs:427:17:427:17 | _ | -| test.rs:428:13:428:19 | TuplePat | test.rs:428:13:428:19 | TuplePat | -| test.rs:428:24:428:24 | 3 | test.rs:428:24:428:24 | 3 | -| test.rs:429:13:429:16 | TuplePat | test.rs:429:13:429:16 | TuplePat | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:434:9:437:9 | match a { ... } | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:434:9:437:9 | match a { ... } | test.rs:434:9:437:9 | match a { ... } | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:17:435:17 | 1 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:21:435:21 | 2 | -| test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | -| test.rs:435:17:435:17 | 1 | test.rs:435:17:435:17 | 1 | -| test.rs:435:21:435:21 | 2 | test.rs:435:21:435:21 | 2 | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:441:9:444:9 | match a { ... } | -| test.rs:441:9:444:9 | match a { ... } | test.rs:442:21:442:21 | 3 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:443:13:443:22 | Some(...) | -| test.rs:441:9:444:9 | match a { ... } | test.rs:443:13:443:36 | ... \| ... | -| test.rs:441:9:444:9 | match a { ... } | test.rs:443:18:443:21 | true | -| test.rs:441:9:444:9 | match a { ... } | test.rs:443:26:443:36 | Some(...) | -| test.rs:442:21:442:21 | 3 | test.rs:442:21:442:21 | 3 | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:13:443:22 | Some(...) | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:13:443:22 | Some(...) | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:13:443:36 | ... \| ... | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:18:443:21 | true | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:26:443:36 | Some(...) | -| test.rs:443:18:443:21 | true | test.rs:443:18:443:21 | true | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:26:443:36 | Some(...) | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:454:9:457:9 | match a { ... } | -| test.rs:454:9:457:9 | match a { ... } | test.rs:455:13:455:23 | 2 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | -| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | 2 | -| test.rs:455:13:455:23 | [match(false)] 1 \| 2 | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:461:9:464:9 | match pair { ... } | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:462:32:462:32 | _ | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:463:13:463:13 | _ | -| test.rs:462:32:462:32 | _ | test.rs:462:32:462:32 | _ | -| test.rs:463:13:463:13 | _ | test.rs:463:13:463:13 | _ | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:476:9:480:9 | match e { ... } | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:476:9:480:9 | match e { ... } | test.rs:476:9:480:9 | match e { ... } | -| test.rs:476:9:480:9 | match e { ... } | test.rs:477:32:477:32 | _ | -| test.rs:476:9:480:9 | match e { ... } | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:476:9:480:9 | match e { ... } | test.rs:478:26:478:26 | _ | -| test.rs:476:9:480:9 | match e { ... } | test.rs:479:13:479:23 | UnitVariant | -| test.rs:477:32:477:32 | _ | test.rs:477:32:477:32 | _ | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:478:26:478:26 | _ | test.rs:478:26:478:26 | _ | -| test.rs:479:13:479:23 | UnitVariant | test.rs:479:13:479:23 | UnitVariant | -| test.rs:485:5:490:5 | enter fn test_infinite_loop | test.rs:485:5:490:5 | enter fn test_infinite_loop | -| test.rs:487:13:487:14 | TupleExpr | test.rs:487:13:487:14 | TupleExpr | -| test.rs:494:5:496:5 | enter fn say_hello | test.rs:494:5:496:5 | enter fn say_hello | -| test.rs:498:5:517:5 | enter fn async_block | test.rs:498:5:517:5 | enter fn async_block | -| test.rs:499:26:501:9 | enter { ... } | test.rs:499:26:501:9 | enter { ... } | -| test.rs:502:31:504:9 | enter { ... } | test.rs:502:31:504:9 | enter { ... } | -| test.rs:511:22:516:9 | enter \|...\| ... | test.rs:511:22:516:9 | enter \|...\| ... | -| test.rs:511:28:516:9 | enter { ... } | test.rs:511:28:516:9 | enter { ... } | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:511:28:516:9 | enter { ... } | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:511:28:516:9 | exit { ... } (normal) | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:512:13:514:13 | if b {...} | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:513:17:513:41 | ExprStmt | -| test.rs:512:13:514:13 | if b {...} | test.rs:512:13:514:13 | if b {...} | -| test.rs:513:17:513:41 | ExprStmt | test.rs:513:17:513:41 | ExprStmt | -| test.rs:523:5:525:5 | enter fn add_two | test.rs:523:5:525:5 | enter fn add_two | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | ExprStmt | -| test.rs:533:13:533:19 | ExprStmt | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:533:21:533:48 | if ... {...} | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:13:533:19 | ExprStmt | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | [boolean(false)] ! ... | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | if ... {...} | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | -| test.rs:541:9:546:9 | if false {...} | test.rs:539:5:548:5 | enter fn const_block_panic | -| test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | -| test.rs:553:9:553:17 | ExprStmt | test.rs:551:1:556:1 | enter fn dead_code | -| test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | -| test.rs:558:1:558:16 | enter fn do_thing | test.rs:558:1:558:16 | enter fn do_thing | -| test.rs:560:1:562:1 | enter fn condition_not_met | test.rs:560:1:562:1 | enter fn condition_not_met | -| test.rs:564:1:564:21 | enter fn do_next_thing | test.rs:564:1:564:21 | enter fn do_next_thing | -| test.rs:566:1:566:21 | enter fn do_last_thing | test.rs:566:1:566:21 | enter fn do_last_thing | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:569:18:580:5 | 'block: { ... } | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:571:9:573:9 | if ... {...} | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:572:13:572:27 | ExprStmt | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:575:9:577:9 | if ... {...} | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:576:13:576:27 | ExprStmt | -| test.rs:571:9:573:9 | if ... {...} | test.rs:571:9:573:9 | if ... {...} | -| test.rs:572:13:572:27 | ExprStmt | test.rs:572:13:572:27 | ExprStmt | -| test.rs:575:9:577:9 | if ... {...} | test.rs:575:9:577:9 | if ... {...} | -| test.rs:576:13:576:27 | ExprStmt | test.rs:576:13:576:27 | ExprStmt | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:584:1:592:1 | enter fn labelled_block2 | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:584:1:592:1 | enter fn labelled_block2 | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:585:18:591:5 | 'block: { ... } | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:587:18:587:18 | y | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:588:13:588:27 | ExprStmt | -| test.rs:587:18:587:18 | y | test.rs:587:18:587:18 | y | -| test.rs:588:13:588:27 | ExprStmt | test.rs:588:13:588:27 | ExprStmt | -| test.rs:594:1:600:1 | enter fn test_nested_function2 | test.rs:594:1:600:1 | enter fn test_nested_function2 | -| test.rs:596:5:598:5 | enter fn nested | test.rs:596:5:598:5 | enter fn nested | -| test.rs:611:5:613:5 | enter fn new | test.rs:611:5:613:5 | enter fn new | -| test.rs:615:5:617:5 | enter fn negated | test.rs:615:5:617:5 | enter fn negated | -| test.rs:619:5:621:5 | enter fn multifly_add | test.rs:619:5:621:5 | enter fn multifly_add | +| test.rs:329:13:329:27 | After ...::Some(...) [no-match] | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | +| test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | +| test.rs:334:5:343:5 | Entry | test.rs:334:5:343:5 | Entry | +| test.rs:334:5:343:5 | Normal Exit | test.rs:334:5:343:5 | Entry | +| test.rs:334:5:343:5 | Normal Exit | test.rs:334:5:343:5 | Normal Exit | +| test.rs:334:5:343:5 | Normal Exit | test.rs:335:9:342:9 | After match ... { ... } | +| test.rs:334:5:343:5 | Normal Exit | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:334:5:343:5 | Normal Exit | test.rs:335:19:335:40 | After ... == ... [true] | +| test.rs:334:5:343:5 | Normal Exit | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:334:5:343:5 | Normal Exit | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:335:9:342:9 | After match ... { ... } | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:335:19:335:40 | After ... == ... [true] | test.rs:335:19:335:40 | After ... == ... [true] | +| test.rs:340:13:340:27 | After ...::Some(...) [no-match] | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | +| test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | +| test.rs:345:5:350:5 | Entry | test.rs:345:5:350:5 | Entry | +| test.rs:346:9:349:18 | After ... && ... | test.rs:345:5:350:5 | Entry | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:9:349:18 | After ... && ... | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:10:349:9 | After match r { ... } [false] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:10:349:9 | After match r { ... } [true] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:347:13:347:19 | After Some(...) [no-match] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:346:9:349:18 | After ... && ... | test.rs:347:24:347:24 | After a [false] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:347:24:347:24 | After a [true] | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:346:10:349:9 | After match r { ... } [false] | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:346:10:349:9 | After match r { ... } [true] | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:347:13:347:19 | After Some(...) [no-match] | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:347:24:347:24 | After a [false] | test.rs:347:24:347:24 | After a [false] | +| test.rs:347:24:347:24 | After a [true] | test.rs:347:24:347:24 | After a [true] | +| test.rs:352:5:357:5 | Entry | test.rs:352:5:357:5 | Entry | +| test.rs:352:5:357:5 | Exit | test.rs:352:5:357:5 | Exit | +| test.rs:354:13:354:21 | After Ok(...) [no-match] | test.rs:354:13:354:21 | After Ok(...) [no-match] | +| test.rs:354:13:354:21 | [pattern-start] Ok(...) | test.rs:352:5:357:5 | Entry | +| test.rs:354:13:354:21 | [pattern-start] Ok(...) | test.rs:354:13:354:21 | [pattern-start] Ok(...) | +| test.rs:362:5:365:5 | Entry | test.rs:362:5:365:5 | Entry | +| test.rs:362:5:365:5 | Exit | test.rs:362:5:365:5 | Exit | +| test.rs:363:13:363:19 | After Some(...) [no-match] | test.rs:363:13:363:19 | After Some(...) [no-match] | +| test.rs:363:13:363:19 | [pattern-start] Some(...) | test.rs:362:5:365:5 | Entry | +| test.rs:363:13:363:19 | [pattern-start] Some(...) | test.rs:363:13:363:19 | [pattern-start] Some(...) | +| test.rs:367:5:373:5 | Entry | test.rs:367:5:373:5 | Entry | +| test.rs:367:5:373:5 | Normal Exit | test.rs:367:5:373:5 | Entry | +| test.rs:367:5:373:5 | Normal Exit | test.rs:367:5:373:5 | Normal Exit | +| test.rs:367:5:373:5 | Normal Exit | test.rs:369:13:369:21 | After Some(...) [no-match] | +| test.rs:367:5:373:5 | Normal Exit | test.rs:369:13:369:21 | [pattern-start] Some(...) | +| test.rs:369:13:369:21 | After Some(...) [no-match] | test.rs:369:13:369:21 | After Some(...) [no-match] | +| test.rs:369:13:369:21 | [pattern-start] Some(...) | test.rs:369:13:369:21 | [pattern-start] Some(...) | +| test.rs:378:5:381:5 | Entry | test.rs:378:5:381:5 | Entry | +| test.rs:387:5:391:5 | Entry | test.rs:387:5:391:5 | Entry | +| test.rs:393:5:398:5 | Entry | test.rs:393:5:398:5 | Entry | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:393:5:398:5 | Entry | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:394:9:397:9 | After match st { ... } | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:27:395:27 | After 1 [match] | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:395:27:395:27 | After 1 [match] | test.rs:395:27:395:27 | After 1 [match] | +| test.rs:395:27:395:27 | After 1 [no-match] | test.rs:395:27:395:27 | After 1 [no-match] | +| test.rs:400:5:407:5 | Entry | test.rs:400:5:407:5 | Entry | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:400:5:407:5 | Entry | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:401:9:406:9 | After match 42 { ... } | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:402:15:402:15 | After 0 [match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:402:15:402:15 | After 0 [match] | test.rs:402:15:402:15 | After 0 [match] | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:403:13:403:13 | After 1 [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:403:16:403:16 | After 2 [match] | test.rs:403:16:403:16 | After 2 [match] | +| test.rs:403:16:403:16 | After 2 [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | +| test.rs:404:13:404:13 | After 5 [match] | test.rs:404:13:404:13 | After 5 [match] | +| test.rs:404:13:404:13 | After 5 [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | +| test.rs:409:5:414:5 | Entry | test.rs:409:5:414:5 | Entry | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:409:5:414:5 | Entry | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:410:9:413:9 | After match 43 { ... } | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:17:411:17 | After 1 [no-match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:17:411:21 | After RangePat [no-match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:20:411:21 | After 10 [match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:411:17:411:17 | After 1 [no-match] | test.rs:411:17:411:17 | After 1 [no-match] | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:17:411:17 | After 1 [no-match] | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:411:20:411:21 | After 10 [match] | test.rs:411:20:411:21 | After 10 [match] | +| test.rs:411:20:411:21 | After 10 [no-match] | test.rs:411:20:411:21 | After 10 [no-match] | +| test.rs:416:5:423:5 | Entry | test.rs:416:5:423:5 | Entry | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:416:5:423:5 | Entry | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:418:9:421:9 | After match a { ... } | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:25:419:25 | After 1 [no-match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:25:419:29 | After RangePat [no-match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:28:419:29 | After 10 [match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:419:25:419:25 | After 1 [no-match] | test.rs:419:25:419:25 | After 1 [no-match] | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:25:419:25 | After 1 [no-match] | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:419:28:419:29 | After 10 [match] | test.rs:419:28:419:29 | After 10 [match] | +| test.rs:419:28:419:29 | After 10 [no-match] | test.rs:419:28:419:29 | After 10 [no-match] | +| test.rs:425:5:431:5 | Entry | test.rs:425:5:431:5 | Entry | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:425:5:431:5 | Entry | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:426:9:430:9 | After match ... { ... } | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:427:14:427:14 | After 1 [match] | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:428:18:428:18 | After 2 [match] | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:428:18:428:18 | After 2 [no-match] | +| test.rs:427:14:427:14 | After 1 [match] | test.rs:427:14:427:14 | After 1 [match] | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:428:18:428:18 | After 2 [match] | test.rs:428:18:428:18 | After 2 [match] | +| test.rs:428:18:428:18 | After 2 [no-match] | test.rs:428:18:428:18 | After 2 [no-match] | +| test.rs:433:5:438:5 | Entry | test.rs:433:5:438:5 | Entry | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:433:5:438:5 | Entry | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:434:9:437:9 | After match a { ... } | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:13:435:13 | After 0 [match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:435:13:435:13 | After 0 [match] | test.rs:435:13:435:13 | After 0 [match] | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:13:435:13 | After 0 [match] | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:435:17:435:17 | After 1 [match] | test.rs:435:17:435:17 | After 1 [match] | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:435:21:435:21 | After 2 [match] | test.rs:435:21:435:21 | After 2 [match] | +| test.rs:435:21:435:21 | After 2 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | +| test.rs:440:5:445:5 | Entry | test.rs:440:5:445:5 | Entry | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:440:5:445:5 | Entry | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:441:9:444:9 | After match a { ... } | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:442:13:442:16 | After None [match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:13:443:36 | After ... \| ... [match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:18:443:21 | After true [match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:442:13:442:16 | After None [match] | test.rs:442:13:442:16 | After None [match] | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:13:443:22 | After Some(...) [no-match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:13:443:36 | After ... \| ... [match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:18:443:21 | After true [match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:443:18:443:21 | After true [match] | test.rs:443:18:443:21 | After true [match] | +| test.rs:443:18:443:21 | After true [no-match] | test.rs:443:18:443:21 | After true [no-match] | +| test.rs:453:5:458:5 | Entry | test.rs:453:5:458:5 | Entry | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:453:5:458:5 | Entry | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:454:9:457:9 | After match a { ... } | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 1 [match] | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 1 \| 2 [match] | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 2 [no-match] | +| test.rs:455:13:455:23 | After 1 [match] | test.rs:455:13:455:23 | After 1 [match] | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 1 [match] | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:455:13:455:23 | After 2 [match] | test.rs:455:13:455:23 | After 2 [match] | +| test.rs:455:13:455:23 | After 2 [no-match] | test.rs:455:13:455:23 | After 2 [no-match] | +| test.rs:460:5:465:5 | Entry | test.rs:460:5:465:5 | Entry | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:460:5:465:5 | Entry | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:461:9:464:9 | After match pair { ... } | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | +| test.rs:462:18:462:34 | After MyStruct {...} [no-match] | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | +| test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | +| test.rs:475:5:481:5 | Entry | test.rs:475:5:481:5 | Entry | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:475:5:481:5 | Entry | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:476:9:480:9 | After match e { ... } | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | +| test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | +| test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | +| test.rs:485:5:490:5 | Entry | test.rs:485:5:490:5 | Entry | +| test.rs:486:14:488:9 | { ... } | test.rs:486:14:488:9 | { ... } | +| test.rs:494:5:496:5 | Entry | test.rs:494:5:496:5 | Entry | +| test.rs:498:5:517:5 | Entry | test.rs:498:5:517:5 | Entry | +| test.rs:499:26:501:9 | Entry | test.rs:499:26:501:9 | Entry | +| test.rs:502:31:504:9 | Entry | test.rs:502:31:504:9 | Entry | +| test.rs:505:20:505:27 | Entry | test.rs:505:20:505:27 | Entry | +| test.rs:511:22:516:9 | Entry | test.rs:511:22:516:9 | Entry | +| test.rs:511:28:516:9 | Entry | test.rs:511:28:516:9 | Entry | +| test.rs:511:28:516:9 | Normal Exit | test.rs:511:28:516:9 | Entry | +| test.rs:511:28:516:9 | Normal Exit | test.rs:511:28:516:9 | Normal Exit | +| test.rs:511:28:516:9 | Normal Exit | test.rs:512:16:512:16 | After b [false] | +| test.rs:511:28:516:9 | Normal Exit | test.rs:512:16:512:16 | After b [true] | +| test.rs:512:16:512:16 | After b [false] | test.rs:512:16:512:16 | After b [false] | +| test.rs:512:16:512:16 | After b [true] | test.rs:512:16:512:16 | After b [true] | +| test.rs:523:5:525:5 | Entry | test.rs:523:5:525:5 | Entry | +| test.rs:529:5:537:5 | Entry | test.rs:529:5:537:5 | Entry | +| test.rs:533:21:533:48 | After ... > ... [false] | test.rs:533:21:533:48 | After ... > ... [false] | +| test.rs:533:21:533:48 | After ... > ... [true] | test.rs:533:21:533:48 | After ... > ... [true] | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:529:5:537:5 | Entry | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After ... > ... [false] | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After ... > ... [true] | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After if ... {...} | +| test.rs:539:5:548:5 | Entry | test.rs:539:5:548:5 | Entry | +| test.rs:551:1:556:1 | Entry | test.rs:551:1:556:1 | Entry | +| test.rs:558:1:558:16 | Entry | test.rs:558:1:558:16 | Entry | +| test.rs:560:1:562:1 | Entry | test.rs:560:1:562:1 | Entry | +| test.rs:564:1:564:21 | Entry | test.rs:564:1:564:21 | Entry | +| test.rs:566:1:566:21 | Entry | test.rs:566:1:566:21 | Entry | +| test.rs:568:1:582:1 | Entry | test.rs:568:1:582:1 | Entry | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:568:1:582:1 | Entry | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:569:18:580:5 | After 'block: { ... } | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:571:12:571:30 | After condition_not_met(...) [true] | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:575:12:575:30 | After condition_not_met(...) [false] | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:575:12:575:30 | After condition_not_met(...) [true] | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:571:12:571:30 | After condition_not_met(...) [true] | test.rs:571:12:571:30 | After condition_not_met(...) [true] | +| test.rs:575:12:575:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [false] | +| test.rs:575:12:575:30 | After condition_not_met(...) [true] | test.rs:575:12:575:30 | After condition_not_met(...) [true] | +| test.rs:584:1:592:1 | Entry | test.rs:584:1:592:1 | Entry | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:584:1:592:1 | Entry | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:585:18:591:5 | After 'block: { ... } | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:587:13:587:19 | After Some(...) [no-match] | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:587:13:587:19 | [pattern-start] Some(...) | +| test.rs:587:13:587:19 | After Some(...) [no-match] | test.rs:587:13:587:19 | After Some(...) [no-match] | +| test.rs:587:13:587:19 | [pattern-start] Some(...) | test.rs:587:13:587:19 | [pattern-start] Some(...) | +| test.rs:594:1:600:1 | Entry | test.rs:594:1:600:1 | Entry | +| test.rs:596:5:598:5 | Entry | test.rs:596:5:598:5 | Entry | +| test.rs:611:5:613:5 | Entry | test.rs:611:5:613:5 | Entry | +| test.rs:615:5:617:5 | Entry | test.rs:615:5:617:5 | Entry | +| test.rs:619:5:621:5 | Entry | test.rs:619:5:621:5 | Entry | immediateDominator -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| cfg.rs:7:23:7:26 | true | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| cfg.rs:8:9:8:9 | _ | cfg.rs:5:1:10:1 | enter fn cfg_pat | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:18:5:24:5 | enter fn next | -| test.rs:20:13:20:13 | n | test.rs:18:5:24:5 | enter fn next | -| test.rs:22:13:22:13 | 3 | test.rs:18:5:24:5 | enter fn next | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:29:13:29:24 | ExprStmt | -| test.rs:29:13:29:24 | ExprStmt | test.rs:26:5:42:5 | enter fn test_break_and_continue | -| test.rs:30:13:32:13 | if ... {...} | test.rs:29:13:29:24 | ExprStmt | -| test.rs:31:17:31:29 | ExprStmt | test.rs:29:13:29:24 | ExprStmt | -| test.rs:33:13:35:13 | if ... {...} | test.rs:30:13:32:13 | if ... {...} | -| test.rs:34:17:34:22 | ExprStmt | test.rs:30:13:32:13 | if ... {...} | -| test.rs:36:13:38:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | -| test.rs:37:17:37:25 | ExprStmt | test.rs:33:13:35:13 | if ... {...} | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:47:17:51:17 | ExprStmt | -| test.rs:47:17:51:17 | ExprStmt | test.rs:44:5:56:5 | enter fn test_break_with_labels | -| test.rs:48:21:48:26 | ExprStmt | test.rs:47:17:51:17 | ExprStmt | -| test.rs:49:24:51:17 | if b {...} | test.rs:49:27:49:27 | b | -| test.rs:49:27:49:27 | b | test.rs:47:17:51:17 | ExprStmt | -| test.rs:50:21:50:33 | ExprStmt | test.rs:49:27:49:27 | b | -| test.rs:60:13:60:14 | ExprStmt | test.rs:58:5:70:5 | enter fn test_continue_with_labels | -| test.rs:62:17:66:17 | ExprStmt | test.rs:60:13:60:14 | ExprStmt | -| test.rs:63:21:63:29 | ExprStmt | test.rs:62:17:66:17 | ExprStmt | -| test.rs:64:24:66:17 | if b {...} | test.rs:64:27:64:27 | b | -| test.rs:64:27:64:27 | b | test.rs:62:17:66:17 | ExprStmt | -| test.rs:65:21:65:36 | ExprStmt | test.rs:64:27:64:27 | b | -| test.rs:76:17:80:17 | ExprStmt | test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | -| test.rs:77:21:77:29 | ExprStmt | test.rs:76:17:80:17 | ExprStmt | -| test.rs:78:24:80:17 | if b {...} | test.rs:78:27:78:27 | b | -| test.rs:78:27:78:27 | b | test.rs:76:17:80:17 | ExprStmt | -| test.rs:79:21:79:36 | ExprStmt | test.rs:78:27:78:27 | b | -| test.rs:88:9:94:9 | while b { ... } | test.rs:88:15:88:15 | b | -| test.rs:88:15:88:15 | b | test.rs:86:5:95:5 | enter fn test_while | -| test.rs:89:13:89:14 | ExprStmt | test.rs:88:15:88:15 | b | -| test.rs:90:13:92:13 | if ... {...} | test.rs:89:13:89:14 | ExprStmt | -| test.rs:91:17:91:22 | ExprStmt | test.rs:89:13:89:14 | ExprStmt | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:29:99:32 | iter | -| test.rs:99:15:99:39 | [boolean(false)] let ... = ... | test.rs:99:29:99:32 | iter | -| test.rs:99:24:99:24 | x | test.rs:99:29:99:32 | iter | -| test.rs:99:29:99:32 | iter | test.rs:97:5:104:5 | enter fn test_while_let | -| test.rs:100:13:102:13 | if ... {...} | test.rs:100:17:100:17 | x | -| test.rs:100:17:100:17 | x | test.rs:99:24:99:24 | x | -| test.rs:101:17:101:22 | ExprStmt | test.rs:100:17:100:17 | x | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:13:107:13 | i | -| test.rs:107:13:107:13 | i | test.rs:106:5:113:5 | enter fn test_for | -| test.rs:108:13:110:13 | ExprStmt | test.rs:107:13:107:13 | i | -| test.rs:108:13:110:13 | if ... {...} | test.rs:108:13:110:13 | ExprStmt | -| test.rs:109:17:109:22 | ExprStmt | test.rs:108:13:110:13 | ExprStmt | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:131:13:131:13 | 0 | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:133:13:133:13 | n | test.rs:129:5:135:5 | enter fn test_if_else | -| test.rs:139:9:141:9 | if b {...} | test.rs:137:5:143:5 | enter fn test_if_without_else | -| test.rs:140:13:140:19 | ExprStmt | test.rs:137:5:143:5 | enter fn test_if_without_else | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:146:21:146:21 | n | test.rs:145:5:151:5 | enter fn test_if_let_else | -| test.rs:147:13:147:13 | n | test.rs:146:21:146:21 | n | -| test.rs:149:13:149:13 | 0 | test.rs:146:12:146:26 | [boolean(false)] let ... = a | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:154:9:156:9 | if ... {...} | test.rs:154:12:154:26 | [boolean(false)] let ... = a | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:154:21:154:21 | n | test.rs:153:5:158:5 | enter fn test_if_let | -| test.rs:155:13:155:21 | ExprStmt | test.rs:154:21:154:21 | n | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:22:161:32 | [boolean(false)] { ... } | test.rs:161:24:161:24 | a | -| test.rs:161:22:161:32 | [boolean(true)] { ... } | test.rs:161:24:161:24 | a | -| test.rs:161:24:161:24 | a | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:161:39:161:48 | [boolean(false)] { ... } | test.rs:161:41:161:41 | a | -| test.rs:161:39:161:48 | [boolean(true)] { ... } | test.rs:161:41:161:41 | a | -| test.rs:161:41:161:41 | a | test.rs:160:5:166:5 | enter fn test_nested_if | -| test.rs:162:13:162:13 | 1 | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | -| test.rs:164:13:164:13 | 0 | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:168:5:177:5 | enter fn test_nested_if_2 | -| test.rs:170:13:174:13 | ExprStmt | test.rs:168:5:177:5 | enter fn test_nested_if_2 | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:170:13:174:13 | ExprStmt | -| test.rs:171:17:171:30 | ExprStmt | test.rs:170:13:174:13 | ExprStmt | -| test.rs:173:17:173:30 | ExprStmt | test.rs:170:13:174:13 | ExprStmt | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:182:13:182:13 | _ | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:181:18:181:21 | true | -| test.rs:181:18:181:21 | true | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:182:13:182:13 | _ | test.rs:179:5:188:5 | enter fn test_nested_if_match | -| test.rs:184:13:184:13 | 1 | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | -| test.rs:186:13:186:13 | 0 | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:190:5:199:5 | enter fn test_nested_if_block | -| test.rs:195:13:195:13 | 1 | test.rs:191:12:194:9 | [boolean(true)] { ... } | -| test.rs:197:13:197:13 | 0 | test.rs:191:12:194:9 | [boolean(false)] { ... } | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:201:5:211:5 | enter fn test_if_assignment | -| test.rs:207:13:207:13 | 1 | test.rs:203:12:206:9 | [boolean(true)] { ... } | -| test.rs:209:13:209:13 | 0 | test.rs:203:12:206:9 | [boolean(false)] { ... } | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:216:17:216:29 | ExprStmt | -| test.rs:215:13:217:13 | if ... {...} | test.rs:215:13:217:14 | ExprStmt | -| test.rs:215:13:217:14 | ExprStmt | test.rs:213:5:224:5 | enter fn test_if_loop1 | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:216:17:216:29 | ExprStmt | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:216:17:216:29 | ExprStmt | -| test.rs:216:17:216:29 | ExprStmt | test.rs:215:13:217:14 | ExprStmt | -| test.rs:220:13:220:13 | 1 | test.rs:216:17:216:28 | [boolean(true)] break ... | -| test.rs:222:13:222:13 | 0 | test.rs:216:17:216:28 | [boolean(false)] break ... | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:229:17:229:36 | ExprStmt | -| test.rs:228:13:230:13 | if ... {...} | test.rs:228:13:230:14 | ExprStmt | -| test.rs:228:13:230:14 | ExprStmt | test.rs:226:5:237:5 | enter fn test_if_loop2 | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:229:17:229:36 | ExprStmt | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:229:17:229:36 | ExprStmt | -| test.rs:229:17:229:36 | ExprStmt | test.rs:228:13:230:14 | ExprStmt | -| test.rs:233:13:233:13 | 1 | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | -| test.rs:235:13:235:13 | 0 | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:239:5:247:5 | enter fn test_labelled_block | -| test.rs:243:13:243:13 | 1 | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | -| test.rs:245:13:245:13 | 0 | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:22:253:22 | b | -| test.rs:253:17:253:27 | ... && ... | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:253:22:253:22 | b | test.rs:252:5:255:5 | enter fn test_and_operator | -| test.rs:253:27:253:27 | c | test.rs:253:17:253:22 | [boolean(true)] ... && ... | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:22:258:22 | b | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:258:22:258:22 | b | test.rs:257:5:260:5 | enter fn test_or_operator | -| test.rs:258:27:258:27 | c | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:23:263:23 | b | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:263:23:263:23 | b | test.rs:262:5:265:5 | enter fn test_or_operator_2 | -| test.rs:263:35:263:35 | c | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:17:273:17 | b | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:273:22:273:22 | c | -| test.rs:273:17:273:17 | b | test.rs:272:5:278:5 | enter fn test_if_and_operator | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:17 | [boolean(true)] ... && ... | -| test.rs:274:13:274:16 | true | test.rs:273:12:273:22 | [boolean(true)] ... && ... | -| test.rs:276:13:276:17 | false | test.rs:273:12:273:22 | [boolean(false)] ... && ... | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:17:281:17 | b | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:281:22:281:22 | c | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:17:281:17 | b | test.rs:280:5:286:5 | enter fn test_if_or_operator | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | -| test.rs:282:13:282:16 | true | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | -| test.rs:284:13:284:17 | false | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:288:5:294:5 | enter fn test_if_not_operator | -| test.rs:290:13:290:16 | true | test.rs:289:12:289:13 | [boolean(true)] ! ... | -| test.rs:292:13:292:17 | false | test.rs:289:12:289:13 | [boolean(false)] ! ... | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:297:9:297:19 | ... && ... | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:297:14:297:19 | return | test.rs:296:5:298:5 | enter fn test_and_return | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:301:9:303:9 | if ... {...} | test.rs:301:13:301:21 | [boolean(false)] ... && ... | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:301:18:301:21 | true | -| test.rs:301:18:301:21 | true | test.rs:300:5:305:5 | enter fn test_and_true | -| test.rs:302:13:302:21 | ExprStmt | test.rs:301:13:301:21 | [boolean(true)] ... && ... | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | -| test.rs:312:32:312:32 | 4 | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:317:13:317:16 | true | -| test.rs:317:13:317:16 | true | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | -| test.rs:317:21:317:24 | Some | test.rs:317:13:317:16 | true | -| test.rs:318:13:318:17 | false | test.rs:317:13:317:16 | true | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:328:26:328:26 | x | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:328:42:328:42 | x | test.rs:328:26:328:26 | x | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:326:5:332:5 | enter fn test_match | -| test.rs:329:26:329:26 | x | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:330:13:330:24 | ...::None | test.rs:329:13:329:27 | ...::Some(...) | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:338:13:338:23 | maybe_digit | -| test.rs:336:13:336:21 | ExprStmt | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:338:13:338:23 | maybe_digit | test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | -| test.rs:340:26:340:26 | x | test.rs:338:13:338:23 | maybe_digit | -| test.rs:341:13:341:24 | ...::None | test.rs:338:13:338:23 | maybe_digit | -| test.rs:346:9:349:18 | ... && ... | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:347:18:347:18 | a | -| test.rs:347:18:347:18 | a | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:348:13:348:13 | _ | test.rs:345:5:350:5 | enter fn test_match_and | -| test.rs:349:15:349:18 | cond | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | -| test.rs:353:9:356:9 | match r { ... } | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:354:16:354:20 | value | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:355:13:355:22 | Err(...) | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | -| test.rs:363:18:363:18 | n | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:363:39:363:53 | ExprStmt | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:369:18:369:20 | ret | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:370:13:370:16 | None | test.rs:367:5:373:5 | enter fn test_let_with_return | -| test.rs:394:9:397:9 | match st { ... } | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:395:27:395:27 | 1 | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:395:34:395:34 | 0 | test.rs:395:27:395:27 | 1 | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:393:5:398:5 | enter fn struct_pattern | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:402:20:402:20 | 1 | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:403:13:403:16 | RangePat | test.rs:400:5:407:5 | enter fn range_pattern | -| test.rs:403:16:403:16 | 2 | test.rs:403:13:403:16 | RangePat | -| test.rs:403:21:403:21 | 2 | test.rs:403:16:403:16 | 2 | -| test.rs:404:13:404:15 | RangePat | test.rs:403:13:403:16 | RangePat | -| test.rs:404:20:404:20 | 3 | test.rs:404:13:404:15 | RangePat | -| test.rs:405:13:405:13 | _ | test.rs:404:13:404:15 | RangePat | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:411:13:411:13 | n | test.rs:411:20:411:21 | 10 | -| test.rs:411:20:411:21 | 10 | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:412:13:412:13 | _ | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | -| test.rs:418:9:421:9 | match a { ... } | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:419:21:419:21 | n | test.rs:419:28:419:29 | 10 | -| test.rs:419:28:419:29 | 10 | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:420:21:420:21 | n | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:427:17:427:17 | _ | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:428:13:428:19 | TuplePat | test.rs:425:5:431:5 | enter fn tuple_pattern | -| test.rs:428:24:428:24 | 3 | test.rs:428:13:428:19 | TuplePat | -| test.rs:429:13:429:16 | TuplePat | test.rs:428:13:428:19 | TuplePat | -| test.rs:434:9:437:9 | match a { ... } | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | test.rs:435:21:435:21 | 2 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:435:17:435:17 | 1 | test.rs:433:5:438:5 | enter fn or_pattern | -| test.rs:435:21:435:21 | 2 | test.rs:435:17:435:17 | 1 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:442:21:442:21 | 3 | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:443:13:443:22 | Some(...) | test.rs:440:5:445:5 | enter fn or_pattern_2 | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:13:443:22 | Some(...) | -| test.rs:443:18:443:21 | true | test.rs:443:13:443:22 | Some(...) | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:13:443:22 | Some(...) | -| test.rs:454:9:457:9 | match a { ... } | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:455:13:455:23 | 2 | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:455:13:455:23 | [match(false)] 1 \| 2 | test.rs:455:13:455:23 | 2 | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:453:5:458:5 | enter fn or_pattern_3 | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:462:32:462:32 | _ | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:463:13:463:13 | _ | test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | -| test.rs:476:9:480:9 | match e { ... } | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:477:32:477:32 | _ | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:475:5:481:5 | enter fn enum_pattern | -| test.rs:478:26:478:26 | _ | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:479:13:479:23 | UnitVariant | test.rs:478:13:478:27 | TupleVariant(...) | -| test.rs:487:13:487:14 | TupleExpr | test.rs:485:5:490:5 | enter fn test_infinite_loop | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:511:28:516:9 | enter { ... } | -| test.rs:512:13:514:13 | if b {...} | test.rs:511:28:516:9 | enter { ... } | -| test.rs:513:17:513:41 | ExprStmt | test.rs:511:28:516:9 | enter { ... } | -| test.rs:533:13:533:19 | ExprStmt | test.rs:533:21:533:48 | [boolean(true)] ! ... | -| test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:533:21:533:48 | if ... {...} | test.rs:529:5:537:5 | enter fn const_block_assert | -| test.rs:541:9:546:9 | if false {...} | test.rs:539:5:548:5 | enter fn const_block_panic | -| test.rs:553:9:553:17 | ExprStmt | test.rs:551:1:556:1 | enter fn dead_code | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:571:9:573:9 | if ... {...} | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:572:13:572:27 | ExprStmt | test.rs:568:1:582:1 | enter fn labelled_block1 | -| test.rs:575:9:577:9 | if ... {...} | test.rs:571:9:573:9 | if ... {...} | -| test.rs:576:13:576:27 | ExprStmt | test.rs:571:9:573:9 | if ... {...} | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:584:1:592:1 | enter fn labelled_block2 | -| test.rs:587:18:587:18 | y | test.rs:584:1:592:1 | enter fn labelled_block2 | -| test.rs:588:13:588:27 | ExprStmt | test.rs:584:1:592:1 | enter fn labelled_block2 | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:5:1:10:1 | Entry | +| cfg.rs:7:13:7:18 | After CfgPredPat [match] | cfg.rs:5:1:10:1 | Entry | +| cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | cfg.rs:5:1:10:1 | Entry | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:18:5:24:5 | Entry | +| test.rs:19:12:19:21 | After ... == ... [false] | test.rs:18:5:24:5 | Entry | +| test.rs:19:12:19:21 | After ... == ... [true] | test.rs:18:5:24:5 | Entry | +| test.rs:26:5:42:5 | Normal Exit | test.rs:28:14:40:9 | { ... } | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:28:14:40:9 | { ... } | test.rs:26:5:42:5 | Entry | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:28:14:40:9 | { ... } | +| test.rs:30:16:30:24 | After ... > ... [true] | test.rs:28:14:40:9 | { ... } | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:33:16:33:21 | After ... == ... [true] | test.rs:30:16:30:24 | After ... > ... [false] | +| test.rs:36:16:36:25 | After ... != ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:36:16:36:25 | After ... != ... [true] | test.rs:33:16:33:21 | After ... == ... [false] | +| test.rs:45:22:54:9 | { ... } | test.rs:44:5:56:5 | Entry | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:45:22:54:9 | { ... } | +| test.rs:47:20:47:20 | After b [false] | test.rs:45:22:54:9 | { ... } | +| test.rs:47:20:47:20 | After b [true] | test.rs:45:22:54:9 | { ... } | +| test.rs:49:27:49:27 | After b [false] | test.rs:47:20:47:20 | After b [false] | +| test.rs:49:27:49:27 | After b [true] | test.rs:47:20:47:20 | After b [false] | +| test.rs:59:22:69:9 | { ... } | test.rs:58:5:70:5 | Entry | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:61:26:68:13 | { ... } | +| test.rs:61:26:68:13 | { ... } | test.rs:59:22:69:9 | { ... } | +| test.rs:62:20:62:20 | After b [false] | test.rs:61:26:68:13 | { ... } | +| test.rs:62:20:62:20 | After b [true] | test.rs:61:26:68:13 | { ... } | +| test.rs:64:27:64:27 | After b [false] | test.rs:62:20:62:20 | After b [false] | +| test.rs:64:27:64:27 | After b [true] | test.rs:62:20:62:20 | After b [false] | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:75:26:82:13 | { ... } | +| test.rs:75:26:82:13 | { ... } | test.rs:72:5:84:5 | Entry | +| test.rs:76:20:76:20 | After b [false] | test.rs:75:26:82:13 | { ... } | +| test.rs:76:20:76:20 | After b [true] | test.rs:75:26:82:13 | { ... } | +| test.rs:78:27:78:27 | After b [false] | test.rs:76:20:76:20 | After b [false] | +| test.rs:78:27:78:27 | After b [true] | test.rs:76:20:76:20 | After b [false] | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:86:5:95:5 | Entry | +| test.rs:88:15:88:15 | After b [false] | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:88:15:88:15 | After b [true] | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | +| test.rs:90:17:90:21 | After ... > ... [false] | test.rs:88:15:88:15 | After b [true] | +| test.rs:90:17:90:21 | After ... > ... [true] | test.rs:88:15:88:15 | After b [true] | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:97:5:104:5 | Entry | +| test.rs:99:19:99:25 | After Some(...) [no-match] | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | +| test.rs:100:17:100:22 | After ... == ... [false] | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:100:17:100:22 | After ... == ... [true] | test.rs:99:19:99:25 | [pattern-start] Some(...) | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:13:107:13 | Before i | +| test.rs:107:13:107:13 | After i [match] | test.rs:107:13:107:13 | Before i | +| test.rs:107:13:107:13 | After i [no-match] | test.rs:107:13:107:13 | Before i | +| test.rs:107:13:107:13 | Before i | test.rs:106:5:113:5 | Entry | +| test.rs:108:17:108:22 | After ... == ... [false] | test.rs:107:13:107:13 | After i [match] | +| test.rs:108:17:108:22 | After ... == ... [true] | test.rs:107:13:107:13 | After i [match] | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:129:5:135:5 | Entry | +| test.rs:130:12:130:17 | After ... <= ... [false] | test.rs:129:5:135:5 | Entry | +| test.rs:130:12:130:17 | After ... <= ... [true] | test.rs:129:5:135:5 | Entry | +| test.rs:139:9:141:9 | After if b {...} | test.rs:137:5:143:5 | Entry | +| test.rs:139:12:139:12 | After b [false] | test.rs:137:5:143:5 | Entry | +| test.rs:139:12:139:12 | After b [true] | test.rs:137:5:143:5 | Entry | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:145:5:151:5 | Entry | +| test.rs:146:16:146:22 | After Some(...) [no-match] | test.rs:145:5:151:5 | Entry | +| test.rs:146:16:146:22 | [pattern-start] Some(...) | test.rs:145:5:151:5 | Entry | +| test.rs:153:5:158:5 | Normal Exit | test.rs:153:5:158:5 | Entry | +| test.rs:154:16:154:22 | After Some(...) [no-match] | test.rs:153:5:158:5 | Entry | +| test.rs:154:16:154:22 | [pattern-start] Some(...) | test.rs:153:5:158:5 | Entry | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:160:5:166:5 | Entry | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:160:5:166:5 | Entry | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:160:5:166:5 | Entry | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:160:5:166:5 | Entry | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:160:5:166:5 | Entry | +| test.rs:161:24:161:30 | After ... < ... [false] | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:161:24:161:30 | After ... < ... [true] | test.rs:161:16:161:20 | After ... < ... [true] | +| test.rs:161:41:161:46 | After ... > ... [false] | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:161:41:161:46 | After ... > ... [true] | test.rs:161:16:161:20 | After ... < ... [false] | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:168:5:177:5 | Entry | +| test.rs:169:12:169:16 | After cond1 [false] | test.rs:168:5:177:5 | Entry | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:168:5:177:5 | Entry | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:170:16:170:20 | After cond2 [false] | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:170:16:170:20 | After cond2 [true] | test.rs:169:12:169:16 | After cond1 [true] | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:179:5:188:5 | Entry | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:179:5:188:5 | Entry | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:179:5:188:5 | Entry | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:179:5:188:5 | Entry | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:179:5:188:5 | Entry | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:190:5:199:5 | Entry | +| test.rs:193:13:193:17 | After ... > ... [false] | test.rs:190:5:199:5 | Entry | +| test.rs:193:13:193:17 | After ... > ... [true] | test.rs:190:5:199:5 | Entry | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:201:5:211:5 | Entry | +| test.rs:205:13:205:13 | After x [false] | test.rs:201:5:211:5 | Entry | +| test.rs:205:13:205:13 | After x [true] | test.rs:201:5:211:5 | Entry | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:214:18:219:9 | { ... } | test.rs:213:5:224:5 | Entry | +| test.rs:215:16:215:20 | After ... > ... [false] | test.rs:214:18:219:9 | { ... } | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:214:18:219:9 | { ... } | +| test.rs:216:23:216:28 | After ... > ... [false] | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:216:23:216:28 | After ... > ... [true] | test.rs:215:16:215:20 | After ... > ... [true] | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:227:26:232:9 | { ... } | test.rs:226:5:237:5 | Entry | +| test.rs:228:16:228:20 | After ... > ... [false] | test.rs:227:26:232:9 | { ... } | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:227:26:232:9 | { ... } | +| test.rs:229:30:229:35 | After ... > ... [false] | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:229:30:229:35 | After ... > ... [true] | test.rs:228:16:228:20 | After ... > ... [true] | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:239:5:247:5 | Entry | +| test.rs:241:26:241:30 | After ... > ... [false] | test.rs:239:5:247:5 | Entry | +| test.rs:241:26:241:30 | After ... > ... [true] | test.rs:239:5:247:5 | Entry | +| test.rs:253:17:253:17 | After a [false] | test.rs:252:5:255:5 | Entry | +| test.rs:253:17:253:17 | After a [true] | test.rs:252:5:255:5 | Entry | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:252:5:255:5 | Entry | +| test.rs:253:17:253:27 | After ... && ... | test.rs:252:5:255:5 | Entry | +| test.rs:253:22:253:22 | After b [false] | test.rs:253:17:253:17 | After a [true] | +| test.rs:253:22:253:22 | After b [true] | test.rs:253:17:253:17 | After a [true] | +| test.rs:258:17:258:17 | After a [false] | test.rs:257:5:260:5 | Entry | +| test.rs:258:17:258:17 | After a [true] | test.rs:257:5:260:5 | Entry | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:257:5:260:5 | Entry | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:257:5:260:5 | Entry | +| test.rs:258:22:258:22 | After b [false] | test.rs:258:17:258:17 | After a [false] | +| test.rs:258:22:258:22 | After b [true] | test.rs:258:17:258:17 | After a [false] | +| test.rs:263:17:263:17 | After a [false] | test.rs:262:5:265:5 | Entry | +| test.rs:263:17:263:17 | After a [true] | test.rs:262:5:265:5 | Entry | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:262:5:265:5 | Entry | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:262:5:265:5 | Entry | +| test.rs:263:23:263:29 | After ... == ... [false] | test.rs:263:17:263:17 | After a [false] | +| test.rs:263:23:263:29 | After ... == ... [true] | test.rs:263:17:263:17 | After a [false] | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:272:5:278:5 | Entry | +| test.rs:273:12:273:12 | After a [false] | test.rs:272:5:278:5 | Entry | +| test.rs:273:12:273:12 | After a [true] | test.rs:272:5:278:5 | Entry | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:272:5:278:5 | Entry | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:272:5:278:5 | Entry | +| test.rs:273:17:273:17 | After b [false] | test.rs:273:12:273:12 | After a [true] | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:12:273:12 | After a [true] | +| test.rs:273:22:273:22 | After c [false] | test.rs:273:17:273:17 | After b [true] | +| test.rs:273:22:273:22 | After c [true] | test.rs:273:17:273:17 | After b [true] | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:280:5:286:5 | Entry | +| test.rs:281:12:281:12 | After a [false] | test.rs:280:5:286:5 | Entry | +| test.rs:281:12:281:12 | After a [true] | test.rs:280:5:286:5 | Entry | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:280:5:286:5 | Entry | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:280:5:286:5 | Entry | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:12:281:12 | After a [false] | +| test.rs:281:17:281:17 | After b [true] | test.rs:281:12:281:12 | After a [false] | +| test.rs:281:22:281:22 | After c [false] | test.rs:281:17:281:17 | After b [false] | +| test.rs:281:22:281:22 | After c [true] | test.rs:281:17:281:17 | After b [false] | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:288:5:294:5 | Entry | +| test.rs:289:13:289:13 | After a [false] | test.rs:288:5:294:5 | Entry | +| test.rs:289:13:289:13 | After a [true] | test.rs:288:5:294:5 | Entry | +| test.rs:296:5:298:5 | Normal Exit | test.rs:296:5:298:5 | Entry | +| test.rs:297:9:297:9 | After a [false] | test.rs:296:5:298:5 | Entry | +| test.rs:297:9:297:9 | After a [true] | test.rs:296:5:298:5 | Entry | +| test.rs:300:5:305:5 | Normal Exit | test.rs:300:5:305:5 | Entry | +| test.rs:301:13:301:13 | After a [false] | test.rs:300:5:305:5 | Entry | +| test.rs:301:13:301:13 | After a [true] | test.rs:300:5:305:5 | Entry | +| test.rs:311:5:313:5 | Normal Exit | test.rs:311:5:313:5 | Entry | +| test.rs:312:12:312:27 | After s.parse() [match] | test.rs:311:5:313:5 | Entry | +| test.rs:312:12:312:27 | After s.parse() [no-match] | test.rs:311:5:313:5 | Entry | +| test.rs:315:5:320:5 | Normal Exit | test.rs:315:5:320:5 | Entry | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:316:15:316:15 | After b [match] | +| test.rs:316:15:316:15 | After b [match] | test.rs:315:5:320:5 | Entry | +| test.rs:316:15:316:15 | After b [no-match] | test.rs:315:5:320:5 | Entry | +| test.rs:317:13:317:16 | After true [match] | test.rs:316:15:316:15 | After b [match] | +| test.rs:317:13:317:16 | After true [no-match] | test.rs:316:15:316:15 | After b [match] | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:326:5:332:5 | Entry | +| test.rs:328:13:328:27 | After ...::Some(...) [no-match] | test.rs:326:5:332:5 | Entry | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:326:5:332:5 | Entry | +| test.rs:328:32:328:37 | After ... < ... [false] | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:328:32:328:37 | After ... < ... [true] | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:326:5:332:5 | Entry | +| test.rs:329:13:329:27 | After ...::Some(...) [no-match] | test.rs:329:13:329:27 | ...::Some(...) | +| test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | test.rs:329:13:329:27 | ...::Some(...) | +| test.rs:334:5:343:5 | Normal Exit | test.rs:334:5:343:5 | Entry | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:334:5:343:5 | Entry | +| test.rs:335:19:335:40 | After ... == ... [true] | test.rs:334:5:343:5 | Entry | +| test.rs:340:13:340:27 | After ...::Some(...) [no-match] | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | test.rs:335:19:335:40 | After ... == ... [false] | +| test.rs:346:9:349:18 | After ... && ... | test.rs:345:5:350:5 | Entry | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:345:5:350:5 | Entry | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:345:5:350:5 | Entry | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:345:5:350:5 | Entry | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:345:5:350:5 | Entry | +| test.rs:347:24:347:24 | After a [false] | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:347:24:347:24 | After a [true] | test.rs:347:13:347:19 | [pattern-start] Some(...) | +| test.rs:352:5:357:5 | Exit | test.rs:352:5:357:5 | Entry | +| test.rs:354:13:354:21 | After Ok(...) [no-match] | test.rs:352:5:357:5 | Entry | +| test.rs:354:13:354:21 | [pattern-start] Ok(...) | test.rs:352:5:357:5 | Entry | +| test.rs:362:5:365:5 | Exit | test.rs:362:5:365:5 | Entry | +| test.rs:363:13:363:19 | After Some(...) [no-match] | test.rs:362:5:365:5 | Entry | +| test.rs:363:13:363:19 | [pattern-start] Some(...) | test.rs:362:5:365:5 | Entry | +| test.rs:367:5:373:5 | Normal Exit | test.rs:367:5:373:5 | Entry | +| test.rs:369:13:369:21 | After Some(...) [no-match] | test.rs:367:5:373:5 | Entry | +| test.rs:369:13:369:21 | [pattern-start] Some(...) | test.rs:367:5:373:5 | Entry | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:393:5:398:5 | Entry | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:393:5:398:5 | Entry | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:393:5:398:5 | Entry | +| test.rs:395:27:395:27 | After 1 [match] | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:395:27:395:27 | After 1 [no-match] | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:400:5:407:5 | Entry | +| test.rs:402:15:402:15 | After 0 [match] | test.rs:400:5:407:5 | Entry | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:400:5:407:5 | Entry | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:403:13:403:13 | After 1 [no-match] | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:402:15:402:15 | After 0 [no-match] | +| test.rs:403:16:403:16 | After 2 [match] | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:403:16:403:16 | After 2 [no-match] | test.rs:403:13:403:13 | After 1 [match] | +| test.rs:404:13:404:13 | After 5 [match] | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:404:13:404:13 | After 5 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:409:5:414:5 | Entry | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:409:5:414:5 | Entry | +| test.rs:411:17:411:17 | After 1 [no-match] | test.rs:409:5:414:5 | Entry | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:409:5:414:5 | Entry | +| test.rs:411:20:411:21 | After 10 [match] | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:411:20:411:21 | After 10 [no-match] | test.rs:411:17:411:17 | After 1 [match] | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:416:5:423:5 | Entry | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:416:5:423:5 | Entry | +| test.rs:419:25:419:25 | After 1 [no-match] | test.rs:416:5:423:5 | Entry | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:416:5:423:5 | Entry | +| test.rs:419:28:419:29 | After 10 [match] | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:419:28:419:29 | After 10 [no-match] | test.rs:419:25:419:25 | After 1 [match] | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:425:5:431:5 | Entry | +| test.rs:427:14:427:14 | After 1 [match] | test.rs:425:5:431:5 | Entry | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:425:5:431:5 | Entry | +| test.rs:428:18:428:18 | After 2 [match] | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:428:18:428:18 | After 2 [no-match] | test.rs:427:14:427:14 | After 1 [no-match] | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:433:5:438:5 | Entry | +| test.rs:435:13:435:13 | After 0 [match] | test.rs:433:5:438:5 | Entry | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:433:5:438:5 | Entry | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:433:5:438:5 | Entry | +| test.rs:435:17:435:17 | After 1 [match] | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:13:435:13 | After 0 [no-match] | +| test.rs:435:21:435:21 | After 2 [match] | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:435:21:435:21 | After 2 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:440:5:445:5 | Entry | +| test.rs:442:13:442:16 | After None [match] | test.rs:440:5:445:5 | Entry | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:440:5:445:5 | Entry | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:442:13:442:16 | After None [no-match] | +| test.rs:443:18:443:21 | After true [match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:443:18:443:21 | After true [no-match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:453:5:458:5 | Entry | +| test.rs:455:13:455:23 | After 1 [match] | test.rs:453:5:458:5 | Entry | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:453:5:458:5 | Entry | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:453:5:458:5 | Entry | +| test.rs:455:13:455:23 | After 2 [match] | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:455:13:455:23 | After 2 [no-match] | test.rs:455:13:455:23 | After 1 [no-match] | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:460:5:465:5 | Entry | +| test.rs:462:18:462:34 | After MyStruct {...} [no-match] | test.rs:460:5:465:5 | Entry | +| test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | test.rs:460:5:465:5 | Entry | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:475:5:481:5 | Entry | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:475:5:481:5 | Entry | +| test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | test.rs:475:5:481:5 | Entry | +| test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | +| test.rs:486:14:488:9 | { ... } | test.rs:485:5:490:5 | Entry | +| test.rs:511:28:516:9 | Normal Exit | test.rs:511:28:516:9 | Entry | +| test.rs:512:16:512:16 | After b [false] | test.rs:511:28:516:9 | Entry | +| test.rs:512:16:512:16 | After b [true] | test.rs:511:28:516:9 | Entry | +| test.rs:533:21:533:48 | After ... > ... [false] | test.rs:529:5:537:5 | Entry | +| test.rs:533:21:533:48 | After ... > ... [true] | test.rs:529:5:537:5 | Entry | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:529:5:537:5 | Entry | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:568:1:582:1 | Entry | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:568:1:582:1 | Entry | +| test.rs:571:12:571:30 | After condition_not_met(...) [true] | test.rs:568:1:582:1 | Entry | +| test.rs:575:12:575:30 | After condition_not_met(...) [false] | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:575:12:575:30 | After condition_not_met(...) [true] | test.rs:571:12:571:30 | After condition_not_met(...) [false] | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:584:1:592:1 | Entry | +| test.rs:587:13:587:19 | After Some(...) [no-match] | test.rs:584:1:592:1 | Entry | +| test.rs:587:13:587:19 | [pattern-start] Some(...) | test.rs:584:1:592:1 | Entry | controls -| test.rs:18:5:24:5 | enter fn next | test.rs:20:13:20:13 | n | true | -| test.rs:18:5:24:5 | enter fn next | test.rs:22:13:22:13 | 3 | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:30:13:32:13 | if ... {...} | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:31:17:31:29 | ExprStmt | true | -| test.rs:29:13:29:24 | ExprStmt | test.rs:33:13:35:13 | if ... {...} | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:34:17:34:22 | ExprStmt | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:36:13:38:13 | if ... {...} | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | false | -| test.rs:30:13:32:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | false | -| test.rs:30:13:32:13 | if ... {...} | test.rs:34:17:34:22 | ExprStmt | true | -| test.rs:30:13:32:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | false | -| test.rs:30:13:32:13 | if ... {...} | test.rs:37:17:37:25 | ExprStmt | false | -| test.rs:33:13:35:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | false | -| test.rs:33:13:35:13 | if ... {...} | test.rs:37:17:37:25 | ExprStmt | true | -| test.rs:47:17:51:17 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | true | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:24:51:17 | if b {...} | false | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:27:49:27 | b | false | -| test.rs:47:17:51:17 | ExprStmt | test.rs:50:21:50:33 | ExprStmt | false | -| test.rs:49:27:49:27 | b | test.rs:49:24:51:17 | if b {...} | false | -| test.rs:49:27:49:27 | b | test.rs:50:21:50:33 | ExprStmt | true | -| test.rs:62:17:66:17 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | true | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:24:66:17 | if b {...} | false | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:27:64:27 | b | false | -| test.rs:62:17:66:17 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | false | -| test.rs:64:27:64:27 | b | test.rs:64:24:66:17 | if b {...} | false | -| test.rs:64:27:64:27 | b | test.rs:65:21:65:36 | ExprStmt | true | -| test.rs:76:17:80:17 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | true | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:24:80:17 | if b {...} | false | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:27:78:27 | b | false | -| test.rs:76:17:80:17 | ExprStmt | test.rs:79:21:79:36 | ExprStmt | false | -| test.rs:78:27:78:27 | b | test.rs:78:24:80:17 | if b {...} | false | -| test.rs:78:27:78:27 | b | test.rs:79:21:79:36 | ExprStmt | true | -| test.rs:88:15:88:15 | b | test.rs:89:13:89:14 | ExprStmt | true | -| test.rs:88:15:88:15 | b | test.rs:90:13:92:13 | if ... {...} | true | -| test.rs:88:15:88:15 | b | test.rs:91:17:91:22 | ExprStmt | true | -| test.rs:89:13:89:14 | ExprStmt | test.rs:90:13:92:13 | if ... {...} | false | -| test.rs:89:13:89:14 | ExprStmt | test.rs:91:17:91:22 | ExprStmt | true | -| test.rs:99:24:99:24 | x | test.rs:100:13:102:13 | if ... {...} | true | -| test.rs:99:24:99:24 | x | test.rs:100:17:100:17 | x | true | -| test.rs:99:24:99:24 | x | test.rs:101:17:101:22 | ExprStmt | true | -| test.rs:100:17:100:17 | x | test.rs:100:13:102:13 | if ... {...} | false | -| test.rs:100:17:100:17 | x | test.rs:101:17:101:22 | ExprStmt | true | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | if ... {...} | false | -| test.rs:108:13:110:13 | ExprStmt | test.rs:109:17:109:22 | ExprStmt | true | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:131:13:131:13 | 0 | true | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:133:13:133:13 | n | false | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:140:13:140:19 | ExprStmt | true | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:149:13:149:13 | 0 | false | -| test.rs:146:21:146:21 | n | test.rs:147:13:147:13 | n | true | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:9:156:9 | if ... {...} | false | -| test.rs:154:21:154:21 | n | test.rs:155:13:155:21 | ExprStmt | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:22:161:32 | [boolean(false)] { ... } | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:22:161:32 | [boolean(true)] { ... } | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:24:161:24 | a | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:39:161:48 | [boolean(false)] { ... } | false | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:39:161:48 | [boolean(true)] { ... } | false | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:41:161:41 | a | false | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:164:13:164:13 | 0 | false | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:162:13:162:13 | 1 | true | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(false)] { ... } | false | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(true)] { ... } | true | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(false)] { ... } | false | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(true)] { ... } | true | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:170:13:174:13 | ExprStmt | true | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:170:13:174:13 | if cond2 {...} else {...} | true | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:171:17:171:30 | ExprStmt | true | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:173:17:173:30 | ExprStmt | true | -| test.rs:170:13:174:13 | ExprStmt | test.rs:171:17:171:30 | ExprStmt | true | -| test.rs:170:13:174:13 | ExprStmt | test.rs:173:17:173:30 | ExprStmt | false | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:186:13:186:13 | 0 | false | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:184:13:184:13 | 1 | true | -| test.rs:181:18:181:21 | true | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | true | -| test.rs:181:18:181:21 | true | test.rs:184:13:184:13 | 1 | true | -| test.rs:182:13:182:13 | _ | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | false | -| test.rs:182:13:182:13 | _ | test.rs:186:13:186:13 | 0 | false | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(false)] { ... } | false | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(true)] { ... } | true | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:195:13:195:13 | 1 | true | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:197:13:197:13 | 0 | false | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:197:13:197:13 | 0 | false | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:195:13:195:13 | 1 | true | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(false)] { ... } | false | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(true)] { ... } | true | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:207:13:207:13 | 1 | true | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:209:13:209:13 | 0 | false | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:209:13:209:13 | 0 | false | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:207:13:207:13 | 1 | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:214:9:223:9 | if ... {...} else {...} | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | false | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:28 | [boolean(false)] break ... | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:28 | [boolean(true)] break ... | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:29 | ExprStmt | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:220:13:220:13 | 1 | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:222:13:222:13 | 0 | true | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:222:13:222:13 | 0 | false | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:220:13:220:13 | 1 | true | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(false)] break ... | false | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(true)] break ... | true | -| test.rs:216:17:216:29 | ExprStmt | test.rs:220:13:220:13 | 1 | true | -| test.rs:216:17:216:29 | ExprStmt | test.rs:222:13:222:13 | 0 | false | -| test.rs:228:13:230:14 | ExprStmt | test.rs:227:9:236:9 | if ... {...} else {...} | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | false | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:36 | ExprStmt | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:233:13:233:13 | 1 | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:235:13:235:13 | 0 | true | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:235:13:235:13 | 0 | false | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:233:13:233:13 | 1 | true | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | false | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | true | -| test.rs:229:17:229:36 | ExprStmt | test.rs:233:13:233:13 | 1 | true | -| test.rs:229:17:229:36 | ExprStmt | test.rs:235:13:235:13 | 0 | false | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | false | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | true | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:243:13:243:13 | 1 | true | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:245:13:245:13 | 0 | false | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:245:13:245:13 | 0 | false | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:243:13:243:13 | 1 | true | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:17:253:22 | [boolean(true)] ... && ... | true | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:22:253:22 | b | true | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:27:253:27 | c | true | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:27:253:27 | c | true | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(true)] ... && ... | true | -| test.rs:253:22:253:22 | b | test.rs:253:27:253:27 | c | true | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:22:258:22 | b | false | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:27:258:27 | c | false | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:27:258:27 | c | false | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:258:22:258:22 | b | test.rs:258:27:258:27 | c | false | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | false | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:23:263:23 | b | false | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:35:263:35 | c | false | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:35:263:35 | c | false | -| test.rs:263:23:263:23 | b | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | false | -| test.rs:263:23:263:23 | b | test.rs:263:35:263:35 | c | false | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:17 | [boolean(true)] ... && ... | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:17:273:17 | b | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:22:273:22 | c | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:274:13:274:16 | true | true | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:22:273:22 | c | true | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | true | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:276:13:276:17 | false | false | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | true | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(true)] ... && ... | true | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:273:17:273:17 | b | test.rs:273:22:273:22 | c | true | -| test.rs:273:17:273:17 | b | test.rs:274:13:274:16 | true | true | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:273:22:273:22 | c | test.rs:274:13:274:16 | true | true | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:17:281:17 | b | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:22:281:22 | c | false | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:284:13:284:17 | false | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:22:281:22 | c | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | false | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | false | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:282:13:282:16 | true | true | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:17:281:17 | b | test.rs:281:22:281:22 | c | false | -| test.rs:281:17:281:17 | b | test.rs:284:13:284:17 | false | false | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:22:281:22 | c | test.rs:284:13:284:17 | false | false | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(false)] ! ... | true | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(true)] ! ... | false | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:290:13:290:16 | true | false | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:292:13:292:17 | false | true | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:292:13:292:17 | false | false | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:290:13:290:16 | true | true | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:9:297:19 | ... && ... | false | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:14:297:19 | return | true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:9:303:9 | if ... {...} | false | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:13:301:21 | [boolean(false)] ... && ... | false | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:18:301:21 | true | true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:302:13:302:21 | ExprStmt | true | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:9:303:9 | if ... {...} | false | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:302:13:302:21 | ExprStmt | true | -| test.rs:301:18:301:21 | true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | true | -| test.rs:301:18:301:21 | true | test.rs:302:13:302:21 | ExprStmt | true | -| test.rs:328:26:328:26 | x | test.rs:328:42:328:42 | x | true | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:335:9:342:9 | match ... { ... } | false | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:336:13:336:21 | ExprStmt | true | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:338:13:338:23 | maybe_digit | false | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:340:26:340:26 | x | false | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:341:13:341:24 | ...::None | false | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:349:15:349:18 | cond | true | -| test.rs:347:18:347:18 | a | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | true | -| test.rs:347:18:347:18 | a | test.rs:349:15:349:18 | cond | true | -| test.rs:511:28:516:9 | enter { ... } | test.rs:512:13:514:13 | if b {...} | false | -| test.rs:511:28:516:9 | enter { ... } | test.rs:513:17:513:41 | ExprStmt | true | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:13:533:19 | ExprStmt | false | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:19 | ExprStmt | true | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | if false {...} | false | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:553:9:553:17 | ExprStmt | true | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:571:9:573:9 | if ... {...} | false | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:572:13:572:27 | ExprStmt | true | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:575:9:577:9 | if ... {...} | false | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:576:13:576:27 | ExprStmt | false | -| test.rs:571:9:573:9 | if ... {...} | test.rs:575:9:577:9 | if ... {...} | false | -| test.rs:571:9:573:9 | if ... {...} | test.rs:576:13:576:27 | ExprStmt | true | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [match] | match | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | no-match | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [false] | false | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [true] | true | +| test.rs:28:14:40:9 | { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | false | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [false] | false | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [true] | true | +| test.rs:28:14:40:9 | { ... } | test.rs:33:16:33:21 | After ... == ... [false] | false | +| test.rs:28:14:40:9 | { ... } | test.rs:33:16:33:21 | After ... == ... [true] | false | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [false] | false | +| test.rs:28:14:40:9 | { ... } | test.rs:36:16:36:25 | After ... != ... [true] | false | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | false | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | false | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [true] | true | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | false | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:36:16:36:25 | After ... != ... [true] | false | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | false | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [true] | true | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [false] | false | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [true] | true | +| test.rs:45:22:54:9 | { ... } | test.rs:49:27:49:27 | After b [false] | false | +| test.rs:45:22:54:9 | { ... } | test.rs:49:27:49:27 | After b [true] | false | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [false] | false | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [true] | true | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [false] | false | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [true] | true | +| test.rs:61:26:68:13 | { ... } | test.rs:64:27:64:27 | After b [false] | false | +| test.rs:61:26:68:13 | { ... } | test.rs:64:27:64:27 | After b [true] | false | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [false] | false | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [true] | true | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [false] | false | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [true] | true | +| test.rs:75:26:82:13 | { ... } | test.rs:78:27:78:27 | After b [false] | false | +| test.rs:75:26:82:13 | { ... } | test.rs:78:27:78:27 | After b [true] | false | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [false] | false | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [true] | true | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [false] | false | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [true] | true | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [false] | true | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [true] | true | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [false] | false | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [true] | true | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | After Some(...) [no-match] | no-match | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | [pattern-start] Some(...) | match | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [false] | match | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [true] | match | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [false] | false | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [true] | true | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [false] | false | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [true] | true | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [match] | match | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [no-match] | no-match | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [false] | match | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [true] | match | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [false] | false | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [true] | true | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [false] | false | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [true] | true | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | After Some(...) [no-match] | no-match | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | [pattern-start] Some(...) | match | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | After Some(...) [no-match] | no-match | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | [pattern-start] Some(...) | match | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [false] | false | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [true] | true | +| test.rs:160:5:166:5 | Entry | test.rs:161:24:161:30 | After ... < ... [false] | true | +| test.rs:160:5:166:5 | Entry | test.rs:161:24:161:30 | After ... < ... [true] | true | +| test.rs:160:5:166:5 | Entry | test.rs:161:41:161:46 | After ... > ... [false] | false | +| test.rs:160:5:166:5 | Entry | test.rs:161:41:161:46 | After ... > ... [true] | false | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [false] | false | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [true] | true | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [false] | false | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [true] | true | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [false] | false | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [true] | true | +| test.rs:168:5:177:5 | Entry | test.rs:170:13:174:13 | After if cond2 {...} else {...} | true | +| test.rs:168:5:177:5 | Entry | test.rs:170:16:170:20 | After cond2 [false] | true | +| test.rs:168:5:177:5 | Entry | test.rs:170:16:170:20 | After cond2 [true] | true | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [false] | false | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [true] | true | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [match] | match | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [no-match] | no-match | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [false] | false | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [true] | true | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [false] | false | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [true] | true | +| test.rs:214:18:219:9 | { ... } | test.rs:214:9:223:9 | After if ... {...} else {...} | true | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [false] | false | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [true] | true | +| test.rs:214:18:219:9 | { ... } | test.rs:216:23:216:28 | After ... > ... [false] | true | +| test.rs:214:18:219:9 | { ... } | test.rs:216:23:216:28 | After ... > ... [true] | true | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [false] | false | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [true] | true | +| test.rs:227:26:232:9 | { ... } | test.rs:227:9:236:9 | After if ... {...} else {...} | true | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [false] | false | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [true] | true | +| test.rs:227:26:232:9 | { ... } | test.rs:229:30:229:35 | After ... > ... [false] | true | +| test.rs:227:26:232:9 | { ... } | test.rs:229:30:229:35 | After ... > ... [true] | true | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [false] | false | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [true] | true | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [false] | false | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [true] | true | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [false] | false | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [true] | true | +| test.rs:252:5:255:5 | Entry | test.rs:253:22:253:22 | After b [false] | true | +| test.rs:252:5:255:5 | Entry | test.rs:253:22:253:22 | After b [true] | true | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [false] | false | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [true] | true | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [false] | false | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [true] | true | +| test.rs:257:5:260:5 | Entry | test.rs:258:22:258:22 | After b [false] | false | +| test.rs:257:5:260:5 | Entry | test.rs:258:22:258:22 | After b [true] | false | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [false] | false | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [true] | true | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [false] | false | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [true] | true | +| test.rs:262:5:265:5 | Entry | test.rs:263:23:263:29 | After ... == ... [false] | false | +| test.rs:262:5:265:5 | Entry | test.rs:263:23:263:29 | After ... == ... [true] | false | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [false] | false | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [true] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [false] | false | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [true] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:17:273:17 | After b [false] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:17:273:17 | After b [true] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:22:273:22 | After c [false] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:22:273:22 | After c [true] | true | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [false] | false | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [true] | true | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:22:273:22 | After c [false] | true | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:22:273:22 | After c [true] | true | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [false] | false | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [true] | true | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [false] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [true] | true | +| test.rs:280:5:286:5 | Entry | test.rs:281:17:281:17 | After b [false] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:17:281:17 | After b [true] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:22:281:22 | After c [false] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:22:281:22 | After c [true] | false | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [false] | false | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [true] | true | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:22:281:22 | After c [false] | false | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:22:281:22 | After c [true] | false | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [false] | false | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [true] | true | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [false] | false | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [true] | true | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [false] | false | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [true] | true | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [false] | false | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [true] | true | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [match] | match | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [no-match] | no-match | +| test.rs:315:5:320:5 | Entry | test.rs:316:9:319:9 | After match ... { ... } | match | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [match] | match | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [no-match] | no-match | +| test.rs:315:5:320:5 | Entry | test.rs:317:13:317:16 | After true [match] | match | +| test.rs:315:5:320:5 | Entry | test.rs:317:13:317:16 | After true [no-match] | match | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [match] | match | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [no-match] | no-match | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | match | +| test.rs:326:5:332:5 | Entry | test.rs:328:32:328:37 | After ... < ... [false] | match | +| test.rs:326:5:332:5 | Entry | test.rs:328:32:328:37 | After ... < ... [true] | match | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [false] | false | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [true] | true | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | match | +| test.rs:334:5:343:5 | Entry | test.rs:335:9:342:9 | After match ... { ... } | false | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [false] | false | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [true] | true | +| test.rs:334:5:343:5 | Entry | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | false | +| test.rs:334:5:343:5 | Entry | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | false | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | match | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | After Some(...) [no-match] | no-match | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | [pattern-start] Some(...) | match | +| test.rs:345:5:350:5 | Entry | test.rs:347:24:347:24 | After a [false] | match | +| test.rs:345:5:350:5 | Entry | test.rs:347:24:347:24 | After a [true] | match | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [false] | false | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [true] | true | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | After Ok(...) [no-match] | no-match | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | [pattern-start] Ok(...) | match | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | After Some(...) [no-match] | no-match | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | [pattern-start] Some(...) | match | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | After Some(...) [no-match] | no-match | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | [pattern-start] Some(...) | match | +| test.rs:393:5:398:5 | Entry | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | match | +| test.rs:393:5:398:5 | Entry | test.rs:395:27:395:27 | After 1 [match] | match | +| test.rs:393:5:398:5 | Entry | test.rs:395:27:395:27 | After 1 [no-match] | match | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [match] | match | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [match] | match | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:13 | After 1 [match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:13 | After 1 [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:403:13:403:16 | After RangePat [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:403:16:403:16 | After 2 [match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:403:16:403:16 | After 2 [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:404:13:404:13 | After 5 [match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:404:13:404:13 | After 5 [no-match] | no-match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [match] | match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | no-match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:16:403:16 | After 2 [match] | match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | match | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [match] | match | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [no-match] | no-match | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [match] | match | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | no-match | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [match] | match | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [no-match] | no-match | +| test.rs:409:5:414:5 | Entry | test.rs:411:20:411:21 | After 10 [match] | match | +| test.rs:409:5:414:5 | Entry | test.rs:411:20:411:21 | After 10 [no-match] | match | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [match] | match | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [no-match] | no-match | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [match] | match | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [no-match] | no-match | +| test.rs:416:5:423:5 | Entry | test.rs:419:28:419:29 | After 10 [match] | match | +| test.rs:416:5:423:5 | Entry | test.rs:419:28:419:29 | After 10 [no-match] | match | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [match] | match | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [no-match] | no-match | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [match] | match | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [no-match] | no-match | +| test.rs:425:5:431:5 | Entry | test.rs:428:18:428:18 | After 2 [match] | no-match | +| test.rs:425:5:431:5 | Entry | test.rs:428:18:428:18 | After 2 [no-match] | no-match | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [match] | match | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [no-match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [match] | match | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [no-match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:17:435:17 | After 1 [match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:17:435:17 | After 1 [no-match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:21:435:21 | After 2 [match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:21:435:21 | After 2 [no-match] | no-match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [match] | match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | no-match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:21:435:21 | After 2 [match] | no-match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | no-match | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [match] | match | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [match] | match | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [no-match] | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:22 | After Some(...) [no-match] | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:22 | [pattern-start] Some(...) | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:443:13:443:36 | After ... \| ... [match] | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:443:18:443:21 | After true [match] | no-match | +| test.rs:440:5:445:5 | Entry | test.rs:443:18:443:21 | After true [no-match] | no-match | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | match | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:18:443:21 | After true [match] | match | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:18:443:21 | After true [no-match] | match | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [match] | match | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [no-match] | no-match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [match] | match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [no-match] | no-match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 2 [match] | no-match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 2 [no-match] | no-match | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [match] | match | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [no-match] | no-match | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | no-match | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | match | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | no-match | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | match | +| test.rs:475:5:481:5 | Entry | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | no-match | +| test.rs:475:5:481:5 | Entry | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | no-match | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | no-match | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | match | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [false] | false | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [true] | true | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [false] | false | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [true] | true | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [false] | false | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [true] | true | +| test.rs:568:1:582:1 | Entry | test.rs:575:12:575:30 | After condition_not_met(...) [false] | false | +| test.rs:568:1:582:1 | Entry | test.rs:575:12:575:30 | After condition_not_met(...) [true] | false | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [false] | false | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [true] | true | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | After Some(...) [no-match] | no-match | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | [pattern-start] Some(...) | match | successor -| test.rs:18:5:24:5 | enter fn next | test.rs:20:13:20:13 | n | true | -| test.rs:18:5:24:5 | enter fn next | test.rs:22:13:22:13 | 3 | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:30:13:32:13 | if ... {...} | false | -| test.rs:29:13:29:24 | ExprStmt | test.rs:31:17:31:29 | ExprStmt | true | -| test.rs:30:13:32:13 | if ... {...} | test.rs:33:13:35:13 | if ... {...} | false | -| test.rs:30:13:32:13 | if ... {...} | test.rs:34:17:34:22 | ExprStmt | true | -| test.rs:33:13:35:13 | if ... {...} | test.rs:36:13:38:13 | if ... {...} | false | -| test.rs:33:13:35:13 | if ... {...} | test.rs:37:17:37:25 | ExprStmt | true | -| test.rs:47:17:51:17 | ExprStmt | test.rs:48:21:48:26 | ExprStmt | true | -| test.rs:47:17:51:17 | ExprStmt | test.rs:49:27:49:27 | b | false | -| test.rs:49:27:49:27 | b | test.rs:49:24:51:17 | if b {...} | false | -| test.rs:49:27:49:27 | b | test.rs:50:21:50:33 | ExprStmt | true | -| test.rs:62:17:66:17 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | true | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:27:64:27 | b | false | -| test.rs:64:27:64:27 | b | test.rs:64:24:66:17 | if b {...} | false | -| test.rs:64:27:64:27 | b | test.rs:65:21:65:36 | ExprStmt | true | -| test.rs:76:17:80:17 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | true | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:27:78:27 | b | false | -| test.rs:78:27:78:27 | b | test.rs:78:24:80:17 | if b {...} | false | -| test.rs:78:27:78:27 | b | test.rs:79:21:79:36 | ExprStmt | true | -| test.rs:88:15:88:15 | b | test.rs:88:9:94:9 | while b { ... } | false | -| test.rs:88:15:88:15 | b | test.rs:89:13:89:14 | ExprStmt | true | -| test.rs:89:13:89:14 | ExprStmt | test.rs:90:13:92:13 | if ... {...} | false | -| test.rs:89:13:89:14 | ExprStmt | test.rs:91:17:91:22 | ExprStmt | true | -| test.rs:99:15:99:39 | [boolean(false)] let ... = ... | test.rs:99:9:103:9 | while ... { ... } | false | -| test.rs:99:24:99:24 | x | test.rs:100:17:100:17 | x | true | -| test.rs:100:17:100:17 | x | test.rs:100:13:102:13 | if ... {...} | false | -| test.rs:100:17:100:17 | x | test.rs:101:17:101:22 | ExprStmt | true | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | if ... {...} | false | -| test.rs:108:13:110:13 | ExprStmt | test.rs:109:17:109:22 | ExprStmt | true | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:131:13:131:13 | 0 | true | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:133:13:133:13 | n | false | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:139:9:141:9 | if b {...} | false | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:140:13:140:19 | ExprStmt | true | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:149:13:149:13 | 0 | false | -| test.rs:146:21:146:21 | n | test.rs:147:13:147:13 | n | true | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:9:156:9 | if ... {...} | false | -| test.rs:154:21:154:21 | n | test.rs:155:13:155:21 | ExprStmt | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:24:161:24 | a | true | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:161:41:161:41 | a | false | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:164:13:164:13 | 0 | false | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:162:13:162:13 | 1 | true | -| test.rs:161:22:161:32 | [boolean(false)] { ... } | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | false | -| test.rs:161:22:161:32 | [boolean(true)] { ... } | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | true | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(false)] { ... } | false | -| test.rs:161:24:161:24 | a | test.rs:161:22:161:32 | [boolean(true)] { ... } | true | -| test.rs:161:39:161:48 | [boolean(false)] { ... } | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | false | -| test.rs:161:39:161:48 | [boolean(true)] { ... } | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | true | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(false)] { ... } | false | -| test.rs:161:41:161:41 | a | test.rs:161:39:161:48 | [boolean(true)] { ... } | true | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:169:9:176:9 | if cond1 {...} | false | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:170:13:174:13 | ExprStmt | true | -| test.rs:170:13:174:13 | ExprStmt | test.rs:171:17:171:30 | ExprStmt | true | -| test.rs:170:13:174:13 | ExprStmt | test.rs:173:17:173:30 | ExprStmt | false | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:186:13:186:13 | 0 | false | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:184:13:184:13 | 1 | true | -| test.rs:181:18:181:21 | true | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | true | -| test.rs:182:13:182:13 | _ | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | false | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(false)] { ... } | false | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:191:12:194:9 | [boolean(true)] { ... } | true | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:197:13:197:13 | 0 | false | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:195:13:195:13 | 1 | true | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(false)] { ... } | false | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:203:12:206:9 | [boolean(true)] { ... } | true | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:209:13:209:13 | 0 | false | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:207:13:207:13 | 1 | true | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | false | -| test.rs:215:13:217:14 | ExprStmt | test.rs:216:17:216:29 | ExprStmt | true | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:222:13:222:13 | 0 | false | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:220:13:220:13 | 1 | true | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(false)] break ... | false | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | [boolean(true)] break ... | true | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | false | -| test.rs:228:13:230:14 | ExprStmt | test.rs:229:17:229:36 | ExprStmt | true | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:235:13:235:13 | 0 | false | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:233:13:233:13 | 1 | true | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | false | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | true | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | false | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | true | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:245:13:245:13 | 0 | false | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:243:13:243:13 | 1 | true | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:17:253:22 | [boolean(false)] ... && ... | false | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:253:22:253:22 | b | true | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:253:17:253:27 | ... && ... | false | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:27:253:27 | c | true | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(false)] ... && ... | false | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(true)] ... && ... | true | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:258:22:258:22 | b | false | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:27:258:27 | c | false | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:258:17:258:27 | ... \|\| ... | true | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | true | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:263:23:263:23 | b | false | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:35:263:35 | c | false | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:263:17:263:35 | ... \|\| ... | true | -| test.rs:263:23:263:23 | b | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | false | -| test.rs:263:23:263:23 | b | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | true | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:12:273:17 | [boolean(false)] ... && ... | false | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:273:17:273:17 | b | true | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:273:12:273:22 | [boolean(false)] ... && ... | false | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:22:273:22 | c | true | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:276:13:276:17 | false | false | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | true | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(false)] ... && ... | false | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(true)] ... && ... | true | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(false)] ... && ... | false | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | true | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:281:17:281:17 | b | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:22:281:22 | c | false | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | false | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:282:13:282:16 | true | true | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(false)] ! ... | true | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:289:12:289:13 | [boolean(true)] ! ... | false | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:292:13:292:17 | false | false | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:290:13:290:16 | true | true | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:9:297:19 | ... && ... | false | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:297:14:297:19 | return | true | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:13:301:21 | [boolean(false)] ... && ... | false | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:301:18:301:21 | true | true | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:9:303:9 | if ... {...} | false | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:302:13:302:21 | ExprStmt | true | -| test.rs:301:18:301:21 | true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | true | -| test.rs:328:26:328:26 | x | test.rs:328:42:328:42 | x | true | -| test.rs:328:26:328:26 | x | test.rs:329:13:329:27 | ...::Some(...) | false | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:336:13:336:21 | ExprStmt | true | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:338:13:338:23 | maybe_digit | false | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:346:9:349:18 | ... && ... | false | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:349:15:349:18 | cond | true | -| test.rs:347:18:347:18 | a | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | false | -| test.rs:347:18:347:18 | a | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | true | -| test.rs:348:13:348:13 | _ | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | false | -| test.rs:511:28:516:9 | enter { ... } | test.rs:512:13:514:13 | if b {...} | false | -| test.rs:511:28:516:9 | enter { ... } | test.rs:513:17:513:41 | ExprStmt | true | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | if ... {...} | false | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:19 | ExprStmt | true | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | if false {...} | false | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:553:9:553:17 | ExprStmt | true | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:571:9:573:9 | if ... {...} | false | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:572:13:572:27 | ExprStmt | true | -| test.rs:571:9:573:9 | if ... {...} | test.rs:575:9:577:9 | if ... {...} | false | -| test.rs:571:9:573:9 | if ... {...} | test.rs:576:13:576:27 | ExprStmt | true | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [match] | match | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | no-match | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [false] | false | +| test.rs:18:5:24:5 | Entry | test.rs:19:12:19:21 | After ... == ... [true] | true | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [false] | false | +| test.rs:28:14:40:9 | { ... } | test.rs:30:16:30:24 | After ... > ... [true] | true | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [false] | false | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:33:16:33:21 | After ... == ... [true] | true | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [false] | false | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:36:16:36:25 | After ... != ... [true] | true | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [false] | false | +| test.rs:45:22:54:9 | { ... } | test.rs:47:20:47:20 | After b [true] | true | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [false] | false | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:27:49:27 | After b [true] | true | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [false] | false | +| test.rs:61:26:68:13 | { ... } | test.rs:62:20:62:20 | After b [true] | true | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [false] | false | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:27:64:27 | After b [true] | true | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [false] | false | +| test.rs:75:26:82:13 | { ... } | test.rs:76:20:76:20 | After b [true] | true | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [false] | false | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:27:78:27 | After b [true] | true | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [false] | false | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | After b [true] | true | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [false] | false | +| test.rs:88:15:88:15 | After b [true] | test.rs:90:17:90:21 | After ... > ... [true] | true | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | After Some(...) [no-match] | no-match | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:19:99:25 | [pattern-start] Some(...) | match | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [false] | false | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:100:17:100:22 | After ... == ... [true] | true | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [false] | false | +| test.rs:107:13:107:13 | After i [match] | test.rs:108:17:108:22 | After ... == ... [true] | true | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [match] | match | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | After i [no-match] | no-match | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [false] | false | +| test.rs:129:5:135:5 | Entry | test.rs:130:12:130:17 | After ... <= ... [true] | true | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [false] | false | +| test.rs:137:5:143:5 | Entry | test.rs:139:12:139:12 | After b [true] | true | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | After Some(...) [no-match] | no-match | +| test.rs:145:5:151:5 | Entry | test.rs:146:16:146:22 | [pattern-start] Some(...) | match | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | After Some(...) [no-match] | no-match | +| test.rs:153:5:158:5 | Entry | test.rs:154:16:154:22 | [pattern-start] Some(...) | match | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [false] | false | +| test.rs:160:5:166:5 | Entry | test.rs:161:16:161:20 | After ... < ... [true] | true | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [false] | false | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:41:161:46 | After ... > ... [true] | true | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [false] | false | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:24:161:30 | After ... < ... [true] | true | +| test.rs:161:24:161:30 | After ... < ... [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | false | +| test.rs:161:24:161:30 | After ... < ... [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | true | +| test.rs:161:41:161:46 | After ... > ... [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | false | +| test.rs:161:41:161:46 | After ... > ... [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | true | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [false] | false | +| test.rs:168:5:177:5 | Entry | test.rs:169:12:169:16 | After cond1 [true] | true | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [false] | false | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:170:16:170:20 | After cond2 [true] | true | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [match] | match | +| test.rs:179:5:188:5 | Entry | test.rs:181:13:181:13 | After 0 [no-match] | no-match | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:180:13:183:9 | After match a { ... } [false] | false | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:180:13:183:9 | After match a { ... } [true] | true | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:180:13:183:9 | After match a { ... } [false] | false | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:180:13:183:9 | After match a { ... } [true] | true | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [false] | false | +| test.rs:190:5:199:5 | Entry | test.rs:193:13:193:17 | After ... > ... [true] | true | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [false] | false | +| test.rs:201:5:211:5 | Entry | test.rs:205:13:205:13 | After x [true] | true | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [false] | false | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [true] | true | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [false] | false | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:216:23:216:28 | After ... > ... [true] | true | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [false] | false | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [true] | true | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [false] | false | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:229:30:229:35 | After ... > ... [true] | true | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [false] | false | +| test.rs:239:5:247:5 | Entry | test.rs:241:26:241:30 | After ... > ... [true] | true | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [false] | false | +| test.rs:252:5:255:5 | Entry | test.rs:253:17:253:17 | After a [true] | true | +| test.rs:253:17:253:17 | After a [false] | test.rs:253:17:253:22 | After ... && ... [false] | false | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [false] | false | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | After b [true] | true | +| test.rs:253:22:253:22 | After b [false] | test.rs:253:17:253:22 | After ... && ... [false] | false | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [false] | false | +| test.rs:257:5:260:5 | Entry | test.rs:258:17:258:17 | After a [true] | true | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [false] | false | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | After b [true] | true | +| test.rs:258:17:258:17 | After a [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | true | +| test.rs:258:22:258:22 | After b [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | true | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [false] | false | +| test.rs:262:5:265:5 | Entry | test.rs:263:17:263:17 | After a [true] | true | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [false] | false | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | After ... == ... [true] | true | +| test.rs:263:17:263:17 | After a [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | true | +| test.rs:263:23:263:29 | After ... == ... [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | true | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [false] | false | +| test.rs:272:5:278:5 | Entry | test.rs:273:12:273:12 | After a [true] | true | +| test.rs:273:12:273:12 | After a [false] | test.rs:273:12:273:17 | After ... && ... [false] | false | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [false] | false | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | After b [true] | true | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:22 | After ... && ... [false] | false | +| test.rs:273:17:273:17 | After b [false] | test.rs:273:12:273:17 | After ... && ... [false] | false | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [false] | false | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:22:273:22 | After c [true] | true | +| test.rs:273:22:273:22 | After c [false] | test.rs:273:12:273:22 | After ... && ... [false] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [false] | false | +| test.rs:280:5:286:5 | Entry | test.rs:281:12:281:12 | After a [true] | true | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [false] | false | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | After b [true] | true | +| test.rs:281:12:281:12 | After a [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | true | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | true | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [false] | false | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:22:281:22 | After c [true] | true | +| test.rs:281:17:281:17 | After b [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | true | +| test.rs:281:22:281:22 | After c [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | true | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [false] | false | +| test.rs:288:5:294:5 | Entry | test.rs:289:13:289:13 | After a [true] | true | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [false] | false | +| test.rs:296:5:298:5 | Entry | test.rs:297:9:297:9 | After a [true] | true | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [false] | false | +| test.rs:300:5:305:5 | Entry | test.rs:301:13:301:13 | After a [true] | true | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [match] | match | +| test.rs:311:5:313:5 | Entry | test.rs:312:12:312:27 | After s.parse() [no-match] | no-match | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [match] | match | +| test.rs:315:5:320:5 | Entry | test.rs:316:15:316:15 | After b [no-match] | no-match | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [match] | match | +| test.rs:316:15:316:15 | After b [match] | test.rs:317:13:317:16 | After true [no-match] | no-match | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:326:5:332:5 | Entry | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | match | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [false] | false | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [true] | true | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | match | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [false] | false | +| test.rs:334:5:343:5 | Entry | test.rs:335:19:335:40 | After ... == ... [true] | true | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | match | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | After Some(...) [no-match] | no-match | +| test.rs:345:5:350:5 | Entry | test.rs:347:13:347:19 | [pattern-start] Some(...) | match | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [false] | false | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:24:347:24 | After a [true] | true | +| test.rs:347:24:347:24 | After a [false] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:347:24:347:24 | After a [false] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:347:24:347:24 | After a [true] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:347:24:347:24 | After a [true] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | After Ok(...) [no-match] | no-match | +| test.rs:352:5:357:5 | Entry | test.rs:354:13:354:21 | [pattern-start] Ok(...) | match | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | After Some(...) [no-match] | no-match | +| test.rs:362:5:365:5 | Entry | test.rs:363:13:363:19 | [pattern-start] Some(...) | match | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | After Some(...) [no-match] | no-match | +| test.rs:367:5:373:5 | Entry | test.rs:369:13:369:21 | [pattern-start] Some(...) | match | +| test.rs:393:5:398:5 | Entry | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | no-match | +| test.rs:393:5:398:5 | Entry | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | match | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [match] | match | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | After 1 [no-match] | no-match | +| test.rs:395:27:395:27 | After 1 [no-match] | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | no-match | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [match] | match | +| test.rs:400:5:407:5 | Entry | test.rs:402:15:402:15 | After 0 [no-match] | no-match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [match] | match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | no-match | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [match] | match | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | After 2 [no-match] | no-match | +| test.rs:403:13:403:13 | After 1 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | no-match | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [match] | match | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:13 | After 5 [no-match] | no-match | +| test.rs:403:16:403:16 | After 2 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | no-match | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [match] | match | +| test.rs:409:5:414:5 | Entry | test.rs:411:17:411:17 | After 1 [no-match] | no-match | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [match] | match | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | After 10 [no-match] | no-match | +| test.rs:411:17:411:17 | After 1 [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | no-match | +| test.rs:411:20:411:21 | After 10 [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | no-match | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [match] | match | +| test.rs:416:5:423:5 | Entry | test.rs:419:25:419:25 | After 1 [no-match] | no-match | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [match] | match | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | After 10 [no-match] | no-match | +| test.rs:419:25:419:25 | After 1 [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | no-match | +| test.rs:419:28:419:29 | After 10 [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | no-match | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [match] | match | +| test.rs:425:5:431:5 | Entry | test.rs:427:14:427:14 | After 1 [no-match] | no-match | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [match] | match | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:428:18:428:18 | After 2 [no-match] | no-match | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [match] | match | +| test.rs:433:5:438:5 | Entry | test.rs:435:13:435:13 | After 0 [no-match] | no-match | +| test.rs:435:13:435:13 | After 0 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [match] | match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | After 1 [no-match] | no-match | +| test.rs:435:17:435:17 | After 1 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [match] | match | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | After 2 [no-match] | no-match | +| test.rs:435:21:435:21 | After 2 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [match] | match | +| test.rs:440:5:445:5 | Entry | test.rs:442:13:442:16 | After None [no-match] | no-match | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | no-match | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:22 | [pattern-start] Some(...) | match | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:13:443:36 | After ... \| ... [match] | match | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [match] | match | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | After true [no-match] | no-match | +| test.rs:443:18:443:21 | After true [match] | test.rs:443:13:443:36 | After ... \| ... [match] | match | +| test.rs:443:18:443:21 | After true [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | no-match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [match] | match | +| test.rs:453:5:458:5 | Entry | test.rs:455:13:455:23 | After 1 [no-match] | no-match | +| test.rs:455:13:455:23 | After 1 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | match | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [match] | match | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | After 2 [no-match] | no-match | +| test.rs:455:13:455:23 | After 2 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | match | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | no-match | +| test.rs:460:5:465:5 | Entry | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | match | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | no-match | +| test.rs:475:5:481:5 | Entry | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | match | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | no-match | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | match | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [false] | false | +| test.rs:511:28:516:9 | Entry | test.rs:512:16:512:16 | After b [true] | true | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [false] | false | +| test.rs:529:5:537:5 | Entry | test.rs:533:21:533:48 | After ... > ... [true] | true | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [false] | false | +| test.rs:568:1:582:1 | Entry | test.rs:571:12:571:30 | After condition_not_met(...) [true] | true | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [false] | false | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:575:12:575:30 | After condition_not_met(...) [true] | true | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | After Some(...) [no-match] | no-match | +| test.rs:584:1:592:1 | Entry | test.rs:587:13:587:19 | [pattern-start] Some(...) | match | joinBlockPredecessor -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:7:23:7:26 | true | 0 | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:8:9:8:9 | _ | 1 | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:20:13:20:13 | n | 1 | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:22:13:22:13 | 3 | 0 | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:31:17:31:29 | ExprStmt | 0 | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:34:17:34:22 | ExprStmt | 1 | -| test.rs:29:13:29:24 | ExprStmt | test.rs:26:5:42:5 | enter fn test_break_and_continue | 2 | -| test.rs:29:13:29:24 | ExprStmt | test.rs:36:13:38:13 | if ... {...} | 1 | -| test.rs:29:13:29:24 | ExprStmt | test.rs:37:17:37:25 | ExprStmt | 0 | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:48:21:48:26 | ExprStmt | 1 | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:49:24:51:17 | if b {...} | 0 | -| test.rs:47:17:51:17 | ExprStmt | test.rs:44:5:56:5 | enter fn test_break_with_labels | 1 | -| test.rs:47:17:51:17 | ExprStmt | test.rs:46:13:53:13 | 'inner: loop { ... } | 0 | -| test.rs:60:13:60:14 | ExprStmt | test.rs:58:5:70:5 | enter fn test_continue_with_labels | 1 | -| test.rs:60:13:60:14 | ExprStmt | test.rs:65:21:65:36 | ExprStmt | 0 | -| test.rs:62:17:66:17 | ExprStmt | test.rs:60:13:60:14 | ExprStmt | 0 | -| test.rs:62:17:66:17 | ExprStmt | test.rs:63:21:63:29 | ExprStmt | 2 | -| test.rs:62:17:66:17 | ExprStmt | test.rs:64:24:66:17 | if b {...} | 1 | -| test.rs:76:17:80:17 | ExprStmt | test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | 3 | -| test.rs:76:17:80:17 | ExprStmt | test.rs:77:21:77:29 | ExprStmt | 2 | -| test.rs:76:17:80:17 | ExprStmt | test.rs:78:24:80:17 | if b {...} | 1 | -| test.rs:76:17:80:17 | ExprStmt | test.rs:79:21:79:36 | ExprStmt | 0 | -| test.rs:88:9:94:9 | while b { ... } | test.rs:88:15:88:15 | b | 0 | -| test.rs:88:9:94:9 | while b { ... } | test.rs:91:17:91:22 | ExprStmt | 1 | -| test.rs:88:15:88:15 | b | test.rs:86:5:95:5 | enter fn test_while | 1 | -| test.rs:88:15:88:15 | b | test.rs:90:13:92:13 | if ... {...} | 0 | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | 0 | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:101:17:101:22 | ExprStmt | 1 | -| test.rs:99:29:99:32 | iter | test.rs:97:5:104:5 | enter fn test_while_let | 1 | -| test.rs:99:29:99:32 | iter | test.rs:100:13:102:13 | if ... {...} | 0 | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:13:107:13 | i | 1 | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:109:17:109:22 | ExprStmt | 0 | -| test.rs:107:13:107:13 | i | test.rs:106:5:113:5 | enter fn test_for | 1 | -| test.rs:107:13:107:13 | i | test.rs:108:13:110:13 | if ... {...} | 0 | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:131:13:131:13 | 0 | 1 | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:133:13:133:13 | n | 0 | -| test.rs:139:9:141:9 | if b {...} | test.rs:137:5:143:5 | enter fn test_if_without_else | 1 | -| test.rs:139:9:141:9 | if b {...} | test.rs:140:13:140:19 | ExprStmt | 0 | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:147:13:147:13 | n | 1 | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:149:13:149:13 | 0 | 0 | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:154:9:156:9 | if ... {...} | 1 | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:155:13:155:21 | ExprStmt | 0 | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:162:13:162:13 | 1 | 1 | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:164:13:164:13 | 0 | 0 | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(false)] { ... } | 1 | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(false)] { ... } | 0 | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:22:161:32 | [boolean(true)] { ... } | 1 | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:161:39:161:48 | [boolean(true)] { ... } | 0 | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:168:5:177:5 | enter fn test_nested_if_2 | 1 | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:170:13:174:13 | if cond2 {...} else {...} | 0 | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:171:17:171:30 | ExprStmt | 1 | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:173:17:173:30 | ExprStmt | 0 | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:184:13:184:13 | 1 | 1 | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:186:13:186:13 | 0 | 0 | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:195:13:195:13 | 1 | 1 | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:197:13:197:13 | 0 | 0 | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:207:13:207:13 | 1 | 1 | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:209:13:209:13 | 0 | 0 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:220:13:220:13 | 1 | 1 | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:222:13:222:13 | 0 | 0 | -| test.rs:215:13:217:14 | ExprStmt | test.rs:213:5:224:5 | enter fn test_if_loop1 | 1 | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | 0 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:233:13:233:13 | 1 | 1 | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:235:13:235:13 | 0 | 0 | -| test.rs:228:13:230:14 | ExprStmt | test.rs:226:5:237:5 | enter fn test_if_loop2 | 1 | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | 0 | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:243:13:243:13 | 1 | 1 | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:245:13:245:13 | 0 | 0 | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:252:5:255:5 | enter fn test_and_operator | 1 | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:253:22:253:22 | b | 0 | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:22 | [boolean(false)] ... && ... | 0 | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:27:253:27 | c | 1 | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:257:5:260:5 | enter fn test_or_operator | 1 | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:258:22:258:22 | b | 0 | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | 0 | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:27:258:27 | c | 1 | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:262:5:265:5 | enter fn test_or_operator_2 | 1 | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:263:23:263:23 | b | 0 | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | 0 | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:35:263:35 | c | 1 | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:274:13:274:16 | true | 1 | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:276:13:276:17 | false | 0 | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:272:5:278:5 | enter fn test_if_and_operator | 1 | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:273:17:273:17 | b | 0 | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:273:12:273:17 | [boolean(false)] ... && ... | 0 | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:273:22:273:22 | c | 1 | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:282:13:282:16 | true | 1 | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:284:13:284:17 | false | 0 | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:280:5:286:5 | enter fn test_if_or_operator | 1 | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:281:17:281:17 | b | 0 | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | 0 | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:281:22:281:22 | c | 1 | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:290:13:290:16 | true | 1 | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:292:13:292:17 | false | 0 | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:297:9:297:19 | ... && ... | 1 | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:297:14:297:19 | return | 0 | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:301:9:303:9 | if ... {...} | 1 | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:302:13:302:21 | ExprStmt | 0 | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | 1 | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:312:32:312:32 | 4 | 0 | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | 1 | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:316:9:319:9 | match ... { ... } | 0 | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:317:21:317:24 | Some | 0 | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:318:13:318:17 | false | 1 | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:328:42:328:42 | x | 0 | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:329:26:329:26 | x | 1 | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:330:13:330:24 | ...::None | 2 | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:326:5:332:5 | enter fn test_match | 1 | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:328:26:328:26 | x | 0 | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:335:9:342:9 | match ... { ... } | 1 | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:336:13:336:21 | ExprStmt | 0 | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:340:26:340:26 | x | 0 | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:341:13:341:24 | ...::None | 1 | -| test.rs:346:9:349:18 | ... && ... | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | 0 | -| test.rs:346:9:349:18 | ... && ... | test.rs:349:15:349:18 | cond | 1 | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:347:18:347:18 | a | 0 | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:348:13:348:13 | _ | 1 | -| test.rs:353:9:356:9 | match r { ... } | test.rs:354:16:354:20 | value | 0 | -| test.rs:353:9:356:9 | match r { ... } | test.rs:355:13:355:22 | Err(...) | 1 | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:369:18:369:20 | ret | 0 | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:370:13:370:16 | None | 1 | -| test.rs:394:9:397:9 | match st { ... } | test.rs:395:34:395:34 | 0 | 0 | -| test.rs:394:9:397:9 | match st { ... } | test.rs:396:13:396:26 | MyStruct {...} | 1 | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:393:5:398:5 | enter fn struct_pattern | 1 | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:395:27:395:27 | 1 | 0 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:402:20:402:20 | 1 | 0 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:403:21:403:21 | 2 | 1 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:404:20:404:20 | 3 | 2 | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:405:13:405:13 | _ | 3 | -| test.rs:404:13:404:15 | RangePat | test.rs:403:13:403:16 | RangePat | 1 | -| test.rs:404:13:404:15 | RangePat | test.rs:403:16:403:16 | 2 | 0 | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:411:13:411:13 | n | 0 | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:412:13:412:13 | _ | 1 | -| test.rs:412:13:412:13 | _ | test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | 1 | -| test.rs:412:13:412:13 | _ | test.rs:411:20:411:21 | 10 | 0 | -| test.rs:418:9:421:9 | match a { ... } | test.rs:419:21:419:21 | n | 0 | -| test.rs:418:9:421:9 | match a { ... } | test.rs:420:21:420:21 | n | 1 | -| test.rs:420:21:420:21 | n | test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | 1 | -| test.rs:420:21:420:21 | n | test.rs:419:28:419:29 | 10 | 0 | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:427:17:427:17 | _ | 0 | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:428:24:428:24 | 3 | 1 | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:429:13:429:16 | TuplePat | 2 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | 0 | -| test.rs:434:9:437:9 | match a { ... } | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | 1 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:433:5:438:5 | enter fn or_pattern | 2 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:435:17:435:17 | 1 | 0 | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:435:21:435:21 | 2 | 1 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:442:21:442:21 | 3 | 0 | -| test.rs:441:9:444:9 | match a { ... } | test.rs:443:13:443:36 | ... \| ... | 1 | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:18:443:21 | true | 0 | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:26:443:36 | Some(...) | 1 | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:13:443:22 | Some(...) | 1 | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:18:443:21 | true | 0 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | 0 | -| test.rs:454:9:457:9 | match a { ... } | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | 1 | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:453:5:458:5 | enter fn or_pattern_3 | 1 | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:455:13:455:23 | 2 | 0 | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:462:32:462:32 | _ | 0 | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:463:13:463:13 | _ | 1 | -| test.rs:476:9:480:9 | match e { ... } | test.rs:477:32:477:32 | _ | 0 | -| test.rs:476:9:480:9 | match e { ... } | test.rs:478:26:478:26 | _ | 1 | -| test.rs:476:9:480:9 | match e { ... } | test.rs:479:13:479:23 | UnitVariant | 2 | -| test.rs:487:13:487:14 | TupleExpr | test.rs:485:5:490:5 | enter fn test_infinite_loop | 1 | -| test.rs:487:13:487:14 | TupleExpr | test.rs:487:13:487:14 | TupleExpr | 0 | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:512:13:514:13 | if b {...} | 1 | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:513:17:513:41 | ExprStmt | 0 | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:13:533:19 | ExprStmt | 1 | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | [boolean(false)] ! ... | 0 | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:572:13:572:27 | ExprStmt | 0 | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:575:9:577:9 | if ... {...} | 2 | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:576:13:576:27 | ExprStmt | 1 | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:587:18:587:18 | y | 1 | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:588:13:588:27 | ExprStmt | 0 | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:7:13:7:18 | After CfgPredPat [match] | 1 | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | 0 | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:12:19:21 | After ... == ... [false] | 0 | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:19:12:19:21 | After ... == ... [true] | 1 | +| test.rs:26:5:42:5 | Normal Exit | test.rs:30:16:30:24 | After ... > ... [true] | 0 | +| test.rs:26:5:42:5 | Normal Exit | test.rs:33:16:33:21 | After ... == ... [true] | 1 | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:36:16:36:25 | After ... != ... [false] | 0 | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:36:16:36:25 | After ... != ... [true] | 1 | +| test.rs:28:14:40:9 | { ... } | test.rs:26:5:42:5 | Entry | 1 | +| test.rs:28:14:40:9 | { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | 0 | +| test.rs:45:22:54:9 | { ... } | test.rs:44:5:56:5 | Entry | 1 | +| test.rs:45:22:54:9 | { ... } | test.rs:46:13:53:13 | After 'inner: loop { ... } | 0 | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:47:20:47:20 | After b [true] | 0 | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:49:27:49:27 | After b [false] | 1 | +| test.rs:59:22:69:9 | { ... } | test.rs:58:5:70:5 | Entry | 1 | +| test.rs:59:22:69:9 | { ... } | test.rs:64:27:64:27 | After b [true] | 0 | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:62:20:62:20 | After b [true] | 0 | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:64:27:64:27 | After b [false] | 1 | +| test.rs:61:26:68:13 | { ... } | test.rs:59:22:69:9 | { ... } | 1 | +| test.rs:61:26:68:13 | { ... } | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | 0 | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:76:20:76:20 | After b [true] | 0 | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:78:27:78:27 | After b [false] | 1 | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:78:27:78:27 | After b [true] | 2 | +| test.rs:75:26:82:13 | { ... } | test.rs:72:5:84:5 | Entry | 1 | +| test.rs:75:26:82:13 | { ... } | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | 0 | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:88:15:88:15 | After b [false] | 0 | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:90:17:90:21 | After ... > ... [true] | 1 | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:86:5:95:5 | Entry | 1 | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:90:17:90:21 | After ... > ... [false] | 0 | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:99:19:99:25 | After Some(...) [no-match] | 0 | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:100:17:100:22 | After ... == ... [true] | 1 | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:97:5:104:5 | Entry | 1 | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:100:17:100:22 | After ... == ... [false] | 0 | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:107:13:107:13 | After i [no-match] | 1 | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:108:17:108:22 | After ... == ... [true] | 0 | +| test.rs:107:13:107:13 | Before i | test.rs:106:5:113:5 | Entry | 1 | +| test.rs:107:13:107:13 | Before i | test.rs:108:17:108:22 | After ... == ... [false] | 0 | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:12:130:17 | After ... <= ... [false] | 0 | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:130:12:130:17 | After ... <= ... [true] | 1 | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:12:139:12 | After b [false] | 0 | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:12:139:12 | After b [true] | 1 | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:16:146:22 | After Some(...) [no-match] | 1 | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:146:16:146:22 | [pattern-start] Some(...) | 0 | +| test.rs:153:5:158:5 | Normal Exit | test.rs:154:16:154:22 | After Some(...) [no-match] | 1 | +| test.rs:153:5:158:5 | Normal Exit | test.rs:154:16:154:22 | [pattern-start] Some(...) | 0 | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | 0 | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | 1 | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:24:161:30 | After ... < ... [false] | 1 | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:161:41:161:46 | After ... > ... [false] | 0 | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:24:161:30 | After ... < ... [true] | 1 | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:41:161:46 | After ... > ... [true] | 0 | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:12:169:16 | After cond1 [false] | 0 | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:170:13:174:13 | After if cond2 {...} else {...} | 1 | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:16:170:20 | After cond2 [false] | 0 | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:16:170:20 | After cond2 [true] | 1 | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:13:183:9 | After match a { ... } [false] | 0 | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:180:13:183:9 | After match a { ... } [true] | 1 | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:181:13:181:13 | After 0 [match] | 1 | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:181:13:181:13 | After 0 [no-match] | 0 | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:181:13:181:13 | After 0 [match] | 1 | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:181:13:181:13 | After 0 [no-match] | 0 | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:193:13:193:17 | After ... > ... [false] | 0 | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:193:13:193:17 | After ... > ... [true] | 1 | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:205:13:205:13 | After x [false] | 0 | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:205:13:205:13 | After x [true] | 1 | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:216:23:216:28 | After ... > ... [false] | 0 | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:216:23:216:28 | After ... > ... [true] | 1 | +| test.rs:214:18:219:9 | { ... } | test.rs:213:5:224:5 | Entry | 1 | +| test.rs:214:18:219:9 | { ... } | test.rs:215:16:215:20 | After ... > ... [false] | 0 | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:229:30:229:35 | After ... > ... [false] | 0 | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:229:30:229:35 | After ... > ... [true] | 1 | +| test.rs:227:26:232:9 | { ... } | test.rs:226:5:237:5 | Entry | 1 | +| test.rs:227:26:232:9 | { ... } | test.rs:228:16:228:20 | After ... > ... [false] | 0 | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:241:26:241:30 | After ... > ... [false] | 0 | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:241:26:241:30 | After ... > ... [true] | 1 | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:17:253:17 | After a [false] | 0 | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:22:253:22 | After b [false] | 1 | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:17:253:22 | After ... && ... [false] | 1 | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:22:253:22 | After b [true] | 0 | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:17:258:17 | After a [true] | 0 | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:22:258:22 | After b [true] | 1 | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:17:258:22 | After ... \|\| ... [true] | 1 | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:22:258:22 | After b [false] | 0 | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:17:263:17 | After a [true] | 0 | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:23:263:29 | After ... == ... [true] | 1 | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:17:263:30 | After ... \|\| ... [true] | 1 | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:23:263:29 | After ... == ... [false] | 0 | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:12:273:22 | After ... && ... [false] | 1 | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:273:22:273:22 | After c [true] | 0 | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:12 | After a [false] | 0 | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:17:273:17 | After b [false] | 1 | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:12:273:17 | After ... && ... [false] | 0 | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:273:22:273:22 | After c [false] | 1 | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:12:281:22 | After ... \|\| ... [true] | 1 | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:281:22:281:22 | After c [false] | 0 | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:12 | After a [true] | 0 | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:17:281:17 | After b [true] | 1 | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | 0 | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:22:281:22 | After c [true] | 1 | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:13:289:13 | After a [false] | 0 | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:289:13:289:13 | After a [true] | 1 | +| test.rs:296:5:298:5 | Normal Exit | test.rs:297:9:297:9 | After a [false] | 0 | +| test.rs:296:5:298:5 | Normal Exit | test.rs:297:9:297:9 | After a [true] | 1 | +| test.rs:300:5:305:5 | Normal Exit | test.rs:301:13:301:13 | After a [false] | 0 | +| test.rs:300:5:305:5 | Normal Exit | test.rs:301:13:301:13 | After a [true] | 1 | +| test.rs:311:5:313:5 | Normal Exit | test.rs:312:12:312:27 | After s.parse() [match] | 1 | +| test.rs:311:5:313:5 | Normal Exit | test.rs:312:12:312:27 | After s.parse() [no-match] | 0 | +| test.rs:315:5:320:5 | Normal Exit | test.rs:316:9:319:9 | After match ... { ... } | 1 | +| test.rs:315:5:320:5 | Normal Exit | test.rs:316:15:316:15 | After b [no-match] | 0 | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:317:13:317:16 | After true [match] | 1 | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:317:13:317:16 | After true [no-match] | 0 | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:328:32:328:37 | After ... < ... [true] | 0 | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | 2 | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | 1 | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | 1 | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:328:32:328:37 | After ... < ... [false] | 0 | +| test.rs:334:5:343:5 | Normal Exit | test.rs:335:9:342:9 | After match ... { ... } | 1 | +| test.rs:334:5:343:5 | Normal Exit | test.rs:335:19:335:40 | After ... == ... [true] | 0 | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | 1 | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | 0 | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:10:349:9 | After match r { ... } [false] | 0 | +| test.rs:346:9:349:18 | After ... && ... | test.rs:346:10:349:9 | After match r { ... } [true] | 1 | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:347:13:347:19 | After Some(...) [no-match] | 2 | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:347:24:347:24 | After a [false] | 0 | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:347:24:347:24 | After a [true] | 1 | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:347:13:347:19 | After Some(...) [no-match] | 2 | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:347:24:347:24 | After a [false] | 0 | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:347:24:347:24 | After a [true] | 1 | +| test.rs:352:5:357:5 | Exit | test.rs:354:13:354:21 | After Ok(...) [no-match] | 1 | +| test.rs:352:5:357:5 | Exit | test.rs:354:13:354:21 | [pattern-start] Ok(...) | 0 | +| test.rs:362:5:365:5 | Exit | test.rs:363:13:363:19 | After Some(...) [no-match] | 1 | +| test.rs:362:5:365:5 | Exit | test.rs:363:13:363:19 | [pattern-start] Some(...) | 0 | +| test.rs:367:5:373:5 | Normal Exit | test.rs:369:13:369:21 | After Some(...) [no-match] | 1 | +| test.rs:367:5:373:5 | Normal Exit | test.rs:369:13:369:21 | [pattern-start] Some(...) | 0 | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | 1 | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:395:27:395:27 | After 1 [match] | 0 | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:393:5:398:5 | Entry | 1 | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:395:27:395:27 | After 1 [no-match] | 0 | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:402:15:402:15 | After 0 [match] | 0 | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:403:16:403:16 | After 2 [match] | 1 | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:404:13:404:13 | After 5 [match] | 3 | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:404:13:404:13 | After 5 [no-match] | 2 | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:13:403:13 | After 1 [no-match] | 1 | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:403:16:403:16 | After 2 [no-match] | 0 | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:17:411:21 | After RangePat [no-match] | 1 | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:411:20:411:21 | After 10 [match] | 0 | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:17:411:17 | After 1 [no-match] | 1 | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:20:411:21 | After 10 [no-match] | 0 | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:25:419:29 | After RangePat [no-match] | 1 | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:419:28:419:29 | After 10 [match] | 0 | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:25:419:25 | After 1 [no-match] | 1 | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:28:419:29 | After 10 [no-match] | 0 | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:427:14:427:14 | After 1 [match] | 0 | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:428:18:428:18 | After 2 [match] | 2 | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:428:18:428:18 | After 2 [no-match] | 1 | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | 1 | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:435:21:435:21 | After 2 [no-match] | 0 | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:13:435:13 | After 0 [match] | 0 | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:17:435:17 | After 1 [match] | 1 | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:21:435:21 | After 2 [match] | 2 | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:442:13:442:16 | After None [match] | 0 | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:443:13:443:36 | After ... \| ... [match] | 1 | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:442:13:442:16 | After None [no-match] | 0 | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:18:443:21 | After true [no-match] | 1 | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:13:443:22 | After Some(...) [no-match] | 1 | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:18:443:21 | After true [match] | 0 | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 1 \| 2 [match] | 1 | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:455:13:455:23 | After 2 [no-match] | 0 | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 1 [match] | 0 | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:23 | After 2 [match] | 1 | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | 1 | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | 0 | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | 0 | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | 2 | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | 1 | +| test.rs:486:14:488:9 | { ... } | test.rs:485:5:490:5 | Entry | 1 | +| test.rs:486:14:488:9 | { ... } | test.rs:486:14:488:9 | { ... } | 0 | +| test.rs:511:28:516:9 | Normal Exit | test.rs:512:16:512:16 | After b [false] | 0 | +| test.rs:511:28:516:9 | Normal Exit | test.rs:512:16:512:16 | After b [true] | 1 | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After ... > ... [false] | 0 | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After ... > ... [true] | 1 | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:571:12:571:30 | After condition_not_met(...) [true] | 0 | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:575:12:575:30 | After condition_not_met(...) [false] | 1 | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:575:12:575:30 | After condition_not_met(...) [true] | 2 | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:587:13:587:19 | After Some(...) [no-match] | 1 | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:587:13:587:19 | [pattern-start] Some(...) | 0 | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index b5b97f21e8f5..8a5729251185 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -1,1477 +1,2787 @@ edges -| cfg.rs:1:1:3:1 | enter fn cfg_expr | cfg.rs:2:9:2:14 | CfgPredExpr | | -| cfg.rs:1:1:3:1 | exit fn cfg_expr (normal) | cfg.rs:1:1:3:1 | exit fn cfg_expr | | -| cfg.rs:1:27:3:1 | { ... } | cfg.rs:1:1:3:1 | exit fn cfg_expr (normal) | | -| cfg.rs:2:5:2:14 | MacroExpr | cfg.rs:1:27:3:1 | { ... } | | -| cfg.rs:2:5:2:14 | cfg!... | cfg.rs:2:5:2:14 | MacroExpr | | -| cfg.rs:2:9:2:14 | CfgPredExpr | cfg.rs:2:9:2:14 | { ... } | | -| cfg.rs:2:9:2:14 | { ... } | cfg.rs:2:5:2:14 | cfg!... | | -| cfg.rs:5:1:10:1 | enter fn cfg_pat | cfg.rs:5:16:5:20 | value | | -| cfg.rs:5:1:10:1 | exit fn cfg_pat (normal) | cfg.rs:5:1:10:1 | exit fn cfg_pat | | +| cfg.rs:1:1:3:1 | Entry | cfg.rs:1:27:3:1 | { ... } | | +| cfg.rs:1:1:3:1 | Normal Exit | cfg.rs:1:1:3:1 | Exit | | +| cfg.rs:1:27:3:1 | After { ... } | cfg.rs:1:1:3:1 | Normal Exit | | +| cfg.rs:1:27:3:1 | { ... } | cfg.rs:2:5:2:14 | Before MacroExpr | | +| cfg.rs:2:5:2:14 | After MacroExpr | cfg.rs:1:27:3:1 | After { ... } | | +| cfg.rs:2:5:2:14 | After cfg!... | cfg.rs:2:5:2:14 | MacroExpr | | +| cfg.rs:2:5:2:14 | Before MacroExpr | cfg.rs:2:5:2:14 | Before cfg!... | | +| cfg.rs:2:5:2:14 | Before cfg!... | cfg.rs:2:9:2:14 | { ... } | | +| cfg.rs:2:5:2:14 | MacroExpr | cfg.rs:2:5:2:14 | After MacroExpr | | +| cfg.rs:2:5:2:14 | cfg!... | cfg.rs:2:5:2:14 | After cfg!... | | +| cfg.rs:2:9:2:14 | After { ... } | cfg.rs:2:5:2:14 | cfg!... | | +| cfg.rs:2:9:2:14 | CfgPredExpr | cfg.rs:2:9:2:14 | After { ... } | | +| cfg.rs:2:9:2:14 | { ... } | cfg.rs:2:9:2:14 | CfgPredExpr | | +| cfg.rs:5:1:10:1 | Entry | cfg.rs:5:16:5:26 | Before ...: bool | | +| cfg.rs:5:1:10:1 | Normal Exit | cfg.rs:5:1:10:1 | Exit | | +| cfg.rs:5:16:5:20 | After value [match] | cfg.rs:5:16:5:26 | ...: bool | | +| cfg.rs:5:16:5:20 | Before value | cfg.rs:5:16:5:20 | value | | +| cfg.rs:5:16:5:20 | value | cfg.rs:5:16:5:20 | After value [match] | match | | cfg.rs:5:16:5:20 | value | cfg.rs:5:16:5:20 | value | | -| cfg.rs:5:16:5:20 | value | cfg.rs:5:16:5:26 | ...: bool | match | -| cfg.rs:5:16:5:26 | ...: bool | cfg.rs:6:11:6:15 | value | | -| cfg.rs:5:37:10:1 | { ... } | cfg.rs:5:1:10:1 | exit fn cfg_pat (normal) | | -| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:5:37:10:1 | { ... } | | +| cfg.rs:5:16:5:26 | ...: bool | cfg.rs:5:16:5:26 | After ...: bool | | +| cfg.rs:5:16:5:26 | After ...: bool | cfg.rs:5:37:10:1 | { ... } | | +| cfg.rs:5:16:5:26 | Before ...: bool | cfg.rs:5:16:5:20 | Before value | | +| cfg.rs:5:37:10:1 | After { ... } | cfg.rs:5:1:10:1 | Normal Exit | | +| cfg.rs:5:37:10:1 | { ... } | cfg.rs:6:5:9:5 | match value { ... } | | +| cfg.rs:6:5:9:5 | After match value { ... } | cfg.rs:5:37:10:1 | After { ... } | | +| cfg.rs:6:5:9:5 | match value { ... } | cfg.rs:6:11:6:15 | value | | | cfg.rs:6:11:6:15 | value | cfg.rs:7:9:7:18 | MacroPat | | -| cfg.rs:7:9:7:18 | MacroPat | cfg.rs:7:13:7:18 | CfgPredPat | match | -| cfg.rs:7:13:7:18 | CfgPredPat | cfg.rs:7:23:7:26 | true | match | -| cfg.rs:7:13:7:18 | CfgPredPat | cfg.rs:8:9:8:9 | _ | no-match | -| cfg.rs:7:23:7:26 | true | cfg.rs:6:5:9:5 | match value { ... } | | -| cfg.rs:8:9:8:9 | _ | cfg.rs:8:14:8:18 | false | match | -| cfg.rs:8:14:8:18 | false | cfg.rs:6:5:9:5 | match value { ... } | | -| test.rs:5:5:8:5 | enter fn function_call | test.rs:6:9:6:64 | ExprStmt | | -| test.rs:5:5:8:5 | exit fn function_call (normal) | test.rs:5:5:8:5 | exit fn function_call | | -| test.rs:5:24:8:5 | { ... } | test.rs:5:5:8:5 | exit fn function_call (normal) | | +| cfg.rs:7:9:7:18 | After MacroPat [match] | cfg.rs:7:23:7:26 | true | | +| cfg.rs:7:9:7:18 | After MacroPat [no-match] | cfg.rs:8:9:8:9 | _ | | +| cfg.rs:7:9:7:18 | MacroPat | cfg.rs:7:9:7:18 | [pattern-start] MacroPat | match | +| cfg.rs:7:9:7:18 | [pattern-start] MacroPat | cfg.rs:7:13:7:18 | CfgPredPat | | +| cfg.rs:7:13:7:18 | After CfgPredPat [match] | cfg.rs:7:9:7:18 | After MacroPat [match] | match | +| cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | cfg.rs:7:9:7:18 | After MacroPat [no-match] | no-match | +| cfg.rs:7:13:7:18 | CfgPredPat | cfg.rs:7:13:7:18 | After CfgPredPat [match] | match | +| cfg.rs:7:13:7:18 | CfgPredPat | cfg.rs:7:13:7:18 | After CfgPredPat [no-match] | no-match | +| cfg.rs:7:23:7:26 | true | cfg.rs:6:5:9:5 | After match value { ... } | | +| cfg.rs:8:9:8:9 | After _ [match] | cfg.rs:8:14:8:18 | false | | +| cfg.rs:8:9:8:9 | _ | cfg.rs:8:9:8:9 | After _ [match] | match | +| cfg.rs:8:14:8:18 | false | cfg.rs:6:5:9:5 | After match value { ... } | | +| test.rs:5:5:8:5 | Entry | test.rs:5:24:8:5 | { ... } | | +| test.rs:5:5:8:5 | Normal Exit | test.rs:5:5:8:5 | Exit | | +| test.rs:5:24:8:5 | After { ... } | test.rs:5:5:8:5 | Normal Exit | | +| test.rs:5:24:8:5 | { ... } | test.rs:6:9:6:64 | ExprStmt | | | test.rs:6:9:6:44 | ...::test_and_operator | test.rs:6:46:6:49 | true | | -| test.rs:6:9:6:63 | ...::test_and_operator(...) | test.rs:7:9:7:22 | ExprStmt | | -| test.rs:6:9:6:64 | ExprStmt | test.rs:6:9:6:44 | ...::test_and_operator | | +| test.rs:6:9:6:63 | ...::test_and_operator(...) | test.rs:6:9:6:63 | After ...::test_and_operator(...) | | +| test.rs:6:9:6:63 | After ...::test_and_operator(...) | test.rs:6:9:6:64 | After ExprStmt | | +| test.rs:6:9:6:63 | Before ...::test_and_operator(...) | test.rs:6:9:6:44 | ...::test_and_operator | | +| test.rs:6:9:6:64 | After ExprStmt | test.rs:7:9:7:22 | ExprStmt | | +| test.rs:6:9:6:64 | ExprStmt | test.rs:6:9:6:63 | Before ...::test_and_operator(...) | | | test.rs:6:46:6:49 | true | test.rs:6:52:6:56 | false | | | test.rs:6:52:6:56 | false | test.rs:6:59:6:62 | true | | | test.rs:6:59:6:62 | true | test.rs:6:9:6:63 | ...::test_and_operator(...) | | | test.rs:7:9:7:19 | method_call | test.rs:7:9:7:21 | method_call(...) | | -| test.rs:7:9:7:21 | method_call(...) | test.rs:5:24:8:5 | { ... } | | -| test.rs:7:9:7:22 | ExprStmt | test.rs:7:9:7:19 | method_call | | -| test.rs:10:5:13:5 | enter fn method_call | test.rs:11:9:11:37 | let ... = ... | | -| test.rs:10:5:13:5 | exit fn method_call (normal) | test.rs:10:5:13:5 | exit fn method_call | | -| test.rs:10:22:13:5 | { ... } | test.rs:10:5:13:5 | exit fn method_call (normal) | | -| test.rs:11:9:11:37 | let ... = ... | test.rs:11:23:11:34 | ...::new | | -| test.rs:11:13:11:19 | mut map | test.rs:12:9:12:28 | ExprStmt | match | +| test.rs:7:9:7:21 | After method_call(...) | test.rs:7:9:7:22 | After ExprStmt | | +| test.rs:7:9:7:21 | Before method_call(...) | test.rs:7:9:7:19 | method_call | | +| test.rs:7:9:7:21 | method_call(...) | test.rs:7:9:7:21 | After method_call(...) | | +| test.rs:7:9:7:22 | After ExprStmt | test.rs:5:24:8:5 | After { ... } | | +| test.rs:7:9:7:22 | ExprStmt | test.rs:7:9:7:21 | Before method_call(...) | | +| test.rs:10:5:13:5 | Entry | test.rs:10:22:13:5 | { ... } | | +| test.rs:10:5:13:5 | Normal Exit | test.rs:10:5:13:5 | Exit | | +| test.rs:10:22:13:5 | After { ... } | test.rs:10:5:13:5 | Normal Exit | | +| test.rs:10:22:13:5 | { ... } | test.rs:11:9:11:37 | let ... = ... | | +| test.rs:11:9:11:37 | After let ... = ... | test.rs:12:9:12:28 | ExprStmt | | +| test.rs:11:9:11:37 | let ... = ... | test.rs:11:23:11:36 | Before ...::new(...) | | +| test.rs:11:13:11:19 | After mut map [match] | test.rs:11:9:11:37 | After let ... = ... | | +| test.rs:11:13:11:19 | Before mut map | test.rs:11:17:11:19 | map | | +| test.rs:11:13:11:19 | mut map | test.rs:11:13:11:19 | After mut map [match] | match | | test.rs:11:17:11:19 | map | test.rs:11:13:11:19 | mut map | | | test.rs:11:23:11:34 | ...::new | test.rs:11:23:11:36 | ...::new(...) | | -| test.rs:11:23:11:36 | ...::new(...) | test.rs:11:17:11:19 | map | | +| test.rs:11:23:11:36 | ...::new(...) | test.rs:11:23:11:36 | After ...::new(...) | | +| test.rs:11:23:11:36 | After ...::new(...) | test.rs:11:13:11:19 | Before mut map | | +| test.rs:11:23:11:36 | Before ...::new(...) | test.rs:11:23:11:34 | ...::new | | | test.rs:12:9:12:11 | map | test.rs:12:20:12:21 | 37 | | -| test.rs:12:9:12:27 | map.insert(...) | test.rs:10:22:13:5 | { ... } | | -| test.rs:12:9:12:28 | ExprStmt | test.rs:12:9:12:11 | map | | +| test.rs:12:9:12:27 | After map.insert(...) | test.rs:12:9:12:28 | After ExprStmt | | +| test.rs:12:9:12:27 | Before map.insert(...) | test.rs:12:9:12:11 | map | | +| test.rs:12:9:12:27 | map.insert(...) | test.rs:12:9:12:27 | After map.insert(...) | | +| test.rs:12:9:12:28 | After ExprStmt | test.rs:10:22:13:5 | After { ... } | | +| test.rs:12:9:12:28 | ExprStmt | test.rs:12:9:12:27 | Before map.insert(...) | | | test.rs:12:20:12:21 | 37 | test.rs:12:24:12:26 | "a" | | | test.rs:12:24:12:26 | "a" | test.rs:12:9:12:27 | map.insert(...) | | -| test.rs:18:5:24:5 | enter fn next | test.rs:18:13:18:13 | n | | -| test.rs:18:5:24:5 | exit fn next (normal) | test.rs:18:5:24:5 | exit fn next | | +| test.rs:18:5:24:5 | Entry | test.rs:18:13:18:18 | Before ...: i64 | | +| test.rs:18:5:24:5 | Normal Exit | test.rs:18:5:24:5 | Exit | | +| test.rs:18:13:18:13 | After n [match] | test.rs:18:13:18:18 | ...: i64 | | +| test.rs:18:13:18:13 | Before n | test.rs:18:13:18:13 | n | | +| test.rs:18:13:18:13 | n | test.rs:18:13:18:13 | After n [match] | match | | test.rs:18:13:18:13 | n | test.rs:18:13:18:13 | n | | -| test.rs:18:13:18:13 | n | test.rs:18:13:18:18 | ...: i64 | match | -| test.rs:18:13:18:18 | ...: i64 | test.rs:19:12:19:12 | n | | -| test.rs:18:28:24:5 | { ... } | test.rs:18:5:24:5 | exit fn next (normal) | | -| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:18:28:24:5 | { ... } | | +| test.rs:18:13:18:18 | ...: i64 | test.rs:18:13:18:18 | After ...: i64 | | +| test.rs:18:13:18:18 | After ...: i64 | test.rs:18:28:24:5 | { ... } | | +| test.rs:18:13:18:18 | Before ...: i64 | test.rs:18:13:18:13 | Before n | | +| test.rs:18:28:24:5 | After { ... } | test.rs:18:5:24:5 | Normal Exit | | +| test.rs:18:28:24:5 | { ... } | test.rs:19:9:23:9 | if ... {...} else {...} | | +| test.rs:19:9:23:9 | After if ... {...} else {...} | test.rs:18:28:24:5 | After { ... } | | +| test.rs:19:9:23:9 | if ... {...} else {...} | test.rs:19:12:19:21 | Before ... == ... | | | test.rs:19:12:19:12 | n | test.rs:19:16:19:16 | 2 | | -| test.rs:19:12:19:16 | ... % ... | test.rs:19:21:19:21 | 0 | | -| test.rs:19:12:19:21 | ... == ... | test.rs:20:13:20:13 | n | true | -| test.rs:19:12:19:21 | ... == ... | test.rs:22:13:22:13 | 3 | false | +| test.rs:19:12:19:16 | ... % ... | test.rs:19:12:19:16 | After ... % ... | | +| test.rs:19:12:19:16 | After ... % ... | test.rs:19:21:19:21 | 0 | | +| test.rs:19:12:19:16 | Before ... % ... | test.rs:19:12:19:12 | n | | +| test.rs:19:12:19:21 | ... == ... | test.rs:19:12:19:21 | After ... == ... [false] | false | +| test.rs:19:12:19:21 | ... == ... | test.rs:19:12:19:21 | After ... == ... [true] | true | +| test.rs:19:12:19:21 | After ... == ... [false] | test.rs:21:16:23:9 | { ... } | | +| test.rs:19:12:19:21 | After ... == ... [true] | test.rs:19:23:21:9 | { ... } | | +| test.rs:19:12:19:21 | Before ... == ... | test.rs:19:12:19:16 | Before ... % ... | | | test.rs:19:16:19:16 | 2 | test.rs:19:12:19:16 | ... % ... | | | test.rs:19:21:19:21 | 0 | test.rs:19:12:19:21 | ... == ... | | -| test.rs:19:23:21:9 | { ... } | test.rs:19:9:23:9 | if ... {...} else {...} | | +| test.rs:19:23:21:9 | After { ... } | test.rs:19:9:23:9 | After if ... {...} else {...} | | +| test.rs:19:23:21:9 | { ... } | test.rs:20:13:20:17 | Before ... / ... | | | test.rs:20:13:20:13 | n | test.rs:20:17:20:17 | 2 | | -| test.rs:20:13:20:17 | ... / ... | test.rs:19:23:21:9 | { ... } | | +| test.rs:20:13:20:17 | ... / ... | test.rs:20:13:20:17 | After ... / ... | | +| test.rs:20:13:20:17 | After ... / ... | test.rs:19:23:21:9 | After { ... } | | +| test.rs:20:13:20:17 | Before ... / ... | test.rs:20:13:20:13 | n | | | test.rs:20:17:20:17 | 2 | test.rs:20:13:20:17 | ... / ... | | -| test.rs:21:16:23:9 | { ... } | test.rs:19:9:23:9 | if ... {...} else {...} | | +| test.rs:21:16:23:9 | After { ... } | test.rs:19:9:23:9 | After if ... {...} else {...} | | +| test.rs:21:16:23:9 | { ... } | test.rs:22:13:22:21 | Before ... + ... | | | test.rs:22:13:22:13 | 3 | test.rs:22:17:22:17 | n | | -| test.rs:22:13:22:17 | ... * ... | test.rs:22:21:22:21 | 1 | | -| test.rs:22:13:22:21 | ... + ... | test.rs:21:16:23:9 | { ... } | | +| test.rs:22:13:22:17 | ... * ... | test.rs:22:13:22:17 | After ... * ... | | +| test.rs:22:13:22:17 | After ... * ... | test.rs:22:21:22:21 | 1 | | +| test.rs:22:13:22:17 | Before ... * ... | test.rs:22:13:22:13 | 3 | | +| test.rs:22:13:22:21 | ... + ... | test.rs:22:13:22:21 | After ... + ... | | +| test.rs:22:13:22:21 | After ... + ... | test.rs:21:16:23:9 | After { ... } | | +| test.rs:22:13:22:21 | Before ... + ... | test.rs:22:13:22:17 | Before ... * ... | | | test.rs:22:17:22:17 | n | test.rs:22:13:22:17 | ... * ... | | | test.rs:22:21:22:21 | 1 | test.rs:22:13:22:21 | ... + ... | | -| test.rs:26:5:42:5 | enter fn test_break_and_continue | test.rs:26:32:26:32 | n | | -| test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | test.rs:26:5:42:5 | exit fn test_break_and_continue | | +| test.rs:26:5:42:5 | Entry | test.rs:26:32:26:37 | Before ...: i64 | | +| test.rs:26:5:42:5 | Normal Exit | test.rs:26:5:42:5 | Exit | | +| test.rs:26:32:26:32 | After n [match] | test.rs:26:32:26:37 | ...: i64 | | +| test.rs:26:32:26:32 | Before n | test.rs:26:32:26:32 | n | | +| test.rs:26:32:26:32 | n | test.rs:26:32:26:32 | After n [match] | match | | test.rs:26:32:26:32 | n | test.rs:26:32:26:32 | n | | -| test.rs:26:32:26:32 | n | test.rs:26:32:26:37 | ...: i64 | match | -| test.rs:26:32:26:37 | ...: i64 | test.rs:27:9:27:22 | let ... = n | | +| test.rs:26:32:26:37 | ...: i64 | test.rs:26:32:26:37 | After ...: i64 | | +| test.rs:26:32:26:37 | After ...: i64 | test.rs:26:48:42:5 | { ... } | | +| test.rs:26:32:26:37 | Before ...: i64 | test.rs:26:32:26:32 | Before n | | +| test.rs:26:48:42:5 | { ... } | test.rs:27:9:27:22 | let ... = n | | +| test.rs:27:9:27:22 | After let ... = n | test.rs:28:9:40:9 | ExprStmt | | | test.rs:27:9:27:22 | let ... = n | test.rs:27:21:27:21 | n | | -| test.rs:27:13:27:17 | mut i | test.rs:28:9:40:9 | ExprStmt | match | +| test.rs:27:13:27:17 | After mut i [match] | test.rs:27:9:27:22 | After let ... = n | | +| test.rs:27:13:27:17 | Before mut i | test.rs:27:17:27:17 | i | | +| test.rs:27:13:27:17 | mut i | test.rs:27:13:27:17 | After mut i [match] | match | | test.rs:27:17:27:17 | i | test.rs:27:13:27:17 | mut i | | -| test.rs:27:21:27:21 | n | test.rs:27:17:27:17 | i | | -| test.rs:28:9:40:9 | ExprStmt | test.rs:29:13:29:24 | ExprStmt | | -| test.rs:28:9:40:9 | loop { ... } | test.rs:41:9:41:20 | ExprStmt | | +| test.rs:27:21:27:21 | n | test.rs:27:13:27:17 | Before mut i | | +| test.rs:28:9:40:9 | After ExprStmt | test.rs:41:9:41:20 | ExprStmt | | +| test.rs:28:9:40:9 | After loop { ... } | test.rs:28:9:40:9 | After ExprStmt | | +| test.rs:28:9:40:9 | ExprStmt | test.rs:28:9:40:9 | loop { ... } | | +| test.rs:28:9:40:9 | [LoopHeader] loop { ... } | test.rs:28:14:40:9 | { ... } | | +| test.rs:28:9:40:9 | loop { ... } | test.rs:28:14:40:9 | { ... } | | +| test.rs:28:14:40:9 | After { ... } | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | | | test.rs:28:14:40:9 | { ... } | test.rs:29:13:29:24 | ExprStmt | | -| test.rs:29:13:29:13 | i | test.rs:29:17:29:20 | next | | -| test.rs:29:13:29:23 | ... = ... | test.rs:30:13:32:13 | ExprStmt | | -| test.rs:29:13:29:24 | ExprStmt | test.rs:29:13:29:13 | i | | +| test.rs:29:13:29:13 | i | test.rs:29:17:29:23 | Before next(...) | | +| test.rs:29:13:29:23 | ... = ... | test.rs:29:13:29:23 | After ... = ... | | +| test.rs:29:13:29:23 | After ... = ... | test.rs:29:13:29:24 | After ExprStmt | | +| test.rs:29:13:29:23 | Before ... = ... | test.rs:29:13:29:13 | i | | +| test.rs:29:13:29:24 | After ExprStmt | test.rs:30:13:32:13 | ExprStmt | | +| test.rs:29:13:29:24 | ExprStmt | test.rs:29:13:29:23 | Before ... = ... | | | test.rs:29:17:29:20 | next | test.rs:29:22:29:22 | i | | -| test.rs:29:17:29:23 | next(...) | test.rs:29:13:29:23 | ... = ... | | +| test.rs:29:17:29:23 | After next(...) | test.rs:29:13:29:23 | ... = ... | | +| test.rs:29:17:29:23 | Before next(...) | test.rs:29:17:29:20 | next | | +| test.rs:29:17:29:23 | next(...) | test.rs:29:17:29:23 | After next(...) | | | test.rs:29:22:29:22 | i | test.rs:29:17:29:23 | next(...) | | -| test.rs:30:13:32:13 | ExprStmt | test.rs:30:16:30:16 | i | | -| test.rs:30:13:32:13 | if ... {...} | test.rs:33:13:35:13 | ExprStmt | | +| test.rs:30:13:32:13 | After ExprStmt | test.rs:33:13:35:13 | ExprStmt | | +| test.rs:30:13:32:13 | After if ... {...} | test.rs:30:13:32:13 | After ExprStmt | | +| test.rs:30:13:32:13 | ExprStmt | test.rs:30:13:32:13 | if ... {...} | | +| test.rs:30:13:32:13 | if ... {...} | test.rs:30:16:30:24 | Before ... > ... | | | test.rs:30:16:30:16 | i | test.rs:30:20:30:24 | 10000 | | -| test.rs:30:16:30:24 | ... > ... | test.rs:30:13:32:13 | if ... {...} | false | -| test.rs:30:16:30:24 | ... > ... | test.rs:31:17:31:29 | ExprStmt | true | +| test.rs:30:16:30:24 | ... > ... | test.rs:30:16:30:24 | After ... > ... [false] | false | +| test.rs:30:16:30:24 | ... > ... | test.rs:30:16:30:24 | After ... > ... [true] | true | +| test.rs:30:16:30:24 | After ... > ... [false] | test.rs:30:13:32:13 | After if ... {...} | | +| test.rs:30:16:30:24 | After ... > ... [true] | test.rs:30:26:32:13 | { ... } | | +| test.rs:30:16:30:24 | Before ... > ... | test.rs:30:16:30:16 | i | | | test.rs:30:20:30:24 | 10000 | test.rs:30:16:30:24 | ... > ... | | -| test.rs:31:17:31:28 | return false | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | return | -| test.rs:31:17:31:29 | ExprStmt | test.rs:31:24:31:28 | false | | +| test.rs:30:26:32:13 | { ... } | test.rs:31:17:31:29 | ExprStmt | | +| test.rs:31:17:31:28 | Before return false | test.rs:31:24:31:28 | false | | +| test.rs:31:17:31:28 | return false | test.rs:26:5:42:5 | Normal Exit | return | +| test.rs:31:17:31:29 | ExprStmt | test.rs:31:17:31:28 | Before return false | | | test.rs:31:24:31:28 | false | test.rs:31:17:31:28 | return false | | -| test.rs:33:13:35:13 | ExprStmt | test.rs:33:16:33:16 | i | | -| test.rs:33:13:35:13 | if ... {...} | test.rs:36:13:38:13 | ExprStmt | | +| test.rs:33:13:35:13 | After ExprStmt | test.rs:36:13:38:13 | ExprStmt | | +| test.rs:33:13:35:13 | After if ... {...} | test.rs:33:13:35:13 | After ExprStmt | | +| test.rs:33:13:35:13 | ExprStmt | test.rs:33:13:35:13 | if ... {...} | | +| test.rs:33:13:35:13 | if ... {...} | test.rs:33:16:33:21 | Before ... == ... | | | test.rs:33:16:33:16 | i | test.rs:33:21:33:21 | 1 | | -| test.rs:33:16:33:21 | ... == ... | test.rs:33:13:35:13 | if ... {...} | false | -| test.rs:33:16:33:21 | ... == ... | test.rs:34:17:34:22 | ExprStmt | true | +| test.rs:33:16:33:21 | ... == ... | test.rs:33:16:33:21 | After ... == ... [false] | false | +| test.rs:33:16:33:21 | ... == ... | test.rs:33:16:33:21 | After ... == ... [true] | true | +| test.rs:33:16:33:21 | After ... == ... [false] | test.rs:33:13:35:13 | After if ... {...} | | +| test.rs:33:16:33:21 | After ... == ... [true] | test.rs:33:23:35:13 | { ... } | | +| test.rs:33:16:33:21 | Before ... == ... | test.rs:33:16:33:16 | i | | | test.rs:33:21:33:21 | 1 | test.rs:33:16:33:21 | ... == ... | | -| test.rs:34:17:34:21 | break | test.rs:28:9:40:9 | loop { ... } | break | +| test.rs:33:23:35:13 | { ... } | test.rs:34:17:34:22 | ExprStmt | | +| test.rs:34:17:34:21 | [break] break | test.rs:28:9:40:9 | After loop { ... } | break | +| test.rs:34:17:34:21 | break | test.rs:34:17:34:21 | [break] break | | | test.rs:34:17:34:22 | ExprStmt | test.rs:34:17:34:21 | break | | -| test.rs:36:13:38:13 | ExprStmt | test.rs:36:16:36:16 | i | | -| test.rs:36:13:38:13 | if ... {...} | test.rs:39:13:39:13 | i | | +| test.rs:36:13:38:13 | After ExprStmt | test.rs:39:13:39:21 | Before ... = ... | | +| test.rs:36:13:38:13 | After if ... {...} | test.rs:36:13:38:13 | After ExprStmt | | +| test.rs:36:13:38:13 | ExprStmt | test.rs:36:13:38:13 | if ... {...} | | +| test.rs:36:13:38:13 | if ... {...} | test.rs:36:16:36:25 | Before ... != ... | | | test.rs:36:16:36:16 | i | test.rs:36:20:36:20 | 2 | | -| test.rs:36:16:36:20 | ... % ... | test.rs:36:25:36:25 | 0 | | -| test.rs:36:16:36:25 | ... != ... | test.rs:36:13:38:13 | if ... {...} | false | -| test.rs:36:16:36:25 | ... != ... | test.rs:37:17:37:25 | ExprStmt | true | +| test.rs:36:16:36:20 | ... % ... | test.rs:36:16:36:20 | After ... % ... | | +| test.rs:36:16:36:20 | After ... % ... | test.rs:36:25:36:25 | 0 | | +| test.rs:36:16:36:20 | Before ... % ... | test.rs:36:16:36:16 | i | | +| test.rs:36:16:36:25 | ... != ... | test.rs:36:16:36:25 | After ... != ... [false] | false | +| test.rs:36:16:36:25 | ... != ... | test.rs:36:16:36:25 | After ... != ... [true] | true | +| test.rs:36:16:36:25 | After ... != ... [false] | test.rs:36:13:38:13 | After if ... {...} | | +| test.rs:36:16:36:25 | After ... != ... [true] | test.rs:36:27:38:13 | { ... } | | +| test.rs:36:16:36:25 | Before ... != ... | test.rs:36:16:36:20 | Before ... % ... | | | test.rs:36:20:36:20 | 2 | test.rs:36:16:36:20 | ... % ... | | | test.rs:36:25:36:25 | 0 | test.rs:36:16:36:25 | ... != ... | | -| test.rs:37:17:37:24 | continue | test.rs:29:13:29:24 | ExprStmt | continue | -| test.rs:37:17:37:25 | ExprStmt | test.rs:37:17:37:24 | continue | | -| test.rs:39:13:39:13 | i | test.rs:39:17:39:17 | i | | -| test.rs:39:13:39:21 | ... = ... | test.rs:28:14:40:9 | { ... } | | +| test.rs:36:27:38:13 | { ... } | test.rs:37:17:37:25 | ExprStmt | | +| test.rs:37:17:37:24 | Before continue | test.rs:37:17:37:24 | continue | | +| test.rs:37:17:37:24 | continue | test.rs:28:9:40:9 | [LoopHeader] loop { ... } | continue | +| test.rs:37:17:37:25 | ExprStmt | test.rs:37:17:37:24 | Before continue | | +| test.rs:39:13:39:13 | i | test.rs:39:17:39:21 | Before ... / ... | | +| test.rs:39:13:39:21 | ... = ... | test.rs:39:13:39:21 | After ... = ... | | +| test.rs:39:13:39:21 | After ... = ... | test.rs:28:14:40:9 | After { ... } | | +| test.rs:39:13:39:21 | Before ... = ... | test.rs:39:13:39:13 | i | | | test.rs:39:17:39:17 | i | test.rs:39:21:39:21 | 2 | | -| test.rs:39:17:39:21 | ... / ... | test.rs:39:13:39:21 | ... = ... | | +| test.rs:39:17:39:21 | ... / ... | test.rs:39:17:39:21 | After ... / ... | | +| test.rs:39:17:39:21 | After ... / ... | test.rs:39:13:39:21 | ... = ... | | +| test.rs:39:17:39:21 | Before ... / ... | test.rs:39:17:39:17 | i | | | test.rs:39:21:39:21 | 2 | test.rs:39:17:39:21 | ... / ... | | -| test.rs:41:9:41:19 | return true | test.rs:26:5:42:5 | exit fn test_break_and_continue (normal) | return | -| test.rs:41:9:41:20 | ExprStmt | test.rs:41:16:41:19 | true | | +| test.rs:41:9:41:19 | Before return true | test.rs:41:16:41:19 | true | | +| test.rs:41:9:41:19 | return true | test.rs:26:5:42:5 | Normal Exit | return | +| test.rs:41:9:41:20 | ExprStmt | test.rs:41:9:41:19 | Before return true | | | test.rs:41:16:41:19 | true | test.rs:41:9:41:19 | return true | | -| test.rs:44:5:56:5 | enter fn test_break_with_labels | test.rs:44:31:44:31 | b | | -| test.rs:44:5:56:5 | exit fn test_break_with_labels (normal) | test.rs:44:5:56:5 | exit fn test_break_with_labels | | +| test.rs:44:5:56:5 | Entry | test.rs:44:31:44:37 | Before ...: bool | | +| test.rs:44:5:56:5 | Normal Exit | test.rs:44:5:56:5 | Exit | | +| test.rs:44:31:44:31 | After b [match] | test.rs:44:31:44:37 | ...: bool | | +| test.rs:44:31:44:31 | Before b | test.rs:44:31:44:31 | b | | +| test.rs:44:31:44:31 | b | test.rs:44:31:44:31 | After b [match] | match | | test.rs:44:31:44:31 | b | test.rs:44:31:44:31 | b | | -| test.rs:44:31:44:31 | b | test.rs:44:31:44:37 | ...: bool | match | -| test.rs:44:31:44:37 | ...: bool | test.rs:45:9:54:9 | ExprStmt | | -| test.rs:44:48:56:5 | { ... } | test.rs:44:5:56:5 | exit fn test_break_with_labels (normal) | | -| test.rs:45:9:54:9 | 'outer: loop { ... } | test.rs:55:9:55:12 | true | | -| test.rs:45:9:54:9 | ExprStmt | test.rs:47:17:51:17 | ExprStmt | | -| test.rs:45:22:54:9 | { ... } | test.rs:47:17:51:17 | ExprStmt | | -| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:45:22:54:9 | { ... } | | -| test.rs:47:17:51:17 | ExprStmt | test.rs:47:20:47:20 | b | | -| test.rs:47:17:51:17 | if b {...} else {...} | test.rs:52:17:52:29 | ExprStmt | | -| test.rs:47:20:47:20 | b | test.rs:48:21:48:26 | ExprStmt | true | -| test.rs:47:20:47:20 | b | test.rs:49:27:49:27 | b | false | -| test.rs:48:21:48:25 | break | test.rs:46:13:53:13 | 'inner: loop { ... } | break | +| test.rs:44:31:44:37 | ...: bool | test.rs:44:31:44:37 | After ...: bool | | +| test.rs:44:31:44:37 | After ...: bool | test.rs:44:48:56:5 | { ... } | | +| test.rs:44:31:44:37 | Before ...: bool | test.rs:44:31:44:31 | Before b | | +| test.rs:44:48:56:5 | After { ... } | test.rs:44:5:56:5 | Normal Exit | | +| test.rs:44:48:56:5 | { ... } | test.rs:45:9:54:9 | ExprStmt | | +| test.rs:45:9:54:9 | 'outer: loop { ... } | test.rs:45:22:54:9 | { ... } | | +| test.rs:45:9:54:9 | After 'outer: loop { ... } | test.rs:45:9:54:9 | After ExprStmt | | +| test.rs:45:9:54:9 | After ExprStmt | test.rs:55:9:55:12 | true | | +| test.rs:45:9:54:9 | ExprStmt | test.rs:45:9:54:9 | 'outer: loop { ... } | | +| test.rs:45:9:54:9 | [LoopHeader] 'outer: loop { ... } | test.rs:45:22:54:9 | { ... } | | +| test.rs:45:22:54:9 | After { ... } | test.rs:45:9:54:9 | [LoopHeader] 'outer: loop { ... } | | +| test.rs:45:22:54:9 | { ... } | test.rs:46:13:53:13 | 'inner: loop { ... } | | +| test.rs:46:13:53:13 | 'inner: loop { ... } | test.rs:46:26:53:13 | { ... } | | +| test.rs:46:13:53:13 | After 'inner: loop { ... } | test.rs:45:22:54:9 | After { ... } | | +| test.rs:46:26:53:13 | { ... } | test.rs:47:17:51:17 | ExprStmt | | +| test.rs:47:17:51:17 | After ExprStmt | test.rs:52:17:52:29 | ExprStmt | | +| test.rs:47:17:51:17 | After if b {...} else {...} | test.rs:47:17:51:17 | After ExprStmt | | +| test.rs:47:17:51:17 | ExprStmt | test.rs:47:17:51:17 | if b {...} else {...} | | +| test.rs:47:17:51:17 | if b {...} else {...} | test.rs:47:20:47:20 | b | | +| test.rs:47:20:47:20 | After b [false] | test.rs:49:24:51:17 | if b {...} | | +| test.rs:47:20:47:20 | After b [true] | test.rs:47:22:49:17 | { ... } | | +| test.rs:47:20:47:20 | b | test.rs:47:20:47:20 | After b [false] | false | +| test.rs:47:20:47:20 | b | test.rs:47:20:47:20 | After b [true] | true | +| test.rs:47:22:49:17 | { ... } | test.rs:48:21:48:26 | ExprStmt | | +| test.rs:48:21:48:25 | [break] break | test.rs:46:13:53:13 | After 'inner: loop { ... } | break | +| test.rs:48:21:48:25 | break | test.rs:48:21:48:25 | [break] break | | | test.rs:48:21:48:26 | ExprStmt | test.rs:48:21:48:25 | break | | -| test.rs:49:24:51:17 | if b {...} | test.rs:47:17:51:17 | if b {...} else {...} | | -| test.rs:49:27:49:27 | b | test.rs:49:24:51:17 | if b {...} | false | -| test.rs:49:27:49:27 | b | test.rs:50:21:50:33 | ExprStmt | true | -| test.rs:50:21:50:32 | break 'outer | test.rs:45:9:54:9 | 'outer: loop { ... } | break | +| test.rs:49:24:51:17 | After if b {...} | test.rs:47:17:51:17 | After if b {...} else {...} | | +| test.rs:49:24:51:17 | if b {...} | test.rs:49:27:49:27 | b | | +| test.rs:49:27:49:27 | After b [false] | test.rs:49:24:51:17 | After if b {...} | | +| test.rs:49:27:49:27 | After b [true] | test.rs:49:29:51:17 | { ... } | | +| test.rs:49:27:49:27 | b | test.rs:49:27:49:27 | After b [false] | false | +| test.rs:49:27:49:27 | b | test.rs:49:27:49:27 | After b [true] | true | +| test.rs:49:29:51:17 | { ... } | test.rs:50:21:50:33 | ExprStmt | | +| test.rs:50:21:50:32 | [break] break 'outer | test.rs:45:9:54:9 | After 'outer: loop { ... } | break | +| test.rs:50:21:50:32 | break 'outer | test.rs:50:21:50:32 | [break] break 'outer | | | test.rs:50:21:50:33 | ExprStmt | test.rs:50:21:50:32 | break 'outer | | -| test.rs:52:17:52:28 | break 'inner | test.rs:46:13:53:13 | 'inner: loop { ... } | break | +| test.rs:52:17:52:28 | [break] break 'inner | test.rs:46:13:53:13 | After 'inner: loop { ... } | break | +| test.rs:52:17:52:28 | break 'inner | test.rs:52:17:52:28 | [break] break 'inner | | | test.rs:52:17:52:29 | ExprStmt | test.rs:52:17:52:28 | break 'inner | | -| test.rs:55:9:55:12 | true | test.rs:44:48:56:5 | { ... } | | -| test.rs:58:5:70:5 | enter fn test_continue_with_labels | test.rs:58:34:58:34 | b | | +| test.rs:55:9:55:12 | true | test.rs:44:48:56:5 | After { ... } | | +| test.rs:58:5:70:5 | Entry | test.rs:58:34:58:40 | Before ...: bool | | +| test.rs:58:34:58:34 | After b [match] | test.rs:58:34:58:40 | ...: bool | | +| test.rs:58:34:58:34 | Before b | test.rs:58:34:58:34 | b | | +| test.rs:58:34:58:34 | b | test.rs:58:34:58:34 | After b [match] | match | | test.rs:58:34:58:34 | b | test.rs:58:34:58:34 | b | | -| test.rs:58:34:58:34 | b | test.rs:58:34:58:40 | ...: bool | match | -| test.rs:58:34:58:40 | ...: bool | test.rs:60:13:60:14 | ExprStmt | | -| test.rs:60:13:60:13 | 1 | test.rs:62:17:66:17 | ExprStmt | | +| test.rs:58:34:58:40 | ...: bool | test.rs:58:34:58:40 | After ...: bool | | +| test.rs:58:34:58:40 | After ...: bool | test.rs:58:48:70:5 | { ... } | | +| test.rs:58:34:58:40 | Before ...: bool | test.rs:58:34:58:34 | Before b | | +| test.rs:58:48:70:5 | { ... } | test.rs:59:9:69:9 | 'outer: loop { ... } | | +| test.rs:59:9:69:9 | 'outer: loop { ... } | test.rs:59:22:69:9 | { ... } | | +| test.rs:59:9:69:9 | [LoopHeader] 'outer: loop { ... } | test.rs:59:22:69:9 | { ... } | | +| test.rs:59:22:69:9 | { ... } | test.rs:60:13:60:14 | ExprStmt | | +| test.rs:60:13:60:13 | 1 | test.rs:60:13:60:14 | After ExprStmt | | +| test.rs:60:13:60:14 | After ExprStmt | test.rs:61:13:68:13 | 'inner: loop { ... } | | | test.rs:60:13:60:14 | ExprStmt | test.rs:60:13:60:13 | 1 | | -| test.rs:62:17:66:17 | ExprStmt | test.rs:62:20:62:20 | b | | -| test.rs:62:17:66:17 | if b {...} else {...} | test.rs:67:17:67:32 | ExprStmt | | -| test.rs:62:20:62:20 | b | test.rs:63:21:63:29 | ExprStmt | true | -| test.rs:62:20:62:20 | b | test.rs:64:27:64:27 | b | false | -| test.rs:63:21:63:28 | continue | test.rs:62:17:66:17 | ExprStmt | continue | -| test.rs:63:21:63:29 | ExprStmt | test.rs:63:21:63:28 | continue | | -| test.rs:64:24:66:17 | if b {...} | test.rs:62:17:66:17 | if b {...} else {...} | | -| test.rs:64:27:64:27 | b | test.rs:64:24:66:17 | if b {...} | false | -| test.rs:64:27:64:27 | b | test.rs:65:21:65:36 | ExprStmt | true | -| test.rs:65:21:65:35 | continue 'outer | test.rs:60:13:60:14 | ExprStmt | continue | -| test.rs:65:21:65:36 | ExprStmt | test.rs:65:21:65:35 | continue 'outer | | -| test.rs:67:17:67:31 | continue 'inner | test.rs:62:17:66:17 | ExprStmt | continue | -| test.rs:67:17:67:32 | ExprStmt | test.rs:67:17:67:31 | continue 'inner | | -| test.rs:72:5:84:5 | enter fn test_loop_label_shadowing | test.rs:72:34:72:34 | b | | +| test.rs:61:13:68:13 | 'inner: loop { ... } | test.rs:61:26:68:13 | { ... } | | +| test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | test.rs:61:26:68:13 | { ... } | | +| test.rs:61:26:68:13 | { ... } | test.rs:62:17:66:17 | ExprStmt | | +| test.rs:62:17:66:17 | After ExprStmt | test.rs:67:17:67:32 | ExprStmt | | +| test.rs:62:17:66:17 | After if b {...} else {...} | test.rs:62:17:66:17 | After ExprStmt | | +| test.rs:62:17:66:17 | ExprStmt | test.rs:62:17:66:17 | if b {...} else {...} | | +| test.rs:62:17:66:17 | if b {...} else {...} | test.rs:62:20:62:20 | b | | +| test.rs:62:20:62:20 | After b [false] | test.rs:64:24:66:17 | if b {...} | | +| test.rs:62:20:62:20 | After b [true] | test.rs:62:22:64:17 | { ... } | | +| test.rs:62:20:62:20 | b | test.rs:62:20:62:20 | After b [false] | false | +| test.rs:62:20:62:20 | b | test.rs:62:20:62:20 | After b [true] | true | +| test.rs:62:22:64:17 | { ... } | test.rs:63:21:63:29 | ExprStmt | | +| test.rs:63:21:63:28 | Before continue | test.rs:63:21:63:28 | continue | | +| test.rs:63:21:63:28 | continue | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | continue | +| test.rs:63:21:63:29 | ExprStmt | test.rs:63:21:63:28 | Before continue | | +| test.rs:64:24:66:17 | After if b {...} | test.rs:62:17:66:17 | After if b {...} else {...} | | +| test.rs:64:24:66:17 | if b {...} | test.rs:64:27:64:27 | b | | +| test.rs:64:27:64:27 | After b [false] | test.rs:64:24:66:17 | After if b {...} | | +| test.rs:64:27:64:27 | After b [true] | test.rs:64:29:66:17 | { ... } | | +| test.rs:64:27:64:27 | b | test.rs:64:27:64:27 | After b [false] | false | +| test.rs:64:27:64:27 | b | test.rs:64:27:64:27 | After b [true] | true | +| test.rs:64:29:66:17 | { ... } | test.rs:65:21:65:36 | ExprStmt | | +| test.rs:65:21:65:35 | Before continue 'outer | test.rs:65:21:65:35 | continue 'outer | | +| test.rs:65:21:65:35 | continue 'outer | test.rs:59:9:69:9 | [LoopHeader] 'outer: loop { ... } | continue | +| test.rs:65:21:65:36 | ExprStmt | test.rs:65:21:65:35 | Before continue 'outer | | +| test.rs:67:17:67:31 | Before continue 'inner | test.rs:67:17:67:31 | continue 'inner | | +| test.rs:67:17:67:31 | continue 'inner | test.rs:61:13:68:13 | [LoopHeader] 'inner: loop { ... } | continue | +| test.rs:67:17:67:32 | ExprStmt | test.rs:67:17:67:31 | Before continue 'inner | | +| test.rs:72:5:84:5 | Entry | test.rs:72:34:72:40 | Before ...: bool | | +| test.rs:72:34:72:34 | After b [match] | test.rs:72:34:72:40 | ...: bool | | +| test.rs:72:34:72:34 | Before b | test.rs:72:34:72:34 | b | | +| test.rs:72:34:72:34 | b | test.rs:72:34:72:34 | After b [match] | match | | test.rs:72:34:72:34 | b | test.rs:72:34:72:34 | b | | -| test.rs:72:34:72:34 | b | test.rs:72:34:72:40 | ...: bool | match | -| test.rs:72:34:72:40 | ...: bool | test.rs:74:13:74:14 | ExprStmt | | -| test.rs:74:13:74:13 | 1 | test.rs:76:17:80:17 | ExprStmt | | +| test.rs:72:34:72:40 | ...: bool | test.rs:72:34:72:40 | After ...: bool | | +| test.rs:72:34:72:40 | After ...: bool | test.rs:72:48:84:5 | { ... } | | +| test.rs:72:34:72:40 | Before ...: bool | test.rs:72:34:72:34 | Before b | | +| test.rs:72:48:84:5 | { ... } | test.rs:73:9:83:9 | 'label: loop { ... } | | +| test.rs:73:9:83:9 | 'label: loop { ... } | test.rs:73:22:83:9 | { ... } | | +| test.rs:73:22:83:9 | { ... } | test.rs:74:13:74:14 | ExprStmt | | +| test.rs:74:13:74:13 | 1 | test.rs:74:13:74:14 | After ExprStmt | | +| test.rs:74:13:74:14 | After ExprStmt | test.rs:75:13:82:13 | 'label: loop { ... } | | | test.rs:74:13:74:14 | ExprStmt | test.rs:74:13:74:13 | 1 | | -| test.rs:76:17:80:17 | ExprStmt | test.rs:76:20:76:20 | b | | -| test.rs:76:17:80:17 | if b {...} else {...} | test.rs:81:17:81:32 | ExprStmt | | -| test.rs:76:20:76:20 | b | test.rs:77:21:77:29 | ExprStmt | true | -| test.rs:76:20:76:20 | b | test.rs:78:27:78:27 | b | false | -| test.rs:77:21:77:28 | continue | test.rs:76:17:80:17 | ExprStmt | continue | -| test.rs:77:21:77:29 | ExprStmt | test.rs:77:21:77:28 | continue | | -| test.rs:78:24:80:17 | if b {...} | test.rs:76:17:80:17 | if b {...} else {...} | | -| test.rs:78:27:78:27 | b | test.rs:78:24:80:17 | if b {...} | false | -| test.rs:78:27:78:27 | b | test.rs:79:21:79:36 | ExprStmt | true | -| test.rs:79:21:79:35 | continue 'label | test.rs:76:17:80:17 | ExprStmt | continue | -| test.rs:79:21:79:36 | ExprStmt | test.rs:79:21:79:35 | continue 'label | | -| test.rs:81:17:81:31 | continue 'label | test.rs:76:17:80:17 | ExprStmt | continue | -| test.rs:81:17:81:32 | ExprStmt | test.rs:81:17:81:31 | continue 'label | | -| test.rs:86:5:95:5 | enter fn test_while | test.rs:86:19:86:19 | i | | -| test.rs:86:5:95:5 | exit fn test_while (normal) | test.rs:86:5:95:5 | exit fn test_while | | +| test.rs:75:13:82:13 | 'label: loop { ... } | test.rs:75:26:82:13 | { ... } | | +| test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | test.rs:75:26:82:13 | { ... } | | +| test.rs:75:26:82:13 | { ... } | test.rs:76:17:80:17 | ExprStmt | | +| test.rs:76:17:80:17 | After ExprStmt | test.rs:81:17:81:32 | ExprStmt | | +| test.rs:76:17:80:17 | After if b {...} else {...} | test.rs:76:17:80:17 | After ExprStmt | | +| test.rs:76:17:80:17 | ExprStmt | test.rs:76:17:80:17 | if b {...} else {...} | | +| test.rs:76:17:80:17 | if b {...} else {...} | test.rs:76:20:76:20 | b | | +| test.rs:76:20:76:20 | After b [false] | test.rs:78:24:80:17 | if b {...} | | +| test.rs:76:20:76:20 | After b [true] | test.rs:76:22:78:17 | { ... } | | +| test.rs:76:20:76:20 | b | test.rs:76:20:76:20 | After b [false] | false | +| test.rs:76:20:76:20 | b | test.rs:76:20:76:20 | After b [true] | true | +| test.rs:76:22:78:17 | { ... } | test.rs:77:21:77:29 | ExprStmt | | +| test.rs:77:21:77:28 | Before continue | test.rs:77:21:77:28 | continue | | +| test.rs:77:21:77:28 | continue | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | continue | +| test.rs:77:21:77:29 | ExprStmt | test.rs:77:21:77:28 | Before continue | | +| test.rs:78:24:80:17 | After if b {...} | test.rs:76:17:80:17 | After if b {...} else {...} | | +| test.rs:78:24:80:17 | if b {...} | test.rs:78:27:78:27 | b | | +| test.rs:78:27:78:27 | After b [false] | test.rs:78:24:80:17 | After if b {...} | | +| test.rs:78:27:78:27 | After b [true] | test.rs:78:29:80:17 | { ... } | | +| test.rs:78:27:78:27 | b | test.rs:78:27:78:27 | After b [false] | false | +| test.rs:78:27:78:27 | b | test.rs:78:27:78:27 | After b [true] | true | +| test.rs:78:29:80:17 | { ... } | test.rs:79:21:79:36 | ExprStmt | | +| test.rs:79:21:79:35 | Before continue 'label | test.rs:79:21:79:35 | continue 'label | | +| test.rs:79:21:79:35 | continue 'label | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | continue | +| test.rs:79:21:79:36 | ExprStmt | test.rs:79:21:79:35 | Before continue 'label | | +| test.rs:81:17:81:31 | Before continue 'label | test.rs:81:17:81:31 | continue 'label | | +| test.rs:81:17:81:31 | continue 'label | test.rs:75:13:82:13 | [LoopHeader] 'label: loop { ... } | continue | +| test.rs:81:17:81:32 | ExprStmt | test.rs:81:17:81:31 | Before continue 'label | | +| test.rs:86:5:95:5 | Entry | test.rs:86:19:86:24 | Before ...: i64 | | +| test.rs:86:5:95:5 | Normal Exit | test.rs:86:5:95:5 | Exit | | +| test.rs:86:19:86:19 | After i [match] | test.rs:86:19:86:24 | ...: i64 | | +| test.rs:86:19:86:19 | Before i | test.rs:86:19:86:19 | i | | +| test.rs:86:19:86:19 | i | test.rs:86:19:86:19 | After i [match] | match | | test.rs:86:19:86:19 | i | test.rs:86:19:86:19 | i | | -| test.rs:86:19:86:19 | i | test.rs:86:19:86:24 | ...: i64 | match | -| test.rs:86:19:86:24 | ...: i64 | test.rs:87:9:87:25 | let ... = true | | -| test.rs:86:27:95:5 | { ... } | test.rs:86:5:95:5 | exit fn test_while (normal) | | +| test.rs:86:19:86:24 | ...: i64 | test.rs:86:19:86:24 | After ...: i64 | | +| test.rs:86:19:86:24 | After ...: i64 | test.rs:86:27:95:5 | { ... } | | +| test.rs:86:19:86:24 | Before ...: i64 | test.rs:86:19:86:19 | Before i | | +| test.rs:86:27:95:5 | After { ... } | test.rs:86:5:95:5 | Normal Exit | | +| test.rs:86:27:95:5 | { ... } | test.rs:87:9:87:25 | let ... = true | | +| test.rs:87:9:87:25 | After let ... = true | test.rs:88:9:94:9 | while b { ... } | | | test.rs:87:9:87:25 | let ... = true | test.rs:87:21:87:24 | true | | -| test.rs:87:13:87:17 | mut b | test.rs:88:15:88:15 | b | match | +| test.rs:87:13:87:17 | After mut b [match] | test.rs:87:9:87:25 | After let ... = true | | +| test.rs:87:13:87:17 | Before mut b | test.rs:87:17:87:17 | b | | +| test.rs:87:13:87:17 | mut b | test.rs:87:13:87:17 | After mut b [match] | match | | test.rs:87:17:87:17 | b | test.rs:87:13:87:17 | mut b | | -| test.rs:87:21:87:24 | true | test.rs:87:17:87:17 | b | | -| test.rs:88:9:94:9 | while b { ... } | test.rs:86:27:95:5 | { ... } | | -| test.rs:88:15:88:15 | b | test.rs:88:9:94:9 | while b { ... } | false | -| test.rs:88:15:88:15 | b | test.rs:89:13:89:14 | ExprStmt | true | -| test.rs:88:17:94:9 | { ... } | test.rs:88:15:88:15 | b | | -| test.rs:89:13:89:13 | 1 | test.rs:90:13:92:13 | ExprStmt | | +| test.rs:87:21:87:24 | true | test.rs:87:13:87:17 | Before mut b | | +| test.rs:88:9:94:9 | After while b { ... } | test.rs:86:27:95:5 | After { ... } | | +| test.rs:88:9:94:9 | [LoopHeader] while b { ... } | test.rs:88:15:88:15 | b | | +| test.rs:88:9:94:9 | while b { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | | +| test.rs:88:15:88:15 | After b [false] | test.rs:88:9:94:9 | After while b { ... } | | +| test.rs:88:15:88:15 | After b [true] | test.rs:88:17:94:9 | { ... } | | +| test.rs:88:15:88:15 | b | test.rs:88:15:88:15 | After b [false] | false | +| test.rs:88:15:88:15 | b | test.rs:88:15:88:15 | After b [true] | true | +| test.rs:88:17:94:9 | After { ... } | test.rs:88:9:94:9 | [LoopHeader] while b { ... } | | +| test.rs:88:17:94:9 | { ... } | test.rs:89:13:89:14 | ExprStmt | | +| test.rs:89:13:89:13 | 1 | test.rs:89:13:89:14 | After ExprStmt | | +| test.rs:89:13:89:14 | After ExprStmt | test.rs:90:13:92:13 | ExprStmt | | | test.rs:89:13:89:14 | ExprStmt | test.rs:89:13:89:13 | 1 | | -| test.rs:90:13:92:13 | ExprStmt | test.rs:90:17:90:17 | i | | -| test.rs:90:13:92:13 | if ... {...} | test.rs:93:13:93:22 | ExprStmt | | +| test.rs:90:13:92:13 | After ExprStmt | test.rs:93:13:93:22 | ExprStmt | | +| test.rs:90:13:92:13 | After if ... {...} | test.rs:90:13:92:13 | After ExprStmt | | +| test.rs:90:13:92:13 | ExprStmt | test.rs:90:13:92:13 | if ... {...} | | +| test.rs:90:13:92:13 | if ... {...} | test.rs:90:17:90:21 | Before ... > ... | | | test.rs:90:17:90:17 | i | test.rs:90:21:90:21 | 0 | | -| test.rs:90:17:90:21 | ... > ... | test.rs:90:13:92:13 | if ... {...} | false | -| test.rs:90:17:90:21 | ... > ... | test.rs:91:17:91:22 | ExprStmt | true | +| test.rs:90:17:90:21 | ... > ... | test.rs:90:17:90:21 | After ... > ... [false] | false | +| test.rs:90:17:90:21 | ... > ... | test.rs:90:17:90:21 | After ... > ... [true] | true | +| test.rs:90:17:90:21 | After ... > ... [false] | test.rs:90:13:92:13 | After if ... {...} | | +| test.rs:90:17:90:21 | After ... > ... [true] | test.rs:90:24:92:13 | { ... } | | +| test.rs:90:17:90:21 | Before ... > ... | test.rs:90:17:90:17 | i | | | test.rs:90:21:90:21 | 0 | test.rs:90:17:90:21 | ... > ... | | -| test.rs:91:17:91:21 | break | test.rs:88:9:94:9 | while b { ... } | break | +| test.rs:90:24:92:13 | { ... } | test.rs:91:17:91:22 | ExprStmt | | +| test.rs:91:17:91:21 | [break] break | test.rs:88:9:94:9 | After while b { ... } | break | +| test.rs:91:17:91:21 | break | test.rs:91:17:91:21 | [break] break | | | test.rs:91:17:91:22 | ExprStmt | test.rs:91:17:91:21 | break | | | test.rs:93:13:93:13 | b | test.rs:93:17:93:21 | false | | -| test.rs:93:13:93:21 | ... = ... | test.rs:88:17:94:9 | { ... } | | -| test.rs:93:13:93:22 | ExprStmt | test.rs:93:13:93:13 | b | | +| test.rs:93:13:93:21 | ... = ... | test.rs:93:13:93:21 | After ... = ... | | +| test.rs:93:13:93:21 | After ... = ... | test.rs:93:13:93:22 | After ExprStmt | | +| test.rs:93:13:93:21 | Before ... = ... | test.rs:93:13:93:13 | b | | +| test.rs:93:13:93:22 | After ExprStmt | test.rs:88:17:94:9 | After { ... } | | +| test.rs:93:13:93:22 | ExprStmt | test.rs:93:13:93:21 | Before ... = ... | | | test.rs:93:17:93:21 | false | test.rs:93:13:93:21 | ... = ... | | -| test.rs:97:5:104:5 | enter fn test_while_let | test.rs:98:9:98:29 | let ... = ... | | -| test.rs:97:5:104:5 | exit fn test_while_let (normal) | test.rs:97:5:104:5 | exit fn test_while_let | | -| test.rs:97:25:104:5 | { ... } | test.rs:97:5:104:5 | exit fn test_while_let (normal) | | -| test.rs:98:9:98:29 | let ... = ... | test.rs:98:24:98:24 | 1 | | -| test.rs:98:13:98:20 | mut iter | test.rs:99:29:99:32 | iter | match | +| test.rs:97:5:104:5 | Entry | test.rs:97:25:104:5 | { ... } | | +| test.rs:97:5:104:5 | Normal Exit | test.rs:97:5:104:5 | Exit | | +| test.rs:97:25:104:5 | After { ... } | test.rs:97:5:104:5 | Normal Exit | | +| test.rs:97:25:104:5 | { ... } | test.rs:98:9:98:29 | let ... = ... | | +| test.rs:98:9:98:29 | After let ... = ... | test.rs:99:9:103:9 | while ... { ... } | | +| test.rs:98:9:98:29 | let ... = ... | test.rs:98:24:98:28 | Before 1..10 | | +| test.rs:98:13:98:20 | After mut iter [match] | test.rs:98:9:98:29 | After let ... = ... | | +| test.rs:98:13:98:20 | Before mut iter | test.rs:98:17:98:20 | iter | | +| test.rs:98:13:98:20 | mut iter | test.rs:98:13:98:20 | After mut iter [match] | match | | test.rs:98:17:98:20 | iter | test.rs:98:13:98:20 | mut iter | | | test.rs:98:24:98:24 | 1 | test.rs:98:27:98:28 | 10 | | -| test.rs:98:24:98:28 | 1..10 | test.rs:98:17:98:20 | iter | | +| test.rs:98:24:98:28 | 1..10 | test.rs:98:24:98:28 | After 1..10 | | +| test.rs:98:24:98:28 | After 1..10 | test.rs:98:13:98:20 | Before mut iter | | +| test.rs:98:24:98:28 | Before 1..10 | test.rs:98:24:98:24 | 1 | | | test.rs:98:27:98:28 | 10 | test.rs:98:24:98:28 | 1..10 | | -| test.rs:99:9:103:9 | while ... { ... } | test.rs:97:25:104:5 | { ... } | | -| test.rs:99:15:99:39 | [boolean(false)] let ... = ... | test.rs:99:9:103:9 | while ... { ... } | false | -| test.rs:99:15:99:39 | [boolean(true)] let ... = ... | test.rs:100:17:100:17 | x | true | -| test.rs:99:19:99:25 | Some(...) | test.rs:99:15:99:39 | [boolean(false)] let ... = ... | no-match | -| test.rs:99:19:99:25 | Some(...) | test.rs:99:24:99:24 | x | match | -| test.rs:99:24:99:24 | x | test.rs:99:15:99:39 | [boolean(true)] let ... = ... | match | +| test.rs:99:9:103:9 | After while ... { ... } | test.rs:97:25:104:5 | After { ... } | | +| test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | test.rs:99:15:99:39 | let ... = ... | | +| test.rs:99:9:103:9 | while ... { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | | +| test.rs:99:15:99:39 | After let ... = ... [false] | test.rs:99:9:103:9 | After while ... { ... } | | +| test.rs:99:15:99:39 | After let ... = ... [true] | test.rs:99:41:103:9 | { ... } | | +| test.rs:99:15:99:39 | let ... = ... | test.rs:99:29:99:39 | Before iter.next() | | +| test.rs:99:19:99:25 | After Some(...) [match] | test.rs:99:15:99:39 | After let ... = ... [true] | true | +| test.rs:99:19:99:25 | After Some(...) [no-match] | test.rs:99:15:99:39 | After let ... = ... [false] | false | +| test.rs:99:19:99:25 | Some(...) | test.rs:99:19:99:25 | After Some(...) [no-match] | no-match | +| test.rs:99:19:99:25 | Some(...) | test.rs:99:19:99:25 | [pattern-start] Some(...) | match | +| test.rs:99:19:99:25 | [pattern-start] Some(...) | test.rs:99:24:99:24 | Before x | | +| test.rs:99:24:99:24 | After x [match] | test.rs:99:19:99:25 | After Some(...) [match] | match | +| test.rs:99:24:99:24 | Before x | test.rs:99:24:99:24 | x | | +| test.rs:99:24:99:24 | x | test.rs:99:24:99:24 | After x [match] | match | | test.rs:99:24:99:24 | x | test.rs:99:24:99:24 | x | | | test.rs:99:29:99:32 | iter | test.rs:99:29:99:39 | iter.next() | | -| test.rs:99:29:99:39 | iter.next() | test.rs:99:19:99:25 | Some(...) | | -| test.rs:99:41:103:9 | { ... } | test.rs:99:29:99:32 | iter | | -| test.rs:100:13:102:13 | if ... {...} | test.rs:99:41:103:9 | { ... } | | +| test.rs:99:29:99:39 | After iter.next() | test.rs:99:19:99:25 | Some(...) | | +| test.rs:99:29:99:39 | Before iter.next() | test.rs:99:29:99:32 | iter | | +| test.rs:99:29:99:39 | iter.next() | test.rs:99:29:99:39 | After iter.next() | | +| test.rs:99:41:103:9 | After { ... } | test.rs:99:9:103:9 | [LoopHeader] while ... { ... } | | +| test.rs:99:41:103:9 | { ... } | test.rs:100:13:102:13 | if ... {...} | | +| test.rs:100:13:102:13 | After if ... {...} | test.rs:99:41:103:9 | After { ... } | | +| test.rs:100:13:102:13 | if ... {...} | test.rs:100:17:100:22 | Before ... == ... | | | test.rs:100:17:100:17 | x | test.rs:100:22:100:22 | 5 | | -| test.rs:100:17:100:22 | ... == ... | test.rs:100:13:102:13 | if ... {...} | false | -| test.rs:100:17:100:22 | ... == ... | test.rs:101:17:101:22 | ExprStmt | true | +| test.rs:100:17:100:22 | ... == ... | test.rs:100:17:100:22 | After ... == ... [false] | false | +| test.rs:100:17:100:22 | ... == ... | test.rs:100:17:100:22 | After ... == ... [true] | true | +| test.rs:100:17:100:22 | After ... == ... [false] | test.rs:100:13:102:13 | After if ... {...} | | +| test.rs:100:17:100:22 | After ... == ... [true] | test.rs:100:25:102:13 | { ... } | | +| test.rs:100:17:100:22 | Before ... == ... | test.rs:100:17:100:17 | x | | | test.rs:100:22:100:22 | 5 | test.rs:100:17:100:22 | ... == ... | | -| test.rs:101:17:101:21 | break | test.rs:99:9:103:9 | while ... { ... } | break | +| test.rs:100:25:102:13 | { ... } | test.rs:101:17:101:22 | ExprStmt | | +| test.rs:101:17:101:21 | [break] break | test.rs:99:9:103:9 | After while ... { ... } | break | +| test.rs:101:17:101:21 | break | test.rs:101:17:101:21 | [break] break | | | test.rs:101:17:101:22 | ExprStmt | test.rs:101:17:101:21 | break | | -| test.rs:106:5:113:5 | enter fn test_for | test.rs:106:17:106:17 | j | | -| test.rs:106:5:113:5 | exit fn test_for (normal) | test.rs:106:5:113:5 | exit fn test_for | | +| test.rs:106:5:113:5 | Entry | test.rs:106:17:106:22 | Before ...: i64 | | +| test.rs:106:5:113:5 | Normal Exit | test.rs:106:5:113:5 | Exit | | +| test.rs:106:17:106:17 | After j [match] | test.rs:106:17:106:22 | ...: i64 | | +| test.rs:106:17:106:17 | Before j | test.rs:106:17:106:17 | j | | +| test.rs:106:17:106:17 | j | test.rs:106:17:106:17 | After j [match] | match | | test.rs:106:17:106:17 | j | test.rs:106:17:106:17 | j | | -| test.rs:106:17:106:17 | j | test.rs:106:17:106:22 | ...: i64 | match | -| test.rs:106:17:106:22 | ...: i64 | test.rs:107:18:107:18 | 0 | | -| test.rs:106:25:113:5 | { ... } | test.rs:106:5:113:5 | exit fn test_for (normal) | | -| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:106:25:113:5 | { ... } | | -| test.rs:107:13:107:13 | i | test.rs:107:9:112:9 | for ... in ... { ... } | no-match | +| test.rs:106:17:106:22 | ...: i64 | test.rs:106:17:106:22 | After ...: i64 | | +| test.rs:106:17:106:22 | After ...: i64 | test.rs:106:25:113:5 | { ... } | | +| test.rs:106:17:106:22 | Before ...: i64 | test.rs:106:17:106:17 | Before j | | +| test.rs:106:25:113:5 | After { ... } | test.rs:106:5:113:5 | Normal Exit | | +| test.rs:106:25:113:5 | { ... } | test.rs:107:9:112:9 | for ... in ... { ... } | | +| test.rs:107:9:112:9 | After for ... in ... { ... } | test.rs:106:25:113:5 | After { ... } | | +| test.rs:107:9:112:9 | [LoopHeader] for ... in ... { ... } | test.rs:107:13:107:13 | Before i | | +| test.rs:107:9:112:9 | for ... in ... { ... } | test.rs:107:18:107:22 | Before 0..10 | | +| test.rs:107:13:107:13 | After i [match] | test.rs:107:24:112:9 | { ... } | | +| test.rs:107:13:107:13 | After i [no-match] | test.rs:107:9:112:9 | After for ... in ... { ... } | | +| test.rs:107:13:107:13 | Before i | test.rs:107:13:107:13 | i | | +| test.rs:107:13:107:13 | i | test.rs:107:13:107:13 | After i [match] | match | +| test.rs:107:13:107:13 | i | test.rs:107:13:107:13 | After i [no-match] | no-match | | test.rs:107:13:107:13 | i | test.rs:107:13:107:13 | i | | -| test.rs:107:13:107:13 | i | test.rs:108:13:110:13 | ExprStmt | match | | test.rs:107:18:107:18 | 0 | test.rs:107:21:107:22 | 10 | | -| test.rs:107:18:107:22 | 0..10 | test.rs:107:13:107:13 | i | | +| test.rs:107:18:107:22 | 0..10 | test.rs:107:18:107:22 | After 0..10 | | +| test.rs:107:18:107:22 | After 0..10 | test.rs:107:13:107:13 | Before i | | +| test.rs:107:18:107:22 | Before 0..10 | test.rs:107:18:107:18 | 0 | | | test.rs:107:21:107:22 | 10 | test.rs:107:18:107:22 | 0..10 | | -| test.rs:107:24:112:9 | { ... } | test.rs:107:13:107:13 | i | | -| test.rs:108:13:110:13 | ExprStmt | test.rs:108:17:108:17 | i | | -| test.rs:108:13:110:13 | if ... {...} | test.rs:111:13:111:14 | ExprStmt | | +| test.rs:107:24:112:9 | After { ... } | test.rs:107:9:112:9 | [LoopHeader] for ... in ... { ... } | | +| test.rs:107:24:112:9 | { ... } | test.rs:108:13:110:13 | ExprStmt | | +| test.rs:108:13:110:13 | After ExprStmt | test.rs:111:13:111:14 | ExprStmt | | +| test.rs:108:13:110:13 | After if ... {...} | test.rs:108:13:110:13 | After ExprStmt | | +| test.rs:108:13:110:13 | ExprStmt | test.rs:108:13:110:13 | if ... {...} | | +| test.rs:108:13:110:13 | if ... {...} | test.rs:108:17:108:22 | Before ... == ... | | | test.rs:108:17:108:17 | i | test.rs:108:22:108:22 | j | | -| test.rs:108:17:108:22 | ... == ... | test.rs:108:13:110:13 | if ... {...} | false | -| test.rs:108:17:108:22 | ... == ... | test.rs:109:17:109:22 | ExprStmt | true | +| test.rs:108:17:108:22 | ... == ... | test.rs:108:17:108:22 | After ... == ... [false] | false | +| test.rs:108:17:108:22 | ... == ... | test.rs:108:17:108:22 | After ... == ... [true] | true | +| test.rs:108:17:108:22 | After ... == ... [false] | test.rs:108:13:110:13 | After if ... {...} | | +| test.rs:108:17:108:22 | After ... == ... [true] | test.rs:108:25:110:13 | { ... } | | +| test.rs:108:17:108:22 | Before ... == ... | test.rs:108:17:108:17 | i | | | test.rs:108:22:108:22 | j | test.rs:108:17:108:22 | ... == ... | | -| test.rs:109:17:109:21 | break | test.rs:107:9:112:9 | for ... in ... { ... } | break | +| test.rs:108:25:110:13 | { ... } | test.rs:109:17:109:22 | ExprStmt | | +| test.rs:109:17:109:21 | [break] break | test.rs:107:9:112:9 | After for ... in ... { ... } | break | +| test.rs:109:17:109:21 | break | test.rs:109:17:109:21 | [break] break | | | test.rs:109:17:109:22 | ExprStmt | test.rs:109:17:109:21 | break | | -| test.rs:111:13:111:13 | 1 | test.rs:107:24:112:9 | { ... } | | +| test.rs:111:13:111:13 | 1 | test.rs:111:13:111:14 | After ExprStmt | | +| test.rs:111:13:111:14 | After ExprStmt | test.rs:107:24:112:9 | After { ... } | | | test.rs:111:13:111:14 | ExprStmt | test.rs:111:13:111:13 | 1 | | -| test.rs:115:5:119:5 | enter fn break_with_return | test.rs:117:13:117:27 | ExprStmt | | -| test.rs:115:5:119:5 | exit fn break_with_return (normal) | test.rs:115:5:119:5 | exit fn break_with_return | | -| test.rs:117:13:117:27 | ExprStmt | test.rs:117:26:117:26 | 1 | | -| test.rs:117:19:117:26 | return 1 | test.rs:115:5:119:5 | exit fn break_with_return (normal) | return | +| test.rs:115:5:119:5 | Entry | test.rs:115:35:119:5 | { ... } | | +| test.rs:115:5:119:5 | Normal Exit | test.rs:115:5:119:5 | Exit | | +| test.rs:115:35:119:5 | { ... } | test.rs:116:9:118:9 | loop { ... } | | +| test.rs:116:9:118:9 | loop { ... } | test.rs:116:14:118:9 | { ... } | | +| test.rs:116:14:118:9 | { ... } | test.rs:117:13:117:27 | ExprStmt | | +| test.rs:117:13:117:26 | break ... | test.rs:117:19:117:26 | Before return 1 | | +| test.rs:117:13:117:27 | ExprStmt | test.rs:117:13:117:26 | break ... | | +| test.rs:117:19:117:26 | Before return 1 | test.rs:117:26:117:26 | 1 | | +| test.rs:117:19:117:26 | return 1 | test.rs:115:5:119:5 | Normal Exit | return | | test.rs:117:26:117:26 | 1 | test.rs:117:19:117:26 | return 1 | | -| test.rs:122:1:125:1 | enter fn test_nested_function | test.rs:122:25:122:25 | n | | -| test.rs:122:1:125:1 | exit fn test_nested_function (normal) | test.rs:122:1:125:1 | exit fn test_nested_function | | +| test.rs:122:1:125:1 | Entry | test.rs:122:25:122:30 | Before ...: i64 | | +| test.rs:122:1:125:1 | Normal Exit | test.rs:122:1:125:1 | Exit | | +| test.rs:122:25:122:25 | After n [match] | test.rs:122:25:122:30 | ...: i64 | | +| test.rs:122:25:122:25 | Before n | test.rs:122:25:122:25 | n | | +| test.rs:122:25:122:25 | n | test.rs:122:25:122:25 | After n [match] | match | | test.rs:122:25:122:25 | n | test.rs:122:25:122:25 | n | | -| test.rs:122:25:122:25 | n | test.rs:122:25:122:30 | ...: i64 | match | -| test.rs:122:25:122:30 | ...: i64 | test.rs:123:5:123:28 | let ... = ... | | -| test.rs:122:40:125:1 | { ... } | test.rs:122:1:125:1 | exit fn test_nested_function (normal) | | +| test.rs:122:25:122:30 | ...: i64 | test.rs:122:25:122:30 | After ...: i64 | | +| test.rs:122:25:122:30 | After ...: i64 | test.rs:122:40:125:1 | { ... } | | +| test.rs:122:25:122:30 | Before ...: i64 | test.rs:122:25:122:25 | Before n | | +| test.rs:122:40:125:1 | After { ... } | test.rs:122:1:125:1 | Normal Exit | | +| test.rs:122:40:125:1 | { ... } | test.rs:123:5:123:28 | let ... = ... | | +| test.rs:123:5:123:28 | After let ... = ... | test.rs:124:5:124:23 | Before add_one(...) | | | test.rs:123:5:123:28 | let ... = ... | test.rs:123:19:123:27 | \|...\| ... | | +| test.rs:123:9:123:15 | After add_one [match] | test.rs:123:5:123:28 | After let ... = ... | | +| test.rs:123:9:123:15 | Before add_one | test.rs:123:9:123:15 | add_one | | +| test.rs:123:9:123:15 | add_one | test.rs:123:9:123:15 | After add_one [match] | match | | test.rs:123:9:123:15 | add_one | test.rs:123:9:123:15 | add_one | | -| test.rs:123:9:123:15 | add_one | test.rs:124:5:124:11 | add_one | match | -| test.rs:123:19:123:27 | \|...\| ... | test.rs:123:9:123:15 | add_one | | -| test.rs:123:19:123:27 | enter \|...\| ... | test.rs:123:20:123:20 | i | | -| test.rs:123:19:123:27 | exit \|...\| ... (normal) | test.rs:123:19:123:27 | exit \|...\| ... | | -| test.rs:123:20:123:20 | ... | test.rs:123:23:123:23 | i | | -| test.rs:123:20:123:20 | i | test.rs:123:20:123:20 | ... | match | +| test.rs:123:19:123:27 | Entry | test.rs:123:20:123:20 | Before ... | | +| test.rs:123:19:123:27 | Normal Exit | test.rs:123:19:123:27 | Exit | | +| test.rs:123:19:123:27 | \|...\| ... | test.rs:123:9:123:15 | Before add_one | | +| test.rs:123:20:123:20 | ... | test.rs:123:20:123:20 | After ... | | +| test.rs:123:20:123:20 | After ... | test.rs:123:23:123:27 | Before ... + ... | | +| test.rs:123:20:123:20 | After i [match] | test.rs:123:20:123:20 | ... | | +| test.rs:123:20:123:20 | Before ... | test.rs:123:20:123:20 | Before i | | +| test.rs:123:20:123:20 | Before i | test.rs:123:20:123:20 | i | | +| test.rs:123:20:123:20 | i | test.rs:123:20:123:20 | After i [match] | match | | test.rs:123:20:123:20 | i | test.rs:123:20:123:20 | i | | | test.rs:123:23:123:23 | i | test.rs:123:27:123:27 | 1 | | -| test.rs:123:23:123:27 | ... + ... | test.rs:123:19:123:27 | exit \|...\| ... (normal) | | +| test.rs:123:23:123:27 | ... + ... | test.rs:123:23:123:27 | After ... + ... | | +| test.rs:123:23:123:27 | After ... + ... | test.rs:123:19:123:27 | Normal Exit | | +| test.rs:123:23:123:27 | Before ... + ... | test.rs:123:23:123:23 | i | | | test.rs:123:27:123:27 | 1 | test.rs:123:23:123:27 | ... + ... | | -| test.rs:124:5:124:11 | add_one | test.rs:124:13:124:19 | add_one | | -| test.rs:124:5:124:23 | add_one(...) | test.rs:122:40:125:1 | { ... } | | +| test.rs:124:5:124:11 | add_one | test.rs:124:13:124:22 | Before add_one(...) | | +| test.rs:124:5:124:23 | After add_one(...) | test.rs:122:40:125:1 | After { ... } | | +| test.rs:124:5:124:23 | Before add_one(...) | test.rs:124:5:124:11 | add_one | | +| test.rs:124:5:124:23 | add_one(...) | test.rs:124:5:124:23 | After add_one(...) | | | test.rs:124:13:124:19 | add_one | test.rs:124:21:124:21 | n | | -| test.rs:124:13:124:22 | add_one(...) | test.rs:124:5:124:23 | add_one(...) | | +| test.rs:124:13:124:22 | After add_one(...) | test.rs:124:5:124:23 | add_one(...) | | +| test.rs:124:13:124:22 | Before add_one(...) | test.rs:124:13:124:19 | add_one | | +| test.rs:124:13:124:22 | add_one(...) | test.rs:124:13:124:22 | After add_one(...) | | | test.rs:124:21:124:21 | n | test.rs:124:13:124:22 | add_one(...) | | -| test.rs:129:5:135:5 | enter fn test_if_else | test.rs:129:21:129:21 | n | | -| test.rs:129:5:135:5 | exit fn test_if_else (normal) | test.rs:129:5:135:5 | exit fn test_if_else | | +| test.rs:129:5:135:5 | Entry | test.rs:129:21:129:26 | Before ...: i64 | | +| test.rs:129:5:135:5 | Normal Exit | test.rs:129:5:135:5 | Exit | | +| test.rs:129:21:129:21 | After n [match] | test.rs:129:21:129:26 | ...: i64 | | +| test.rs:129:21:129:21 | Before n | test.rs:129:21:129:21 | n | | +| test.rs:129:21:129:21 | n | test.rs:129:21:129:21 | After n [match] | match | | test.rs:129:21:129:21 | n | test.rs:129:21:129:21 | n | | -| test.rs:129:21:129:21 | n | test.rs:129:21:129:26 | ...: i64 | match | -| test.rs:129:21:129:26 | ...: i64 | test.rs:130:12:130:12 | n | | -| test.rs:129:36:135:5 | { ... } | test.rs:129:5:135:5 | exit fn test_if_else (normal) | | -| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:129:36:135:5 | { ... } | | +| test.rs:129:21:129:26 | ...: i64 | test.rs:129:21:129:26 | After ...: i64 | | +| test.rs:129:21:129:26 | After ...: i64 | test.rs:129:36:135:5 | { ... } | | +| test.rs:129:21:129:26 | Before ...: i64 | test.rs:129:21:129:21 | Before n | | +| test.rs:129:36:135:5 | After { ... } | test.rs:129:5:135:5 | Normal Exit | | +| test.rs:129:36:135:5 | { ... } | test.rs:130:9:134:9 | if ... {...} else {...} | | +| test.rs:130:9:134:9 | After if ... {...} else {...} | test.rs:129:36:135:5 | After { ... } | | +| test.rs:130:9:134:9 | if ... {...} else {...} | test.rs:130:12:130:17 | Before ... <= ... | | | test.rs:130:12:130:12 | n | test.rs:130:17:130:17 | 0 | | -| test.rs:130:12:130:17 | ... <= ... | test.rs:131:13:131:13 | 0 | true | -| test.rs:130:12:130:17 | ... <= ... | test.rs:133:13:133:13 | n | false | +| test.rs:130:12:130:17 | ... <= ... | test.rs:130:12:130:17 | After ... <= ... [false] | false | +| test.rs:130:12:130:17 | ... <= ... | test.rs:130:12:130:17 | After ... <= ... [true] | true | +| test.rs:130:12:130:17 | After ... <= ... [false] | test.rs:132:16:134:9 | { ... } | | +| test.rs:130:12:130:17 | After ... <= ... [true] | test.rs:130:19:132:9 | { ... } | | +| test.rs:130:12:130:17 | Before ... <= ... | test.rs:130:12:130:12 | n | | | test.rs:130:17:130:17 | 0 | test.rs:130:12:130:17 | ... <= ... | | -| test.rs:130:19:132:9 | { ... } | test.rs:130:9:134:9 | if ... {...} else {...} | | -| test.rs:131:13:131:13 | 0 | test.rs:130:19:132:9 | { ... } | | -| test.rs:132:16:134:9 | { ... } | test.rs:130:9:134:9 | if ... {...} else {...} | | +| test.rs:130:19:132:9 | After { ... } | test.rs:130:9:134:9 | After if ... {...} else {...} | | +| test.rs:130:19:132:9 | { ... } | test.rs:131:13:131:13 | 0 | | +| test.rs:131:13:131:13 | 0 | test.rs:130:19:132:9 | After { ... } | | +| test.rs:132:16:134:9 | After { ... } | test.rs:130:9:134:9 | After if ... {...} else {...} | | +| test.rs:132:16:134:9 | { ... } | test.rs:133:13:133:17 | Before ... - ... | | | test.rs:133:13:133:13 | n | test.rs:133:17:133:17 | 1 | | -| test.rs:133:13:133:17 | ... - ... | test.rs:132:16:134:9 | { ... } | | +| test.rs:133:13:133:17 | ... - ... | test.rs:133:13:133:17 | After ... - ... | | +| test.rs:133:13:133:17 | After ... - ... | test.rs:132:16:134:9 | After { ... } | | +| test.rs:133:13:133:17 | Before ... - ... | test.rs:133:13:133:13 | n | | | test.rs:133:17:133:17 | 1 | test.rs:133:13:133:17 | ... - ... | | -| test.rs:137:5:143:5 | enter fn test_if_without_else | test.rs:137:29:137:29 | b | | -| test.rs:137:5:143:5 | exit fn test_if_without_else (normal) | test.rs:137:5:143:5 | exit fn test_if_without_else | | +| test.rs:137:5:143:5 | Entry | test.rs:137:29:137:35 | Before ...: bool | | +| test.rs:137:5:143:5 | Normal Exit | test.rs:137:5:143:5 | Exit | | +| test.rs:137:29:137:29 | After b [match] | test.rs:137:29:137:35 | ...: bool | | +| test.rs:137:29:137:29 | Before b | test.rs:137:29:137:29 | b | | +| test.rs:137:29:137:29 | b | test.rs:137:29:137:29 | After b [match] | match | | test.rs:137:29:137:29 | b | test.rs:137:29:137:29 | b | | -| test.rs:137:29:137:29 | b | test.rs:137:29:137:35 | ...: bool | match | -| test.rs:137:29:137:35 | ...: bool | test.rs:138:9:138:22 | let ... = 3 | | -| test.rs:137:45:143:5 | { ... } | test.rs:137:5:143:5 | exit fn test_if_without_else (normal) | | +| test.rs:137:29:137:35 | ...: bool | test.rs:137:29:137:35 | After ...: bool | | +| test.rs:137:29:137:35 | After ...: bool | test.rs:137:45:143:5 | { ... } | | +| test.rs:137:29:137:35 | Before ...: bool | test.rs:137:29:137:29 | Before b | | +| test.rs:137:45:143:5 | After { ... } | test.rs:137:5:143:5 | Normal Exit | | +| test.rs:137:45:143:5 | { ... } | test.rs:138:9:138:22 | let ... = 3 | | +| test.rs:138:9:138:22 | After let ... = 3 | test.rs:139:9:141:9 | ExprStmt | | | test.rs:138:9:138:22 | let ... = 3 | test.rs:138:21:138:21 | 3 | | -| test.rs:138:13:138:17 | mut i | test.rs:139:9:141:9 | ExprStmt | match | +| test.rs:138:13:138:17 | After mut i [match] | test.rs:138:9:138:22 | After let ... = 3 | | +| test.rs:138:13:138:17 | Before mut i | test.rs:138:17:138:17 | i | | +| test.rs:138:13:138:17 | mut i | test.rs:138:13:138:17 | After mut i [match] | match | | test.rs:138:17:138:17 | i | test.rs:138:13:138:17 | mut i | | -| test.rs:138:21:138:21 | 3 | test.rs:138:17:138:17 | i | | -| test.rs:139:9:141:9 | ExprStmt | test.rs:139:12:139:12 | b | | -| test.rs:139:9:141:9 | if b {...} | test.rs:142:9:142:9 | i | | -| test.rs:139:12:139:12 | b | test.rs:139:9:141:9 | if b {...} | false | -| test.rs:139:12:139:12 | b | test.rs:140:13:140:19 | ExprStmt | true | -| test.rs:139:14:141:9 | { ... } | test.rs:139:9:141:9 | if b {...} | | +| test.rs:138:21:138:21 | 3 | test.rs:138:13:138:17 | Before mut i | | +| test.rs:139:9:141:9 | After ExprStmt | test.rs:142:9:142:9 | i | | +| test.rs:139:9:141:9 | After if b {...} | test.rs:139:9:141:9 | After ExprStmt | | +| test.rs:139:9:141:9 | ExprStmt | test.rs:139:9:141:9 | if b {...} | | +| test.rs:139:9:141:9 | if b {...} | test.rs:139:12:139:12 | b | | +| test.rs:139:12:139:12 | After b [false] | test.rs:139:9:141:9 | After if b {...} | | +| test.rs:139:12:139:12 | After b [true] | test.rs:139:14:141:9 | { ... } | | +| test.rs:139:12:139:12 | b | test.rs:139:12:139:12 | After b [false] | false | +| test.rs:139:12:139:12 | b | test.rs:139:12:139:12 | After b [true] | true | +| test.rs:139:14:141:9 | After { ... } | test.rs:139:9:141:9 | After if b {...} | | +| test.rs:139:14:141:9 | { ... } | test.rs:140:13:140:19 | ExprStmt | | | test.rs:140:13:140:13 | i | test.rs:140:18:140:18 | 1 | | -| test.rs:140:13:140:18 | ... += ... | test.rs:139:14:141:9 | { ... } | | -| test.rs:140:13:140:19 | ExprStmt | test.rs:140:13:140:13 | i | | +| test.rs:140:13:140:18 | ... += ... | test.rs:140:13:140:18 | After ... += ... | | +| test.rs:140:13:140:18 | After ... += ... | test.rs:140:13:140:19 | After ExprStmt | | +| test.rs:140:13:140:18 | Before ... += ... | test.rs:140:13:140:13 | i | | +| test.rs:140:13:140:19 | After ExprStmt | test.rs:139:14:141:9 | After { ... } | | +| test.rs:140:13:140:19 | ExprStmt | test.rs:140:13:140:18 | Before ... += ... | | | test.rs:140:18:140:18 | 1 | test.rs:140:13:140:18 | ... += ... | | -| test.rs:142:9:142:9 | i | test.rs:137:45:143:5 | { ... } | | -| test.rs:145:5:151:5 | enter fn test_if_let_else | test.rs:145:25:145:25 | a | | -| test.rs:145:5:151:5 | exit fn test_if_let_else (normal) | test.rs:145:5:151:5 | exit fn test_if_let_else | | +| test.rs:142:9:142:9 | i | test.rs:137:45:143:5 | After { ... } | | +| test.rs:145:5:151:5 | Entry | test.rs:145:25:145:38 | Before ...: Option::<...> | | +| test.rs:145:5:151:5 | Normal Exit | test.rs:145:5:151:5 | Exit | | +| test.rs:145:25:145:25 | After a [match] | test.rs:145:25:145:38 | ...: Option::<...> | | +| test.rs:145:25:145:25 | Before a | test.rs:145:25:145:25 | a | | +| test.rs:145:25:145:25 | a | test.rs:145:25:145:25 | After a [match] | match | | test.rs:145:25:145:25 | a | test.rs:145:25:145:25 | a | | -| test.rs:145:25:145:25 | a | test.rs:145:25:145:38 | ...: Option::<...> | match | -| test.rs:145:25:145:38 | ...: Option::<...> | test.rs:146:26:146:26 | a | | -| test.rs:145:48:151:5 | { ... } | test.rs:145:5:151:5 | exit fn test_if_let_else (normal) | | -| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:145:48:151:5 | { ... } | | -| test.rs:146:12:146:26 | [boolean(false)] let ... = a | test.rs:149:13:149:13 | 0 | false | -| test.rs:146:12:146:26 | [boolean(true)] let ... = a | test.rs:147:13:147:13 | n | true | -| test.rs:146:16:146:22 | Some(...) | test.rs:146:12:146:26 | [boolean(false)] let ... = a | no-match | -| test.rs:146:16:146:22 | Some(...) | test.rs:146:21:146:21 | n | match | -| test.rs:146:21:146:21 | n | test.rs:146:12:146:26 | [boolean(true)] let ... = a | match | +| test.rs:145:25:145:38 | ...: Option::<...> | test.rs:145:25:145:38 | After ...: Option::<...> | | +| test.rs:145:25:145:38 | After ...: Option::<...> | test.rs:145:48:151:5 | { ... } | | +| test.rs:145:25:145:38 | Before ...: Option::<...> | test.rs:145:25:145:25 | Before a | | +| test.rs:145:48:151:5 | After { ... } | test.rs:145:5:151:5 | Normal Exit | | +| test.rs:145:48:151:5 | { ... } | test.rs:146:9:150:9 | if ... {...} else {...} | | +| test.rs:146:9:150:9 | After if ... {...} else {...} | test.rs:145:48:151:5 | After { ... } | | +| test.rs:146:9:150:9 | if ... {...} else {...} | test.rs:146:12:146:26 | let ... = a | | +| test.rs:146:12:146:26 | After let ... = a [false] | test.rs:148:16:150:9 | { ... } | | +| test.rs:146:12:146:26 | After let ... = a [true] | test.rs:146:28:148:9 | { ... } | | +| test.rs:146:12:146:26 | let ... = a | test.rs:146:26:146:26 | a | | +| test.rs:146:16:146:22 | After Some(...) [match] | test.rs:146:12:146:26 | After let ... = a [true] | true | +| test.rs:146:16:146:22 | After Some(...) [no-match] | test.rs:146:12:146:26 | After let ... = a [false] | false | +| test.rs:146:16:146:22 | Some(...) | test.rs:146:16:146:22 | After Some(...) [no-match] | no-match | +| test.rs:146:16:146:22 | Some(...) | test.rs:146:16:146:22 | [pattern-start] Some(...) | match | +| test.rs:146:16:146:22 | [pattern-start] Some(...) | test.rs:146:21:146:21 | Before n | | +| test.rs:146:21:146:21 | After n [match] | test.rs:146:16:146:22 | After Some(...) [match] | match | +| test.rs:146:21:146:21 | Before n | test.rs:146:21:146:21 | n | | +| test.rs:146:21:146:21 | n | test.rs:146:21:146:21 | After n [match] | match | | test.rs:146:21:146:21 | n | test.rs:146:21:146:21 | n | | | test.rs:146:26:146:26 | a | test.rs:146:16:146:22 | Some(...) | | -| test.rs:146:28:148:9 | { ... } | test.rs:146:9:150:9 | if ... {...} else {...} | | -| test.rs:147:13:147:13 | n | test.rs:146:28:148:9 | { ... } | | -| test.rs:148:16:150:9 | { ... } | test.rs:146:9:150:9 | if ... {...} else {...} | | -| test.rs:149:13:149:13 | 0 | test.rs:148:16:150:9 | { ... } | | -| test.rs:153:5:158:5 | enter fn test_if_let | test.rs:153:20:153:20 | a | | -| test.rs:153:5:158:5 | exit fn test_if_let (normal) | test.rs:153:5:158:5 | exit fn test_if_let | | +| test.rs:146:28:148:9 | After { ... } | test.rs:146:9:150:9 | After if ... {...} else {...} | | +| test.rs:146:28:148:9 | { ... } | test.rs:147:13:147:13 | n | | +| test.rs:147:13:147:13 | n | test.rs:146:28:148:9 | After { ... } | | +| test.rs:148:16:150:9 | After { ... } | test.rs:146:9:150:9 | After if ... {...} else {...} | | +| test.rs:148:16:150:9 | { ... } | test.rs:149:13:149:13 | 0 | | +| test.rs:149:13:149:13 | 0 | test.rs:148:16:150:9 | After { ... } | | +| test.rs:153:5:158:5 | Entry | test.rs:153:20:153:33 | Before ...: Option::<...> | | +| test.rs:153:5:158:5 | Normal Exit | test.rs:153:5:158:5 | Exit | | +| test.rs:153:20:153:20 | After a [match] | test.rs:153:20:153:33 | ...: Option::<...> | | +| test.rs:153:20:153:20 | Before a | test.rs:153:20:153:20 | a | | +| test.rs:153:20:153:20 | a | test.rs:153:20:153:20 | After a [match] | match | | test.rs:153:20:153:20 | a | test.rs:153:20:153:20 | a | | -| test.rs:153:20:153:20 | a | test.rs:153:20:153:33 | ...: Option::<...> | match | -| test.rs:153:20:153:33 | ...: Option::<...> | test.rs:154:9:156:9 | ExprStmt | | -| test.rs:153:43:158:5 | { ... } | test.rs:153:5:158:5 | exit fn test_if_let (normal) | | -| test.rs:154:9:156:9 | ExprStmt | test.rs:154:26:154:26 | a | | -| test.rs:154:9:156:9 | if ... {...} | test.rs:157:9:157:9 | 0 | | -| test.rs:154:12:154:26 | [boolean(false)] let ... = a | test.rs:154:9:156:9 | if ... {...} | false | -| test.rs:154:12:154:26 | [boolean(true)] let ... = a | test.rs:155:13:155:21 | ExprStmt | true | -| test.rs:154:16:154:22 | Some(...) | test.rs:154:12:154:26 | [boolean(false)] let ... = a | no-match | -| test.rs:154:16:154:22 | Some(...) | test.rs:154:21:154:21 | n | match | -| test.rs:154:21:154:21 | n | test.rs:154:12:154:26 | [boolean(true)] let ... = a | match | +| test.rs:153:20:153:33 | ...: Option::<...> | test.rs:153:20:153:33 | After ...: Option::<...> | | +| test.rs:153:20:153:33 | After ...: Option::<...> | test.rs:153:43:158:5 | { ... } | | +| test.rs:153:20:153:33 | Before ...: Option::<...> | test.rs:153:20:153:20 | Before a | | +| test.rs:153:43:158:5 | After { ... } | test.rs:153:5:158:5 | Normal Exit | | +| test.rs:153:43:158:5 | { ... } | test.rs:154:9:156:9 | ExprStmt | | +| test.rs:154:9:156:9 | After ExprStmt | test.rs:157:9:157:9 | 0 | | +| test.rs:154:9:156:9 | After if ... {...} | test.rs:154:9:156:9 | After ExprStmt | | +| test.rs:154:9:156:9 | ExprStmt | test.rs:154:9:156:9 | if ... {...} | | +| test.rs:154:9:156:9 | if ... {...} | test.rs:154:12:154:26 | let ... = a | | +| test.rs:154:12:154:26 | After let ... = a [false] | test.rs:154:9:156:9 | After if ... {...} | | +| test.rs:154:12:154:26 | After let ... = a [true] | test.rs:154:28:156:9 | { ... } | | +| test.rs:154:12:154:26 | let ... = a | test.rs:154:26:154:26 | a | | +| test.rs:154:16:154:22 | After Some(...) [match] | test.rs:154:12:154:26 | After let ... = a [true] | true | +| test.rs:154:16:154:22 | After Some(...) [no-match] | test.rs:154:12:154:26 | After let ... = a [false] | false | +| test.rs:154:16:154:22 | Some(...) | test.rs:154:16:154:22 | After Some(...) [no-match] | no-match | +| test.rs:154:16:154:22 | Some(...) | test.rs:154:16:154:22 | [pattern-start] Some(...) | match | +| test.rs:154:16:154:22 | [pattern-start] Some(...) | test.rs:154:21:154:21 | Before n | | +| test.rs:154:21:154:21 | After n [match] | test.rs:154:16:154:22 | After Some(...) [match] | match | +| test.rs:154:21:154:21 | Before n | test.rs:154:21:154:21 | n | | +| test.rs:154:21:154:21 | n | test.rs:154:21:154:21 | After n [match] | match | | test.rs:154:21:154:21 | n | test.rs:154:21:154:21 | n | | | test.rs:154:26:154:26 | a | test.rs:154:16:154:22 | Some(...) | | -| test.rs:155:13:155:20 | return n | test.rs:153:5:158:5 | exit fn test_if_let (normal) | return | -| test.rs:155:13:155:21 | ExprStmt | test.rs:155:20:155:20 | n | | +| test.rs:154:28:156:9 | { ... } | test.rs:155:13:155:21 | ExprStmt | | +| test.rs:155:13:155:20 | Before return n | test.rs:155:20:155:20 | n | | +| test.rs:155:13:155:20 | return n | test.rs:153:5:158:5 | Normal Exit | return | +| test.rs:155:13:155:21 | ExprStmt | test.rs:155:13:155:20 | Before return n | | | test.rs:155:20:155:20 | n | test.rs:155:13:155:20 | return n | | -| test.rs:157:9:157:9 | 0 | test.rs:153:43:158:5 | { ... } | | -| test.rs:160:5:166:5 | enter fn test_nested_if | test.rs:160:23:160:23 | a | | -| test.rs:160:5:166:5 | exit fn test_nested_if (normal) | test.rs:160:5:166:5 | exit fn test_nested_if | | +| test.rs:157:9:157:9 | 0 | test.rs:153:43:158:5 | After { ... } | | +| test.rs:160:5:166:5 | Entry | test.rs:160:23:160:28 | Before ...: i64 | | +| test.rs:160:5:166:5 | Normal Exit | test.rs:160:5:166:5 | Exit | | +| test.rs:160:23:160:23 | After a [match] | test.rs:160:23:160:28 | ...: i64 | | +| test.rs:160:23:160:23 | Before a | test.rs:160:23:160:23 | a | | +| test.rs:160:23:160:23 | a | test.rs:160:23:160:23 | After a [match] | match | | test.rs:160:23:160:23 | a | test.rs:160:23:160:23 | a | | -| test.rs:160:23:160:23 | a | test.rs:160:23:160:28 | ...: i64 | match | -| test.rs:160:23:160:28 | ...: i64 | test.rs:161:16:161:16 | a | | -| test.rs:160:38:166:5 | { ... } | test.rs:160:5:166:5 | exit fn test_nested_if (normal) | | -| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:160:38:166:5 | { ... } | | -| test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | test.rs:164:13:164:13 | 0 | false | -| test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | test.rs:162:13:162:13 | 1 | true | +| test.rs:160:23:160:28 | ...: i64 | test.rs:160:23:160:28 | After ...: i64 | | +| test.rs:160:23:160:28 | After ...: i64 | test.rs:160:38:166:5 | { ... } | | +| test.rs:160:23:160:28 | Before ...: i64 | test.rs:160:23:160:23 | Before a | | +| test.rs:160:38:166:5 | After { ... } | test.rs:160:5:166:5 | Normal Exit | | +| test.rs:160:38:166:5 | { ... } | test.rs:161:9:165:9 | if ... {...} else {...} | | +| test.rs:161:9:165:9 | After if ... {...} else {...} | test.rs:160:38:166:5 | After { ... } | | +| test.rs:161:9:165:9 | if ... {...} else {...} | test.rs:161:13:161:48 | if ... {...} else {...} | | +| test.rs:161:13:161:48 | After if ... {...} else {...} [false] | test.rs:163:16:165:9 | { ... } | | +| test.rs:161:13:161:48 | After if ... {...} else {...} [true] | test.rs:161:51:163:9 | { ... } | | +| test.rs:161:13:161:48 | if ... {...} else {...} | test.rs:161:16:161:20 | Before ... < ... | | | test.rs:161:16:161:16 | a | test.rs:161:20:161:20 | 0 | | -| test.rs:161:16:161:20 | ... < ... | test.rs:161:24:161:24 | a | true | -| test.rs:161:16:161:20 | ... < ... | test.rs:161:41:161:41 | a | false | +| test.rs:161:16:161:20 | ... < ... | test.rs:161:16:161:20 | After ... < ... [false] | false | +| test.rs:161:16:161:20 | ... < ... | test.rs:161:16:161:20 | After ... < ... [true] | true | +| test.rs:161:16:161:20 | After ... < ... [false] | test.rs:161:39:161:48 | { ... } | | +| test.rs:161:16:161:20 | After ... < ... [true] | test.rs:161:22:161:32 | { ... } | | +| test.rs:161:16:161:20 | Before ... < ... | test.rs:161:16:161:16 | a | | | test.rs:161:20:161:20 | 0 | test.rs:161:16:161:20 | ... < ... | | -| test.rs:161:22:161:32 | [boolean(false)] { ... } | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | false | -| test.rs:161:22:161:32 | [boolean(true)] { ... } | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | true | -| test.rs:161:24:161:24 | a | test.rs:161:29:161:30 | 10 | | -| test.rs:161:24:161:30 | ... < ... | test.rs:161:22:161:32 | [boolean(false)] { ... } | false | -| test.rs:161:24:161:30 | ... < ... | test.rs:161:22:161:32 | [boolean(true)] { ... } | true | -| test.rs:161:28:161:30 | - ... | test.rs:161:24:161:30 | ... < ... | | +| test.rs:161:22:161:32 | After { ... } [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | false | +| test.rs:161:22:161:32 | After { ... } [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | true | +| test.rs:161:22:161:32 | { ... } | test.rs:161:24:161:30 | Before ... < ... | | +| test.rs:161:24:161:24 | a | test.rs:161:28:161:30 | Before - ... | | +| test.rs:161:24:161:30 | ... < ... | test.rs:161:24:161:30 | After ... < ... [false] | false | +| test.rs:161:24:161:30 | ... < ... | test.rs:161:24:161:30 | After ... < ... [true] | true | +| test.rs:161:24:161:30 | After ... < ... [false] | test.rs:161:22:161:32 | After { ... } [false] | false | +| test.rs:161:24:161:30 | After ... < ... [true] | test.rs:161:22:161:32 | After { ... } [true] | true | +| test.rs:161:24:161:30 | Before ... < ... | test.rs:161:24:161:24 | a | | +| test.rs:161:28:161:30 | - ... | test.rs:161:28:161:30 | After - ... | | +| test.rs:161:28:161:30 | After - ... | test.rs:161:24:161:30 | ... < ... | | +| test.rs:161:28:161:30 | Before - ... | test.rs:161:29:161:30 | 10 | | | test.rs:161:29:161:30 | 10 | test.rs:161:28:161:30 | - ... | | -| test.rs:161:39:161:48 | [boolean(false)] { ... } | test.rs:161:13:161:48 | [boolean(false)] if ... {...} else {...} | false | -| test.rs:161:39:161:48 | [boolean(true)] { ... } | test.rs:161:13:161:48 | [boolean(true)] if ... {...} else {...} | true | +| test.rs:161:39:161:48 | After { ... } [false] | test.rs:161:13:161:48 | After if ... {...} else {...} [false] | false | +| test.rs:161:39:161:48 | After { ... } [true] | test.rs:161:13:161:48 | After if ... {...} else {...} [true] | true | +| test.rs:161:39:161:48 | { ... } | test.rs:161:41:161:46 | Before ... > ... | | | test.rs:161:41:161:41 | a | test.rs:161:45:161:46 | 10 | | -| test.rs:161:41:161:46 | ... > ... | test.rs:161:39:161:48 | [boolean(false)] { ... } | false | -| test.rs:161:41:161:46 | ... > ... | test.rs:161:39:161:48 | [boolean(true)] { ... } | true | +| test.rs:161:41:161:46 | ... > ... | test.rs:161:41:161:46 | After ... > ... [false] | false | +| test.rs:161:41:161:46 | ... > ... | test.rs:161:41:161:46 | After ... > ... [true] | true | +| test.rs:161:41:161:46 | After ... > ... [false] | test.rs:161:39:161:48 | After { ... } [false] | false | +| test.rs:161:41:161:46 | After ... > ... [true] | test.rs:161:39:161:48 | After { ... } [true] | true | +| test.rs:161:41:161:46 | Before ... > ... | test.rs:161:41:161:41 | a | | | test.rs:161:45:161:46 | 10 | test.rs:161:41:161:46 | ... > ... | | -| test.rs:161:51:163:9 | { ... } | test.rs:161:9:165:9 | if ... {...} else {...} | | -| test.rs:162:13:162:13 | 1 | test.rs:161:51:163:9 | { ... } | | -| test.rs:163:16:165:9 | { ... } | test.rs:161:9:165:9 | if ... {...} else {...} | | -| test.rs:164:13:164:13 | 0 | test.rs:163:16:165:9 | { ... } | | -| test.rs:168:5:177:5 | enter fn test_nested_if_2 | test.rs:168:25:168:29 | cond1 | | -| test.rs:168:5:177:5 | exit fn test_nested_if_2 (normal) | test.rs:168:5:177:5 | exit fn test_nested_if_2 | | +| test.rs:161:51:163:9 | After { ... } | test.rs:161:9:165:9 | After if ... {...} else {...} | | +| test.rs:161:51:163:9 | { ... } | test.rs:162:13:162:13 | 1 | | +| test.rs:162:13:162:13 | 1 | test.rs:161:51:163:9 | After { ... } | | +| test.rs:163:16:165:9 | After { ... } | test.rs:161:9:165:9 | After if ... {...} else {...} | | +| test.rs:163:16:165:9 | { ... } | test.rs:164:13:164:13 | 0 | | +| test.rs:164:13:164:13 | 0 | test.rs:163:16:165:9 | After { ... } | | +| test.rs:168:5:177:5 | Entry | test.rs:168:25:168:35 | Before ...: bool | | +| test.rs:168:5:177:5 | Normal Exit | test.rs:168:5:177:5 | Exit | | +| test.rs:168:25:168:29 | After cond1 [match] | test.rs:168:25:168:35 | ...: bool | | +| test.rs:168:25:168:29 | Before cond1 | test.rs:168:25:168:29 | cond1 | | +| test.rs:168:25:168:29 | cond1 | test.rs:168:25:168:29 | After cond1 [match] | match | | test.rs:168:25:168:29 | cond1 | test.rs:168:25:168:29 | cond1 | | -| test.rs:168:25:168:29 | cond1 | test.rs:168:25:168:35 | ...: bool | match | -| test.rs:168:25:168:35 | ...: bool | test.rs:168:38:168:42 | cond2 | | +| test.rs:168:25:168:35 | ...: bool | test.rs:168:25:168:35 | After ...: bool | | +| test.rs:168:25:168:35 | After ...: bool | test.rs:168:38:168:48 | Before ...: bool | | +| test.rs:168:25:168:35 | Before ...: bool | test.rs:168:25:168:29 | Before cond1 | | +| test.rs:168:38:168:42 | After cond2 [match] | test.rs:168:38:168:48 | ...: bool | | +| test.rs:168:38:168:42 | Before cond2 | test.rs:168:38:168:42 | cond2 | | +| test.rs:168:38:168:42 | cond2 | test.rs:168:38:168:42 | After cond2 [match] | match | | test.rs:168:38:168:42 | cond2 | test.rs:168:38:168:42 | cond2 | | -| test.rs:168:38:168:42 | cond2 | test.rs:168:38:168:48 | ...: bool | match | -| test.rs:168:38:168:48 | ...: bool | test.rs:169:9:176:10 | ExprStmt | | -| test.rs:168:57:177:5 | { ... } | test.rs:168:5:177:5 | exit fn test_nested_if_2 (normal) | | -| test.rs:169:9:176:9 | if cond1 {...} | test.rs:168:57:177:5 | { ... } | | -| test.rs:169:9:176:10 | ExprStmt | test.rs:169:12:169:16 | cond1 | | -| test.rs:169:12:169:16 | cond1 | test.rs:169:9:176:9 | if cond1 {...} | false | -| test.rs:169:12:169:16 | cond1 | test.rs:170:13:174:13 | ExprStmt | true | -| test.rs:169:18:176:9 | { ... } | test.rs:169:9:176:9 | if cond1 {...} | | -| test.rs:170:13:174:13 | ExprStmt | test.rs:170:16:170:20 | cond2 | | -| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:175:13:175:26 | ExprStmt | | -| test.rs:170:16:170:20 | cond2 | test.rs:171:17:171:30 | ExprStmt | true | -| test.rs:170:16:170:20 | cond2 | test.rs:173:17:173:30 | ExprStmt | false | -| test.rs:170:22:172:13 | { ... } | test.rs:170:13:174:13 | if cond2 {...} else {...} | | -| test.rs:171:17:171:24 | ...::_print | test.rs:171:26:171:28 | "1\\n" | | -| test.rs:171:17:171:29 | MacroExpr | test.rs:170:22:172:13 | { ... } | | -| test.rs:171:17:171:29 | println!... | test.rs:171:17:171:29 | MacroExpr | | -| test.rs:171:17:171:30 | ExprStmt | test.rs:171:26:171:28 | ExprStmt | | +| test.rs:168:38:168:48 | ...: bool | test.rs:168:38:168:48 | After ...: bool | | +| test.rs:168:38:168:48 | After ...: bool | test.rs:168:57:177:5 | { ... } | | +| test.rs:168:38:168:48 | Before ...: bool | test.rs:168:38:168:42 | Before cond2 | | +| test.rs:168:57:177:5 | After { ... } | test.rs:168:5:177:5 | Normal Exit | | +| test.rs:168:57:177:5 | { ... } | test.rs:169:9:176:10 | ExprStmt | | +| test.rs:169:9:176:9 | After if cond1 {...} | test.rs:169:9:176:10 | After ExprStmt | | +| test.rs:169:9:176:9 | if cond1 {...} | test.rs:169:12:169:16 | cond1 | | +| test.rs:169:9:176:10 | After ExprStmt | test.rs:168:57:177:5 | After { ... } | | +| test.rs:169:9:176:10 | ExprStmt | test.rs:169:9:176:9 | if cond1 {...} | | +| test.rs:169:12:169:16 | After cond1 [false] | test.rs:169:9:176:9 | After if cond1 {...} | | +| test.rs:169:12:169:16 | After cond1 [true] | test.rs:169:18:176:9 | { ... } | | +| test.rs:169:12:169:16 | cond1 | test.rs:169:12:169:16 | After cond1 [false] | false | +| test.rs:169:12:169:16 | cond1 | test.rs:169:12:169:16 | After cond1 [true] | true | +| test.rs:169:18:176:9 | After { ... } | test.rs:169:9:176:9 | After if cond1 {...} | | +| test.rs:169:18:176:9 | { ... } | test.rs:170:13:174:13 | ExprStmt | | +| test.rs:170:13:174:13 | After ExprStmt | test.rs:175:13:175:26 | ExprStmt | | +| test.rs:170:13:174:13 | After if cond2 {...} else {...} | test.rs:170:13:174:13 | After ExprStmt | | +| test.rs:170:13:174:13 | ExprStmt | test.rs:170:13:174:13 | if cond2 {...} else {...} | | +| test.rs:170:13:174:13 | if cond2 {...} else {...} | test.rs:170:16:170:20 | cond2 | | +| test.rs:170:16:170:20 | After cond2 [false] | test.rs:172:20:174:13 | { ... } | | +| test.rs:170:16:170:20 | After cond2 [true] | test.rs:170:22:172:13 | { ... } | | +| test.rs:170:16:170:20 | cond2 | test.rs:170:16:170:20 | After cond2 [false] | false | +| test.rs:170:16:170:20 | cond2 | test.rs:170:16:170:20 | After cond2 [true] | true | +| test.rs:170:22:172:13 | After { ... } | test.rs:170:13:174:13 | After if cond2 {...} else {...} | | +| test.rs:170:22:172:13 | { ... } | test.rs:171:17:171:30 | ExprStmt | | +| test.rs:171:17:171:24 | ...::_print | test.rs:171:26:171:28 | Before MacroExpr | | +| test.rs:171:17:171:29 | After MacroExpr | test.rs:171:17:171:30 | After ExprStmt | | +| test.rs:171:17:171:29 | After println!... | test.rs:171:17:171:29 | MacroExpr | | +| test.rs:171:17:171:29 | Before MacroExpr | test.rs:171:17:171:29 | Before println!... | | +| test.rs:171:17:171:29 | Before println!... | test.rs:171:26:171:28 | { ... } | | +| test.rs:171:17:171:29 | MacroExpr | test.rs:171:17:171:29 | After MacroExpr | | +| test.rs:171:17:171:29 | println!... | test.rs:171:17:171:29 | After println!... | | +| test.rs:171:17:171:30 | After ExprStmt | test.rs:170:22:172:13 | After { ... } | | +| test.rs:171:17:171:30 | ExprStmt | test.rs:171:17:171:29 | Before MacroExpr | | | test.rs:171:26:171:28 | "1\\n" | test.rs:171:26:171:28 | FormatArgsExpr | | -| test.rs:171:26:171:28 | ...::_print(...) | test.rs:171:26:171:28 | { ... } | | -| test.rs:171:26:171:28 | ...::format_args_nl!... | test.rs:171:26:171:28 | MacroExpr | | -| test.rs:171:26:171:28 | ExprStmt | test.rs:171:17:171:24 | ...::_print | | -| test.rs:171:26:171:28 | FormatArgsExpr | test.rs:171:26:171:28 | ...::format_args_nl!... | | -| test.rs:171:26:171:28 | MacroExpr | test.rs:171:26:171:28 | ...::_print(...) | | -| test.rs:171:26:171:28 | { ... } | test.rs:171:17:171:29 | println!... | | +| test.rs:171:26:171:28 | ...::_print(...) | test.rs:171:26:171:28 | After ...::_print(...) | | +| test.rs:171:26:171:28 | ...::format_args_nl!... | test.rs:171:26:171:28 | After ...::format_args_nl!... | | +| test.rs:171:26:171:28 | After ...::_print(...) | test.rs:171:26:171:28 | After ExprStmt | | +| test.rs:171:26:171:28 | After ...::format_args_nl!... | test.rs:171:26:171:28 | MacroExpr | | +| test.rs:171:26:171:28 | After ExprStmt | test.rs:171:26:171:28 | After { ... } | | +| test.rs:171:26:171:28 | After FormatArgsExpr | test.rs:171:26:171:28 | ...::format_args_nl!... | | +| test.rs:171:26:171:28 | After MacroExpr | test.rs:171:26:171:28 | ...::_print(...) | | +| test.rs:171:26:171:28 | After { ... } | test.rs:171:17:171:29 | println!... | | +| test.rs:171:26:171:28 | After { ... } | test.rs:171:26:171:28 | After { ... } | | +| test.rs:171:26:171:28 | Before ...::_print(...) | test.rs:171:17:171:24 | ...::_print | | +| test.rs:171:26:171:28 | Before ...::format_args_nl!... | test.rs:171:26:171:28 | Before FormatArgsExpr | | +| test.rs:171:26:171:28 | Before FormatArgsExpr | test.rs:171:26:171:28 | "1\\n" | | +| test.rs:171:26:171:28 | Before MacroExpr | test.rs:171:26:171:28 | Before ...::format_args_nl!... | | +| test.rs:171:26:171:28 | ExprStmt | test.rs:171:26:171:28 | Before ...::_print(...) | | +| test.rs:171:26:171:28 | FormatArgsExpr | test.rs:171:26:171:28 | After FormatArgsExpr | | +| test.rs:171:26:171:28 | MacroExpr | test.rs:171:26:171:28 | After MacroExpr | | +| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | ExprStmt | | | test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | { ... } | | -| test.rs:172:20:174:13 | { ... } | test.rs:170:13:174:13 | if cond2 {...} else {...} | | -| test.rs:173:17:173:24 | ...::_print | test.rs:173:26:173:28 | "2\\n" | | -| test.rs:173:17:173:29 | MacroExpr | test.rs:172:20:174:13 | { ... } | | -| test.rs:173:17:173:29 | println!... | test.rs:173:17:173:29 | MacroExpr | | -| test.rs:173:17:173:30 | ExprStmt | test.rs:173:26:173:28 | ExprStmt | | +| test.rs:172:20:174:13 | After { ... } | test.rs:170:13:174:13 | After if cond2 {...} else {...} | | +| test.rs:172:20:174:13 | { ... } | test.rs:173:17:173:30 | ExprStmt | | +| test.rs:173:17:173:24 | ...::_print | test.rs:173:26:173:28 | Before MacroExpr | | +| test.rs:173:17:173:29 | After MacroExpr | test.rs:173:17:173:30 | After ExprStmt | | +| test.rs:173:17:173:29 | After println!... | test.rs:173:17:173:29 | MacroExpr | | +| test.rs:173:17:173:29 | Before MacroExpr | test.rs:173:17:173:29 | Before println!... | | +| test.rs:173:17:173:29 | Before println!... | test.rs:173:26:173:28 | { ... } | | +| test.rs:173:17:173:29 | MacroExpr | test.rs:173:17:173:29 | After MacroExpr | | +| test.rs:173:17:173:29 | println!... | test.rs:173:17:173:29 | After println!... | | +| test.rs:173:17:173:30 | After ExprStmt | test.rs:172:20:174:13 | After { ... } | | +| test.rs:173:17:173:30 | ExprStmt | test.rs:173:17:173:29 | Before MacroExpr | | | test.rs:173:26:173:28 | "2\\n" | test.rs:173:26:173:28 | FormatArgsExpr | | -| test.rs:173:26:173:28 | ...::_print(...) | test.rs:173:26:173:28 | { ... } | | -| test.rs:173:26:173:28 | ...::format_args_nl!... | test.rs:173:26:173:28 | MacroExpr | | -| test.rs:173:26:173:28 | ExprStmt | test.rs:173:17:173:24 | ...::_print | | -| test.rs:173:26:173:28 | FormatArgsExpr | test.rs:173:26:173:28 | ...::format_args_nl!... | | -| test.rs:173:26:173:28 | MacroExpr | test.rs:173:26:173:28 | ...::_print(...) | | -| test.rs:173:26:173:28 | { ... } | test.rs:173:17:173:29 | println!... | | +| test.rs:173:26:173:28 | ...::_print(...) | test.rs:173:26:173:28 | After ...::_print(...) | | +| test.rs:173:26:173:28 | ...::format_args_nl!... | test.rs:173:26:173:28 | After ...::format_args_nl!... | | +| test.rs:173:26:173:28 | After ...::_print(...) | test.rs:173:26:173:28 | After ExprStmt | | +| test.rs:173:26:173:28 | After ...::format_args_nl!... | test.rs:173:26:173:28 | MacroExpr | | +| test.rs:173:26:173:28 | After ExprStmt | test.rs:173:26:173:28 | After { ... } | | +| test.rs:173:26:173:28 | After FormatArgsExpr | test.rs:173:26:173:28 | ...::format_args_nl!... | | +| test.rs:173:26:173:28 | After MacroExpr | test.rs:173:26:173:28 | ...::_print(...) | | +| test.rs:173:26:173:28 | After { ... } | test.rs:173:17:173:29 | println!... | | +| test.rs:173:26:173:28 | After { ... } | test.rs:173:26:173:28 | After { ... } | | +| test.rs:173:26:173:28 | Before ...::_print(...) | test.rs:173:17:173:24 | ...::_print | | +| test.rs:173:26:173:28 | Before ...::format_args_nl!... | test.rs:173:26:173:28 | Before FormatArgsExpr | | +| test.rs:173:26:173:28 | Before FormatArgsExpr | test.rs:173:26:173:28 | "2\\n" | | +| test.rs:173:26:173:28 | Before MacroExpr | test.rs:173:26:173:28 | Before ...::format_args_nl!... | | +| test.rs:173:26:173:28 | ExprStmt | test.rs:173:26:173:28 | Before ...::_print(...) | | +| test.rs:173:26:173:28 | FormatArgsExpr | test.rs:173:26:173:28 | After FormatArgsExpr | | +| test.rs:173:26:173:28 | MacroExpr | test.rs:173:26:173:28 | After MacroExpr | | +| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | ExprStmt | | | test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | { ... } | | -| test.rs:175:13:175:20 | ...::_print | test.rs:175:22:175:24 | "3\\n" | | -| test.rs:175:13:175:25 | MacroExpr | test.rs:169:18:176:9 | { ... } | | -| test.rs:175:13:175:25 | println!... | test.rs:175:13:175:25 | MacroExpr | | -| test.rs:175:13:175:26 | ExprStmt | test.rs:175:22:175:24 | ExprStmt | | +| test.rs:175:13:175:20 | ...::_print | test.rs:175:22:175:24 | Before MacroExpr | | +| test.rs:175:13:175:25 | After MacroExpr | test.rs:175:13:175:26 | After ExprStmt | | +| test.rs:175:13:175:25 | After println!... | test.rs:175:13:175:25 | MacroExpr | | +| test.rs:175:13:175:25 | Before MacroExpr | test.rs:175:13:175:25 | Before println!... | | +| test.rs:175:13:175:25 | Before println!... | test.rs:175:22:175:24 | { ... } | | +| test.rs:175:13:175:25 | MacroExpr | test.rs:175:13:175:25 | After MacroExpr | | +| test.rs:175:13:175:25 | println!... | test.rs:175:13:175:25 | After println!... | | +| test.rs:175:13:175:26 | After ExprStmt | test.rs:169:18:176:9 | After { ... } | | +| test.rs:175:13:175:26 | ExprStmt | test.rs:175:13:175:25 | Before MacroExpr | | | test.rs:175:22:175:24 | "3\\n" | test.rs:175:22:175:24 | FormatArgsExpr | | -| test.rs:175:22:175:24 | ...::_print(...) | test.rs:175:22:175:24 | { ... } | | -| test.rs:175:22:175:24 | ...::format_args_nl!... | test.rs:175:22:175:24 | MacroExpr | | -| test.rs:175:22:175:24 | ExprStmt | test.rs:175:13:175:20 | ...::_print | | -| test.rs:175:22:175:24 | FormatArgsExpr | test.rs:175:22:175:24 | ...::format_args_nl!... | | -| test.rs:175:22:175:24 | MacroExpr | test.rs:175:22:175:24 | ...::_print(...) | | -| test.rs:175:22:175:24 | { ... } | test.rs:175:13:175:25 | println!... | | +| test.rs:175:22:175:24 | ...::_print(...) | test.rs:175:22:175:24 | After ...::_print(...) | | +| test.rs:175:22:175:24 | ...::format_args_nl!... | test.rs:175:22:175:24 | After ...::format_args_nl!... | | +| test.rs:175:22:175:24 | After ...::_print(...) | test.rs:175:22:175:24 | After ExprStmt | | +| test.rs:175:22:175:24 | After ...::format_args_nl!... | test.rs:175:22:175:24 | MacroExpr | | +| test.rs:175:22:175:24 | After ExprStmt | test.rs:175:22:175:24 | After { ... } | | +| test.rs:175:22:175:24 | After FormatArgsExpr | test.rs:175:22:175:24 | ...::format_args_nl!... | | +| test.rs:175:22:175:24 | After MacroExpr | test.rs:175:22:175:24 | ...::_print(...) | | +| test.rs:175:22:175:24 | After { ... } | test.rs:175:13:175:25 | println!... | | +| test.rs:175:22:175:24 | After { ... } | test.rs:175:22:175:24 | After { ... } | | +| test.rs:175:22:175:24 | Before ...::_print(...) | test.rs:175:13:175:20 | ...::_print | | +| test.rs:175:22:175:24 | Before ...::format_args_nl!... | test.rs:175:22:175:24 | Before FormatArgsExpr | | +| test.rs:175:22:175:24 | Before FormatArgsExpr | test.rs:175:22:175:24 | "3\\n" | | +| test.rs:175:22:175:24 | Before MacroExpr | test.rs:175:22:175:24 | Before ...::format_args_nl!... | | +| test.rs:175:22:175:24 | ExprStmt | test.rs:175:22:175:24 | Before ...::_print(...) | | +| test.rs:175:22:175:24 | FormatArgsExpr | test.rs:175:22:175:24 | After FormatArgsExpr | | +| test.rs:175:22:175:24 | MacroExpr | test.rs:175:22:175:24 | After MacroExpr | | +| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | ExprStmt | | | test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | { ... } | | -| test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:29:179:29 | a | | -| test.rs:179:5:188:5 | exit fn test_nested_if_match (normal) | test.rs:179:5:188:5 | exit fn test_nested_if_match | | +| test.rs:179:5:188:5 | Entry | test.rs:179:29:179:34 | Before ...: i64 | | +| test.rs:179:5:188:5 | Normal Exit | test.rs:179:5:188:5 | Exit | | +| test.rs:179:29:179:29 | After a [match] | test.rs:179:29:179:34 | ...: i64 | | +| test.rs:179:29:179:29 | Before a | test.rs:179:29:179:29 | a | | +| test.rs:179:29:179:29 | a | test.rs:179:29:179:29 | After a [match] | match | | test.rs:179:29:179:29 | a | test.rs:179:29:179:29 | a | | -| test.rs:179:29:179:29 | a | test.rs:179:29:179:34 | ...: i64 | match | -| test.rs:179:29:179:34 | ...: i64 | test.rs:180:19:180:19 | a | | -| test.rs:179:44:188:5 | { ... } | test.rs:179:5:188:5 | exit fn test_nested_if_match (normal) | | -| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:179:44:188:5 | { ... } | | -| test.rs:180:13:183:9 | [boolean(false)] match a { ... } | test.rs:186:13:186:13 | 0 | false | -| test.rs:180:13:183:9 | [boolean(true)] match a { ... } | test.rs:184:13:184:13 | 1 | true | -| test.rs:180:19:180:19 | a | test.rs:181:13:181:13 | 0 | | +| test.rs:179:29:179:34 | ...: i64 | test.rs:179:29:179:34 | After ...: i64 | | +| test.rs:179:29:179:34 | After ...: i64 | test.rs:179:44:188:5 | { ... } | | +| test.rs:179:29:179:34 | Before ...: i64 | test.rs:179:29:179:29 | Before a | | +| test.rs:179:44:188:5 | After { ... } | test.rs:179:5:188:5 | Normal Exit | | +| test.rs:179:44:188:5 | { ... } | test.rs:180:9:187:9 | if ... {...} else {...} | | +| test.rs:180:9:187:9 | After if ... {...} else {...} | test.rs:179:44:188:5 | After { ... } | | +| test.rs:180:9:187:9 | if ... {...} else {...} | test.rs:180:13:183:9 | match a { ... } | | +| test.rs:180:13:183:9 | After match a { ... } [false] | test.rs:185:16:187:9 | { ... } | | +| test.rs:180:13:183:9 | After match a { ... } [true] | test.rs:183:12:185:9 | { ... } | | +| test.rs:180:13:183:9 | match a { ... } | test.rs:180:19:180:19 | a | | +| test.rs:180:19:180:19 | a | test.rs:181:13:181:13 | Before 0 | | | test.rs:181:13:181:13 | 0 | test.rs:181:13:181:13 | 0 | | -| test.rs:181:13:181:13 | 0 | test.rs:181:18:181:21 | true | match | -| test.rs:181:13:181:13 | 0 | test.rs:182:13:182:13 | _ | no-match | -| test.rs:181:18:181:21 | true | test.rs:180:13:183:9 | [boolean(true)] match a { ... } | true | -| test.rs:182:13:182:13 | _ | test.rs:182:18:182:22 | false | match | -| test.rs:182:18:182:22 | false | test.rs:180:13:183:9 | [boolean(false)] match a { ... } | false | -| test.rs:183:12:185:9 | { ... } | test.rs:180:9:187:9 | if ... {...} else {...} | | -| test.rs:184:13:184:13 | 1 | test.rs:183:12:185:9 | { ... } | | -| test.rs:185:16:187:9 | { ... } | test.rs:180:9:187:9 | if ... {...} else {...} | | -| test.rs:186:13:186:13 | 0 | test.rs:185:16:187:9 | { ... } | | -| test.rs:190:5:199:5 | enter fn test_nested_if_block | test.rs:190:29:190:29 | a | | -| test.rs:190:5:199:5 | exit fn test_nested_if_block (normal) | test.rs:190:5:199:5 | exit fn test_nested_if_block | | +| test.rs:181:13:181:13 | 0 | test.rs:181:13:181:13 | After 0 [match] | match | +| test.rs:181:13:181:13 | 0 | test.rs:181:13:181:13 | After 0 [no-match] | no-match | +| test.rs:181:13:181:13 | After 0 [match] | test.rs:181:18:181:21 | true | | +| test.rs:181:13:181:13 | After 0 [no-match] | test.rs:182:13:182:13 | _ | | +| test.rs:181:13:181:13 | Before 0 | test.rs:181:13:181:13 | 0 | | +| test.rs:181:18:181:21 | After true [true] | test.rs:180:13:183:9 | After match a { ... } [false] | false | +| test.rs:181:18:181:21 | After true [true] | test.rs:180:13:183:9 | After match a { ... } [true] | true | +| test.rs:181:18:181:21 | true | test.rs:181:18:181:21 | After true [true] | true | +| test.rs:182:13:182:13 | After _ [match] | test.rs:182:18:182:22 | false | | +| test.rs:182:13:182:13 | _ | test.rs:182:13:182:13 | After _ [match] | match | +| test.rs:182:18:182:22 | After false [false] | test.rs:180:13:183:9 | After match a { ... } [false] | false | +| test.rs:182:18:182:22 | After false [false] | test.rs:180:13:183:9 | After match a { ... } [true] | true | +| test.rs:182:18:182:22 | false | test.rs:182:18:182:22 | After false [false] | false | +| test.rs:183:12:185:9 | After { ... } | test.rs:180:9:187:9 | After if ... {...} else {...} | | +| test.rs:183:12:185:9 | { ... } | test.rs:184:13:184:13 | 1 | | +| test.rs:184:13:184:13 | 1 | test.rs:183:12:185:9 | After { ... } | | +| test.rs:185:16:187:9 | After { ... } | test.rs:180:9:187:9 | After if ... {...} else {...} | | +| test.rs:185:16:187:9 | { ... } | test.rs:186:13:186:13 | 0 | | +| test.rs:186:13:186:13 | 0 | test.rs:185:16:187:9 | After { ... } | | +| test.rs:190:5:199:5 | Entry | test.rs:190:29:190:34 | Before ...: i64 | | +| test.rs:190:5:199:5 | Normal Exit | test.rs:190:5:199:5 | Exit | | +| test.rs:190:29:190:29 | After a [match] | test.rs:190:29:190:34 | ...: i64 | | +| test.rs:190:29:190:29 | Before a | test.rs:190:29:190:29 | a | | +| test.rs:190:29:190:29 | a | test.rs:190:29:190:29 | After a [match] | match | | test.rs:190:29:190:29 | a | test.rs:190:29:190:29 | a | | -| test.rs:190:29:190:29 | a | test.rs:190:29:190:34 | ...: i64 | match | -| test.rs:190:29:190:34 | ...: i64 | test.rs:192:13:192:15 | ExprStmt | | -| test.rs:190:44:199:5 | { ... } | test.rs:190:5:199:5 | exit fn test_nested_if_block (normal) | | -| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:190:44:199:5 | { ... } | | -| test.rs:191:12:194:9 | [boolean(false)] { ... } | test.rs:197:13:197:13 | 0 | false | -| test.rs:191:12:194:9 | [boolean(true)] { ... } | test.rs:195:13:195:13 | 1 | true | -| test.rs:192:13:192:14 | TupleExpr | test.rs:193:13:193:13 | a | | +| test.rs:190:29:190:34 | ...: i64 | test.rs:190:29:190:34 | After ...: i64 | | +| test.rs:190:29:190:34 | After ...: i64 | test.rs:190:44:199:5 | { ... } | | +| test.rs:190:29:190:34 | Before ...: i64 | test.rs:190:29:190:29 | Before a | | +| test.rs:190:44:199:5 | After { ... } | test.rs:190:5:199:5 | Normal Exit | | +| test.rs:190:44:199:5 | { ... } | test.rs:191:9:198:9 | if ... {...} else {...} | | +| test.rs:191:9:198:9 | After if ... {...} else {...} | test.rs:190:44:199:5 | After { ... } | | +| test.rs:191:9:198:9 | if ... {...} else {...} | test.rs:191:12:194:9 | { ... } | | +| test.rs:191:12:194:9 | After { ... } [false] | test.rs:196:16:198:9 | { ... } | | +| test.rs:191:12:194:9 | After { ... } [true] | test.rs:194:11:196:9 | { ... } | | +| test.rs:191:12:194:9 | { ... } | test.rs:192:13:192:15 | ExprStmt | | +| test.rs:192:13:192:14 | TupleExpr | test.rs:192:13:192:15 | After ExprStmt | | +| test.rs:192:13:192:15 | After ExprStmt | test.rs:193:13:193:17 | Before ... > ... | | | test.rs:192:13:192:15 | ExprStmt | test.rs:192:13:192:14 | TupleExpr | | | test.rs:193:13:193:13 | a | test.rs:193:17:193:17 | 0 | | -| test.rs:193:13:193:17 | ... > ... | test.rs:191:12:194:9 | [boolean(false)] { ... } | false | -| test.rs:193:13:193:17 | ... > ... | test.rs:191:12:194:9 | [boolean(true)] { ... } | true | +| test.rs:193:13:193:17 | ... > ... | test.rs:193:13:193:17 | After ... > ... [false] | false | +| test.rs:193:13:193:17 | ... > ... | test.rs:193:13:193:17 | After ... > ... [true] | true | +| test.rs:193:13:193:17 | After ... > ... [false] | test.rs:191:12:194:9 | After { ... } [false] | false | +| test.rs:193:13:193:17 | After ... > ... [true] | test.rs:191:12:194:9 | After { ... } [true] | true | +| test.rs:193:13:193:17 | Before ... > ... | test.rs:193:13:193:13 | a | | | test.rs:193:17:193:17 | 0 | test.rs:193:13:193:17 | ... > ... | | -| test.rs:194:11:196:9 | { ... } | test.rs:191:9:198:9 | if ... {...} else {...} | | -| test.rs:195:13:195:13 | 1 | test.rs:194:11:196:9 | { ... } | | -| test.rs:196:16:198:9 | { ... } | test.rs:191:9:198:9 | if ... {...} else {...} | | -| test.rs:197:13:197:13 | 0 | test.rs:196:16:198:9 | { ... } | | -| test.rs:201:5:211:5 | enter fn test_if_assignment | test.rs:201:27:201:27 | a | | -| test.rs:201:5:211:5 | exit fn test_if_assignment (normal) | test.rs:201:5:211:5 | exit fn test_if_assignment | | +| test.rs:194:11:196:9 | After { ... } | test.rs:191:9:198:9 | After if ... {...} else {...} | | +| test.rs:194:11:196:9 | { ... } | test.rs:195:13:195:13 | 1 | | +| test.rs:195:13:195:13 | 1 | test.rs:194:11:196:9 | After { ... } | | +| test.rs:196:16:198:9 | After { ... } | test.rs:191:9:198:9 | After if ... {...} else {...} | | +| test.rs:196:16:198:9 | { ... } | test.rs:197:13:197:13 | 0 | | +| test.rs:197:13:197:13 | 0 | test.rs:196:16:198:9 | After { ... } | | +| test.rs:201:5:211:5 | Entry | test.rs:201:27:201:32 | Before ...: i64 | | +| test.rs:201:5:211:5 | Normal Exit | test.rs:201:5:211:5 | Exit | | +| test.rs:201:27:201:27 | After a [match] | test.rs:201:27:201:32 | ...: i64 | | +| test.rs:201:27:201:27 | Before a | test.rs:201:27:201:27 | a | | +| test.rs:201:27:201:27 | a | test.rs:201:27:201:27 | After a [match] | match | | test.rs:201:27:201:27 | a | test.rs:201:27:201:27 | a | | -| test.rs:201:27:201:27 | a | test.rs:201:27:201:32 | ...: i64 | match | -| test.rs:201:27:201:32 | ...: i64 | test.rs:202:9:202:26 | let ... = false | | -| test.rs:201:42:211:5 | { ... } | test.rs:201:5:211:5 | exit fn test_if_assignment (normal) | | +| test.rs:201:27:201:32 | ...: i64 | test.rs:201:27:201:32 | After ...: i64 | | +| test.rs:201:27:201:32 | After ...: i64 | test.rs:201:42:211:5 | { ... } | | +| test.rs:201:27:201:32 | Before ...: i64 | test.rs:201:27:201:27 | Before a | | +| test.rs:201:42:211:5 | After { ... } | test.rs:201:5:211:5 | Normal Exit | | +| test.rs:201:42:211:5 | { ... } | test.rs:202:9:202:26 | let ... = false | | +| test.rs:202:9:202:26 | After let ... = false | test.rs:203:9:210:9 | if ... {...} else {...} | | | test.rs:202:9:202:26 | let ... = false | test.rs:202:21:202:25 | false | | -| test.rs:202:13:202:17 | mut x | test.rs:204:13:204:21 | ExprStmt | match | +| test.rs:202:13:202:17 | After mut x [match] | test.rs:202:9:202:26 | After let ... = false | | +| test.rs:202:13:202:17 | Before mut x | test.rs:202:17:202:17 | x | | +| test.rs:202:13:202:17 | mut x | test.rs:202:13:202:17 | After mut x [match] | match | | test.rs:202:17:202:17 | x | test.rs:202:13:202:17 | mut x | | -| test.rs:202:21:202:25 | false | test.rs:202:17:202:17 | x | | -| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:201:42:211:5 | { ... } | | -| test.rs:203:12:206:9 | [boolean(false)] { ... } | test.rs:209:13:209:13 | 0 | false | -| test.rs:203:12:206:9 | [boolean(true)] { ... } | test.rs:207:13:207:13 | 1 | true | +| test.rs:202:21:202:25 | false | test.rs:202:13:202:17 | Before mut x | | +| test.rs:203:9:210:9 | After if ... {...} else {...} | test.rs:201:42:211:5 | After { ... } | | +| test.rs:203:9:210:9 | if ... {...} else {...} | test.rs:203:12:206:9 | { ... } | | +| test.rs:203:12:206:9 | After { ... } [false] | test.rs:208:16:210:9 | { ... } | | +| test.rs:203:12:206:9 | After { ... } [true] | test.rs:206:11:208:9 | { ... } | | +| test.rs:203:12:206:9 | { ... } | test.rs:204:13:204:21 | ExprStmt | | | test.rs:204:13:204:13 | x | test.rs:204:17:204:20 | true | | -| test.rs:204:13:204:20 | ... = ... | test.rs:205:13:205:13 | x | | -| test.rs:204:13:204:21 | ExprStmt | test.rs:204:13:204:13 | x | | +| test.rs:204:13:204:20 | ... = ... | test.rs:204:13:204:20 | After ... = ... | | +| test.rs:204:13:204:20 | After ... = ... | test.rs:204:13:204:21 | After ExprStmt | | +| test.rs:204:13:204:20 | Before ... = ... | test.rs:204:13:204:13 | x | | +| test.rs:204:13:204:21 | After ExprStmt | test.rs:205:13:205:13 | x | | +| test.rs:204:13:204:21 | ExprStmt | test.rs:204:13:204:20 | Before ... = ... | | | test.rs:204:17:204:20 | true | test.rs:204:13:204:20 | ... = ... | | -| test.rs:205:13:205:13 | x | test.rs:203:12:206:9 | [boolean(false)] { ... } | false | -| test.rs:205:13:205:13 | x | test.rs:203:12:206:9 | [boolean(true)] { ... } | true | -| test.rs:206:11:208:9 | { ... } | test.rs:203:9:210:9 | if ... {...} else {...} | | -| test.rs:207:13:207:13 | 1 | test.rs:206:11:208:9 | { ... } | | -| test.rs:208:16:210:9 | { ... } | test.rs:203:9:210:9 | if ... {...} else {...} | | -| test.rs:209:13:209:13 | 0 | test.rs:208:16:210:9 | { ... } | | -| test.rs:213:5:224:5 | enter fn test_if_loop1 | test.rs:213:22:213:22 | a | | -| test.rs:213:5:224:5 | exit fn test_if_loop1 (normal) | test.rs:213:5:224:5 | exit fn test_if_loop1 | | +| test.rs:205:13:205:13 | After x [false] | test.rs:203:12:206:9 | After { ... } [false] | false | +| test.rs:205:13:205:13 | After x [true] | test.rs:203:12:206:9 | After { ... } [true] | true | +| test.rs:205:13:205:13 | x | test.rs:205:13:205:13 | After x [false] | false | +| test.rs:205:13:205:13 | x | test.rs:205:13:205:13 | After x [true] | true | +| test.rs:206:11:208:9 | After { ... } | test.rs:203:9:210:9 | After if ... {...} else {...} | | +| test.rs:206:11:208:9 | { ... } | test.rs:207:13:207:13 | 1 | | +| test.rs:207:13:207:13 | 1 | test.rs:206:11:208:9 | After { ... } | | +| test.rs:208:16:210:9 | After { ... } | test.rs:203:9:210:9 | After if ... {...} else {...} | | +| test.rs:208:16:210:9 | { ... } | test.rs:209:13:209:13 | 0 | | +| test.rs:209:13:209:13 | 0 | test.rs:208:16:210:9 | After { ... } | | +| test.rs:213:5:224:5 | Entry | test.rs:213:22:213:27 | Before ...: i64 | | +| test.rs:213:5:224:5 | Normal Exit | test.rs:213:5:224:5 | Exit | | +| test.rs:213:22:213:22 | After a [match] | test.rs:213:22:213:27 | ...: i64 | | +| test.rs:213:22:213:22 | Before a | test.rs:213:22:213:22 | a | | +| test.rs:213:22:213:22 | a | test.rs:213:22:213:22 | After a [match] | match | | test.rs:213:22:213:22 | a | test.rs:213:22:213:22 | a | | -| test.rs:213:22:213:22 | a | test.rs:213:22:213:27 | ...: i64 | match | -| test.rs:213:22:213:27 | ...: i64 | test.rs:215:13:217:14 | ExprStmt | | -| test.rs:213:37:224:5 | { ... } | test.rs:213:5:224:5 | exit fn test_if_loop1 (normal) | | -| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:213:37:224:5 | { ... } | | -| test.rs:214:13:219:9 | [boolean(false)] loop { ... } | test.rs:222:13:222:13 | 0 | false | -| test.rs:214:13:219:9 | [boolean(true)] loop { ... } | test.rs:220:13:220:13 | 1 | true | +| test.rs:213:22:213:27 | ...: i64 | test.rs:213:22:213:27 | After ...: i64 | | +| test.rs:213:22:213:27 | After ...: i64 | test.rs:213:37:224:5 | { ... } | | +| test.rs:213:22:213:27 | Before ...: i64 | test.rs:213:22:213:22 | Before a | | +| test.rs:213:37:224:5 | After { ... } | test.rs:213:5:224:5 | Normal Exit | | +| test.rs:213:37:224:5 | { ... } | test.rs:214:9:223:9 | if ... {...} else {...} | | +| test.rs:214:9:223:9 | After if ... {...} else {...} | test.rs:213:37:224:5 | After { ... } | | +| test.rs:214:9:223:9 | if ... {...} else {...} | test.rs:214:13:219:9 | loop { ... } | | +| test.rs:214:13:219:9 | After loop { ... } [false] | test.rs:221:16:223:9 | { ... } | | +| test.rs:214:13:219:9 | After loop { ... } [true] | test.rs:219:12:221:9 | { ... } | | +| test.rs:214:13:219:9 | [LoopHeader] loop { ... } | test.rs:214:18:219:9 | { ... } | | +| test.rs:214:13:219:9 | loop { ... } | test.rs:214:18:219:9 | { ... } | | +| test.rs:214:18:219:9 | After { ... } | test.rs:214:13:219:9 | [LoopHeader] loop { ... } | | | test.rs:214:18:219:9 | { ... } | test.rs:215:13:217:14 | ExprStmt | | -| test.rs:215:13:217:13 | if ... {...} | test.rs:218:13:218:19 | ExprStmt | | -| test.rs:215:13:217:14 | ExprStmt | test.rs:215:16:215:16 | a | | +| test.rs:215:13:217:13 | After if ... {...} | test.rs:215:13:217:14 | After ExprStmt | | +| test.rs:215:13:217:13 | if ... {...} | test.rs:215:16:215:20 | Before ... > ... | | +| test.rs:215:13:217:14 | After ExprStmt | test.rs:218:13:218:19 | ExprStmt | | +| test.rs:215:13:217:14 | ExprStmt | test.rs:215:13:217:13 | if ... {...} | | | test.rs:215:16:215:16 | a | test.rs:215:20:215:20 | 0 | | -| test.rs:215:16:215:20 | ... > ... | test.rs:215:13:217:13 | if ... {...} | false | -| test.rs:215:16:215:20 | ... > ... | test.rs:216:17:216:29 | ExprStmt | true | +| test.rs:215:16:215:20 | ... > ... | test.rs:215:16:215:20 | After ... > ... [false] | false | +| test.rs:215:16:215:20 | ... > ... | test.rs:215:16:215:20 | After ... > ... [true] | true | +| test.rs:215:16:215:20 | After ... > ... [false] | test.rs:215:13:217:13 | After if ... {...} | | +| test.rs:215:16:215:20 | After ... > ... [true] | test.rs:215:22:217:13 | { ... } | | +| test.rs:215:16:215:20 | Before ... > ... | test.rs:215:16:215:16 | a | | | test.rs:215:20:215:20 | 0 | test.rs:215:16:215:20 | ... > ... | | -| test.rs:216:17:216:28 | [boolean(false)] break ... | test.rs:214:13:219:9 | [boolean(false)] loop { ... } | break | -| test.rs:216:17:216:28 | [boolean(true)] break ... | test.rs:214:13:219:9 | [boolean(true)] loop { ... } | break | -| test.rs:216:17:216:29 | ExprStmt | test.rs:216:23:216:23 | a | | +| test.rs:215:22:217:13 | { ... } | test.rs:216:17:216:29 | ExprStmt | | +| test.rs:216:17:216:28 | [break-false] break ... | test.rs:214:13:219:9 | After loop { ... } [false] | break | +| test.rs:216:17:216:28 | [break-true] break ... | test.rs:214:13:219:9 | After loop { ... } [true] | break | +| test.rs:216:17:216:28 | break ... | test.rs:216:23:216:28 | Before ... > ... | | +| test.rs:216:17:216:29 | ExprStmt | test.rs:216:17:216:28 | break ... | | | test.rs:216:23:216:23 | a | test.rs:216:27:216:28 | 10 | | -| test.rs:216:23:216:28 | ... > ... | test.rs:216:17:216:28 | [boolean(false)] break ... | false | -| test.rs:216:23:216:28 | ... > ... | test.rs:216:17:216:28 | [boolean(true)] break ... | true | +| test.rs:216:23:216:28 | ... > ... | test.rs:216:23:216:28 | After ... > ... [false] | false | +| test.rs:216:23:216:28 | ... > ... | test.rs:216:23:216:28 | After ... > ... [true] | true | +| test.rs:216:23:216:28 | After ... > ... [false] | test.rs:216:17:216:28 | [break-false] break ... | | +| test.rs:216:23:216:28 | After ... > ... [true] | test.rs:216:17:216:28 | [break-true] break ... | | +| test.rs:216:23:216:28 | Before ... > ... | test.rs:216:23:216:23 | a | | | test.rs:216:27:216:28 | 10 | test.rs:216:23:216:28 | ... > ... | | | test.rs:218:13:218:13 | a | test.rs:218:17:218:18 | 10 | | -| test.rs:218:13:218:18 | ... < ... | test.rs:214:18:219:9 | { ... } | | -| test.rs:218:13:218:19 | ExprStmt | test.rs:218:13:218:13 | a | | +| test.rs:218:13:218:18 | ... < ... | test.rs:218:13:218:18 | After ... < ... | | +| test.rs:218:13:218:18 | After ... < ... | test.rs:218:13:218:19 | After ExprStmt | | +| test.rs:218:13:218:18 | Before ... < ... | test.rs:218:13:218:13 | a | | +| test.rs:218:13:218:19 | After ExprStmt | test.rs:214:18:219:9 | After { ... } | | +| test.rs:218:13:218:19 | ExprStmt | test.rs:218:13:218:18 | Before ... < ... | | | test.rs:218:17:218:18 | 10 | test.rs:218:13:218:18 | ... < ... | | -| test.rs:219:12:221:9 | { ... } | test.rs:214:9:223:9 | if ... {...} else {...} | | -| test.rs:220:13:220:13 | 1 | test.rs:219:12:221:9 | { ... } | | -| test.rs:221:16:223:9 | { ... } | test.rs:214:9:223:9 | if ... {...} else {...} | | -| test.rs:222:13:222:13 | 0 | test.rs:221:16:223:9 | { ... } | | -| test.rs:226:5:237:5 | enter fn test_if_loop2 | test.rs:226:22:226:22 | a | | -| test.rs:226:5:237:5 | exit fn test_if_loop2 (normal) | test.rs:226:5:237:5 | exit fn test_if_loop2 | | +| test.rs:219:12:221:9 | After { ... } | test.rs:214:9:223:9 | After if ... {...} else {...} | | +| test.rs:219:12:221:9 | { ... } | test.rs:220:13:220:13 | 1 | | +| test.rs:220:13:220:13 | 1 | test.rs:219:12:221:9 | After { ... } | | +| test.rs:221:16:223:9 | After { ... } | test.rs:214:9:223:9 | After if ... {...} else {...} | | +| test.rs:221:16:223:9 | { ... } | test.rs:222:13:222:13 | 0 | | +| test.rs:222:13:222:13 | 0 | test.rs:221:16:223:9 | After { ... } | | +| test.rs:226:5:237:5 | Entry | test.rs:226:22:226:27 | Before ...: i64 | | +| test.rs:226:5:237:5 | Normal Exit | test.rs:226:5:237:5 | Exit | | +| test.rs:226:22:226:22 | After a [match] | test.rs:226:22:226:27 | ...: i64 | | +| test.rs:226:22:226:22 | Before a | test.rs:226:22:226:22 | a | | +| test.rs:226:22:226:22 | a | test.rs:226:22:226:22 | After a [match] | match | | test.rs:226:22:226:22 | a | test.rs:226:22:226:22 | a | | -| test.rs:226:22:226:22 | a | test.rs:226:22:226:27 | ...: i64 | match | -| test.rs:226:22:226:27 | ...: i64 | test.rs:228:13:230:14 | ExprStmt | | -| test.rs:226:37:237:5 | { ... } | test.rs:226:5:237:5 | exit fn test_if_loop2 (normal) | | -| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:226:37:237:5 | { ... } | | -| test.rs:227:13:232:9 | [boolean(false)] 'label: loop { ... } | test.rs:235:13:235:13 | 0 | false | -| test.rs:227:13:232:9 | [boolean(true)] 'label: loop { ... } | test.rs:233:13:233:13 | 1 | true | +| test.rs:226:22:226:27 | ...: i64 | test.rs:226:22:226:27 | After ...: i64 | | +| test.rs:226:22:226:27 | After ...: i64 | test.rs:226:37:237:5 | { ... } | | +| test.rs:226:22:226:27 | Before ...: i64 | test.rs:226:22:226:22 | Before a | | +| test.rs:226:37:237:5 | After { ... } | test.rs:226:5:237:5 | Normal Exit | | +| test.rs:226:37:237:5 | { ... } | test.rs:227:9:236:9 | if ... {...} else {...} | | +| test.rs:227:9:236:9 | After if ... {...} else {...} | test.rs:226:37:237:5 | After { ... } | | +| test.rs:227:9:236:9 | if ... {...} else {...} | test.rs:227:13:232:9 | 'label: loop { ... } | | +| test.rs:227:13:232:9 | 'label: loop { ... } | test.rs:227:26:232:9 | { ... } | | +| test.rs:227:13:232:9 | After 'label: loop { ... } [false] | test.rs:234:16:236:9 | { ... } | | +| test.rs:227:13:232:9 | After 'label: loop { ... } [true] | test.rs:232:12:234:9 | { ... } | | +| test.rs:227:13:232:9 | [LoopHeader] 'label: loop { ... } | test.rs:227:26:232:9 | { ... } | | +| test.rs:227:26:232:9 | After { ... } | test.rs:227:13:232:9 | [LoopHeader] 'label: loop { ... } | | | test.rs:227:26:232:9 | { ... } | test.rs:228:13:230:14 | ExprStmt | | -| test.rs:228:13:230:13 | if ... {...} | test.rs:231:13:231:19 | ExprStmt | | -| test.rs:228:13:230:14 | ExprStmt | test.rs:228:16:228:16 | a | | +| test.rs:228:13:230:13 | After if ... {...} | test.rs:228:13:230:14 | After ExprStmt | | +| test.rs:228:13:230:13 | if ... {...} | test.rs:228:16:228:20 | Before ... > ... | | +| test.rs:228:13:230:14 | After ExprStmt | test.rs:231:13:231:19 | ExprStmt | | +| test.rs:228:13:230:14 | ExprStmt | test.rs:228:13:230:13 | if ... {...} | | | test.rs:228:16:228:16 | a | test.rs:228:20:228:20 | 0 | | -| test.rs:228:16:228:20 | ... > ... | test.rs:228:13:230:13 | if ... {...} | false | -| test.rs:228:16:228:20 | ... > ... | test.rs:229:17:229:36 | ExprStmt | true | +| test.rs:228:16:228:20 | ... > ... | test.rs:228:16:228:20 | After ... > ... [false] | false | +| test.rs:228:16:228:20 | ... > ... | test.rs:228:16:228:20 | After ... > ... [true] | true | +| test.rs:228:16:228:20 | After ... > ... [false] | test.rs:228:13:230:13 | After if ... {...} | | +| test.rs:228:16:228:20 | After ... > ... [true] | test.rs:228:22:230:13 | { ... } | | +| test.rs:228:16:228:20 | Before ... > ... | test.rs:228:16:228:16 | a | | | test.rs:228:20:228:20 | 0 | test.rs:228:16:228:20 | ... > ... | | -| test.rs:229:17:229:35 | [boolean(false)] break 'label ... | test.rs:227:13:232:9 | [boolean(false)] 'label: loop { ... } | break | -| test.rs:229:17:229:35 | [boolean(true)] break 'label ... | test.rs:227:13:232:9 | [boolean(true)] 'label: loop { ... } | break | -| test.rs:229:17:229:36 | ExprStmt | test.rs:229:30:229:30 | a | | +| test.rs:228:22:230:13 | { ... } | test.rs:229:17:229:36 | ExprStmt | | +| test.rs:229:17:229:35 | [break-false] break 'label ... | test.rs:227:13:232:9 | After 'label: loop { ... } [false] | break | +| test.rs:229:17:229:35 | [break-true] break 'label ... | test.rs:227:13:232:9 | After 'label: loop { ... } [true] | break | +| test.rs:229:17:229:35 | break 'label ... | test.rs:229:30:229:35 | Before ... > ... | | +| test.rs:229:17:229:36 | ExprStmt | test.rs:229:17:229:35 | break 'label ... | | | test.rs:229:30:229:30 | a | test.rs:229:34:229:35 | 10 | | -| test.rs:229:30:229:35 | ... > ... | test.rs:229:17:229:35 | [boolean(false)] break 'label ... | false | -| test.rs:229:30:229:35 | ... > ... | test.rs:229:17:229:35 | [boolean(true)] break 'label ... | true | +| test.rs:229:30:229:35 | ... > ... | test.rs:229:30:229:35 | After ... > ... [false] | false | +| test.rs:229:30:229:35 | ... > ... | test.rs:229:30:229:35 | After ... > ... [true] | true | +| test.rs:229:30:229:35 | After ... > ... [false] | test.rs:229:17:229:35 | [break-false] break 'label ... | | +| test.rs:229:30:229:35 | After ... > ... [true] | test.rs:229:17:229:35 | [break-true] break 'label ... | | +| test.rs:229:30:229:35 | Before ... > ... | test.rs:229:30:229:30 | a | | | test.rs:229:34:229:35 | 10 | test.rs:229:30:229:35 | ... > ... | | | test.rs:231:13:231:13 | a | test.rs:231:17:231:18 | 10 | | -| test.rs:231:13:231:18 | ... < ... | test.rs:227:26:232:9 | { ... } | | -| test.rs:231:13:231:19 | ExprStmt | test.rs:231:13:231:13 | a | | +| test.rs:231:13:231:18 | ... < ... | test.rs:231:13:231:18 | After ... < ... | | +| test.rs:231:13:231:18 | After ... < ... | test.rs:231:13:231:19 | After ExprStmt | | +| test.rs:231:13:231:18 | Before ... < ... | test.rs:231:13:231:13 | a | | +| test.rs:231:13:231:19 | After ExprStmt | test.rs:227:26:232:9 | After { ... } | | +| test.rs:231:13:231:19 | ExprStmt | test.rs:231:13:231:18 | Before ... < ... | | | test.rs:231:17:231:18 | 10 | test.rs:231:13:231:18 | ... < ... | | -| test.rs:232:12:234:9 | { ... } | test.rs:227:9:236:9 | if ... {...} else {...} | | -| test.rs:233:13:233:13 | 1 | test.rs:232:12:234:9 | { ... } | | -| test.rs:234:16:236:9 | { ... } | test.rs:227:9:236:9 | if ... {...} else {...} | | -| test.rs:235:13:235:13 | 0 | test.rs:234:16:236:9 | { ... } | | -| test.rs:239:5:247:5 | enter fn test_labelled_block | test.rs:239:28:239:28 | a | | -| test.rs:239:5:247:5 | exit fn test_labelled_block (normal) | test.rs:239:5:247:5 | exit fn test_labelled_block | | +| test.rs:232:12:234:9 | After { ... } | test.rs:227:9:236:9 | After if ... {...} else {...} | | +| test.rs:232:12:234:9 | { ... } | test.rs:233:13:233:13 | 1 | | +| test.rs:233:13:233:13 | 1 | test.rs:232:12:234:9 | After { ... } | | +| test.rs:234:16:236:9 | After { ... } | test.rs:227:9:236:9 | After if ... {...} else {...} | | +| test.rs:234:16:236:9 | { ... } | test.rs:235:13:235:13 | 0 | | +| test.rs:235:13:235:13 | 0 | test.rs:234:16:236:9 | After { ... } | | +| test.rs:239:5:247:5 | Entry | test.rs:239:28:239:33 | Before ...: i64 | | +| test.rs:239:5:247:5 | Normal Exit | test.rs:239:5:247:5 | Exit | | +| test.rs:239:28:239:28 | After a [match] | test.rs:239:28:239:33 | ...: i64 | | +| test.rs:239:28:239:28 | Before a | test.rs:239:28:239:28 | a | | +| test.rs:239:28:239:28 | a | test.rs:239:28:239:28 | After a [match] | match | | test.rs:239:28:239:28 | a | test.rs:239:28:239:28 | a | | -| test.rs:239:28:239:28 | a | test.rs:239:28:239:33 | ...: i64 | match | -| test.rs:239:28:239:33 | ...: i64 | test.rs:241:13:241:31 | ExprStmt | | -| test.rs:239:43:247:5 | { ... } | test.rs:239:5:247:5 | exit fn test_labelled_block (normal) | | -| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:239:43:247:5 | { ... } | | -| test.rs:240:13:242:9 | [boolean(false)] 'block: { ... } | test.rs:245:13:245:13 | 0 | false | -| test.rs:240:13:242:9 | [boolean(true)] 'block: { ... } | test.rs:243:13:243:13 | 1 | true | -| test.rs:241:13:241:30 | [boolean(false)] break 'block ... | test.rs:240:13:242:9 | [boolean(false)] 'block: { ... } | break | -| test.rs:241:13:241:30 | [boolean(true)] break 'block ... | test.rs:240:13:242:9 | [boolean(true)] 'block: { ... } | break | -| test.rs:241:13:241:31 | ExprStmt | test.rs:241:26:241:26 | a | | +| test.rs:239:28:239:33 | ...: i64 | test.rs:239:28:239:33 | After ...: i64 | | +| test.rs:239:28:239:33 | After ...: i64 | test.rs:239:43:247:5 | { ... } | | +| test.rs:239:28:239:33 | Before ...: i64 | test.rs:239:28:239:28 | Before a | | +| test.rs:239:43:247:5 | After { ... } | test.rs:239:5:247:5 | Normal Exit | | +| test.rs:239:43:247:5 | { ... } | test.rs:240:9:246:9 | if ... {...} else {...} | | +| test.rs:240:9:246:9 | After if ... {...} else {...} | test.rs:239:43:247:5 | After { ... } | | +| test.rs:240:9:246:9 | if ... {...} else {...} | test.rs:240:13:242:9 | 'block: { ... } | | +| test.rs:240:13:242:9 | 'block: { ... } | test.rs:241:13:241:31 | ExprStmt | | +| test.rs:240:13:242:9 | After 'block: { ... } [false] | test.rs:244:16:246:9 | { ... } | | +| test.rs:240:13:242:9 | After 'block: { ... } [true] | test.rs:242:12:244:9 | { ... } | | +| test.rs:241:13:241:30 | [break-false] break 'block ... | test.rs:240:13:242:9 | After 'block: { ... } [false] | break | +| test.rs:241:13:241:30 | [break-true] break 'block ... | test.rs:240:13:242:9 | After 'block: { ... } [true] | break | +| test.rs:241:13:241:30 | break 'block ... | test.rs:241:26:241:30 | Before ... > ... | | +| test.rs:241:13:241:31 | ExprStmt | test.rs:241:13:241:30 | break 'block ... | | | test.rs:241:26:241:26 | a | test.rs:241:30:241:30 | 0 | | -| test.rs:241:26:241:30 | ... > ... | test.rs:241:13:241:30 | [boolean(false)] break 'block ... | false | -| test.rs:241:26:241:30 | ... > ... | test.rs:241:13:241:30 | [boolean(true)] break 'block ... | true | +| test.rs:241:26:241:30 | ... > ... | test.rs:241:26:241:30 | After ... > ... [false] | false | +| test.rs:241:26:241:30 | ... > ... | test.rs:241:26:241:30 | After ... > ... [true] | true | +| test.rs:241:26:241:30 | After ... > ... [false] | test.rs:241:13:241:30 | [break-false] break 'block ... | | +| test.rs:241:26:241:30 | After ... > ... [true] | test.rs:241:13:241:30 | [break-true] break 'block ... | | +| test.rs:241:26:241:30 | Before ... > ... | test.rs:241:26:241:26 | a | | | test.rs:241:30:241:30 | 0 | test.rs:241:26:241:30 | ... > ... | | -| test.rs:242:12:244:9 | { ... } | test.rs:240:9:246:9 | if ... {...} else {...} | | -| test.rs:243:13:243:13 | 1 | test.rs:242:12:244:9 | { ... } | | -| test.rs:244:16:246:9 | { ... } | test.rs:240:9:246:9 | if ... {...} else {...} | | -| test.rs:245:13:245:13 | 0 | test.rs:244:16:246:9 | { ... } | | -| test.rs:252:5:255:5 | enter fn test_and_operator | test.rs:252:30:252:30 | a | | -| test.rs:252:5:255:5 | exit fn test_and_operator (normal) | test.rs:252:5:255:5 | exit fn test_and_operator | | +| test.rs:242:12:244:9 | After { ... } | test.rs:240:9:246:9 | After if ... {...} else {...} | | +| test.rs:242:12:244:9 | { ... } | test.rs:243:13:243:13 | 1 | | +| test.rs:243:13:243:13 | 1 | test.rs:242:12:244:9 | After { ... } | | +| test.rs:244:16:246:9 | After { ... } | test.rs:240:9:246:9 | After if ... {...} else {...} | | +| test.rs:244:16:246:9 | { ... } | test.rs:245:13:245:13 | 0 | | +| test.rs:245:13:245:13 | 0 | test.rs:244:16:246:9 | After { ... } | | +| test.rs:252:5:255:5 | Entry | test.rs:252:30:252:36 | Before ...: bool | | +| test.rs:252:5:255:5 | Normal Exit | test.rs:252:5:255:5 | Exit | | +| test.rs:252:30:252:30 | After a [match] | test.rs:252:30:252:36 | ...: bool | | +| test.rs:252:30:252:30 | Before a | test.rs:252:30:252:30 | a | | +| test.rs:252:30:252:30 | a | test.rs:252:30:252:30 | After a [match] | match | | test.rs:252:30:252:30 | a | test.rs:252:30:252:30 | a | | -| test.rs:252:30:252:30 | a | test.rs:252:30:252:36 | ...: bool | match | -| test.rs:252:30:252:36 | ...: bool | test.rs:252:39:252:39 | b | | +| test.rs:252:30:252:36 | ...: bool | test.rs:252:30:252:36 | After ...: bool | | +| test.rs:252:30:252:36 | After ...: bool | test.rs:252:39:252:45 | Before ...: bool | | +| test.rs:252:30:252:36 | Before ...: bool | test.rs:252:30:252:30 | Before a | | +| test.rs:252:39:252:39 | After b [match] | test.rs:252:39:252:45 | ...: bool | | +| test.rs:252:39:252:39 | Before b | test.rs:252:39:252:39 | b | | +| test.rs:252:39:252:39 | b | test.rs:252:39:252:39 | After b [match] | match | | test.rs:252:39:252:39 | b | test.rs:252:39:252:39 | b | | -| test.rs:252:39:252:39 | b | test.rs:252:39:252:45 | ...: bool | match | -| test.rs:252:39:252:45 | ...: bool | test.rs:252:48:252:48 | c | | +| test.rs:252:39:252:45 | ...: bool | test.rs:252:39:252:45 | After ...: bool | | +| test.rs:252:39:252:45 | After ...: bool | test.rs:252:48:252:54 | Before ...: bool | | +| test.rs:252:39:252:45 | Before ...: bool | test.rs:252:39:252:39 | Before b | | +| test.rs:252:48:252:48 | After c [match] | test.rs:252:48:252:54 | ...: bool | | +| test.rs:252:48:252:48 | Before c | test.rs:252:48:252:48 | c | | +| test.rs:252:48:252:48 | c | test.rs:252:48:252:48 | After c [match] | match | | test.rs:252:48:252:48 | c | test.rs:252:48:252:48 | c | | -| test.rs:252:48:252:48 | c | test.rs:252:48:252:54 | ...: bool | match | -| test.rs:252:48:252:54 | ...: bool | test.rs:253:9:253:28 | let ... = ... | | -| test.rs:252:65:255:5 | { ... } | test.rs:252:5:255:5 | exit fn test_and_operator (normal) | | -| test.rs:253:9:253:28 | let ... = ... | test.rs:253:17:253:17 | a | | +| test.rs:252:48:252:54 | ...: bool | test.rs:252:48:252:54 | After ...: bool | | +| test.rs:252:48:252:54 | After ...: bool | test.rs:252:65:255:5 | { ... } | | +| test.rs:252:48:252:54 | Before ...: bool | test.rs:252:48:252:48 | Before c | | +| test.rs:252:65:255:5 | After { ... } | test.rs:252:5:255:5 | Normal Exit | | +| test.rs:252:65:255:5 | { ... } | test.rs:253:9:253:28 | let ... = ... | | +| test.rs:253:9:253:28 | After let ... = ... | test.rs:254:9:254:9 | d | | +| test.rs:253:9:253:28 | let ... = ... | test.rs:253:17:253:27 | ... && ... | | +| test.rs:253:13:253:13 | After d [match] | test.rs:253:9:253:28 | After let ... = ... | | +| test.rs:253:13:253:13 | Before d | test.rs:253:13:253:13 | d | | +| test.rs:253:13:253:13 | d | test.rs:253:13:253:13 | After d [match] | match | | test.rs:253:13:253:13 | d | test.rs:253:13:253:13 | d | | -| test.rs:253:13:253:13 | d | test.rs:254:9:254:9 | d | match | -| test.rs:253:17:253:17 | a | test.rs:253:17:253:22 | [boolean(false)] ... && ... | false | -| test.rs:253:17:253:17 | a | test.rs:253:22:253:22 | b | true | -| test.rs:253:17:253:22 | [boolean(false)] ... && ... | test.rs:253:17:253:27 | ... && ... | false | -| test.rs:253:17:253:22 | [boolean(true)] ... && ... | test.rs:253:27:253:27 | c | true | -| test.rs:253:17:253:27 | ... && ... | test.rs:253:13:253:13 | d | | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(false)] ... && ... | false | -| test.rs:253:22:253:22 | b | test.rs:253:17:253:22 | [boolean(true)] ... && ... | true | -| test.rs:253:27:253:27 | c | test.rs:253:17:253:27 | ... && ... | | -| test.rs:254:9:254:9 | d | test.rs:252:65:255:5 | { ... } | | -| test.rs:257:5:260:5 | enter fn test_or_operator | test.rs:257:25:257:25 | a | | -| test.rs:257:5:260:5 | exit fn test_or_operator (normal) | test.rs:257:5:260:5 | exit fn test_or_operator | | +| test.rs:253:17:253:17 | After a [false] | test.rs:253:17:253:22 | After ... && ... [false] | false | +| test.rs:253:17:253:17 | After a [true] | test.rs:253:22:253:22 | b | | +| test.rs:253:17:253:17 | a | test.rs:253:17:253:17 | After a [false] | false | +| test.rs:253:17:253:17 | a | test.rs:253:17:253:17 | After a [true] | true | +| test.rs:253:17:253:22 | ... && ... | test.rs:253:17:253:17 | a | | +| test.rs:253:17:253:22 | After ... && ... [false] | test.rs:253:17:253:27 | After ... && ... | | +| test.rs:253:17:253:22 | After ... && ... [true] | test.rs:253:27:253:27 | c | | +| test.rs:253:17:253:27 | ... && ... | test.rs:253:17:253:22 | ... && ... | | +| test.rs:253:17:253:27 | After ... && ... | test.rs:253:13:253:13 | Before d | | +| test.rs:253:22:253:22 | After b [false] | test.rs:253:17:253:22 | After ... && ... [false] | false | +| test.rs:253:22:253:22 | After b [true] | test.rs:253:17:253:22 | After ... && ... [true] | true | +| test.rs:253:22:253:22 | b | test.rs:253:22:253:22 | After b [false] | false | +| test.rs:253:22:253:22 | b | test.rs:253:22:253:22 | After b [true] | true | +| test.rs:253:27:253:27 | c | test.rs:253:17:253:27 | After ... && ... | | +| test.rs:254:9:254:9 | d | test.rs:252:65:255:5 | After { ... } | | +| test.rs:257:5:260:5 | Entry | test.rs:257:25:257:31 | Before ...: bool | | +| test.rs:257:5:260:5 | Normal Exit | test.rs:257:5:260:5 | Exit | | +| test.rs:257:25:257:25 | After a [match] | test.rs:257:25:257:31 | ...: bool | | +| test.rs:257:25:257:25 | Before a | test.rs:257:25:257:25 | a | | +| test.rs:257:25:257:25 | a | test.rs:257:25:257:25 | After a [match] | match | | test.rs:257:25:257:25 | a | test.rs:257:25:257:25 | a | | -| test.rs:257:25:257:25 | a | test.rs:257:25:257:31 | ...: bool | match | -| test.rs:257:25:257:31 | ...: bool | test.rs:257:34:257:34 | b | | +| test.rs:257:25:257:31 | ...: bool | test.rs:257:25:257:31 | After ...: bool | | +| test.rs:257:25:257:31 | After ...: bool | test.rs:257:34:257:40 | Before ...: bool | | +| test.rs:257:25:257:31 | Before ...: bool | test.rs:257:25:257:25 | Before a | | +| test.rs:257:34:257:34 | After b [match] | test.rs:257:34:257:40 | ...: bool | | +| test.rs:257:34:257:34 | Before b | test.rs:257:34:257:34 | b | | +| test.rs:257:34:257:34 | b | test.rs:257:34:257:34 | After b [match] | match | | test.rs:257:34:257:34 | b | test.rs:257:34:257:34 | b | | -| test.rs:257:34:257:34 | b | test.rs:257:34:257:40 | ...: bool | match | -| test.rs:257:34:257:40 | ...: bool | test.rs:257:43:257:43 | c | | +| test.rs:257:34:257:40 | ...: bool | test.rs:257:34:257:40 | After ...: bool | | +| test.rs:257:34:257:40 | After ...: bool | test.rs:257:43:257:49 | Before ...: bool | | +| test.rs:257:34:257:40 | Before ...: bool | test.rs:257:34:257:34 | Before b | | +| test.rs:257:43:257:43 | After c [match] | test.rs:257:43:257:49 | ...: bool | | +| test.rs:257:43:257:43 | Before c | test.rs:257:43:257:43 | c | | +| test.rs:257:43:257:43 | c | test.rs:257:43:257:43 | After c [match] | match | | test.rs:257:43:257:43 | c | test.rs:257:43:257:43 | c | | -| test.rs:257:43:257:43 | c | test.rs:257:43:257:49 | ...: bool | match | -| test.rs:257:43:257:49 | ...: bool | test.rs:258:9:258:28 | let ... = ... | | -| test.rs:257:60:260:5 | { ... } | test.rs:257:5:260:5 | exit fn test_or_operator (normal) | | -| test.rs:258:9:258:28 | let ... = ... | test.rs:258:17:258:17 | a | | +| test.rs:257:43:257:49 | ...: bool | test.rs:257:43:257:49 | After ...: bool | | +| test.rs:257:43:257:49 | After ...: bool | test.rs:257:60:260:5 | { ... } | | +| test.rs:257:43:257:49 | Before ...: bool | test.rs:257:43:257:43 | Before c | | +| test.rs:257:60:260:5 | After { ... } | test.rs:257:5:260:5 | Normal Exit | | +| test.rs:257:60:260:5 | { ... } | test.rs:258:9:258:28 | let ... = ... | | +| test.rs:258:9:258:28 | After let ... = ... | test.rs:259:9:259:9 | d | | +| test.rs:258:9:258:28 | let ... = ... | test.rs:258:17:258:27 | ... \|\| ... | | +| test.rs:258:13:258:13 | After d [match] | test.rs:258:9:258:28 | After let ... = ... | | +| test.rs:258:13:258:13 | Before d | test.rs:258:13:258:13 | d | | +| test.rs:258:13:258:13 | d | test.rs:258:13:258:13 | After d [match] | match | | test.rs:258:13:258:13 | d | test.rs:258:13:258:13 | d | | -| test.rs:258:13:258:13 | d | test.rs:259:9:259:9 | d | match | -| test.rs:258:17:258:17 | a | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:258:17:258:17 | a | test.rs:258:22:258:22 | b | false | -| test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | test.rs:258:27:258:27 | c | false | -| test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | test.rs:258:17:258:27 | ... \|\| ... | true | -| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:13:258:13 | d | | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:258:22:258:22 | b | test.rs:258:17:258:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:258:27:258:27 | c | test.rs:258:17:258:27 | ... \|\| ... | | -| test.rs:259:9:259:9 | d | test.rs:257:60:260:5 | { ... } | | -| test.rs:262:5:265:5 | enter fn test_or_operator_2 | test.rs:262:27:262:27 | a | | -| test.rs:262:5:265:5 | exit fn test_or_operator_2 (normal) | test.rs:262:5:265:5 | exit fn test_or_operator_2 | | +| test.rs:258:17:258:17 | After a [false] | test.rs:258:22:258:22 | b | | +| test.rs:258:17:258:17 | After a [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | true | +| test.rs:258:17:258:17 | a | test.rs:258:17:258:17 | After a [false] | false | +| test.rs:258:17:258:17 | a | test.rs:258:17:258:17 | After a [true] | true | +| test.rs:258:17:258:22 | ... \|\| ... | test.rs:258:17:258:17 | a | | +| test.rs:258:17:258:22 | After ... \|\| ... [false] | test.rs:258:27:258:27 | c | | +| test.rs:258:17:258:22 | After ... \|\| ... [true] | test.rs:258:17:258:27 | After ... \|\| ... | | +| test.rs:258:17:258:27 | ... \|\| ... | test.rs:258:17:258:22 | ... \|\| ... | | +| test.rs:258:17:258:27 | After ... \|\| ... | test.rs:258:13:258:13 | Before d | | +| test.rs:258:22:258:22 | After b [false] | test.rs:258:17:258:22 | After ... \|\| ... [false] | false | +| test.rs:258:22:258:22 | After b [true] | test.rs:258:17:258:22 | After ... \|\| ... [true] | true | +| test.rs:258:22:258:22 | b | test.rs:258:22:258:22 | After b [false] | false | +| test.rs:258:22:258:22 | b | test.rs:258:22:258:22 | After b [true] | true | +| test.rs:258:27:258:27 | c | test.rs:258:17:258:27 | After ... \|\| ... | | +| test.rs:259:9:259:9 | d | test.rs:257:60:260:5 | After { ... } | | +| test.rs:262:5:265:5 | Entry | test.rs:262:27:262:33 | Before ...: bool | | +| test.rs:262:5:265:5 | Normal Exit | test.rs:262:5:265:5 | Exit | | +| test.rs:262:27:262:27 | After a [match] | test.rs:262:27:262:33 | ...: bool | | +| test.rs:262:27:262:27 | Before a | test.rs:262:27:262:27 | a | | +| test.rs:262:27:262:27 | a | test.rs:262:27:262:27 | After a [match] | match | | test.rs:262:27:262:27 | a | test.rs:262:27:262:27 | a | | -| test.rs:262:27:262:27 | a | test.rs:262:27:262:33 | ...: bool | match | -| test.rs:262:27:262:33 | ...: bool | test.rs:262:36:262:36 | b | | +| test.rs:262:27:262:33 | ...: bool | test.rs:262:27:262:33 | After ...: bool | | +| test.rs:262:27:262:33 | After ...: bool | test.rs:262:36:262:41 | Before ...: i64 | | +| test.rs:262:27:262:33 | Before ...: bool | test.rs:262:27:262:27 | Before a | | +| test.rs:262:36:262:36 | After b [match] | test.rs:262:36:262:41 | ...: i64 | | +| test.rs:262:36:262:36 | Before b | test.rs:262:36:262:36 | b | | +| test.rs:262:36:262:36 | b | test.rs:262:36:262:36 | After b [match] | match | | test.rs:262:36:262:36 | b | test.rs:262:36:262:36 | b | | -| test.rs:262:36:262:36 | b | test.rs:262:36:262:41 | ...: i64 | match | -| test.rs:262:36:262:41 | ...: i64 | test.rs:262:44:262:44 | c | | +| test.rs:262:36:262:41 | ...: i64 | test.rs:262:36:262:41 | After ...: i64 | | +| test.rs:262:36:262:41 | After ...: i64 | test.rs:262:44:262:50 | Before ...: bool | | +| test.rs:262:36:262:41 | Before ...: i64 | test.rs:262:36:262:36 | Before b | | +| test.rs:262:44:262:44 | After c [match] | test.rs:262:44:262:50 | ...: bool | | +| test.rs:262:44:262:44 | Before c | test.rs:262:44:262:44 | c | | +| test.rs:262:44:262:44 | c | test.rs:262:44:262:44 | After c [match] | match | | test.rs:262:44:262:44 | c | test.rs:262:44:262:44 | c | | -| test.rs:262:44:262:44 | c | test.rs:262:44:262:50 | ...: bool | match | -| test.rs:262:44:262:50 | ...: bool | test.rs:263:9:263:36 | let ... = ... | | -| test.rs:262:61:265:5 | { ... } | test.rs:262:5:265:5 | exit fn test_or_operator_2 (normal) | | -| test.rs:263:9:263:36 | let ... = ... | test.rs:263:17:263:17 | a | | +| test.rs:262:44:262:50 | ...: bool | test.rs:262:44:262:50 | After ...: bool | | +| test.rs:262:44:262:50 | After ...: bool | test.rs:262:61:265:5 | { ... } | | +| test.rs:262:44:262:50 | Before ...: bool | test.rs:262:44:262:44 | Before c | | +| test.rs:262:61:265:5 | After { ... } | test.rs:262:5:265:5 | Normal Exit | | +| test.rs:262:61:265:5 | { ... } | test.rs:263:9:263:36 | let ... = ... | | +| test.rs:263:9:263:36 | After let ... = ... | test.rs:264:9:264:9 | d | | +| test.rs:263:9:263:36 | let ... = ... | test.rs:263:17:263:35 | ... \|\| ... | | +| test.rs:263:13:263:13 | After d [match] | test.rs:263:9:263:36 | After let ... = ... | | +| test.rs:263:13:263:13 | Before d | test.rs:263:13:263:13 | d | | +| test.rs:263:13:263:13 | d | test.rs:263:13:263:13 | After d [match] | match | | test.rs:263:13:263:13 | d | test.rs:263:13:263:13 | d | | -| test.rs:263:13:263:13 | d | test.rs:264:9:264:9 | d | match | -| test.rs:263:17:263:17 | a | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | true | -| test.rs:263:17:263:17 | a | test.rs:263:23:263:23 | b | false | -| test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | test.rs:263:35:263:35 | c | false | -| test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | test.rs:263:17:263:35 | ... \|\| ... | true | -| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:13:263:13 | d | | +| test.rs:263:17:263:17 | After a [false] | test.rs:263:23:263:29 | Before ... == ... | | +| test.rs:263:17:263:17 | After a [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | true | +| test.rs:263:17:263:17 | a | test.rs:263:17:263:17 | After a [false] | false | +| test.rs:263:17:263:17 | a | test.rs:263:17:263:17 | After a [true] | true | +| test.rs:263:17:263:30 | ... \|\| ... | test.rs:263:17:263:17 | a | | +| test.rs:263:17:263:30 | After ... \|\| ... [false] | test.rs:263:35:263:35 | c | | +| test.rs:263:17:263:30 | After ... \|\| ... [true] | test.rs:263:17:263:35 | After ... \|\| ... | | +| test.rs:263:17:263:35 | ... \|\| ... | test.rs:263:17:263:30 | ... \|\| ... | | +| test.rs:263:17:263:35 | After ... \|\| ... | test.rs:263:13:263:13 | Before d | | | test.rs:263:23:263:23 | b | test.rs:263:28:263:29 | 28 | | -| test.rs:263:23:263:29 | ... == ... | test.rs:263:17:263:30 | [boolean(false)] ... \|\| ... | false | -| test.rs:263:23:263:29 | ... == ... | test.rs:263:17:263:30 | [boolean(true)] ... \|\| ... | true | +| test.rs:263:23:263:29 | ... == ... | test.rs:263:23:263:29 | After ... == ... [false] | false | +| test.rs:263:23:263:29 | ... == ... | test.rs:263:23:263:29 | After ... == ... [true] | true | +| test.rs:263:23:263:29 | After ... == ... [false] | test.rs:263:17:263:30 | After ... \|\| ... [false] | false | +| test.rs:263:23:263:29 | After ... == ... [true] | test.rs:263:17:263:30 | After ... \|\| ... [true] | true | +| test.rs:263:23:263:29 | Before ... == ... | test.rs:263:23:263:23 | b | | | test.rs:263:28:263:29 | 28 | test.rs:263:23:263:29 | ... == ... | | -| test.rs:263:35:263:35 | c | test.rs:263:17:263:35 | ... \|\| ... | | -| test.rs:264:9:264:9 | d | test.rs:262:61:265:5 | { ... } | | -| test.rs:267:5:270:5 | enter fn test_not_operator | test.rs:267:26:267:26 | a | | -| test.rs:267:5:270:5 | exit fn test_not_operator (normal) | test.rs:267:5:270:5 | exit fn test_not_operator | | +| test.rs:263:35:263:35 | c | test.rs:263:17:263:35 | After ... \|\| ... | | +| test.rs:264:9:264:9 | d | test.rs:262:61:265:5 | After { ... } | | +| test.rs:267:5:270:5 | Entry | test.rs:267:26:267:32 | Before ...: bool | | +| test.rs:267:5:270:5 | Normal Exit | test.rs:267:5:270:5 | Exit | | +| test.rs:267:26:267:26 | After a [match] | test.rs:267:26:267:32 | ...: bool | | +| test.rs:267:26:267:26 | Before a | test.rs:267:26:267:26 | a | | +| test.rs:267:26:267:26 | a | test.rs:267:26:267:26 | After a [match] | match | | test.rs:267:26:267:26 | a | test.rs:267:26:267:26 | a | | -| test.rs:267:26:267:26 | a | test.rs:267:26:267:32 | ...: bool | match | -| test.rs:267:26:267:32 | ...: bool | test.rs:268:9:268:19 | let ... = ... | | -| test.rs:267:43:270:5 | { ... } | test.rs:267:5:270:5 | exit fn test_not_operator (normal) | | -| test.rs:268:9:268:19 | let ... = ... | test.rs:268:18:268:18 | a | | +| test.rs:267:26:267:32 | ...: bool | test.rs:267:26:267:32 | After ...: bool | | +| test.rs:267:26:267:32 | After ...: bool | test.rs:267:43:270:5 | { ... } | | +| test.rs:267:26:267:32 | Before ...: bool | test.rs:267:26:267:26 | Before a | | +| test.rs:267:43:270:5 | After { ... } | test.rs:267:5:270:5 | Normal Exit | | +| test.rs:267:43:270:5 | { ... } | test.rs:268:9:268:19 | let ... = ... | | +| test.rs:268:9:268:19 | After let ... = ... | test.rs:269:9:269:9 | d | | +| test.rs:268:9:268:19 | let ... = ... | test.rs:268:17:268:18 | ! ... | | +| test.rs:268:13:268:13 | After d [match] | test.rs:268:9:268:19 | After let ... = ... | | +| test.rs:268:13:268:13 | Before d | test.rs:268:13:268:13 | d | | +| test.rs:268:13:268:13 | d | test.rs:268:13:268:13 | After d [match] | match | | test.rs:268:13:268:13 | d | test.rs:268:13:268:13 | d | | -| test.rs:268:13:268:13 | d | test.rs:269:9:269:9 | d | match | -| test.rs:268:17:268:18 | ! ... | test.rs:268:13:268:13 | d | | -| test.rs:268:18:268:18 | a | test.rs:268:17:268:18 | ! ... | | -| test.rs:269:9:269:9 | d | test.rs:267:43:270:5 | { ... } | | -| test.rs:272:5:278:5 | enter fn test_if_and_operator | test.rs:272:29:272:29 | a | | -| test.rs:272:5:278:5 | exit fn test_if_and_operator (normal) | test.rs:272:5:278:5 | exit fn test_if_and_operator | | +| test.rs:268:17:268:18 | ! ... | test.rs:268:18:268:18 | a | | +| test.rs:268:17:268:18 | After ! ... | test.rs:268:13:268:13 | Before d | | +| test.rs:268:18:268:18 | a | test.rs:268:17:268:18 | After ! ... | | +| test.rs:269:9:269:9 | d | test.rs:267:43:270:5 | After { ... } | | +| test.rs:272:5:278:5 | Entry | test.rs:272:29:272:35 | Before ...: bool | | +| test.rs:272:5:278:5 | Normal Exit | test.rs:272:5:278:5 | Exit | | +| test.rs:272:29:272:29 | After a [match] | test.rs:272:29:272:35 | ...: bool | | +| test.rs:272:29:272:29 | Before a | test.rs:272:29:272:29 | a | | +| test.rs:272:29:272:29 | a | test.rs:272:29:272:29 | After a [match] | match | | test.rs:272:29:272:29 | a | test.rs:272:29:272:29 | a | | -| test.rs:272:29:272:29 | a | test.rs:272:29:272:35 | ...: bool | match | -| test.rs:272:29:272:35 | ...: bool | test.rs:272:38:272:38 | b | | +| test.rs:272:29:272:35 | ...: bool | test.rs:272:29:272:35 | After ...: bool | | +| test.rs:272:29:272:35 | After ...: bool | test.rs:272:38:272:44 | Before ...: bool | | +| test.rs:272:29:272:35 | Before ...: bool | test.rs:272:29:272:29 | Before a | | +| test.rs:272:38:272:38 | After b [match] | test.rs:272:38:272:44 | ...: bool | | +| test.rs:272:38:272:38 | Before b | test.rs:272:38:272:38 | b | | +| test.rs:272:38:272:38 | b | test.rs:272:38:272:38 | After b [match] | match | | test.rs:272:38:272:38 | b | test.rs:272:38:272:38 | b | | -| test.rs:272:38:272:38 | b | test.rs:272:38:272:44 | ...: bool | match | -| test.rs:272:38:272:44 | ...: bool | test.rs:272:47:272:47 | c | | +| test.rs:272:38:272:44 | ...: bool | test.rs:272:38:272:44 | After ...: bool | | +| test.rs:272:38:272:44 | After ...: bool | test.rs:272:47:272:53 | Before ...: bool | | +| test.rs:272:38:272:44 | Before ...: bool | test.rs:272:38:272:38 | Before b | | +| test.rs:272:47:272:47 | After c [match] | test.rs:272:47:272:53 | ...: bool | | +| test.rs:272:47:272:47 | Before c | test.rs:272:47:272:47 | c | | +| test.rs:272:47:272:47 | c | test.rs:272:47:272:47 | After c [match] | match | | test.rs:272:47:272:47 | c | test.rs:272:47:272:47 | c | | -| test.rs:272:47:272:47 | c | test.rs:272:47:272:53 | ...: bool | match | -| test.rs:272:47:272:53 | ...: bool | test.rs:273:12:273:12 | a | | -| test.rs:272:64:278:5 | { ... } | test.rs:272:5:278:5 | exit fn test_if_and_operator (normal) | | -| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:272:64:278:5 | { ... } | | -| test.rs:273:12:273:12 | a | test.rs:273:12:273:17 | [boolean(false)] ... && ... | false | -| test.rs:273:12:273:12 | a | test.rs:273:17:273:17 | b | true | -| test.rs:273:12:273:17 | [boolean(false)] ... && ... | test.rs:273:12:273:22 | [boolean(false)] ... && ... | false | -| test.rs:273:12:273:17 | [boolean(true)] ... && ... | test.rs:273:22:273:22 | c | true | -| test.rs:273:12:273:22 | [boolean(false)] ... && ... | test.rs:276:13:276:17 | false | false | -| test.rs:273:12:273:22 | [boolean(true)] ... && ... | test.rs:274:13:274:16 | true | true | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(false)] ... && ... | false | -| test.rs:273:17:273:17 | b | test.rs:273:12:273:17 | [boolean(true)] ... && ... | true | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(false)] ... && ... | false | -| test.rs:273:22:273:22 | c | test.rs:273:12:273:22 | [boolean(true)] ... && ... | true | -| test.rs:273:24:275:9 | { ... } | test.rs:273:9:277:9 | if ... {...} else {...} | | -| test.rs:274:13:274:16 | true | test.rs:273:24:275:9 | { ... } | | -| test.rs:275:16:277:9 | { ... } | test.rs:273:9:277:9 | if ... {...} else {...} | | -| test.rs:276:13:276:17 | false | test.rs:275:16:277:9 | { ... } | | -| test.rs:280:5:286:5 | enter fn test_if_or_operator | test.rs:280:28:280:28 | a | | -| test.rs:280:5:286:5 | exit fn test_if_or_operator (normal) | test.rs:280:5:286:5 | exit fn test_if_or_operator | | +| test.rs:272:47:272:53 | ...: bool | test.rs:272:47:272:53 | After ...: bool | | +| test.rs:272:47:272:53 | After ...: bool | test.rs:272:64:278:5 | { ... } | | +| test.rs:272:47:272:53 | Before ...: bool | test.rs:272:47:272:47 | Before c | | +| test.rs:272:64:278:5 | After { ... } | test.rs:272:5:278:5 | Normal Exit | | +| test.rs:272:64:278:5 | { ... } | test.rs:273:9:277:9 | if ... {...} else {...} | | +| test.rs:273:9:277:9 | After if ... {...} else {...} | test.rs:272:64:278:5 | After { ... } | | +| test.rs:273:9:277:9 | if ... {...} else {...} | test.rs:273:12:273:22 | ... && ... | | +| test.rs:273:12:273:12 | After a [false] | test.rs:273:12:273:17 | After ... && ... [false] | false | +| test.rs:273:12:273:12 | After a [true] | test.rs:273:17:273:17 | b | | +| test.rs:273:12:273:12 | a | test.rs:273:12:273:12 | After a [false] | false | +| test.rs:273:12:273:12 | a | test.rs:273:12:273:12 | After a [true] | true | +| test.rs:273:12:273:17 | ... && ... | test.rs:273:12:273:12 | a | | +| test.rs:273:12:273:17 | After ... && ... [false] | test.rs:273:12:273:22 | After ... && ... [false] | false | +| test.rs:273:12:273:17 | After ... && ... [true] | test.rs:273:22:273:22 | c | | +| test.rs:273:12:273:22 | ... && ... | test.rs:273:12:273:17 | ... && ... | | +| test.rs:273:12:273:22 | After ... && ... [false] | test.rs:275:16:277:9 | { ... } | | +| test.rs:273:12:273:22 | After ... && ... [true] | test.rs:273:24:275:9 | { ... } | | +| test.rs:273:17:273:17 | After b [false] | test.rs:273:12:273:17 | After ... && ... [false] | false | +| test.rs:273:17:273:17 | After b [true] | test.rs:273:12:273:17 | After ... && ... [true] | true | +| test.rs:273:17:273:17 | b | test.rs:273:17:273:17 | After b [false] | false | +| test.rs:273:17:273:17 | b | test.rs:273:17:273:17 | After b [true] | true | +| test.rs:273:22:273:22 | After c [false] | test.rs:273:12:273:22 | After ... && ... [false] | false | +| test.rs:273:22:273:22 | After c [true] | test.rs:273:12:273:22 | After ... && ... [true] | true | +| test.rs:273:22:273:22 | c | test.rs:273:22:273:22 | After c [false] | false | +| test.rs:273:22:273:22 | c | test.rs:273:22:273:22 | After c [true] | true | +| test.rs:273:24:275:9 | After { ... } | test.rs:273:9:277:9 | After if ... {...} else {...} | | +| test.rs:273:24:275:9 | { ... } | test.rs:274:13:274:16 | true | | +| test.rs:274:13:274:16 | true | test.rs:273:24:275:9 | After { ... } | | +| test.rs:275:16:277:9 | After { ... } | test.rs:273:9:277:9 | After if ... {...} else {...} | | +| test.rs:275:16:277:9 | { ... } | test.rs:276:13:276:17 | false | | +| test.rs:276:13:276:17 | false | test.rs:275:16:277:9 | After { ... } | | +| test.rs:280:5:286:5 | Entry | test.rs:280:28:280:34 | Before ...: bool | | +| test.rs:280:5:286:5 | Normal Exit | test.rs:280:5:286:5 | Exit | | +| test.rs:280:28:280:28 | After a [match] | test.rs:280:28:280:34 | ...: bool | | +| test.rs:280:28:280:28 | Before a | test.rs:280:28:280:28 | a | | +| test.rs:280:28:280:28 | a | test.rs:280:28:280:28 | After a [match] | match | | test.rs:280:28:280:28 | a | test.rs:280:28:280:28 | a | | -| test.rs:280:28:280:28 | a | test.rs:280:28:280:34 | ...: bool | match | -| test.rs:280:28:280:34 | ...: bool | test.rs:280:37:280:37 | b | | +| test.rs:280:28:280:34 | ...: bool | test.rs:280:28:280:34 | After ...: bool | | +| test.rs:280:28:280:34 | After ...: bool | test.rs:280:37:280:43 | Before ...: bool | | +| test.rs:280:28:280:34 | Before ...: bool | test.rs:280:28:280:28 | Before a | | +| test.rs:280:37:280:37 | After b [match] | test.rs:280:37:280:43 | ...: bool | | +| test.rs:280:37:280:37 | Before b | test.rs:280:37:280:37 | b | | +| test.rs:280:37:280:37 | b | test.rs:280:37:280:37 | After b [match] | match | | test.rs:280:37:280:37 | b | test.rs:280:37:280:37 | b | | -| test.rs:280:37:280:37 | b | test.rs:280:37:280:43 | ...: bool | match | -| test.rs:280:37:280:43 | ...: bool | test.rs:280:46:280:46 | c | | +| test.rs:280:37:280:43 | ...: bool | test.rs:280:37:280:43 | After ...: bool | | +| test.rs:280:37:280:43 | After ...: bool | test.rs:280:46:280:52 | Before ...: bool | | +| test.rs:280:37:280:43 | Before ...: bool | test.rs:280:37:280:37 | Before b | | +| test.rs:280:46:280:46 | After c [match] | test.rs:280:46:280:52 | ...: bool | | +| test.rs:280:46:280:46 | Before c | test.rs:280:46:280:46 | c | | +| test.rs:280:46:280:46 | c | test.rs:280:46:280:46 | After c [match] | match | | test.rs:280:46:280:46 | c | test.rs:280:46:280:46 | c | | -| test.rs:280:46:280:46 | c | test.rs:280:46:280:52 | ...: bool | match | -| test.rs:280:46:280:52 | ...: bool | test.rs:281:12:281:12 | a | | -| test.rs:280:63:286:5 | { ... } | test.rs:280:5:286:5 | exit fn test_if_or_operator (normal) | | -| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:280:63:286:5 | { ... } | | -| test.rs:281:12:281:12 | a | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:12:281:12 | a | test.rs:281:17:281:17 | b | false | -| test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | test.rs:281:22:281:22 | c | false | -| test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | test.rs:284:13:284:17 | false | false | -| test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | test.rs:282:13:282:16 | true | true | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:17:281:17 | b | test.rs:281:12:281:17 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(false)] ... \|\| ... | false | -| test.rs:281:22:281:22 | c | test.rs:281:12:281:22 | [boolean(true)] ... \|\| ... | true | -| test.rs:281:24:283:9 | { ... } | test.rs:281:9:285:9 | if ... {...} else {...} | | -| test.rs:282:13:282:16 | true | test.rs:281:24:283:9 | { ... } | | -| test.rs:283:16:285:9 | { ... } | test.rs:281:9:285:9 | if ... {...} else {...} | | -| test.rs:284:13:284:17 | false | test.rs:283:16:285:9 | { ... } | | -| test.rs:288:5:294:5 | enter fn test_if_not_operator | test.rs:288:29:288:29 | a | | -| test.rs:288:5:294:5 | exit fn test_if_not_operator (normal) | test.rs:288:5:294:5 | exit fn test_if_not_operator | | +| test.rs:280:46:280:52 | ...: bool | test.rs:280:46:280:52 | After ...: bool | | +| test.rs:280:46:280:52 | After ...: bool | test.rs:280:63:286:5 | { ... } | | +| test.rs:280:46:280:52 | Before ...: bool | test.rs:280:46:280:46 | Before c | | +| test.rs:280:63:286:5 | After { ... } | test.rs:280:5:286:5 | Normal Exit | | +| test.rs:280:63:286:5 | { ... } | test.rs:281:9:285:9 | if ... {...} else {...} | | +| test.rs:281:9:285:9 | After if ... {...} else {...} | test.rs:280:63:286:5 | After { ... } | | +| test.rs:281:9:285:9 | if ... {...} else {...} | test.rs:281:12:281:22 | ... \|\| ... | | +| test.rs:281:12:281:12 | After a [false] | test.rs:281:17:281:17 | b | | +| test.rs:281:12:281:12 | After a [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | true | +| test.rs:281:12:281:12 | a | test.rs:281:12:281:12 | After a [false] | false | +| test.rs:281:12:281:12 | a | test.rs:281:12:281:12 | After a [true] | true | +| test.rs:281:12:281:17 | ... \|\| ... | test.rs:281:12:281:12 | a | | +| test.rs:281:12:281:17 | After ... \|\| ... [false] | test.rs:281:22:281:22 | c | | +| test.rs:281:12:281:17 | After ... \|\| ... [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | true | +| test.rs:281:12:281:22 | ... \|\| ... | test.rs:281:12:281:17 | ... \|\| ... | | +| test.rs:281:12:281:22 | After ... \|\| ... [false] | test.rs:283:16:285:9 | { ... } | | +| test.rs:281:12:281:22 | After ... \|\| ... [true] | test.rs:281:24:283:9 | { ... } | | +| test.rs:281:17:281:17 | After b [false] | test.rs:281:12:281:17 | After ... \|\| ... [false] | false | +| test.rs:281:17:281:17 | After b [true] | test.rs:281:12:281:17 | After ... \|\| ... [true] | true | +| test.rs:281:17:281:17 | b | test.rs:281:17:281:17 | After b [false] | false | +| test.rs:281:17:281:17 | b | test.rs:281:17:281:17 | After b [true] | true | +| test.rs:281:22:281:22 | After c [false] | test.rs:281:12:281:22 | After ... \|\| ... [false] | false | +| test.rs:281:22:281:22 | After c [true] | test.rs:281:12:281:22 | After ... \|\| ... [true] | true | +| test.rs:281:22:281:22 | c | test.rs:281:22:281:22 | After c [false] | false | +| test.rs:281:22:281:22 | c | test.rs:281:22:281:22 | After c [true] | true | +| test.rs:281:24:283:9 | After { ... } | test.rs:281:9:285:9 | After if ... {...} else {...} | | +| test.rs:281:24:283:9 | { ... } | test.rs:282:13:282:16 | true | | +| test.rs:282:13:282:16 | true | test.rs:281:24:283:9 | After { ... } | | +| test.rs:283:16:285:9 | After { ... } | test.rs:281:9:285:9 | After if ... {...} else {...} | | +| test.rs:283:16:285:9 | { ... } | test.rs:284:13:284:17 | false | | +| test.rs:284:13:284:17 | false | test.rs:283:16:285:9 | After { ... } | | +| test.rs:288:5:294:5 | Entry | test.rs:288:29:288:35 | Before ...: bool | | +| test.rs:288:5:294:5 | Normal Exit | test.rs:288:5:294:5 | Exit | | +| test.rs:288:29:288:29 | After a [match] | test.rs:288:29:288:35 | ...: bool | | +| test.rs:288:29:288:29 | Before a | test.rs:288:29:288:29 | a | | +| test.rs:288:29:288:29 | a | test.rs:288:29:288:29 | After a [match] | match | | test.rs:288:29:288:29 | a | test.rs:288:29:288:29 | a | | -| test.rs:288:29:288:29 | a | test.rs:288:29:288:35 | ...: bool | match | -| test.rs:288:29:288:35 | ...: bool | test.rs:289:13:289:13 | a | | -| test.rs:288:46:294:5 | { ... } | test.rs:288:5:294:5 | exit fn test_if_not_operator (normal) | | -| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:288:46:294:5 | { ... } | | -| test.rs:289:12:289:13 | [boolean(false)] ! ... | test.rs:292:13:292:17 | false | false | -| test.rs:289:12:289:13 | [boolean(true)] ! ... | test.rs:290:13:290:16 | true | true | -| test.rs:289:13:289:13 | a | test.rs:289:12:289:13 | [boolean(false)] ! ... | true | -| test.rs:289:13:289:13 | a | test.rs:289:12:289:13 | [boolean(true)] ! ... | false | -| test.rs:289:15:291:9 | { ... } | test.rs:289:9:293:9 | if ... {...} else {...} | | -| test.rs:290:13:290:16 | true | test.rs:289:15:291:9 | { ... } | | -| test.rs:291:16:293:9 | { ... } | test.rs:289:9:293:9 | if ... {...} else {...} | | -| test.rs:292:13:292:17 | false | test.rs:291:16:293:9 | { ... } | | -| test.rs:296:5:298:5 | enter fn test_and_return | test.rs:296:24:296:24 | a | | -| test.rs:296:5:298:5 | exit fn test_and_return (normal) | test.rs:296:5:298:5 | exit fn test_and_return | | +| test.rs:288:29:288:35 | ...: bool | test.rs:288:29:288:35 | After ...: bool | | +| test.rs:288:29:288:35 | After ...: bool | test.rs:288:46:294:5 | { ... } | | +| test.rs:288:29:288:35 | Before ...: bool | test.rs:288:29:288:29 | Before a | | +| test.rs:288:46:294:5 | After { ... } | test.rs:288:5:294:5 | Normal Exit | | +| test.rs:288:46:294:5 | { ... } | test.rs:289:9:293:9 | if ... {...} else {...} | | +| test.rs:289:9:293:9 | After if ... {...} else {...} | test.rs:288:46:294:5 | After { ... } | | +| test.rs:289:9:293:9 | if ... {...} else {...} | test.rs:289:12:289:13 | ! ... | | +| test.rs:289:12:289:13 | ! ... | test.rs:289:13:289:13 | a | | +| test.rs:289:12:289:13 | After ! ... [false] | test.rs:291:16:293:9 | { ... } | | +| test.rs:289:12:289:13 | After ! ... [true] | test.rs:289:15:291:9 | { ... } | | +| test.rs:289:13:289:13 | After a [false] | test.rs:289:12:289:13 | After ! ... [true] | true | +| test.rs:289:13:289:13 | After a [true] | test.rs:289:12:289:13 | After ! ... [false] | false | +| test.rs:289:13:289:13 | a | test.rs:289:13:289:13 | After a [false] | false | +| test.rs:289:13:289:13 | a | test.rs:289:13:289:13 | After a [true] | true | +| test.rs:289:15:291:9 | After { ... } | test.rs:289:9:293:9 | After if ... {...} else {...} | | +| test.rs:289:15:291:9 | { ... } | test.rs:290:13:290:16 | true | | +| test.rs:290:13:290:16 | true | test.rs:289:15:291:9 | After { ... } | | +| test.rs:291:16:293:9 | After { ... } | test.rs:289:9:293:9 | After if ... {...} else {...} | | +| test.rs:291:16:293:9 | { ... } | test.rs:292:13:292:17 | false | | +| test.rs:292:13:292:17 | false | test.rs:291:16:293:9 | After { ... } | | +| test.rs:296:5:298:5 | Entry | test.rs:296:24:296:30 | Before ...: bool | | +| test.rs:296:5:298:5 | Normal Exit | test.rs:296:5:298:5 | Exit | | +| test.rs:296:24:296:24 | After a [match] | test.rs:296:24:296:30 | ...: bool | | +| test.rs:296:24:296:24 | Before a | test.rs:296:24:296:24 | a | | +| test.rs:296:24:296:24 | a | test.rs:296:24:296:24 | After a [match] | match | | test.rs:296:24:296:24 | a | test.rs:296:24:296:24 | a | | -| test.rs:296:24:296:24 | a | test.rs:296:24:296:30 | ...: bool | match | -| test.rs:296:24:296:30 | ...: bool | test.rs:297:9:297:20 | ExprStmt | | -| test.rs:296:33:298:5 | { ... } | test.rs:296:5:298:5 | exit fn test_and_return (normal) | | -| test.rs:297:9:297:9 | a | test.rs:297:9:297:19 | ... && ... | false | -| test.rs:297:9:297:9 | a | test.rs:297:14:297:19 | return | true | -| test.rs:297:9:297:19 | ... && ... | test.rs:296:33:298:5 | { ... } | | -| test.rs:297:9:297:20 | ExprStmt | test.rs:297:9:297:9 | a | | -| test.rs:297:14:297:19 | return | test.rs:296:5:298:5 | exit fn test_and_return (normal) | return | -| test.rs:300:5:305:5 | enter fn test_and_true | test.rs:300:22:300:22 | a | | -| test.rs:300:5:305:5 | exit fn test_and_true (normal) | test.rs:300:5:305:5 | exit fn test_and_true | | +| test.rs:296:24:296:30 | ...: bool | test.rs:296:24:296:30 | After ...: bool | | +| test.rs:296:24:296:30 | After ...: bool | test.rs:296:33:298:5 | { ... } | | +| test.rs:296:24:296:30 | Before ...: bool | test.rs:296:24:296:24 | Before a | | +| test.rs:296:33:298:5 | After { ... } | test.rs:296:5:298:5 | Normal Exit | | +| test.rs:296:33:298:5 | { ... } | test.rs:297:9:297:20 | ExprStmt | | +| test.rs:297:9:297:9 | After a [false] | test.rs:297:9:297:19 | After ... && ... | | +| test.rs:297:9:297:9 | After a [true] | test.rs:297:14:297:19 | Before return | | +| test.rs:297:9:297:9 | a | test.rs:297:9:297:9 | After a [false] | false | +| test.rs:297:9:297:9 | a | test.rs:297:9:297:9 | After a [true] | true | +| test.rs:297:9:297:19 | ... && ... | test.rs:297:9:297:9 | a | | +| test.rs:297:9:297:19 | After ... && ... | test.rs:297:9:297:20 | After ExprStmt | | +| test.rs:297:9:297:20 | After ExprStmt | test.rs:296:33:298:5 | After { ... } | | +| test.rs:297:9:297:20 | ExprStmt | test.rs:297:9:297:19 | ... && ... | | +| test.rs:297:14:297:19 | Before return | test.rs:297:14:297:19 | return | | +| test.rs:297:14:297:19 | return | test.rs:296:5:298:5 | Normal Exit | return | +| test.rs:300:5:305:5 | Entry | test.rs:300:22:300:28 | Before ...: bool | | +| test.rs:300:5:305:5 | Normal Exit | test.rs:300:5:305:5 | Exit | | +| test.rs:300:22:300:22 | After a [match] | test.rs:300:22:300:28 | ...: bool | | +| test.rs:300:22:300:22 | Before a | test.rs:300:22:300:22 | a | | +| test.rs:300:22:300:22 | a | test.rs:300:22:300:22 | After a [match] | match | | test.rs:300:22:300:22 | a | test.rs:300:22:300:22 | a | | -| test.rs:300:22:300:22 | a | test.rs:300:22:300:28 | ...: bool | match | -| test.rs:300:22:300:28 | ...: bool | test.rs:301:9:303:9 | ExprStmt | | -| test.rs:300:38:305:5 | { ... } | test.rs:300:5:305:5 | exit fn test_and_true (normal) | | -| test.rs:301:9:303:9 | ExprStmt | test.rs:301:13:301:13 | a | | -| test.rs:301:9:303:9 | if ... {...} | test.rs:304:9:304:9 | 0 | | -| test.rs:301:13:301:13 | a | test.rs:301:13:301:21 | [boolean(false)] ... && ... | false | -| test.rs:301:13:301:13 | a | test.rs:301:18:301:21 | true | true | -| test.rs:301:13:301:21 | [boolean(false)] ... && ... | test.rs:301:9:303:9 | if ... {...} | false | -| test.rs:301:13:301:21 | [boolean(true)] ... && ... | test.rs:302:13:302:21 | ExprStmt | true | -| test.rs:301:18:301:21 | true | test.rs:301:13:301:21 | [boolean(true)] ... && ... | true | -| test.rs:302:13:302:20 | return 1 | test.rs:300:5:305:5 | exit fn test_and_true (normal) | return | -| test.rs:302:13:302:21 | ExprStmt | test.rs:302:20:302:20 | 1 | | +| test.rs:300:22:300:28 | ...: bool | test.rs:300:22:300:28 | After ...: bool | | +| test.rs:300:22:300:28 | After ...: bool | test.rs:300:38:305:5 | { ... } | | +| test.rs:300:22:300:28 | Before ...: bool | test.rs:300:22:300:22 | Before a | | +| test.rs:300:38:305:5 | After { ... } | test.rs:300:5:305:5 | Normal Exit | | +| test.rs:300:38:305:5 | { ... } | test.rs:301:9:303:9 | ExprStmt | | +| test.rs:301:9:303:9 | After ExprStmt | test.rs:304:9:304:9 | 0 | | +| test.rs:301:9:303:9 | After if ... {...} | test.rs:301:9:303:9 | After ExprStmt | | +| test.rs:301:9:303:9 | ExprStmt | test.rs:301:9:303:9 | if ... {...} | | +| test.rs:301:9:303:9 | if ... {...} | test.rs:301:13:301:21 | ... && ... | | +| test.rs:301:13:301:13 | After a [false] | test.rs:301:13:301:21 | After ... && ... [false] | false | +| test.rs:301:13:301:13 | After a [true] | test.rs:301:18:301:21 | true | | +| test.rs:301:13:301:13 | a | test.rs:301:13:301:13 | After a [false] | false | +| test.rs:301:13:301:13 | a | test.rs:301:13:301:13 | After a [true] | true | +| test.rs:301:13:301:21 | ... && ... | test.rs:301:13:301:13 | a | | +| test.rs:301:13:301:21 | After ... && ... [false] | test.rs:301:9:303:9 | After if ... {...} | | +| test.rs:301:13:301:21 | After ... && ... [true] | test.rs:301:24:303:9 | { ... } | | +| test.rs:301:18:301:21 | After true [true] | test.rs:301:13:301:21 | After ... && ... [true] | true | +| test.rs:301:18:301:21 | true | test.rs:301:18:301:21 | After true [true] | true | +| test.rs:301:24:303:9 | { ... } | test.rs:302:13:302:21 | ExprStmt | | +| test.rs:302:13:302:20 | Before return 1 | test.rs:302:20:302:20 | 1 | | +| test.rs:302:13:302:20 | return 1 | test.rs:300:5:305:5 | Normal Exit | return | +| test.rs:302:13:302:21 | ExprStmt | test.rs:302:13:302:20 | Before return 1 | | | test.rs:302:20:302:20 | 1 | test.rs:302:13:302:20 | return 1 | | -| test.rs:304:9:304:9 | 0 | test.rs:300:38:305:5 | { ... } | | -| test.rs:311:5:313:5 | enter fn test_question_mark_operator_1 | test.rs:311:38:311:38 | s | | -| test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 | | +| test.rs:304:9:304:9 | 0 | test.rs:300:38:305:5 | After { ... } | | +| test.rs:311:5:313:5 | Entry | test.rs:311:38:311:44 | Before ...: ... | | +| test.rs:311:5:313:5 | Normal Exit | test.rs:311:5:313:5 | Exit | | +| test.rs:311:38:311:38 | After s [match] | test.rs:311:38:311:44 | ...: ... | | +| test.rs:311:38:311:38 | Before s | test.rs:311:38:311:38 | s | | +| test.rs:311:38:311:38 | s | test.rs:311:38:311:38 | After s [match] | match | | test.rs:311:38:311:38 | s | test.rs:311:38:311:38 | s | | -| test.rs:311:38:311:38 | s | test.rs:311:38:311:44 | ...: ... | match | -| test.rs:311:38:311:44 | ...: ... | test.rs:312:9:312:10 | Ok | | -| test.rs:311:87:313:5 | { ... } | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | | -| test.rs:312:9:312:10 | Ok | test.rs:312:12:312:12 | s | | -| test.rs:312:9:312:33 | Ok(...) | test.rs:311:87:313:5 | { ... } | | +| test.rs:311:38:311:44 | ...: ... | test.rs:311:38:311:44 | After ...: ... | | +| test.rs:311:38:311:44 | After ...: ... | test.rs:311:87:313:5 | { ... } | | +| test.rs:311:38:311:44 | Before ...: ... | test.rs:311:38:311:38 | Before s | | +| test.rs:311:87:313:5 | After { ... } | test.rs:311:5:313:5 | Normal Exit | | +| test.rs:311:87:313:5 | { ... } | test.rs:312:9:312:33 | Before Ok(...) | | +| test.rs:312:9:312:10 | Ok | test.rs:312:12:312:32 | Before ... + ... | | +| test.rs:312:9:312:33 | After Ok(...) | test.rs:311:87:313:5 | After { ... } | | +| test.rs:312:9:312:33 | Before Ok(...) | test.rs:312:9:312:10 | Ok | | +| test.rs:312:9:312:33 | Ok(...) | test.rs:312:9:312:33 | After Ok(...) | | | test.rs:312:12:312:12 | s | test.rs:312:12:312:27 | s.parse() | | -| test.rs:312:12:312:27 | s.parse() | test.rs:312:12:312:28 | TryExpr | | -| test.rs:312:12:312:28 | TryExpr | test.rs:311:5:313:5 | exit fn test_question_mark_operator_1 (normal) | return | -| test.rs:312:12:312:28 | TryExpr | test.rs:312:32:312:32 | 4 | match | -| test.rs:312:12:312:32 | ... + ... | test.rs:312:9:312:33 | Ok(...) | | +| test.rs:312:12:312:27 | After s.parse() [match] | test.rs:312:12:312:28 | After TryExpr | | +| test.rs:312:12:312:27 | After s.parse() [no-match] | test.rs:312:12:312:28 | [try-return] TryExpr | | +| test.rs:312:12:312:27 | Before s.parse() | test.rs:312:12:312:12 | s | | +| test.rs:312:12:312:27 | s.parse() | test.rs:312:12:312:27 | After s.parse() [match] | match | +| test.rs:312:12:312:27 | s.parse() | test.rs:312:12:312:27 | After s.parse() [no-match] | no-match | +| test.rs:312:12:312:28 | After TryExpr | test.rs:312:32:312:32 | 4 | | +| test.rs:312:12:312:28 | TryExpr | test.rs:312:12:312:27 | Before s.parse() | | +| test.rs:312:12:312:28 | [try-return] TryExpr | test.rs:311:5:313:5 | Normal Exit | return | +| test.rs:312:12:312:32 | ... + ... | test.rs:312:12:312:32 | After ... + ... | | +| test.rs:312:12:312:32 | After ... + ... | test.rs:312:9:312:33 | Ok(...) | | +| test.rs:312:12:312:32 | Before ... + ... | test.rs:312:12:312:28 | TryExpr | | | test.rs:312:32:312:32 | 4 | test.rs:312:12:312:32 | ... + ... | | -| test.rs:315:5:320:5 | enter fn test_question_mark_operator_2 | test.rs:315:38:315:38 | b | | -| test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 | | +| test.rs:315:5:320:5 | Entry | test.rs:315:38:315:52 | Before ...: Option::<...> | | +| test.rs:315:5:320:5 | Normal Exit | test.rs:315:5:320:5 | Exit | | +| test.rs:315:38:315:38 | After b [match] | test.rs:315:38:315:52 | ...: Option::<...> | | +| test.rs:315:38:315:38 | Before b | test.rs:315:38:315:38 | b | | +| test.rs:315:38:315:38 | b | test.rs:315:38:315:38 | After b [match] | match | | test.rs:315:38:315:38 | b | test.rs:315:38:315:38 | b | | -| test.rs:315:38:315:38 | b | test.rs:315:38:315:52 | ...: Option::<...> | match | -| test.rs:315:38:315:52 | ...: Option::<...> | test.rs:316:15:316:15 | b | | -| test.rs:315:71:320:5 | { ... } | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | | -| test.rs:316:9:319:9 | match ... { ... } | test.rs:315:71:320:5 | { ... } | | -| test.rs:316:15:316:15 | b | test.rs:316:15:316:16 | TryExpr | | -| test.rs:316:15:316:16 | TryExpr | test.rs:315:5:320:5 | exit fn test_question_mark_operator_2 (normal) | return | -| test.rs:316:15:316:16 | TryExpr | test.rs:317:13:317:16 | true | match | +| test.rs:315:38:315:52 | ...: Option::<...> | test.rs:315:38:315:52 | After ...: Option::<...> | | +| test.rs:315:38:315:52 | After ...: Option::<...> | test.rs:315:71:320:5 | { ... } | | +| test.rs:315:38:315:52 | Before ...: Option::<...> | test.rs:315:38:315:38 | Before b | | +| test.rs:315:71:320:5 | After { ... } | test.rs:315:5:320:5 | Normal Exit | | +| test.rs:315:71:320:5 | { ... } | test.rs:316:9:319:9 | match ... { ... } | | +| test.rs:316:9:319:9 | After match ... { ... } | test.rs:315:71:320:5 | After { ... } | | +| test.rs:316:9:319:9 | match ... { ... } | test.rs:316:15:316:16 | TryExpr | | +| test.rs:316:15:316:15 | After b [match] | test.rs:316:15:316:16 | After TryExpr | | +| test.rs:316:15:316:15 | After b [no-match] | test.rs:316:15:316:16 | [try-return] TryExpr | | +| test.rs:316:15:316:15 | b | test.rs:316:15:316:15 | After b [match] | match | +| test.rs:316:15:316:15 | b | test.rs:316:15:316:15 | After b [no-match] | no-match | +| test.rs:316:15:316:16 | After TryExpr | test.rs:317:13:317:16 | Before true | | +| test.rs:316:15:316:16 | TryExpr | test.rs:316:15:316:15 | b | | +| test.rs:316:15:316:16 | [try-return] TryExpr | test.rs:315:5:320:5 | Normal Exit | return | +| test.rs:317:13:317:16 | After true [match] | test.rs:317:21:317:31 | Before Some(...) | | +| test.rs:317:13:317:16 | After true [no-match] | test.rs:318:13:318:17 | Before false | | +| test.rs:317:13:317:16 | Before true | test.rs:317:13:317:16 | true | | +| test.rs:317:13:317:16 | true | test.rs:317:13:317:16 | After true [match] | match | +| test.rs:317:13:317:16 | true | test.rs:317:13:317:16 | After true [no-match] | no-match | | test.rs:317:13:317:16 | true | test.rs:317:13:317:16 | true | | -| test.rs:317:13:317:16 | true | test.rs:317:21:317:24 | Some | match | -| test.rs:317:13:317:16 | true | test.rs:318:13:318:17 | false | no-match | | test.rs:317:21:317:24 | Some | test.rs:317:26:317:30 | false | | -| test.rs:317:21:317:31 | Some(...) | test.rs:316:9:319:9 | match ... { ... } | | +| test.rs:317:21:317:31 | After Some(...) | test.rs:316:9:319:9 | After match ... { ... } | | +| test.rs:317:21:317:31 | Before Some(...) | test.rs:317:21:317:24 | Some | | +| test.rs:317:21:317:31 | Some(...) | test.rs:317:21:317:31 | After Some(...) | | | test.rs:317:26:317:30 | false | test.rs:317:21:317:31 | Some(...) | | +| test.rs:318:13:318:17 | After false [match] | test.rs:318:22:318:31 | Before Some(...) | | +| test.rs:318:13:318:17 | Before false | test.rs:318:13:318:17 | false | | +| test.rs:318:13:318:17 | false | test.rs:318:13:318:17 | After false [match] | match | | test.rs:318:13:318:17 | false | test.rs:318:13:318:17 | false | | -| test.rs:318:13:318:17 | false | test.rs:318:22:318:25 | Some | match | | test.rs:318:22:318:25 | Some | test.rs:318:27:318:30 | true | | -| test.rs:318:22:318:31 | Some(...) | test.rs:316:9:319:9 | match ... { ... } | | +| test.rs:318:22:318:31 | After Some(...) | test.rs:316:9:319:9 | After match ... { ... } | | +| test.rs:318:22:318:31 | Before Some(...) | test.rs:318:22:318:25 | Some | | +| test.rs:318:22:318:31 | Some(...) | test.rs:318:22:318:31 | After Some(...) | | | test.rs:318:27:318:30 | true | test.rs:318:22:318:31 | Some(...) | | -| test.rs:326:5:332:5 | enter fn test_match | test.rs:326:19:326:29 | maybe_digit | | -| test.rs:326:5:332:5 | exit fn test_match (normal) | test.rs:326:5:332:5 | exit fn test_match | | +| test.rs:326:5:332:5 | Entry | test.rs:326:19:326:42 | Before ...: Option::<...> | | +| test.rs:326:5:332:5 | Normal Exit | test.rs:326:5:332:5 | Exit | | +| test.rs:326:19:326:29 | After maybe_digit [match] | test.rs:326:19:326:42 | ...: Option::<...> | | +| test.rs:326:19:326:29 | Before maybe_digit | test.rs:326:19:326:29 | maybe_digit | | +| test.rs:326:19:326:29 | maybe_digit | test.rs:326:19:326:29 | After maybe_digit [match] | match | | test.rs:326:19:326:29 | maybe_digit | test.rs:326:19:326:29 | maybe_digit | | -| test.rs:326:19:326:29 | maybe_digit | test.rs:326:19:326:42 | ...: Option::<...> | match | -| test.rs:326:19:326:42 | ...: Option::<...> | test.rs:327:15:327:25 | maybe_digit | | -| test.rs:326:52:332:5 | { ... } | test.rs:326:5:332:5 | exit fn test_match (normal) | | -| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:326:52:332:5 | { ... } | | +| test.rs:326:19:326:42 | ...: Option::<...> | test.rs:326:19:326:42 | After ...: Option::<...> | | +| test.rs:326:19:326:42 | After ...: Option::<...> | test.rs:326:52:332:5 | { ... } | | +| test.rs:326:19:326:42 | Before ...: Option::<...> | test.rs:326:19:326:29 | Before maybe_digit | | +| test.rs:326:52:332:5 | After { ... } | test.rs:326:5:332:5 | Normal Exit | | +| test.rs:326:52:332:5 | { ... } | test.rs:327:9:331:9 | match maybe_digit { ... } | | +| test.rs:327:9:331:9 | After match maybe_digit { ... } | test.rs:326:52:332:5 | After { ... } | | +| test.rs:327:9:331:9 | match maybe_digit { ... } | test.rs:327:15:327:25 | maybe_digit | | | test.rs:327:15:327:25 | maybe_digit | test.rs:328:13:328:27 | ...::Some(...) | | -| test.rs:328:13:328:27 | ...::Some(...) | test.rs:328:26:328:26 | x | match | -| test.rs:328:13:328:27 | ...::Some(...) | test.rs:329:13:329:27 | ...::Some(...) | no-match | +| test.rs:328:13:328:27 | ...::Some(...) | test.rs:328:13:328:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:328:13:328:27 | ...::Some(...) | test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | match | +| test.rs:328:13:328:27 | After ...::Some(...) [match] | test.rs:328:32:328:37 | Before ... < ... | | +| test.rs:328:13:328:27 | After ...::Some(...) [no-match] | test.rs:329:13:329:27 | ...::Some(...) | | +| test.rs:328:13:328:27 | [pattern-start] ...::Some(...) | test.rs:328:26:328:26 | Before x | | +| test.rs:328:26:328:26 | After x [match] | test.rs:328:13:328:27 | After ...::Some(...) [match] | match | +| test.rs:328:26:328:26 | Before x | test.rs:328:26:328:26 | x | | +| test.rs:328:26:328:26 | x | test.rs:328:26:328:26 | After x [match] | match | | test.rs:328:26:328:26 | x | test.rs:328:26:328:26 | x | | -| test.rs:328:26:328:26 | x | test.rs:328:32:328:32 | x | match | | test.rs:328:32:328:32 | x | test.rs:328:36:328:37 | 10 | | -| test.rs:328:32:328:37 | ... < ... | test.rs:328:42:328:42 | x | true | -| test.rs:328:32:328:37 | ... < ... | test.rs:329:13:329:27 | ...::Some(...) | false | +| test.rs:328:32:328:37 | ... < ... | test.rs:328:32:328:37 | After ... < ... [false] | false | +| test.rs:328:32:328:37 | ... < ... | test.rs:328:32:328:37 | After ... < ... [true] | true | +| test.rs:328:32:328:37 | After ... < ... [false] | test.rs:329:13:329:27 | ...::Some(...) | | +| test.rs:328:32:328:37 | After ... < ... [true] | test.rs:328:42:328:46 | Before ... + ... | | +| test.rs:328:32:328:37 | Before ... < ... | test.rs:328:32:328:32 | x | | | test.rs:328:36:328:37 | 10 | test.rs:328:32:328:37 | ... < ... | | | test.rs:328:42:328:42 | x | test.rs:328:46:328:46 | 5 | | -| test.rs:328:42:328:46 | ... + ... | test.rs:327:9:331:9 | match maybe_digit { ... } | | +| test.rs:328:42:328:46 | ... + ... | test.rs:328:42:328:46 | After ... + ... | | +| test.rs:328:42:328:46 | After ... + ... | test.rs:327:9:331:9 | After match maybe_digit { ... } | | +| test.rs:328:42:328:46 | Before ... + ... | test.rs:328:42:328:42 | x | | | test.rs:328:46:328:46 | 5 | test.rs:328:42:328:46 | ... + ... | | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:26:329:26 | x | match | -| test.rs:329:13:329:27 | ...::Some(...) | test.rs:330:13:330:24 | ...::None | no-match | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:329:13:329:27 | ...::Some(...) | test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | match | +| test.rs:329:13:329:27 | After ...::Some(...) [match] | test.rs:329:32:329:32 | x | | +| test.rs:329:13:329:27 | After ...::Some(...) [no-match] | test.rs:330:13:330:24 | ...::None | | +| test.rs:329:13:329:27 | [pattern-start] ...::Some(...) | test.rs:329:26:329:26 | Before x | | +| test.rs:329:26:329:26 | After x [match] | test.rs:329:13:329:27 | After ...::Some(...) [match] | match | +| test.rs:329:26:329:26 | Before x | test.rs:329:26:329:26 | x | | +| test.rs:329:26:329:26 | x | test.rs:329:26:329:26 | After x [match] | match | | test.rs:329:26:329:26 | x | test.rs:329:26:329:26 | x | | -| test.rs:329:26:329:26 | x | test.rs:329:32:329:32 | x | match | -| test.rs:329:32:329:32 | x | test.rs:327:9:331:9 | match maybe_digit { ... } | | -| test.rs:330:13:330:24 | ...::None | test.rs:330:29:330:29 | 5 | match | -| test.rs:330:29:330:29 | 5 | test.rs:327:9:331:9 | match maybe_digit { ... } | | -| test.rs:334:5:343:5 | enter fn test_match_with_return_in_scrutinee | test.rs:334:44:334:54 | maybe_digit | | -| test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee | | +| test.rs:329:32:329:32 | x | test.rs:327:9:331:9 | After match maybe_digit { ... } | | +| test.rs:330:13:330:24 | ...::None | test.rs:330:13:330:24 | After ...::None [match] | match | +| test.rs:330:13:330:24 | After ...::None [match] | test.rs:330:29:330:29 | 5 | | +| test.rs:330:29:330:29 | 5 | test.rs:327:9:331:9 | After match maybe_digit { ... } | | +| test.rs:334:5:343:5 | Entry | test.rs:334:44:334:67 | Before ...: Option::<...> | | +| test.rs:334:5:343:5 | Normal Exit | test.rs:334:5:343:5 | Exit | | +| test.rs:334:44:334:54 | After maybe_digit [match] | test.rs:334:44:334:67 | ...: Option::<...> | | +| test.rs:334:44:334:54 | Before maybe_digit | test.rs:334:44:334:54 | maybe_digit | | +| test.rs:334:44:334:54 | maybe_digit | test.rs:334:44:334:54 | After maybe_digit [match] | match | | test.rs:334:44:334:54 | maybe_digit | test.rs:334:44:334:54 | maybe_digit | | -| test.rs:334:44:334:54 | maybe_digit | test.rs:334:44:334:67 | ...: Option::<...> | match | -| test.rs:334:44:334:67 | ...: Option::<...> | test.rs:335:19:335:29 | maybe_digit | | -| test.rs:334:77:343:5 | { ... } | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | | -| test.rs:335:9:342:9 | match ... { ... } | test.rs:334:77:343:5 | { ... } | | -| test.rs:335:16:339:9 | if ... {...} else {...} | test.rs:340:13:340:27 | ...::Some(...) | | -| test.rs:335:19:335:29 | maybe_digit | test.rs:335:34:335:37 | Some | | -| test.rs:335:19:335:40 | ... == ... | test.rs:336:13:336:21 | ExprStmt | true | -| test.rs:335:19:335:40 | ... == ... | test.rs:338:13:338:23 | maybe_digit | false | +| test.rs:334:44:334:67 | ...: Option::<...> | test.rs:334:44:334:67 | After ...: Option::<...> | | +| test.rs:334:44:334:67 | After ...: Option::<...> | test.rs:334:77:343:5 | { ... } | | +| test.rs:334:44:334:67 | Before ...: Option::<...> | test.rs:334:44:334:54 | Before maybe_digit | | +| test.rs:334:77:343:5 | After { ... } | test.rs:334:5:343:5 | Normal Exit | | +| test.rs:334:77:343:5 | { ... } | test.rs:335:9:342:9 | match ... { ... } | | +| test.rs:335:9:342:9 | After match ... { ... } | test.rs:334:77:343:5 | After { ... } | | +| test.rs:335:9:342:9 | match ... { ... } | test.rs:335:16:339:9 | if ... {...} else {...} | | +| test.rs:335:16:339:9 | After if ... {...} else {...} | test.rs:340:13:340:27 | ...::Some(...) | | +| test.rs:335:16:339:9 | if ... {...} else {...} | test.rs:335:19:335:40 | Before ... == ... | | +| test.rs:335:19:335:29 | maybe_digit | test.rs:335:34:335:40 | Before Some(...) | | +| test.rs:335:19:335:40 | ... == ... | test.rs:335:19:335:40 | After ... == ... [false] | false | +| test.rs:335:19:335:40 | ... == ... | test.rs:335:19:335:40 | After ... == ... [true] | true | +| test.rs:335:19:335:40 | After ... == ... [false] | test.rs:337:16:339:9 | { ... } | | +| test.rs:335:19:335:40 | After ... == ... [true] | test.rs:335:42:337:9 | { ... } | | +| test.rs:335:19:335:40 | Before ... == ... | test.rs:335:19:335:29 | maybe_digit | | | test.rs:335:34:335:37 | Some | test.rs:335:39:335:39 | 3 | | -| test.rs:335:34:335:40 | Some(...) | test.rs:335:19:335:40 | ... == ... | | +| test.rs:335:34:335:40 | After Some(...) | test.rs:335:19:335:40 | ... == ... | | +| test.rs:335:34:335:40 | Before Some(...) | test.rs:335:34:335:37 | Some | | +| test.rs:335:34:335:40 | Some(...) | test.rs:335:34:335:40 | After Some(...) | | | test.rs:335:39:335:39 | 3 | test.rs:335:34:335:40 | Some(...) | | -| test.rs:336:13:336:20 | return 3 | test.rs:334:5:343:5 | exit fn test_match_with_return_in_scrutinee (normal) | return | -| test.rs:336:13:336:21 | ExprStmt | test.rs:336:20:336:20 | 3 | | +| test.rs:335:42:337:9 | { ... } | test.rs:336:13:336:21 | ExprStmt | | +| test.rs:336:13:336:20 | Before return 3 | test.rs:336:20:336:20 | 3 | | +| test.rs:336:13:336:20 | return 3 | test.rs:334:5:343:5 | Normal Exit | return | +| test.rs:336:13:336:21 | ExprStmt | test.rs:336:13:336:20 | Before return 3 | | | test.rs:336:20:336:20 | 3 | test.rs:336:13:336:20 | return 3 | | -| test.rs:337:16:339:9 | { ... } | test.rs:335:16:339:9 | if ... {...} else {...} | | -| test.rs:338:13:338:23 | maybe_digit | test.rs:337:16:339:9 | { ... } | | -| test.rs:340:13:340:27 | ...::Some(...) | test.rs:340:26:340:26 | x | match | -| test.rs:340:13:340:27 | ...::Some(...) | test.rs:341:13:341:24 | ...::None | no-match | +| test.rs:337:16:339:9 | After { ... } | test.rs:335:16:339:9 | After if ... {...} else {...} | | +| test.rs:337:16:339:9 | { ... } | test.rs:338:13:338:23 | maybe_digit | | +| test.rs:338:13:338:23 | maybe_digit | test.rs:337:16:339:9 | After { ... } | | +| test.rs:340:13:340:27 | ...::Some(...) | test.rs:340:13:340:27 | After ...::Some(...) [no-match] | no-match | +| test.rs:340:13:340:27 | ...::Some(...) | test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | match | +| test.rs:340:13:340:27 | After ...::Some(...) [match] | test.rs:340:32:340:36 | Before ... + ... | | +| test.rs:340:13:340:27 | After ...::Some(...) [no-match] | test.rs:341:13:341:24 | ...::None | | +| test.rs:340:13:340:27 | [pattern-start] ...::Some(...) | test.rs:340:26:340:26 | Before x | | +| test.rs:340:26:340:26 | After x [match] | test.rs:340:13:340:27 | After ...::Some(...) [match] | match | +| test.rs:340:26:340:26 | Before x | test.rs:340:26:340:26 | x | | +| test.rs:340:26:340:26 | x | test.rs:340:26:340:26 | After x [match] | match | | test.rs:340:26:340:26 | x | test.rs:340:26:340:26 | x | | -| test.rs:340:26:340:26 | x | test.rs:340:32:340:32 | x | match | | test.rs:340:32:340:32 | x | test.rs:340:36:340:36 | 5 | | -| test.rs:340:32:340:36 | ... + ... | test.rs:335:9:342:9 | match ... { ... } | | +| test.rs:340:32:340:36 | ... + ... | test.rs:340:32:340:36 | After ... + ... | | +| test.rs:340:32:340:36 | After ... + ... | test.rs:335:9:342:9 | After match ... { ... } | | +| test.rs:340:32:340:36 | Before ... + ... | test.rs:340:32:340:32 | x | | | test.rs:340:36:340:36 | 5 | test.rs:340:32:340:36 | ... + ... | | -| test.rs:341:13:341:24 | ...::None | test.rs:341:29:341:29 | 5 | match | -| test.rs:341:29:341:29 | 5 | test.rs:335:9:342:9 | match ... { ... } | | -| test.rs:345:5:350:5 | enter fn test_match_and | test.rs:345:23:345:26 | cond | | -| test.rs:345:5:350:5 | exit fn test_match_and (normal) | test.rs:345:5:350:5 | exit fn test_match_and | | +| test.rs:341:13:341:24 | ...::None | test.rs:341:13:341:24 | After ...::None [match] | match | +| test.rs:341:13:341:24 | After ...::None [match] | test.rs:341:29:341:29 | 5 | | +| test.rs:341:29:341:29 | 5 | test.rs:335:9:342:9 | After match ... { ... } | | +| test.rs:345:5:350:5 | Entry | test.rs:345:23:345:32 | Before ...: bool | | +| test.rs:345:5:350:5 | Normal Exit | test.rs:345:5:350:5 | Exit | | +| test.rs:345:23:345:26 | After cond [match] | test.rs:345:23:345:32 | ...: bool | | +| test.rs:345:23:345:26 | Before cond | test.rs:345:23:345:26 | cond | | +| test.rs:345:23:345:26 | cond | test.rs:345:23:345:26 | After cond [match] | match | | test.rs:345:23:345:26 | cond | test.rs:345:23:345:26 | cond | | -| test.rs:345:23:345:26 | cond | test.rs:345:23:345:32 | ...: bool | match | -| test.rs:345:23:345:32 | ...: bool | test.rs:345:35:345:35 | r | | +| test.rs:345:23:345:32 | ...: bool | test.rs:345:23:345:32 | After ...: bool | | +| test.rs:345:23:345:32 | After ...: bool | test.rs:345:35:345:49 | Before ...: Option::<...> | | +| test.rs:345:23:345:32 | Before ...: bool | test.rs:345:23:345:26 | Before cond | | +| test.rs:345:35:345:35 | After r [match] | test.rs:345:35:345:49 | ...: Option::<...> | | +| test.rs:345:35:345:35 | Before r | test.rs:345:35:345:35 | r | | +| test.rs:345:35:345:35 | r | test.rs:345:35:345:35 | After r [match] | match | | test.rs:345:35:345:35 | r | test.rs:345:35:345:35 | r | | -| test.rs:345:35:345:35 | r | test.rs:345:35:345:49 | ...: Option::<...> | match | -| test.rs:345:35:345:49 | ...: Option::<...> | test.rs:346:16:346:16 | r | | -| test.rs:345:60:350:5 | { ... } | test.rs:345:5:350:5 | exit fn test_match_and (normal) | | -| test.rs:346:9:349:18 | ... && ... | test.rs:345:60:350:5 | { ... } | | -| test.rs:346:10:349:9 | [boolean(false)] match r { ... } | test.rs:346:9:349:18 | ... && ... | false | -| test.rs:346:10:349:9 | [boolean(true)] match r { ... } | test.rs:349:15:349:18 | cond | true | +| test.rs:345:35:345:49 | ...: Option::<...> | test.rs:345:35:345:49 | After ...: Option::<...> | | +| test.rs:345:35:345:49 | After ...: Option::<...> | test.rs:345:60:350:5 | { ... } | | +| test.rs:345:35:345:49 | Before ...: Option::<...> | test.rs:345:35:345:35 | Before r | | +| test.rs:345:60:350:5 | After { ... } | test.rs:345:5:350:5 | Normal Exit | | +| test.rs:345:60:350:5 | { ... } | test.rs:346:9:349:18 | ... && ... | | +| test.rs:346:9:349:18 | ... && ... | test.rs:346:10:349:9 | match r { ... } | | +| test.rs:346:9:349:18 | After ... && ... | test.rs:345:60:350:5 | After { ... } | | +| test.rs:346:10:349:9 | After match r { ... } [false] | test.rs:346:9:349:18 | After ... && ... | | +| test.rs:346:10:349:9 | After match r { ... } [true] | test.rs:349:15:349:18 | cond | | +| test.rs:346:10:349:9 | match r { ... } | test.rs:346:16:346:16 | r | | | test.rs:346:16:346:16 | r | test.rs:347:13:347:19 | Some(...) | | -| test.rs:347:13:347:19 | Some(...) | test.rs:347:18:347:18 | a | match | -| test.rs:347:13:347:19 | Some(...) | test.rs:348:13:348:13 | _ | no-match | +| test.rs:347:13:347:19 | After Some(...) [match] | test.rs:347:24:347:24 | a | | +| test.rs:347:13:347:19 | After Some(...) [no-match] | test.rs:348:13:348:13 | _ | | +| test.rs:347:13:347:19 | Some(...) | test.rs:347:13:347:19 | After Some(...) [no-match] | no-match | +| test.rs:347:13:347:19 | Some(...) | test.rs:347:13:347:19 | [pattern-start] Some(...) | match | +| test.rs:347:13:347:19 | [pattern-start] Some(...) | test.rs:347:18:347:18 | Before a | | +| test.rs:347:18:347:18 | After a [match] | test.rs:347:13:347:19 | After Some(...) [match] | match | +| test.rs:347:18:347:18 | Before a | test.rs:347:18:347:18 | a | | +| test.rs:347:18:347:18 | a | test.rs:347:18:347:18 | After a [match] | match | | test.rs:347:18:347:18 | a | test.rs:347:18:347:18 | a | | -| test.rs:347:18:347:18 | a | test.rs:347:24:347:24 | a | match | -| test.rs:347:24:347:24 | a | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | false | -| test.rs:347:24:347:24 | a | test.rs:346:10:349:9 | [boolean(true)] match r { ... } | true | -| test.rs:348:13:348:13 | _ | test.rs:348:18:348:22 | false | match | -| test.rs:348:18:348:22 | false | test.rs:346:10:349:9 | [boolean(false)] match r { ... } | false | -| test.rs:349:15:349:18 | cond | test.rs:346:9:349:18 | ... && ... | | -| test.rs:352:5:357:5 | enter fn test_match_with_no_arms | test.rs:352:35:352:35 | r | | -| test.rs:352:5:357:5 | exit fn test_match_with_no_arms (normal) | test.rs:352:5:357:5 | exit fn test_match_with_no_arms | | +| test.rs:347:24:347:24 | After a [false] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:347:24:347:24 | After a [false] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:347:24:347:24 | After a [true] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:347:24:347:24 | After a [true] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:347:24:347:24 | a | test.rs:347:24:347:24 | After a [false] | false | +| test.rs:347:24:347:24 | a | test.rs:347:24:347:24 | After a [true] | true | +| test.rs:348:13:348:13 | After _ [match] | test.rs:348:18:348:22 | false | | +| test.rs:348:13:348:13 | _ | test.rs:348:13:348:13 | After _ [match] | match | +| test.rs:348:18:348:22 | After false [false] | test.rs:346:10:349:9 | After match r { ... } [false] | false | +| test.rs:348:18:348:22 | After false [false] | test.rs:346:10:349:9 | After match r { ... } [true] | true | +| test.rs:348:18:348:22 | false | test.rs:348:18:348:22 | After false [false] | false | +| test.rs:349:15:349:18 | cond | test.rs:346:9:349:18 | After ... && ... | | +| test.rs:352:5:357:5 | Entry | test.rs:352:35:352:58 | Before ...: Result::<...> | | +| test.rs:352:5:357:5 | Exceptional Exit | test.rs:352:5:357:5 | Exit | | +| test.rs:352:5:357:5 | Normal Exit | test.rs:352:5:357:5 | Exit | | +| test.rs:352:35:352:35 | After r [match] | test.rs:352:35:352:58 | ...: Result::<...> | | +| test.rs:352:35:352:35 | Before r | test.rs:352:35:352:35 | r | | +| test.rs:352:35:352:35 | r | test.rs:352:35:352:35 | After r [match] | match | | test.rs:352:35:352:35 | r | test.rs:352:35:352:35 | r | | -| test.rs:352:35:352:35 | r | test.rs:352:35:352:58 | ...: Result::<...> | match | -| test.rs:352:35:352:58 | ...: Result::<...> | test.rs:353:15:353:15 | r | | -| test.rs:352:66:357:5 | { ... } | test.rs:352:5:357:5 | exit fn test_match_with_no_arms (normal) | | -| test.rs:353:9:356:9 | match r { ... } | test.rs:352:66:357:5 | { ... } | | +| test.rs:352:35:352:58 | ...: Result::<...> | test.rs:352:35:352:58 | After ...: Result::<...> | | +| test.rs:352:35:352:58 | After ...: Result::<...> | test.rs:352:66:357:5 | { ... } | | +| test.rs:352:35:352:58 | Before ...: Result::<...> | test.rs:352:35:352:35 | Before r | | +| test.rs:352:66:357:5 | After { ... } | test.rs:352:5:357:5 | Normal Exit | | +| test.rs:352:66:357:5 | { ... } | test.rs:353:9:356:9 | match r { ... } | | +| test.rs:353:9:356:9 | After match r { ... } | test.rs:352:66:357:5 | After { ... } | | +| test.rs:353:9:356:9 | match r { ... } | test.rs:353:15:353:15 | r | | | test.rs:353:15:353:15 | r | test.rs:354:13:354:21 | Ok(...) | | -| test.rs:354:13:354:21 | Ok(...) | test.rs:354:16:354:20 | value | match | -| test.rs:354:13:354:21 | Ok(...) | test.rs:355:13:355:22 | Err(...) | no-match | +| test.rs:354:13:354:21 | After Ok(...) [match] | test.rs:354:26:354:30 | value | | +| test.rs:354:13:354:21 | After Ok(...) [no-match] | test.rs:355:13:355:22 | Err(...) | | +| test.rs:354:13:354:21 | Ok(...) | test.rs:354:13:354:21 | After Ok(...) [no-match] | no-match | +| test.rs:354:13:354:21 | Ok(...) | test.rs:354:13:354:21 | [pattern-start] Ok(...) | match | +| test.rs:354:13:354:21 | [pattern-start] Ok(...) | test.rs:354:16:354:20 | Before value | | +| test.rs:354:16:354:20 | After value [match] | test.rs:354:13:354:21 | After Ok(...) [match] | match | +| test.rs:354:16:354:20 | Before value | test.rs:354:16:354:20 | value | | +| test.rs:354:16:354:20 | value | test.rs:354:16:354:20 | After value [match] | match | | test.rs:354:16:354:20 | value | test.rs:354:16:354:20 | value | | -| test.rs:354:16:354:20 | value | test.rs:354:26:354:30 | value | match | -| test.rs:354:26:354:30 | value | test.rs:353:9:356:9 | match r { ... } | | -| test.rs:355:13:355:22 | Err(...) | test.rs:355:17:355:21 | never | match | +| test.rs:354:26:354:30 | value | test.rs:353:9:356:9 | After match r { ... } | | +| test.rs:355:13:355:22 | After Err(...) [match] | test.rs:355:27:355:40 | match never { ... } | | +| test.rs:355:13:355:22 | Err(...) | test.rs:355:13:355:22 | [pattern-start] Err(...) | match | +| test.rs:355:13:355:22 | [pattern-start] Err(...) | test.rs:355:17:355:21 | Before never | | +| test.rs:355:17:355:21 | After never [match] | test.rs:355:13:355:22 | After Err(...) [match] | match | +| test.rs:355:17:355:21 | Before never | test.rs:355:17:355:21 | never | | +| test.rs:355:17:355:21 | never | test.rs:355:17:355:21 | After never [match] | match | | test.rs:355:17:355:21 | never | test.rs:355:17:355:21 | never | | -| test.rs:355:17:355:21 | never | test.rs:355:33:355:37 | never | match | -| test.rs:355:27:355:40 | match never { ... } | test.rs:353:9:356:9 | match r { ... } | | -| test.rs:355:33:355:37 | never | test.rs:355:27:355:40 | match never { ... } | | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:362:23:362:23 | a | | -| test.rs:362:5:365:5 | exit fn test_let_match (normal) | test.rs:362:5:365:5 | exit fn test_let_match | | +| test.rs:355:27:355:40 | [empty-match] match never { ... } | test.rs:352:5:357:5 | Exceptional Exit | exception | +| test.rs:355:27:355:40 | match never { ... } | test.rs:355:33:355:37 | never | | +| test.rs:355:33:355:37 | never | test.rs:355:27:355:40 | [empty-match] match never { ... } | | +| test.rs:362:5:365:5 | Entry | test.rs:362:23:362:36 | Before ...: Option::<...> | | +| test.rs:362:5:365:5 | Exceptional Exit | test.rs:362:5:365:5 | Exit | | +| test.rs:362:5:365:5 | Normal Exit | test.rs:362:5:365:5 | Exit | | +| test.rs:362:23:362:23 | After a [match] | test.rs:362:23:362:36 | ...: Option::<...> | | +| test.rs:362:23:362:23 | Before a | test.rs:362:23:362:23 | a | | +| test.rs:362:23:362:23 | a | test.rs:362:23:362:23 | After a [match] | match | | test.rs:362:23:362:23 | a | test.rs:362:23:362:23 | a | | -| test.rs:362:23:362:23 | a | test.rs:362:23:362:36 | ...: Option::<...> | match | -| test.rs:362:23:362:36 | ...: Option::<...> | test.rs:363:9:363:57 | let ... = a else {...} | | -| test.rs:362:46:365:5 | { ... } | test.rs:362:5:365:5 | exit fn test_let_match (normal) | | +| test.rs:362:23:362:36 | ...: Option::<...> | test.rs:362:23:362:36 | After ...: Option::<...> | | +| test.rs:362:23:362:36 | After ...: Option::<...> | test.rs:362:46:365:5 | { ... } | | +| test.rs:362:23:362:36 | Before ...: Option::<...> | test.rs:362:23:362:23 | Before a | | +| test.rs:362:46:365:5 | After { ... } | test.rs:362:5:365:5 | Normal Exit | | +| test.rs:362:46:365:5 | { ... } | test.rs:363:9:363:57 | let ... = a else {...} | | +| test.rs:363:9:363:57 | After let ... = a else {...} | test.rs:364:9:364:9 | n | | | test.rs:363:9:363:57 | let ... = a else {...} | test.rs:363:23:363:23 | a | | -| test.rs:363:13:363:19 | Some(...) | test.rs:363:18:363:18 | n | match | -| test.rs:363:13:363:19 | Some(...) | test.rs:363:39:363:53 | ExprStmt | no-match | +| test.rs:363:13:363:19 | After Some(...) [match] | test.rs:363:9:363:57 | After let ... = a else {...} | | +| test.rs:363:13:363:19 | After Some(...) [no-match] | test.rs:363:30:363:56 | { ... } | | +| test.rs:363:13:363:19 | Some(...) | test.rs:363:13:363:19 | After Some(...) [no-match] | no-match | +| test.rs:363:13:363:19 | Some(...) | test.rs:363:13:363:19 | [pattern-start] Some(...) | match | +| test.rs:363:13:363:19 | [pattern-start] Some(...) | test.rs:363:18:363:18 | Before n | | +| test.rs:363:18:363:18 | After n [match] | test.rs:363:13:363:19 | After Some(...) [match] | match | +| test.rs:363:18:363:18 | Before n | test.rs:363:18:363:18 | n | | +| test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | After n [match] | match | | test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | | -| test.rs:363:18:363:18 | n | test.rs:364:9:364:9 | n | match | | test.rs:363:23:363:23 | a | test.rs:363:13:363:19 | Some(...) | | -| test.rs:363:32:363:37 | ...::panic_fmt | test.rs:363:39:363:53 | "Expected some" | | -| test.rs:363:32:363:54 | MacroExpr | test.rs:363:30:363:56 | { ... } | | -| test.rs:363:32:363:54 | panic!... | test.rs:363:32:363:54 | MacroExpr | | +| test.rs:363:30:363:56 | After { ... } | test.rs:363:30:363:56 | [let-else-diverge] { ... } | | +| test.rs:363:30:363:56 | [let-else-diverge] { ... } | test.rs:362:5:365:5 | Exceptional Exit | exception | +| test.rs:363:30:363:56 | { ... } | test.rs:363:32:363:54 | Before MacroExpr | | +| test.rs:363:32:363:37 | ...::panic_fmt | test.rs:363:39:363:53 | Before MacroExpr | | +| test.rs:363:32:363:54 | After MacroExpr | test.rs:363:30:363:56 | After { ... } | | +| test.rs:363:32:363:54 | After panic!... | test.rs:363:32:363:54 | MacroExpr | | +| test.rs:363:32:363:54 | Before MacroExpr | test.rs:363:32:363:54 | Before panic!... | | +| test.rs:363:32:363:54 | Before panic!... | test.rs:363:39:363:53 | { ... } | | +| test.rs:363:32:363:54 | MacroExpr | test.rs:363:32:363:54 | After MacroExpr | | +| test.rs:363:32:363:54 | panic!... | test.rs:363:32:363:54 | After panic!... | | | test.rs:363:39:363:53 | "Expected some" | test.rs:363:39:363:53 | FormatArgsExpr | | -| test.rs:363:39:363:53 | ...::const_format_args!... | test.rs:363:39:363:53 | MacroExpr | | -| test.rs:363:39:363:53 | ...::panic_2021!... | test.rs:363:39:363:53 | MacroExpr | | -| test.rs:363:39:363:53 | ...::panic_fmt(...) | test.rs:363:39:363:53 | { ... } | | -| test.rs:363:39:363:53 | ExprStmt | test.rs:363:32:363:37 | ...::panic_fmt | | -| test.rs:363:39:363:53 | FormatArgsExpr | test.rs:363:39:363:53 | ...::const_format_args!... | | -| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | ...::panic_fmt(...) | | -| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | { ... } | | -| test.rs:363:39:363:53 | { ... } | test.rs:363:32:363:54 | panic!... | | -| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | ...::panic_2021!... | | +| test.rs:363:39:363:53 | ...::const_format_args!... | test.rs:363:39:363:53 | After ...::const_format_args!... | | +| test.rs:363:39:363:53 | ...::panic_2021!... | test.rs:363:39:363:53 | After ...::panic_2021!... | | +| test.rs:363:39:363:53 | ...::panic_fmt(...) | test.rs:363:39:363:53 | After ...::panic_fmt(...) | | +| test.rs:363:39:363:53 | After ...::const_format_args!... | test.rs:363:39:363:53 | MacroExpr | | +| test.rs:363:39:363:53 | After ...::panic_2021!... | test.rs:363:39:363:53 | MacroExpr | | +| test.rs:363:39:363:53 | After ...::panic_fmt(...) | test.rs:363:39:363:53 | After ExprStmt | | +| test.rs:363:39:363:53 | After ExprStmt | test.rs:363:39:363:53 | After { ... } | | +| test.rs:363:39:363:53 | After FormatArgsExpr | test.rs:363:39:363:53 | ...::const_format_args!... | | +| test.rs:363:39:363:53 | After MacroExpr | test.rs:363:39:363:53 | ...::panic_fmt(...) | | +| test.rs:363:39:363:53 | After MacroExpr | test.rs:363:39:363:53 | After { ... } | | +| test.rs:363:39:363:53 | After { ... } | test.rs:363:32:363:54 | panic!... | | +| test.rs:363:39:363:53 | After { ... } | test.rs:363:39:363:53 | ...::panic_2021!... | | +| test.rs:363:39:363:53 | After { ... } | test.rs:363:39:363:53 | After { ... } | | +| test.rs:363:39:363:53 | Before ...::const_format_args!... | test.rs:363:39:363:53 | Before FormatArgsExpr | | +| test.rs:363:39:363:53 | Before ...::panic_2021!... | test.rs:363:39:363:53 | { ... } | | +| test.rs:363:39:363:53 | Before ...::panic_fmt(...) | test.rs:363:32:363:37 | ...::panic_fmt | | +| test.rs:363:39:363:53 | Before FormatArgsExpr | test.rs:363:39:363:53 | "Expected some" | | +| test.rs:363:39:363:53 | Before MacroExpr | test.rs:363:39:363:53 | Before ...::const_format_args!... | | +| test.rs:363:39:363:53 | Before MacroExpr | test.rs:363:39:363:53 | Before ...::panic_2021!... | | +| test.rs:363:39:363:53 | ExprStmt | test.rs:363:39:363:53 | Before ...::panic_fmt(...) | | +| test.rs:363:39:363:53 | FormatArgsExpr | test.rs:363:39:363:53 | After FormatArgsExpr | | +| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | After MacroExpr | | +| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | After MacroExpr | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | Before MacroExpr | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | ExprStmt | | | test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | { ... } | | -| test.rs:364:9:364:9 | n | test.rs:362:46:365:5 | { ... } | | -| test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:29:367:29 | m | | -| test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return | | +| test.rs:364:9:364:9 | n | test.rs:362:46:365:5 | After { ... } | | +| test.rs:367:5:373:5 | Entry | test.rs:367:29:367:42 | Before ...: Option::<...> | | +| test.rs:367:5:373:5 | Normal Exit | test.rs:367:5:373:5 | Exit | | +| test.rs:367:29:367:29 | After m [match] | test.rs:367:29:367:42 | ...: Option::<...> | | +| test.rs:367:29:367:29 | Before m | test.rs:367:29:367:29 | m | | +| test.rs:367:29:367:29 | m | test.rs:367:29:367:29 | After m [match] | match | | test.rs:367:29:367:29 | m | test.rs:367:29:367:29 | m | | -| test.rs:367:29:367:29 | m | test.rs:367:29:367:42 | ...: Option::<...> | match | -| test.rs:367:29:367:42 | ...: Option::<...> | test.rs:368:9:371:10 | let ... = ... | | -| test.rs:367:53:373:5 | { ... } | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | | -| test.rs:368:9:371:10 | let ... = ... | test.rs:368:25:368:25 | m | | +| test.rs:367:29:367:42 | ...: Option::<...> | test.rs:367:29:367:42 | After ...: Option::<...> | | +| test.rs:367:29:367:42 | After ...: Option::<...> | test.rs:367:53:373:5 | { ... } | | +| test.rs:367:29:367:42 | Before ...: Option::<...> | test.rs:367:29:367:29 | Before m | | +| test.rs:367:53:373:5 | After { ... } | test.rs:367:5:373:5 | Normal Exit | | +| test.rs:367:53:373:5 | { ... } | test.rs:368:9:371:10 | let ... = ... | | +| test.rs:368:9:371:10 | After let ... = ... | test.rs:372:9:372:12 | true | | +| test.rs:368:9:371:10 | let ... = ... | test.rs:368:19:371:9 | match m { ... } | | +| test.rs:368:13:368:15 | After ret [match] | test.rs:368:9:371:10 | After let ... = ... | | +| test.rs:368:13:368:15 | Before ret | test.rs:368:13:368:15 | ret | | +| test.rs:368:13:368:15 | ret | test.rs:368:13:368:15 | After ret [match] | match | | test.rs:368:13:368:15 | ret | test.rs:368:13:368:15 | ret | | -| test.rs:368:13:368:15 | ret | test.rs:372:9:372:12 | true | match | -| test.rs:368:19:371:9 | match m { ... } | test.rs:368:13:368:15 | ret | | +| test.rs:368:19:371:9 | After match m { ... } | test.rs:368:13:368:15 | Before ret | | +| test.rs:368:19:371:9 | match m { ... } | test.rs:368:25:368:25 | m | | | test.rs:368:25:368:25 | m | test.rs:369:13:369:21 | Some(...) | | -| test.rs:369:13:369:21 | Some(...) | test.rs:369:18:369:20 | ret | match | -| test.rs:369:13:369:21 | Some(...) | test.rs:370:13:370:16 | None | no-match | +| test.rs:369:13:369:21 | After Some(...) [match] | test.rs:369:26:369:28 | ret | | +| test.rs:369:13:369:21 | After Some(...) [no-match] | test.rs:370:13:370:16 | Before None | | +| test.rs:369:13:369:21 | Some(...) | test.rs:369:13:369:21 | After Some(...) [no-match] | no-match | +| test.rs:369:13:369:21 | Some(...) | test.rs:369:13:369:21 | [pattern-start] Some(...) | match | +| test.rs:369:13:369:21 | [pattern-start] Some(...) | test.rs:369:18:369:20 | Before ret | | +| test.rs:369:18:369:20 | After ret [match] | test.rs:369:13:369:21 | After Some(...) [match] | match | +| test.rs:369:18:369:20 | Before ret | test.rs:369:18:369:20 | ret | | +| test.rs:369:18:369:20 | ret | test.rs:369:18:369:20 | After ret [match] | match | | test.rs:369:18:369:20 | ret | test.rs:369:18:369:20 | ret | | -| test.rs:369:18:369:20 | ret | test.rs:369:26:369:28 | ret | match | -| test.rs:369:26:369:28 | ret | test.rs:368:19:371:9 | match m { ... } | | +| test.rs:369:26:369:28 | ret | test.rs:368:19:371:9 | After match m { ... } | | +| test.rs:370:13:370:16 | After None [match] | test.rs:370:21:370:32 | Before return false | | +| test.rs:370:13:370:16 | Before None | test.rs:370:13:370:16 | None | | +| test.rs:370:13:370:16 | None | test.rs:370:13:370:16 | After None [match] | match | | test.rs:370:13:370:16 | None | test.rs:370:13:370:16 | None | | -| test.rs:370:13:370:16 | None | test.rs:370:28:370:32 | false | match | -| test.rs:370:21:370:32 | return false | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | return | +| test.rs:370:21:370:32 | Before return false | test.rs:370:28:370:32 | false | | +| test.rs:370:21:370:32 | return false | test.rs:367:5:373:5 | Normal Exit | return | | test.rs:370:28:370:32 | false | test.rs:370:21:370:32 | return false | | -| test.rs:372:9:372:12 | true | test.rs:367:53:373:5 | { ... } | | -| test.rs:378:5:381:5 | enter fn empty_tuple_pattern | test.rs:378:28:378:31 | unit | | -| test.rs:378:5:381:5 | exit fn empty_tuple_pattern (normal) | test.rs:378:5:381:5 | exit fn empty_tuple_pattern | | +| test.rs:372:9:372:12 | true | test.rs:367:53:373:5 | After { ... } | | +| test.rs:378:5:381:5 | Entry | test.rs:378:28:378:35 | Before ...: ... | | +| test.rs:378:5:381:5 | Normal Exit | test.rs:378:5:381:5 | Exit | | +| test.rs:378:28:378:31 | After unit [match] | test.rs:378:28:378:35 | ...: ... | | +| test.rs:378:28:378:31 | Before unit | test.rs:378:28:378:31 | unit | | +| test.rs:378:28:378:31 | unit | test.rs:378:28:378:31 | After unit [match] | match | | test.rs:378:28:378:31 | unit | test.rs:378:28:378:31 | unit | | -| test.rs:378:28:378:31 | unit | test.rs:378:28:378:35 | ...: ... | match | -| test.rs:378:28:378:35 | ...: ... | test.rs:379:9:379:22 | let ... = unit | | +| test.rs:378:28:378:35 | ...: ... | test.rs:378:28:378:35 | After ...: ... | | +| test.rs:378:28:378:35 | After ...: ... | test.rs:378:44:381:5 | { ... } | | +| test.rs:378:28:378:35 | Before ...: ... | test.rs:378:28:378:31 | Before unit | | +| test.rs:378:44:381:5 | { ... } | test.rs:379:9:379:22 | let ... = unit | | +| test.rs:379:9:379:22 | After let ... = unit | test.rs:380:9:380:15 | ExprStmt | | | test.rs:379:9:379:22 | let ... = unit | test.rs:379:18:379:21 | unit | | -| test.rs:379:13:379:14 | TuplePat | test.rs:380:9:380:15 | ExprStmt | match | +| test.rs:379:13:379:14 | After TuplePat [match] | test.rs:379:9:379:22 | After let ... = unit | | +| test.rs:379:13:379:14 | TuplePat | test.rs:379:13:379:14 | After TuplePat [match] | match | | test.rs:379:18:379:21 | unit | test.rs:379:13:379:14 | TuplePat | | -| test.rs:380:9:380:14 | return | test.rs:378:5:381:5 | exit fn empty_tuple_pattern (normal) | return | -| test.rs:380:9:380:15 | ExprStmt | test.rs:380:9:380:14 | return | | -| test.rs:387:5:391:5 | enter fn empty_struct_pattern | test.rs:387:29:387:30 | st | | -| test.rs:387:5:391:5 | exit fn empty_struct_pattern (normal) | test.rs:387:5:391:5 | exit fn empty_struct_pattern | | +| test.rs:380:9:380:14 | Before return | test.rs:380:9:380:14 | return | | +| test.rs:380:9:380:14 | return | test.rs:378:5:381:5 | Normal Exit | return | +| test.rs:380:9:380:15 | ExprStmt | test.rs:380:9:380:14 | Before return | | +| test.rs:387:5:391:5 | Entry | test.rs:387:29:387:40 | Before ...: MyStruct | | +| test.rs:387:5:391:5 | Normal Exit | test.rs:387:5:391:5 | Exit | | +| test.rs:387:29:387:30 | After st [match] | test.rs:387:29:387:40 | ...: MyStruct | | +| test.rs:387:29:387:30 | Before st | test.rs:387:29:387:30 | st | | +| test.rs:387:29:387:30 | st | test.rs:387:29:387:30 | After st [match] | match | | test.rs:387:29:387:30 | st | test.rs:387:29:387:30 | st | | -| test.rs:387:29:387:30 | st | test.rs:387:29:387:40 | ...: MyStruct | match | -| test.rs:387:29:387:40 | ...: MyStruct | test.rs:388:15:388:16 | st | | -| test.rs:387:50:391:5 | { ... } | test.rs:387:5:391:5 | exit fn empty_struct_pattern (normal) | | -| test.rs:388:9:390:9 | match st { ... } | test.rs:387:50:391:5 | { ... } | | +| test.rs:387:29:387:40 | ...: MyStruct | test.rs:387:29:387:40 | After ...: MyStruct | | +| test.rs:387:29:387:40 | After ...: MyStruct | test.rs:387:50:391:5 | { ... } | | +| test.rs:387:29:387:40 | Before ...: MyStruct | test.rs:387:29:387:30 | Before st | | +| test.rs:387:50:391:5 | After { ... } | test.rs:387:5:391:5 | Normal Exit | | +| test.rs:387:50:391:5 | { ... } | test.rs:388:9:390:9 | match st { ... } | | +| test.rs:388:9:390:9 | After match st { ... } | test.rs:387:50:391:5 | After { ... } | | +| test.rs:388:9:390:9 | match st { ... } | test.rs:388:15:388:16 | st | | | test.rs:388:15:388:16 | st | test.rs:389:13:389:27 | MyStruct {...} | | -| test.rs:389:13:389:27 | MyStruct {...} | test.rs:389:24:389:25 | .. | match | -| test.rs:389:24:389:25 | .. | test.rs:389:32:389:32 | 1 | match | -| test.rs:389:32:389:32 | 1 | test.rs:388:9:390:9 | match st { ... } | | -| test.rs:393:5:398:5 | enter fn struct_pattern | test.rs:393:23:393:24 | st | | -| test.rs:393:5:398:5 | exit fn struct_pattern (normal) | test.rs:393:5:398:5 | exit fn struct_pattern | | +| test.rs:389:13:389:27 | After MyStruct {...} [match] | test.rs:389:32:389:32 | 1 | | +| test.rs:389:13:389:27 | MyStruct {...} | test.rs:389:13:389:27 | [pattern-start] MyStruct {...} | match | +| test.rs:389:13:389:27 | [pattern-start] MyStruct {...} | test.rs:389:24:389:25 | .. | | +| test.rs:389:24:389:25 | .. | test.rs:389:24:389:25 | After .. [match] | match | +| test.rs:389:24:389:25 | After .. [match] | test.rs:389:13:389:27 | After MyStruct {...} [match] | match | +| test.rs:389:32:389:32 | 1 | test.rs:388:9:390:9 | After match st { ... } | | +| test.rs:393:5:398:5 | Entry | test.rs:393:23:393:34 | Before ...: MyStruct | | +| test.rs:393:5:398:5 | Normal Exit | test.rs:393:5:398:5 | Exit | | +| test.rs:393:23:393:24 | After st [match] | test.rs:393:23:393:34 | ...: MyStruct | | +| test.rs:393:23:393:24 | Before st | test.rs:393:23:393:24 | st | | +| test.rs:393:23:393:24 | st | test.rs:393:23:393:24 | After st [match] | match | | test.rs:393:23:393:24 | st | test.rs:393:23:393:24 | st | | -| test.rs:393:23:393:24 | st | test.rs:393:23:393:34 | ...: MyStruct | match | -| test.rs:393:23:393:34 | ...: MyStruct | test.rs:394:15:394:16 | st | | -| test.rs:393:44:398:5 | { ... } | test.rs:393:5:398:5 | exit fn struct_pattern (normal) | | -| test.rs:394:9:397:9 | match st { ... } | test.rs:393:44:398:5 | { ... } | | +| test.rs:393:23:393:34 | ...: MyStruct | test.rs:393:23:393:34 | After ...: MyStruct | | +| test.rs:393:23:393:34 | After ...: MyStruct | test.rs:393:44:398:5 | { ... } | | +| test.rs:393:23:393:34 | Before ...: MyStruct | test.rs:393:23:393:24 | Before st | | +| test.rs:393:44:398:5 | After { ... } | test.rs:393:5:398:5 | Normal Exit | | +| test.rs:393:44:398:5 | { ... } | test.rs:394:9:397:9 | match st { ... } | | +| test.rs:394:9:397:9 | After match st { ... } | test.rs:393:44:398:5 | After { ... } | | +| test.rs:394:9:397:9 | match st { ... } | test.rs:394:15:394:16 | st | | | test.rs:394:15:394:16 | st | test.rs:395:13:395:29 | MyStruct {...} | | -| test.rs:395:13:395:29 | MyStruct {...} | test.rs:395:27:395:27 | 1 | match | -| test.rs:395:13:395:29 | MyStruct {...} | test.rs:396:13:396:26 | MyStruct {...} | no-match | +| test.rs:395:13:395:29 | After MyStruct {...} [match] | test.rs:395:34:395:34 | 0 | | +| test.rs:395:13:395:29 | After MyStruct {...} [no-match] | test.rs:396:13:396:26 | MyStruct {...} | | +| test.rs:395:13:395:29 | MyStruct {...} | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | no-match | +| test.rs:395:13:395:29 | MyStruct {...} | test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | match | +| test.rs:395:13:395:29 | [pattern-start] MyStruct {...} | test.rs:395:27:395:27 | Before 1 | | | test.rs:395:27:395:27 | 1 | test.rs:395:27:395:27 | 1 | | -| test.rs:395:27:395:27 | 1 | test.rs:395:34:395:34 | 0 | match | -| test.rs:395:27:395:27 | 1 | test.rs:396:13:396:26 | MyStruct {...} | no-match | -| test.rs:395:34:395:34 | 0 | test.rs:394:9:397:9 | match st { ... } | | -| test.rs:396:13:396:26 | MyStruct {...} | test.rs:396:24:396:24 | x | match | +| test.rs:395:27:395:27 | 1 | test.rs:395:27:395:27 | After 1 [match] | match | +| test.rs:395:27:395:27 | 1 | test.rs:395:27:395:27 | After 1 [no-match] | no-match | +| test.rs:395:27:395:27 | After 1 [match] | test.rs:395:13:395:29 | After MyStruct {...} [match] | match | +| test.rs:395:27:395:27 | After 1 [no-match] | test.rs:395:13:395:29 | After MyStruct {...} [no-match] | no-match | +| test.rs:395:27:395:27 | Before 1 | test.rs:395:27:395:27 | 1 | | +| test.rs:395:34:395:34 | 0 | test.rs:394:9:397:9 | After match st { ... } | | +| test.rs:396:13:396:26 | After MyStruct {...} [match] | test.rs:396:31:396:31 | 3 | | +| test.rs:396:13:396:26 | MyStruct {...} | test.rs:396:13:396:26 | [pattern-start] MyStruct {...} | match | +| test.rs:396:13:396:26 | [pattern-start] MyStruct {...} | test.rs:396:24:396:24 | Before x | | +| test.rs:396:24:396:24 | After x [match] | test.rs:396:13:396:26 | After MyStruct {...} [match] | match | +| test.rs:396:24:396:24 | Before x | test.rs:396:24:396:24 | x | | +| test.rs:396:24:396:24 | x | test.rs:396:24:396:24 | After x [match] | match | | test.rs:396:24:396:24 | x | test.rs:396:24:396:24 | x | | -| test.rs:396:24:396:24 | x | test.rs:396:31:396:31 | 3 | match | -| test.rs:396:31:396:31 | 3 | test.rs:394:9:397:9 | match st { ... } | | -| test.rs:400:5:407:5 | enter fn range_pattern | test.rs:401:15:401:16 | 42 | | -| test.rs:400:5:407:5 | exit fn range_pattern (normal) | test.rs:400:5:407:5 | exit fn range_pattern | | -| test.rs:400:31:407:5 | { ... } | test.rs:400:5:407:5 | exit fn range_pattern (normal) | | -| test.rs:401:9:406:9 | match 42 { ... } | test.rs:400:31:407:5 | { ... } | | +| test.rs:396:31:396:31 | 3 | test.rs:394:9:397:9 | After match st { ... } | | +| test.rs:400:5:407:5 | Entry | test.rs:400:31:407:5 | { ... } | | +| test.rs:400:5:407:5 | Normal Exit | test.rs:400:5:407:5 | Exit | | +| test.rs:400:31:407:5 | After { ... } | test.rs:400:5:407:5 | Normal Exit | | +| test.rs:400:31:407:5 | { ... } | test.rs:401:9:406:9 | match 42 { ... } | | +| test.rs:401:9:406:9 | After match 42 { ... } | test.rs:400:31:407:5 | After { ... } | | +| test.rs:401:9:406:9 | match 42 { ... } | test.rs:401:15:401:16 | 42 | | | test.rs:401:15:401:16 | 42 | test.rs:402:13:402:15 | RangePat | | -| test.rs:402:13:402:15 | RangePat | test.rs:402:15:402:15 | 0 | match | +| test.rs:402:13:402:15 | After RangePat [match] | test.rs:402:20:402:20 | 1 | | +| test.rs:402:13:402:15 | After RangePat [no-match] | test.rs:403:13:403:16 | RangePat | | +| test.rs:402:13:402:15 | RangePat | test.rs:402:13:402:15 | [pattern-start] RangePat | match | +| test.rs:402:13:402:15 | [pattern-start] RangePat | test.rs:402:15:402:15 | Before 0 | | | test.rs:402:15:402:15 | 0 | test.rs:402:15:402:15 | 0 | | -| test.rs:402:15:402:15 | 0 | test.rs:402:20:402:20 | 1 | match | -| test.rs:402:15:402:15 | 0 | test.rs:403:13:403:16 | RangePat | no-match | -| test.rs:402:20:402:20 | 1 | test.rs:401:9:406:9 | match 42 { ... } | | +| test.rs:402:15:402:15 | 0 | test.rs:402:15:402:15 | After 0 [match] | match | +| test.rs:402:15:402:15 | 0 | test.rs:402:15:402:15 | After 0 [no-match] | no-match | +| test.rs:402:15:402:15 | After 0 [match] | test.rs:402:13:402:15 | After RangePat [match] | match | +| test.rs:402:15:402:15 | After 0 [no-match] | test.rs:402:13:402:15 | After RangePat [no-match] | no-match | +| test.rs:402:15:402:15 | Before 0 | test.rs:402:15:402:15 | 0 | | +| test.rs:402:20:402:20 | 1 | test.rs:401:9:406:9 | After match 42 { ... } | | | test.rs:403:13:403:13 | 1 | test.rs:403:13:403:13 | 1 | | -| test.rs:403:13:403:13 | 1 | test.rs:403:16:403:16 | 2 | match | -| test.rs:403:13:403:13 | 1 | test.rs:404:13:404:15 | RangePat | no-match | -| test.rs:403:13:403:16 | RangePat | test.rs:403:13:403:13 | 1 | match | +| test.rs:403:13:403:13 | 1 | test.rs:403:13:403:13 | After 1 [match] | match | +| test.rs:403:13:403:13 | 1 | test.rs:403:13:403:13 | After 1 [no-match] | no-match | +| test.rs:403:13:403:13 | After 1 [match] | test.rs:403:16:403:16 | Before 2 | | +| test.rs:403:13:403:13 | After 1 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | no-match | +| test.rs:403:13:403:13 | Before 1 | test.rs:403:13:403:13 | 1 | | +| test.rs:403:13:403:16 | After RangePat [match] | test.rs:403:21:403:21 | 2 | | +| test.rs:403:13:403:16 | After RangePat [no-match] | test.rs:404:13:404:15 | RangePat | | +| test.rs:403:13:403:16 | RangePat | test.rs:403:13:403:16 | [pattern-start] RangePat | match | +| test.rs:403:13:403:16 | [pattern-start] RangePat | test.rs:403:13:403:13 | Before 1 | | | test.rs:403:16:403:16 | 2 | test.rs:403:16:403:16 | 2 | | -| test.rs:403:16:403:16 | 2 | test.rs:403:21:403:21 | 2 | match | -| test.rs:403:16:403:16 | 2 | test.rs:404:13:404:15 | RangePat | no-match | -| test.rs:403:21:403:21 | 2 | test.rs:401:9:406:9 | match 42 { ... } | | +| test.rs:403:16:403:16 | 2 | test.rs:403:16:403:16 | After 2 [match] | match | +| test.rs:403:16:403:16 | 2 | test.rs:403:16:403:16 | After 2 [no-match] | no-match | +| test.rs:403:16:403:16 | After 2 [match] | test.rs:403:13:403:16 | After RangePat [match] | match | +| test.rs:403:16:403:16 | After 2 [no-match] | test.rs:403:13:403:16 | After RangePat [no-match] | no-match | +| test.rs:403:16:403:16 | Before 2 | test.rs:403:16:403:16 | 2 | | +| test.rs:403:21:403:21 | 2 | test.rs:401:9:406:9 | After match 42 { ... } | | | test.rs:404:13:404:13 | 5 | test.rs:404:13:404:13 | 5 | | -| test.rs:404:13:404:13 | 5 | test.rs:404:20:404:20 | 3 | match | -| test.rs:404:13:404:13 | 5 | test.rs:405:13:405:13 | _ | no-match | -| test.rs:404:13:404:15 | RangePat | test.rs:404:13:404:13 | 5 | match | -| test.rs:404:20:404:20 | 3 | test.rs:401:9:406:9 | match 42 { ... } | | -| test.rs:405:13:405:13 | _ | test.rs:405:18:405:18 | 4 | match | -| test.rs:405:18:405:18 | 4 | test.rs:401:9:406:9 | match 42 { ... } | | -| test.rs:409:5:414:5 | enter fn identifier_pattern_with_subpattern | test.rs:410:15:410:16 | 43 | | -| test.rs:409:5:414:5 | exit fn identifier_pattern_with_subpattern (normal) | test.rs:409:5:414:5 | exit fn identifier_pattern_with_subpattern | | -| test.rs:409:52:414:5 | { ... } | test.rs:409:5:414:5 | exit fn identifier_pattern_with_subpattern (normal) | | -| test.rs:410:9:413:9 | match 43 { ... } | test.rs:409:52:414:5 | { ... } | | -| test.rs:410:15:410:16 | 43 | test.rs:411:17:411:21 | RangePat | | +| test.rs:404:13:404:13 | 5 | test.rs:404:13:404:13 | After 5 [match] | match | +| test.rs:404:13:404:13 | 5 | test.rs:404:13:404:13 | After 5 [no-match] | no-match | +| test.rs:404:13:404:13 | After 5 [match] | test.rs:404:13:404:15 | After RangePat [match] | match | +| test.rs:404:13:404:13 | After 5 [no-match] | test.rs:404:13:404:15 | After RangePat [no-match] | no-match | +| test.rs:404:13:404:13 | Before 5 | test.rs:404:13:404:13 | 5 | | +| test.rs:404:13:404:15 | After RangePat [match] | test.rs:404:20:404:20 | 3 | | +| test.rs:404:13:404:15 | After RangePat [no-match] | test.rs:405:13:405:13 | _ | | +| test.rs:404:13:404:15 | RangePat | test.rs:404:13:404:15 | [pattern-start] RangePat | match | +| test.rs:404:13:404:15 | [pattern-start] RangePat | test.rs:404:13:404:13 | Before 5 | | +| test.rs:404:20:404:20 | 3 | test.rs:401:9:406:9 | After match 42 { ... } | | +| test.rs:405:13:405:13 | After _ [match] | test.rs:405:18:405:18 | 4 | | +| test.rs:405:13:405:13 | _ | test.rs:405:13:405:13 | After _ [match] | match | +| test.rs:405:18:405:18 | 4 | test.rs:401:9:406:9 | After match 42 { ... } | | +| test.rs:409:5:414:5 | Entry | test.rs:409:52:414:5 | { ... } | | +| test.rs:409:5:414:5 | Normal Exit | test.rs:409:5:414:5 | Exit | | +| test.rs:409:52:414:5 | After { ... } | test.rs:409:5:414:5 | Normal Exit | | +| test.rs:409:52:414:5 | { ... } | test.rs:410:9:413:9 | match 43 { ... } | | +| test.rs:410:9:413:9 | After match 43 { ... } | test.rs:409:52:414:5 | After { ... } | | +| test.rs:410:9:413:9 | match 43 { ... } | test.rs:410:15:410:16 | 43 | | +| test.rs:410:15:410:16 | 43 | test.rs:411:13:411:21 | Before n @ ... | | | test.rs:411:13:411:13 | n | test.rs:411:13:411:21 | n @ ... | | -| test.rs:411:13:411:21 | n @ ... | test.rs:411:26:411:26 | 2 | match | +| test.rs:411:13:411:21 | After n @ ... [match] | test.rs:411:26:411:30 | Before ... * ... | | +| test.rs:411:13:411:21 | After n @ ... [no-match] | test.rs:412:13:412:13 | _ | | +| test.rs:411:13:411:21 | Before n @ ... | test.rs:411:17:411:21 | RangePat | | +| test.rs:411:13:411:21 | n @ ... | test.rs:411:13:411:21 | After n @ ... [match] | match | | test.rs:411:17:411:17 | 1 | test.rs:411:17:411:17 | 1 | | -| test.rs:411:17:411:17 | 1 | test.rs:411:20:411:21 | 10 | match | -| test.rs:411:17:411:17 | 1 | test.rs:412:13:412:13 | _ | no-match | -| test.rs:411:17:411:21 | RangePat | test.rs:411:17:411:17 | 1 | match | -| test.rs:411:20:411:21 | 10 | test.rs:411:13:411:13 | n | match | +| test.rs:411:17:411:17 | 1 | test.rs:411:17:411:17 | After 1 [match] | match | +| test.rs:411:17:411:17 | 1 | test.rs:411:17:411:17 | After 1 [no-match] | no-match | +| test.rs:411:17:411:17 | After 1 [match] | test.rs:411:20:411:21 | Before 10 | | +| test.rs:411:17:411:17 | After 1 [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | no-match | +| test.rs:411:17:411:17 | Before 1 | test.rs:411:17:411:17 | 1 | | +| test.rs:411:17:411:21 | After RangePat [match] | test.rs:411:13:411:13 | n | | +| test.rs:411:17:411:21 | After RangePat [no-match] | test.rs:411:13:411:21 | After n @ ... [no-match] | no-match | +| test.rs:411:17:411:21 | RangePat | test.rs:411:17:411:21 | [pattern-start] RangePat | match | +| test.rs:411:17:411:21 | [pattern-start] RangePat | test.rs:411:17:411:17 | Before 1 | | | test.rs:411:20:411:21 | 10 | test.rs:411:20:411:21 | 10 | | -| test.rs:411:20:411:21 | 10 | test.rs:412:13:412:13 | _ | no-match | +| test.rs:411:20:411:21 | 10 | test.rs:411:20:411:21 | After 10 [match] | match | +| test.rs:411:20:411:21 | 10 | test.rs:411:20:411:21 | After 10 [no-match] | no-match | +| test.rs:411:20:411:21 | After 10 [match] | test.rs:411:17:411:21 | After RangePat [match] | match | +| test.rs:411:20:411:21 | After 10 [no-match] | test.rs:411:17:411:21 | After RangePat [no-match] | no-match | +| test.rs:411:20:411:21 | Before 10 | test.rs:411:20:411:21 | 10 | | | test.rs:411:26:411:26 | 2 | test.rs:411:30:411:30 | n | | -| test.rs:411:26:411:30 | ... * ... | test.rs:410:9:413:9 | match 43 { ... } | | +| test.rs:411:26:411:30 | ... * ... | test.rs:411:26:411:30 | After ... * ... | | +| test.rs:411:26:411:30 | After ... * ... | test.rs:410:9:413:9 | After match 43 { ... } | | +| test.rs:411:26:411:30 | Before ... * ... | test.rs:411:26:411:26 | 2 | | | test.rs:411:30:411:30 | n | test.rs:411:26:411:30 | ... * ... | | -| test.rs:412:13:412:13 | _ | test.rs:412:18:412:18 | 0 | match | -| test.rs:412:18:412:18 | 0 | test.rs:410:9:413:9 | match 43 { ... } | | -| test.rs:416:5:423:5 | enter fn identifier_pattern_with_ref | test.rs:417:9:417:23 | let ... = 10 | | -| test.rs:416:5:423:5 | exit fn identifier_pattern_with_ref (normal) | test.rs:416:5:423:5 | exit fn identifier_pattern_with_ref | | -| test.rs:416:45:423:5 | { ... } | test.rs:416:5:423:5 | exit fn identifier_pattern_with_ref (normal) | | +| test.rs:412:13:412:13 | After _ [match] | test.rs:412:18:412:18 | 0 | | +| test.rs:412:13:412:13 | _ | test.rs:412:13:412:13 | After _ [match] | match | +| test.rs:412:18:412:18 | 0 | test.rs:410:9:413:9 | After match 43 { ... } | | +| test.rs:416:5:423:5 | Entry | test.rs:416:45:423:5 | { ... } | | +| test.rs:416:5:423:5 | Normal Exit | test.rs:416:5:423:5 | Exit | | +| test.rs:416:45:423:5 | After { ... } | test.rs:416:5:423:5 | Normal Exit | | +| test.rs:416:45:423:5 | { ... } | test.rs:417:9:417:23 | let ... = 10 | | +| test.rs:417:9:417:23 | After let ... = 10 | test.rs:418:9:421:10 | ExprStmt | | | test.rs:417:9:417:23 | let ... = 10 | test.rs:417:21:417:22 | 10 | | -| test.rs:417:13:417:17 | mut a | test.rs:418:9:421:10 | ExprStmt | match | +| test.rs:417:13:417:17 | After mut a [match] | test.rs:417:9:417:23 | After let ... = 10 | | +| test.rs:417:13:417:17 | Before mut a | test.rs:417:17:417:17 | a | | +| test.rs:417:13:417:17 | mut a | test.rs:417:13:417:17 | After mut a [match] | match | | test.rs:417:17:417:17 | a | test.rs:417:13:417:17 | mut a | | -| test.rs:417:21:417:22 | 10 | test.rs:417:17:417:17 | a | | -| test.rs:418:9:421:9 | match a { ... } | test.rs:422:9:422:9 | a | | -| test.rs:418:9:421:10 | ExprStmt | test.rs:418:15:418:15 | a | | -| test.rs:418:15:418:15 | a | test.rs:419:25:419:29 | RangePat | | -| test.rs:419:13:419:29 | ref mut n @ ... | test.rs:419:35:419:35 | n | match | +| test.rs:417:21:417:22 | 10 | test.rs:417:13:417:17 | Before mut a | | +| test.rs:418:9:421:9 | After match a { ... } | test.rs:418:9:421:10 | After ExprStmt | | +| test.rs:418:9:421:9 | match a { ... } | test.rs:418:15:418:15 | a | | +| test.rs:418:9:421:10 | After ExprStmt | test.rs:422:9:422:9 | a | | +| test.rs:418:9:421:10 | ExprStmt | test.rs:418:9:421:9 | match a { ... } | | +| test.rs:418:15:418:15 | a | test.rs:419:13:419:29 | Before ref mut n @ ... | | +| test.rs:419:13:419:29 | After ref mut n @ ... [match] | test.rs:419:34:419:41 | Before ... += ... | | +| test.rs:419:13:419:29 | After ref mut n @ ... [no-match] | test.rs:420:13:420:21 | Before ref mut n | | +| test.rs:419:13:419:29 | Before ref mut n @ ... | test.rs:419:25:419:29 | RangePat | | +| test.rs:419:13:419:29 | ref mut n @ ... | test.rs:419:13:419:29 | After ref mut n @ ... [match] | match | | test.rs:419:21:419:21 | n | test.rs:419:13:419:29 | ref mut n @ ... | | | test.rs:419:25:419:25 | 1 | test.rs:419:25:419:25 | 1 | | -| test.rs:419:25:419:25 | 1 | test.rs:419:28:419:29 | 10 | match | -| test.rs:419:25:419:25 | 1 | test.rs:420:21:420:21 | n | no-match | -| test.rs:419:25:419:29 | RangePat | test.rs:419:25:419:25 | 1 | match | -| test.rs:419:28:419:29 | 10 | test.rs:419:21:419:21 | n | match | +| test.rs:419:25:419:25 | 1 | test.rs:419:25:419:25 | After 1 [match] | match | +| test.rs:419:25:419:25 | 1 | test.rs:419:25:419:25 | After 1 [no-match] | no-match | +| test.rs:419:25:419:25 | After 1 [match] | test.rs:419:28:419:29 | Before 10 | | +| test.rs:419:25:419:25 | After 1 [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | no-match | +| test.rs:419:25:419:25 | Before 1 | test.rs:419:25:419:25 | 1 | | +| test.rs:419:25:419:29 | After RangePat [match] | test.rs:419:21:419:21 | n | | +| test.rs:419:25:419:29 | After RangePat [no-match] | test.rs:419:13:419:29 | After ref mut n @ ... [no-match] | no-match | +| test.rs:419:25:419:29 | RangePat | test.rs:419:25:419:29 | [pattern-start] RangePat | match | +| test.rs:419:25:419:29 | [pattern-start] RangePat | test.rs:419:25:419:25 | Before 1 | | | test.rs:419:28:419:29 | 10 | test.rs:419:28:419:29 | 10 | | -| test.rs:419:28:419:29 | 10 | test.rs:420:21:420:21 | n | no-match | -| test.rs:419:34:419:35 | * ... | test.rs:419:40:419:41 | 10 | | -| test.rs:419:34:419:41 | ... += ... | test.rs:418:9:421:9 | match a { ... } | | +| test.rs:419:28:419:29 | 10 | test.rs:419:28:419:29 | After 10 [match] | match | +| test.rs:419:28:419:29 | 10 | test.rs:419:28:419:29 | After 10 [no-match] | no-match | +| test.rs:419:28:419:29 | After 10 [match] | test.rs:419:25:419:29 | After RangePat [match] | match | +| test.rs:419:28:419:29 | After 10 [no-match] | test.rs:419:25:419:29 | After RangePat [no-match] | no-match | +| test.rs:419:28:419:29 | Before 10 | test.rs:419:28:419:29 | 10 | | +| test.rs:419:34:419:35 | * ... | test.rs:419:34:419:35 | After * ... | | +| test.rs:419:34:419:35 | After * ... | test.rs:419:40:419:41 | 10 | | +| test.rs:419:34:419:35 | Before * ... | test.rs:419:35:419:35 | n | | +| test.rs:419:34:419:41 | ... += ... | test.rs:419:34:419:41 | After ... += ... | | +| test.rs:419:34:419:41 | After ... += ... | test.rs:418:9:421:9 | After match a { ... } | | +| test.rs:419:34:419:41 | Before ... += ... | test.rs:419:34:419:35 | Before * ... | | | test.rs:419:35:419:35 | n | test.rs:419:34:419:35 | * ... | | | test.rs:419:40:419:41 | 10 | test.rs:419:34:419:41 | ... += ... | | -| test.rs:420:13:420:21 | ref mut n | test.rs:420:27:420:27 | n | match | +| test.rs:420:13:420:21 | After ref mut n [match] | test.rs:420:26:420:31 | Before ... = ... | | +| test.rs:420:13:420:21 | Before ref mut n | test.rs:420:21:420:21 | n | | +| test.rs:420:13:420:21 | ref mut n | test.rs:420:13:420:21 | After ref mut n [match] | match | | test.rs:420:21:420:21 | n | test.rs:420:13:420:21 | ref mut n | | -| test.rs:420:26:420:27 | * ... | test.rs:420:31:420:31 | 0 | | -| test.rs:420:26:420:31 | ... = ... | test.rs:418:9:421:9 | match a { ... } | | +| test.rs:420:26:420:27 | * ... | test.rs:420:26:420:27 | After * ... | | +| test.rs:420:26:420:27 | After * ... | test.rs:420:31:420:31 | 0 | | +| test.rs:420:26:420:27 | Before * ... | test.rs:420:27:420:27 | n | | +| test.rs:420:26:420:31 | ... = ... | test.rs:420:26:420:31 | After ... = ... | | +| test.rs:420:26:420:31 | After ... = ... | test.rs:418:9:421:9 | After match a { ... } | | +| test.rs:420:26:420:31 | Before ... = ... | test.rs:420:26:420:27 | Before * ... | | | test.rs:420:27:420:27 | n | test.rs:420:26:420:27 | * ... | | | test.rs:420:31:420:31 | 0 | test.rs:420:26:420:31 | ... = ... | | -| test.rs:422:9:422:9 | a | test.rs:416:45:423:5 | { ... } | | -| test.rs:425:5:431:5 | enter fn tuple_pattern | test.rs:425:22:425:22 | a | | -| test.rs:425:5:431:5 | exit fn tuple_pattern (normal) | test.rs:425:5:431:5 | exit fn tuple_pattern | | +| test.rs:422:9:422:9 | a | test.rs:416:45:423:5 | After { ... } | | +| test.rs:425:5:431:5 | Entry | test.rs:425:22:425:27 | Before ...: i64 | | +| test.rs:425:5:431:5 | Normal Exit | test.rs:425:5:431:5 | Exit | | +| test.rs:425:22:425:22 | After a [match] | test.rs:425:22:425:27 | ...: i64 | | +| test.rs:425:22:425:22 | Before a | test.rs:425:22:425:22 | a | | +| test.rs:425:22:425:22 | a | test.rs:425:22:425:22 | After a [match] | match | | test.rs:425:22:425:22 | a | test.rs:425:22:425:22 | a | | -| test.rs:425:22:425:22 | a | test.rs:425:22:425:27 | ...: i64 | match | -| test.rs:425:22:425:27 | ...: i64 | test.rs:425:30:425:30 | b | | +| test.rs:425:22:425:27 | ...: i64 | test.rs:425:22:425:27 | After ...: i64 | | +| test.rs:425:22:425:27 | After ...: i64 | test.rs:425:30:425:35 | Before ...: i64 | | +| test.rs:425:22:425:27 | Before ...: i64 | test.rs:425:22:425:22 | Before a | | +| test.rs:425:30:425:30 | After b [match] | test.rs:425:30:425:35 | ...: i64 | | +| test.rs:425:30:425:30 | Before b | test.rs:425:30:425:30 | b | | +| test.rs:425:30:425:30 | b | test.rs:425:30:425:30 | After b [match] | match | | test.rs:425:30:425:30 | b | test.rs:425:30:425:30 | b | | -| test.rs:425:30:425:30 | b | test.rs:425:30:425:35 | ...: i64 | match | -| test.rs:425:30:425:35 | ...: i64 | test.rs:426:16:426:16 | a | | -| test.rs:425:45:431:5 | { ... } | test.rs:425:5:431:5 | exit fn tuple_pattern (normal) | | -| test.rs:426:9:430:9 | match ... { ... } | test.rs:425:45:431:5 | { ... } | | -| test.rs:426:15:426:20 | TupleExpr | test.rs:427:13:427:18 | TuplePat | | +| test.rs:425:30:425:35 | ...: i64 | test.rs:425:30:425:35 | After ...: i64 | | +| test.rs:425:30:425:35 | After ...: i64 | test.rs:425:45:431:5 | { ... } | | +| test.rs:425:30:425:35 | Before ...: i64 | test.rs:425:30:425:30 | Before b | | +| test.rs:425:45:431:5 | After { ... } | test.rs:425:5:431:5 | Normal Exit | | +| test.rs:425:45:431:5 | { ... } | test.rs:426:9:430:9 | match ... { ... } | | +| test.rs:426:9:430:9 | After match ... { ... } | test.rs:425:45:431:5 | After { ... } | | +| test.rs:426:9:430:9 | match ... { ... } | test.rs:426:15:426:20 | Before TupleExpr | | +| test.rs:426:15:426:20 | After TupleExpr | test.rs:427:13:427:18 | TuplePat | | +| test.rs:426:15:426:20 | Before TupleExpr | test.rs:426:16:426:16 | a | | +| test.rs:426:15:426:20 | TupleExpr | test.rs:426:15:426:20 | After TupleExpr | | | test.rs:426:16:426:16 | a | test.rs:426:19:426:19 | b | | | test.rs:426:19:426:19 | b | test.rs:426:15:426:20 | TupleExpr | | -| test.rs:427:13:427:18 | TuplePat | test.rs:427:14:427:14 | 1 | match | +| test.rs:427:13:427:18 | After TuplePat [match] | test.rs:427:23:427:23 | 2 | | +| test.rs:427:13:427:18 | After TuplePat [no-match] | test.rs:428:13:428:19 | TuplePat | | +| test.rs:427:13:427:18 | TuplePat | test.rs:427:13:427:18 | [pattern-start] TuplePat | match | +| test.rs:427:13:427:18 | [pattern-start] TuplePat | test.rs:427:14:427:14 | Before 1 | | | test.rs:427:14:427:14 | 1 | test.rs:427:14:427:14 | 1 | | -| test.rs:427:14:427:14 | 1 | test.rs:427:17:427:17 | _ | match | -| test.rs:427:14:427:14 | 1 | test.rs:428:13:428:19 | TuplePat | no-match | -| test.rs:427:17:427:17 | _ | test.rs:427:23:427:23 | 2 | match | -| test.rs:427:23:427:23 | 2 | test.rs:426:9:430:9 | match ... { ... } | | -| test.rs:428:13:428:19 | TuplePat | test.rs:428:14:428:15 | .. | match | -| test.rs:428:14:428:15 | .. | test.rs:428:18:428:18 | 2 | match | +| test.rs:427:14:427:14 | 1 | test.rs:427:14:427:14 | After 1 [match] | match | +| test.rs:427:14:427:14 | 1 | test.rs:427:14:427:14 | After 1 [no-match] | no-match | +| test.rs:427:14:427:14 | After 1 [match] | test.rs:427:17:427:17 | _ | | +| test.rs:427:14:427:14 | After 1 [no-match] | test.rs:427:13:427:18 | After TuplePat [no-match] | no-match | +| test.rs:427:14:427:14 | Before 1 | test.rs:427:14:427:14 | 1 | | +| test.rs:427:17:427:17 | After _ [match] | test.rs:427:13:427:18 | After TuplePat [match] | match | +| test.rs:427:17:427:17 | _ | test.rs:427:17:427:17 | After _ [match] | match | +| test.rs:427:23:427:23 | 2 | test.rs:426:9:430:9 | After match ... { ... } | | +| test.rs:428:13:428:19 | After TuplePat [match] | test.rs:428:24:428:24 | 3 | | +| test.rs:428:13:428:19 | After TuplePat [no-match] | test.rs:429:13:429:16 | TuplePat | | +| test.rs:428:13:428:19 | TuplePat | test.rs:428:13:428:19 | [pattern-start] TuplePat | match | +| test.rs:428:13:428:19 | [pattern-start] TuplePat | test.rs:428:14:428:15 | .. | | +| test.rs:428:14:428:15 | .. | test.rs:428:14:428:15 | After .. [match] | match | +| test.rs:428:14:428:15 | After .. [match] | test.rs:428:18:428:18 | Before 2 | | | test.rs:428:18:428:18 | 2 | test.rs:428:18:428:18 | 2 | | -| test.rs:428:18:428:18 | 2 | test.rs:428:24:428:24 | 3 | match | -| test.rs:428:18:428:18 | 2 | test.rs:429:13:429:16 | TuplePat | no-match | -| test.rs:428:24:428:24 | 3 | test.rs:426:9:430:9 | match ... { ... } | | -| test.rs:429:13:429:16 | TuplePat | test.rs:429:14:429:15 | .. | match | -| test.rs:429:14:429:15 | .. | test.rs:429:21:429:21 | 4 | match | -| test.rs:429:21:429:21 | 4 | test.rs:426:9:430:9 | match ... { ... } | | -| test.rs:433:5:438:5 | enter fn or_pattern | test.rs:433:19:433:19 | a | | -| test.rs:433:5:438:5 | exit fn or_pattern (normal) | test.rs:433:5:438:5 | exit fn or_pattern | | +| test.rs:428:18:428:18 | 2 | test.rs:428:18:428:18 | After 2 [match] | match | +| test.rs:428:18:428:18 | 2 | test.rs:428:18:428:18 | After 2 [no-match] | no-match | +| test.rs:428:18:428:18 | After 2 [match] | test.rs:428:13:428:19 | After TuplePat [match] | match | +| test.rs:428:18:428:18 | After 2 [no-match] | test.rs:428:13:428:19 | After TuplePat [no-match] | no-match | +| test.rs:428:18:428:18 | Before 2 | test.rs:428:18:428:18 | 2 | | +| test.rs:428:24:428:24 | 3 | test.rs:426:9:430:9 | After match ... { ... } | | +| test.rs:429:13:429:16 | After TuplePat [match] | test.rs:429:21:429:21 | 4 | | +| test.rs:429:13:429:16 | TuplePat | test.rs:429:13:429:16 | [pattern-start] TuplePat | match | +| test.rs:429:13:429:16 | [pattern-start] TuplePat | test.rs:429:14:429:15 | .. | | +| test.rs:429:14:429:15 | .. | test.rs:429:14:429:15 | After .. [match] | match | +| test.rs:429:14:429:15 | After .. [match] | test.rs:429:13:429:16 | After TuplePat [match] | match | +| test.rs:429:21:429:21 | 4 | test.rs:426:9:430:9 | After match ... { ... } | | +| test.rs:433:5:438:5 | Entry | test.rs:433:19:433:24 | Before ...: i64 | | +| test.rs:433:5:438:5 | Normal Exit | test.rs:433:5:438:5 | Exit | | +| test.rs:433:19:433:19 | After a [match] | test.rs:433:19:433:24 | ...: i64 | | +| test.rs:433:19:433:19 | Before a | test.rs:433:19:433:19 | a | | +| test.rs:433:19:433:19 | a | test.rs:433:19:433:19 | After a [match] | match | | test.rs:433:19:433:19 | a | test.rs:433:19:433:19 | a | | -| test.rs:433:19:433:19 | a | test.rs:433:19:433:24 | ...: i64 | match | -| test.rs:433:19:433:24 | ...: i64 | test.rs:434:15:434:15 | a | | -| test.rs:433:34:438:5 | { ... } | test.rs:433:5:438:5 | exit fn or_pattern (normal) | | -| test.rs:434:9:437:9 | match a { ... } | test.rs:433:34:438:5 | { ... } | | -| test.rs:434:15:434:15 | a | test.rs:435:13:435:13 | 0 | | +| test.rs:433:19:433:24 | ...: i64 | test.rs:433:19:433:24 | After ...: i64 | | +| test.rs:433:19:433:24 | After ...: i64 | test.rs:433:34:438:5 | { ... } | | +| test.rs:433:19:433:24 | Before ...: i64 | test.rs:433:19:433:19 | Before a | | +| test.rs:433:34:438:5 | After { ... } | test.rs:433:5:438:5 | Normal Exit | | +| test.rs:433:34:438:5 | { ... } | test.rs:434:9:437:9 | match a { ... } | | +| test.rs:434:9:437:9 | After match a { ... } | test.rs:433:34:438:5 | After { ... } | | +| test.rs:434:9:437:9 | match a { ... } | test.rs:434:15:434:15 | a | | +| test.rs:434:15:434:15 | a | test.rs:435:13:435:21 | 0 \| 1 \| 2 | | | test.rs:435:13:435:13 | 0 | test.rs:435:13:435:13 | 0 | | -| test.rs:435:13:435:13 | 0 | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | match | -| test.rs:435:13:435:13 | 0 | test.rs:435:17:435:17 | 1 | no-match | -| test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | test.rs:436:13:436:13 | _ | no-match | -| test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | test.rs:435:26:435:26 | 3 | match | -| test.rs:435:17:435:17 | 1 | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | match | +| test.rs:435:13:435:13 | 0 | test.rs:435:13:435:13 | After 0 [match] | match | +| test.rs:435:13:435:13 | 0 | test.rs:435:13:435:13 | After 0 [no-match] | no-match | +| test.rs:435:13:435:13 | After 0 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:435:13:435:13 | After 0 [no-match] | test.rs:435:17:435:17 | Before 1 | | +| test.rs:435:13:435:13 | Before 0 | test.rs:435:13:435:13 | 0 | | +| test.rs:435:13:435:21 | 0 \| 1 \| 2 | test.rs:435:13:435:13 | Before 0 | | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | test.rs:435:26:435:26 | 3 | | +| test.rs:435:13:435:21 | After 0 \| 1 \| 2 [no-match] | test.rs:436:13:436:13 | _ | | | test.rs:435:17:435:17 | 1 | test.rs:435:17:435:17 | 1 | | -| test.rs:435:17:435:17 | 1 | test.rs:435:21:435:21 | 2 | no-match | -| test.rs:435:21:435:21 | 2 | test.rs:435:13:435:21 | [match(false)] 0 \| 1 \| 2 | no-match | -| test.rs:435:21:435:21 | 2 | test.rs:435:13:435:21 | [match(true)] 0 \| 1 \| 2 | match | +| test.rs:435:17:435:17 | 1 | test.rs:435:17:435:17 | After 1 [match] | match | +| test.rs:435:17:435:17 | 1 | test.rs:435:17:435:17 | After 1 [no-match] | no-match | +| test.rs:435:17:435:17 | After 1 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:435:17:435:17 | After 1 [no-match] | test.rs:435:21:435:21 | Before 2 | | +| test.rs:435:17:435:17 | Before 1 | test.rs:435:17:435:17 | 1 | | | test.rs:435:21:435:21 | 2 | test.rs:435:21:435:21 | 2 | | -| test.rs:435:26:435:26 | 3 | test.rs:434:9:437:9 | match a { ... } | | -| test.rs:436:13:436:13 | _ | test.rs:436:18:436:18 | 4 | match | -| test.rs:436:18:436:18 | 4 | test.rs:434:9:437:9 | match a { ... } | | -| test.rs:440:5:445:5 | enter fn or_pattern_2 | test.rs:440:21:440:21 | a | | -| test.rs:440:5:445:5 | exit fn or_pattern_2 (normal) | test.rs:440:5:445:5 | exit fn or_pattern_2 | | +| test.rs:435:21:435:21 | 2 | test.rs:435:21:435:21 | After 2 [match] | match | +| test.rs:435:21:435:21 | 2 | test.rs:435:21:435:21 | After 2 [no-match] | no-match | +| test.rs:435:21:435:21 | After 2 [match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [match] | match | +| test.rs:435:21:435:21 | After 2 [no-match] | test.rs:435:13:435:21 | After 0 \| 1 \| 2 [no-match] | no-match | +| test.rs:435:21:435:21 | Before 2 | test.rs:435:21:435:21 | 2 | | +| test.rs:435:26:435:26 | 3 | test.rs:434:9:437:9 | After match a { ... } | | +| test.rs:436:13:436:13 | After _ [match] | test.rs:436:18:436:18 | 4 | | +| test.rs:436:13:436:13 | _ | test.rs:436:13:436:13 | After _ [match] | match | +| test.rs:436:18:436:18 | 4 | test.rs:434:9:437:9 | After match a { ... } | | +| test.rs:440:5:445:5 | Entry | test.rs:440:21:440:35 | Before ...: Option::<...> | | +| test.rs:440:5:445:5 | Normal Exit | test.rs:440:5:445:5 | Exit | | +| test.rs:440:21:440:21 | After a [match] | test.rs:440:21:440:35 | ...: Option::<...> | | +| test.rs:440:21:440:21 | Before a | test.rs:440:21:440:21 | a | | +| test.rs:440:21:440:21 | a | test.rs:440:21:440:21 | After a [match] | match | | test.rs:440:21:440:21 | a | test.rs:440:21:440:21 | a | | -| test.rs:440:21:440:21 | a | test.rs:440:21:440:35 | ...: Option::<...> | match | -| test.rs:440:21:440:35 | ...: Option::<...> | test.rs:441:15:441:15 | a | | -| test.rs:440:45:445:5 | { ... } | test.rs:440:5:445:5 | exit fn or_pattern_2 (normal) | | -| test.rs:441:9:444:9 | match a { ... } | test.rs:440:45:445:5 | { ... } | | -| test.rs:441:15:441:15 | a | test.rs:442:13:442:16 | None | | +| test.rs:440:21:440:35 | ...: Option::<...> | test.rs:440:21:440:35 | After ...: Option::<...> | | +| test.rs:440:21:440:35 | After ...: Option::<...> | test.rs:440:45:445:5 | { ... } | | +| test.rs:440:21:440:35 | Before ...: Option::<...> | test.rs:440:21:440:21 | Before a | | +| test.rs:440:45:445:5 | After { ... } | test.rs:440:5:445:5 | Normal Exit | | +| test.rs:440:45:445:5 | { ... } | test.rs:441:9:444:9 | match a { ... } | | +| test.rs:441:9:444:9 | After match a { ... } | test.rs:440:45:445:5 | After { ... } | | +| test.rs:441:9:444:9 | match a { ... } | test.rs:441:15:441:15 | a | | +| test.rs:441:15:441:15 | a | test.rs:442:13:442:16 | Before None | | +| test.rs:442:13:442:16 | After None [match] | test.rs:442:21:442:21 | 3 | | +| test.rs:442:13:442:16 | After None [no-match] | test.rs:443:13:443:36 | ... \| ... | | +| test.rs:442:13:442:16 | Before None | test.rs:442:13:442:16 | None | | +| test.rs:442:13:442:16 | None | test.rs:442:13:442:16 | After None [match] | match | +| test.rs:442:13:442:16 | None | test.rs:442:13:442:16 | After None [no-match] | no-match | | test.rs:442:13:442:16 | None | test.rs:442:13:442:16 | None | | -| test.rs:442:13:442:16 | None | test.rs:442:21:442:21 | 3 | match | -| test.rs:442:13:442:16 | None | test.rs:443:13:443:22 | Some(...) | no-match | -| test.rs:442:21:442:21 | 3 | test.rs:441:9:444:9 | match a { ... } | | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:18:443:21 | true | match | -| test.rs:443:13:443:22 | Some(...) | test.rs:443:26:443:36 | Some(...) | no-match | -| test.rs:443:13:443:36 | ... \| ... | test.rs:443:41:443:41 | 4 | match | -| test.rs:443:18:443:21 | true | test.rs:443:13:443:36 | ... \| ... | match | +| test.rs:442:21:442:21 | 3 | test.rs:441:9:444:9 | After match a { ... } | | +| test.rs:443:13:443:22 | After Some(...) [match] | test.rs:443:13:443:36 | After ... \| ... [match] | match | +| test.rs:443:13:443:22 | After Some(...) [no-match] | test.rs:443:26:443:36 | Some(...) | | +| test.rs:443:13:443:22 | Some(...) | test.rs:443:13:443:22 | After Some(...) [no-match] | no-match | +| test.rs:443:13:443:22 | Some(...) | test.rs:443:13:443:22 | [pattern-start] Some(...) | match | +| test.rs:443:13:443:22 | [pattern-start] Some(...) | test.rs:443:18:443:21 | Before true | | +| test.rs:443:13:443:36 | ... \| ... | test.rs:443:13:443:22 | Some(...) | | +| test.rs:443:13:443:36 | After ... \| ... [match] | test.rs:443:41:443:41 | 4 | | +| test.rs:443:18:443:21 | After true [match] | test.rs:443:13:443:22 | After Some(...) [match] | match | +| test.rs:443:18:443:21 | After true [no-match] | test.rs:443:13:443:22 | After Some(...) [no-match] | no-match | +| test.rs:443:18:443:21 | Before true | test.rs:443:18:443:21 | true | | +| test.rs:443:18:443:21 | true | test.rs:443:18:443:21 | After true [match] | match | +| test.rs:443:18:443:21 | true | test.rs:443:18:443:21 | After true [no-match] | no-match | | test.rs:443:18:443:21 | true | test.rs:443:18:443:21 | true | | -| test.rs:443:18:443:21 | true | test.rs:443:26:443:36 | Some(...) | no-match | -| test.rs:443:26:443:36 | Some(...) | test.rs:443:31:443:35 | false | match | -| test.rs:443:31:443:35 | false | test.rs:443:13:443:36 | ... \| ... | match | +| test.rs:443:26:443:36 | After Some(...) [match] | test.rs:443:13:443:36 | After ... \| ... [match] | match | +| test.rs:443:26:443:36 | Some(...) | test.rs:443:26:443:36 | [pattern-start] Some(...) | match | +| test.rs:443:26:443:36 | [pattern-start] Some(...) | test.rs:443:31:443:35 | Before false | | +| test.rs:443:31:443:35 | After false [match] | test.rs:443:26:443:36 | After Some(...) [match] | match | +| test.rs:443:31:443:35 | Before false | test.rs:443:31:443:35 | false | | +| test.rs:443:31:443:35 | false | test.rs:443:31:443:35 | After false [match] | match | | test.rs:443:31:443:35 | false | test.rs:443:31:443:35 | false | | -| test.rs:443:41:443:41 | 4 | test.rs:441:9:444:9 | match a { ... } | | -| test.rs:453:5:458:5 | enter fn or_pattern_3 | test.rs:453:21:453:21 | a | | -| test.rs:453:5:458:5 | exit fn or_pattern_3 (normal) | test.rs:453:5:458:5 | exit fn or_pattern_3 | | +| test.rs:443:41:443:41 | 4 | test.rs:441:9:444:9 | After match a { ... } | | +| test.rs:453:5:458:5 | Entry | test.rs:453:21:453:26 | Before ...: i64 | | +| test.rs:453:5:458:5 | Normal Exit | test.rs:453:5:458:5 | Exit | | +| test.rs:453:21:453:21 | After a [match] | test.rs:453:21:453:26 | ...: i64 | | +| test.rs:453:21:453:21 | Before a | test.rs:453:21:453:21 | a | | +| test.rs:453:21:453:21 | a | test.rs:453:21:453:21 | After a [match] | match | | test.rs:453:21:453:21 | a | test.rs:453:21:453:21 | a | | -| test.rs:453:21:453:21 | a | test.rs:453:21:453:26 | ...: i64 | match | -| test.rs:453:21:453:26 | ...: i64 | test.rs:454:15:454:15 | a | | -| test.rs:453:36:458:5 | { ... } | test.rs:453:5:458:5 | exit fn or_pattern_3 (normal) | | -| test.rs:454:9:457:9 | match a { ... } | test.rs:453:36:458:5 | { ... } | | +| test.rs:453:21:453:26 | ...: i64 | test.rs:453:21:453:26 | After ...: i64 | | +| test.rs:453:21:453:26 | After ...: i64 | test.rs:453:36:458:5 | { ... } | | +| test.rs:453:21:453:26 | Before ...: i64 | test.rs:453:21:453:21 | Before a | | +| test.rs:453:36:458:5 | After { ... } | test.rs:453:5:458:5 | Normal Exit | | +| test.rs:453:36:458:5 | { ... } | test.rs:454:9:457:9 | match a { ... } | | +| test.rs:454:9:457:9 | After match a { ... } | test.rs:453:36:458:5 | After { ... } | | +| test.rs:454:9:457:9 | match a { ... } | test.rs:454:15:454:15 | a | | | test.rs:454:15:454:15 | a | test.rs:455:13:455:25 | MacroPat | | | test.rs:455:13:455:23 | 1 | test.rs:455:13:455:23 | 1 | | -| test.rs:455:13:455:23 | 1 | test.rs:455:13:455:23 | 2 | no-match | -| test.rs:455:13:455:23 | 1 | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | match | +| test.rs:455:13:455:23 | 1 | test.rs:455:13:455:23 | After 1 [match] | match | +| test.rs:455:13:455:23 | 1 | test.rs:455:13:455:23 | After 1 [no-match] | no-match | +| test.rs:455:13:455:23 | 1 \| 2 | test.rs:455:13:455:23 | Before 1 | | | test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | 2 | | -| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | [match(false)] 1 \| 2 | no-match | -| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | [match(true)] 1 \| 2 | match | -| test.rs:455:13:455:23 | [match(false)] 1 \| 2 | test.rs:456:13:456:13 | _ | no-match | -| test.rs:455:13:455:23 | [match(true)] 1 \| 2 | test.rs:455:30:455:30 | 3 | match | -| test.rs:455:13:455:25 | MacroPat | test.rs:455:13:455:23 | 1 | match | -| test.rs:455:30:455:30 | 3 | test.rs:454:9:457:9 | match a { ... } | | -| test.rs:456:13:456:13 | _ | test.rs:456:18:456:18 | 4 | match | -| test.rs:456:18:456:18 | 4 | test.rs:454:9:457:9 | match a { ... } | | -| test.rs:460:5:465:5 | enter fn irrefutable_pattern_and_dead_code | test.rs:460:42:460:45 | pair | | -| test.rs:460:5:465:5 | exit fn irrefutable_pattern_and_dead_code (normal) | test.rs:460:5:465:5 | exit fn irrefutable_pattern_and_dead_code | | +| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | After 2 [match] | match | +| test.rs:455:13:455:23 | 2 | test.rs:455:13:455:23 | After 2 [no-match] | no-match | +| test.rs:455:13:455:23 | After 1 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | match | +| test.rs:455:13:455:23 | After 1 [no-match] | test.rs:455:13:455:23 | Before 2 | | +| test.rs:455:13:455:23 | After 1 \| 2 [match] | test.rs:455:13:455:25 | After MacroPat [match] | match | +| test.rs:455:13:455:23 | After 1 \| 2 [no-match] | test.rs:455:13:455:25 | After MacroPat [no-match] | no-match | +| test.rs:455:13:455:23 | After 2 [match] | test.rs:455:13:455:23 | After 1 \| 2 [match] | match | +| test.rs:455:13:455:23 | After 2 [no-match] | test.rs:455:13:455:23 | After 1 \| 2 [no-match] | no-match | +| test.rs:455:13:455:23 | Before 1 | test.rs:455:13:455:23 | 1 | | +| test.rs:455:13:455:23 | Before 2 | test.rs:455:13:455:23 | 2 | | +| test.rs:455:13:455:25 | After MacroPat [match] | test.rs:455:30:455:30 | 3 | | +| test.rs:455:13:455:25 | After MacroPat [no-match] | test.rs:456:13:456:13 | _ | | +| test.rs:455:13:455:25 | MacroPat | test.rs:455:13:455:25 | [pattern-start] MacroPat | match | +| test.rs:455:13:455:25 | [pattern-start] MacroPat | test.rs:455:13:455:23 | 1 \| 2 | | +| test.rs:455:30:455:30 | 3 | test.rs:454:9:457:9 | After match a { ... } | | +| test.rs:456:13:456:13 | After _ [match] | test.rs:456:18:456:18 | 4 | | +| test.rs:456:13:456:13 | _ | test.rs:456:13:456:13 | After _ [match] | match | +| test.rs:456:18:456:18 | 4 | test.rs:454:9:457:9 | After match a { ... } | | +| test.rs:460:5:465:5 | Entry | test.rs:460:42:460:63 | Before ...: ... | | +| test.rs:460:5:465:5 | Normal Exit | test.rs:460:5:465:5 | Exit | | +| test.rs:460:42:460:45 | After pair [match] | test.rs:460:42:460:63 | ...: ... | | +| test.rs:460:42:460:45 | Before pair | test.rs:460:42:460:45 | pair | | +| test.rs:460:42:460:45 | pair | test.rs:460:42:460:45 | After pair [match] | match | | test.rs:460:42:460:45 | pair | test.rs:460:42:460:45 | pair | | -| test.rs:460:42:460:45 | pair | test.rs:460:42:460:63 | ...: ... | match | -| test.rs:460:42:460:63 | ...: ... | test.rs:461:15:461:18 | pair | | -| test.rs:460:73:465:5 | { ... } | test.rs:460:5:465:5 | exit fn irrefutable_pattern_and_dead_code (normal) | | -| test.rs:461:9:464:9 | match pair { ... } | test.rs:460:73:465:5 | { ... } | | +| test.rs:460:42:460:63 | ...: ... | test.rs:460:42:460:63 | After ...: ... | | +| test.rs:460:42:460:63 | After ...: ... | test.rs:460:73:465:5 | { ... } | | +| test.rs:460:42:460:63 | Before ...: ... | test.rs:460:42:460:45 | Before pair | | +| test.rs:460:73:465:5 | After { ... } | test.rs:460:5:465:5 | Normal Exit | | +| test.rs:460:73:465:5 | { ... } | test.rs:461:9:464:9 | match pair { ... } | | +| test.rs:461:9:464:9 | After match pair { ... } | test.rs:460:73:465:5 | After { ... } | | +| test.rs:461:9:464:9 | match pair { ... } | test.rs:461:15:461:18 | pair | | | test.rs:461:15:461:18 | pair | test.rs:462:13:462:35 | &... | | -| test.rs:462:13:462:35 | &... | test.rs:462:14:462:35 | TuplePat | match | -| test.rs:462:14:462:35 | TuplePat | test.rs:462:15:462:15 | n | match | +| test.rs:462:13:462:35 | &... | test.rs:462:13:462:35 | [pattern-start] &... | match | +| test.rs:462:13:462:35 | After &... [match] | test.rs:462:40:462:40 | n | | +| test.rs:462:13:462:35 | After &... [no-match] | test.rs:463:13:463:13 | _ | | +| test.rs:462:13:462:35 | [pattern-start] &... | test.rs:462:14:462:35 | TuplePat | | +| test.rs:462:14:462:35 | After TuplePat [match] | test.rs:462:13:462:35 | After &... [match] | match | +| test.rs:462:14:462:35 | After TuplePat [no-match] | test.rs:462:13:462:35 | After &... [no-match] | no-match | +| test.rs:462:14:462:35 | TuplePat | test.rs:462:14:462:35 | [pattern-start] TuplePat | match | +| test.rs:462:14:462:35 | [pattern-start] TuplePat | test.rs:462:15:462:15 | Before n | | +| test.rs:462:15:462:15 | After n [match] | test.rs:462:18:462:34 | MyStruct {...} | | +| test.rs:462:15:462:15 | Before n | test.rs:462:15:462:15 | n | | +| test.rs:462:15:462:15 | n | test.rs:462:15:462:15 | After n [match] | match | | test.rs:462:15:462:15 | n | test.rs:462:15:462:15 | n | | -| test.rs:462:15:462:15 | n | test.rs:462:18:462:34 | MyStruct {...} | match | -| test.rs:462:18:462:34 | MyStruct {...} | test.rs:462:32:462:32 | _ | match | -| test.rs:462:18:462:34 | MyStruct {...} | test.rs:463:13:463:13 | _ | no-match | -| test.rs:462:32:462:32 | _ | test.rs:462:40:462:40 | n | match | -| test.rs:462:40:462:40 | n | test.rs:461:9:464:9 | match pair { ... } | | -| test.rs:463:13:463:13 | _ | test.rs:463:18:463:18 | 0 | match | -| test.rs:463:18:463:18 | 0 | test.rs:461:9:464:9 | match pair { ... } | | -| test.rs:475:5:481:5 | enter fn enum_pattern | test.rs:475:21:475:21 | e | | -| test.rs:475:5:481:5 | exit fn enum_pattern (normal) | test.rs:475:5:481:5 | exit fn enum_pattern | | +| test.rs:462:18:462:34 | After MyStruct {...} [match] | test.rs:462:14:462:35 | After TuplePat [match] | match | +| test.rs:462:18:462:34 | After MyStruct {...} [no-match] | test.rs:462:14:462:35 | After TuplePat [no-match] | no-match | +| test.rs:462:18:462:34 | MyStruct {...} | test.rs:462:18:462:34 | After MyStruct {...} [no-match] | no-match | +| test.rs:462:18:462:34 | MyStruct {...} | test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | match | +| test.rs:462:18:462:34 | [pattern-start] MyStruct {...} | test.rs:462:32:462:32 | _ | | +| test.rs:462:32:462:32 | After _ [match] | test.rs:462:18:462:34 | After MyStruct {...} [match] | match | +| test.rs:462:32:462:32 | _ | test.rs:462:32:462:32 | After _ [match] | match | +| test.rs:462:40:462:40 | n | test.rs:461:9:464:9 | After match pair { ... } | | +| test.rs:463:13:463:13 | After _ [match] | test.rs:463:18:463:18 | 0 | | +| test.rs:463:13:463:13 | _ | test.rs:463:13:463:13 | After _ [match] | match | +| test.rs:463:18:463:18 | 0 | test.rs:461:9:464:9 | After match pair { ... } | | +| test.rs:475:5:481:5 | Entry | test.rs:475:21:475:29 | Before ...: MyEnum | | +| test.rs:475:5:481:5 | Normal Exit | test.rs:475:5:481:5 | Exit | | +| test.rs:475:21:475:21 | After e [match] | test.rs:475:21:475:29 | ...: MyEnum | | +| test.rs:475:21:475:21 | Before e | test.rs:475:21:475:21 | e | | +| test.rs:475:21:475:21 | e | test.rs:475:21:475:21 | After e [match] | match | | test.rs:475:21:475:21 | e | test.rs:475:21:475:21 | e | | -| test.rs:475:21:475:21 | e | test.rs:475:21:475:29 | ...: MyEnum | match | -| test.rs:475:21:475:29 | ...: MyEnum | test.rs:476:15:476:15 | e | | -| test.rs:475:39:481:5 | { ... } | test.rs:475:5:481:5 | exit fn enum_pattern (normal) | | -| test.rs:476:9:480:9 | match e { ... } | test.rs:475:39:481:5 | { ... } | | +| test.rs:475:21:475:29 | ...: MyEnum | test.rs:475:21:475:29 | After ...: MyEnum | | +| test.rs:475:21:475:29 | After ...: MyEnum | test.rs:475:39:481:5 | { ... } | | +| test.rs:475:21:475:29 | Before ...: MyEnum | test.rs:475:21:475:21 | Before e | | +| test.rs:475:39:481:5 | After { ... } | test.rs:475:5:481:5 | Normal Exit | | +| test.rs:475:39:481:5 | { ... } | test.rs:476:9:480:9 | match e { ... } | | +| test.rs:476:9:480:9 | After match e { ... } | test.rs:475:39:481:5 | After { ... } | | +| test.rs:476:9:480:9 | match e { ... } | test.rs:476:15:476:15 | e | | | test.rs:476:15:476:15 | e | test.rs:477:13:477:34 | StructVariant {...} | | -| test.rs:477:13:477:34 | StructVariant {...} | test.rs:477:32:477:32 | _ | match | -| test.rs:477:13:477:34 | StructVariant {...} | test.rs:478:13:478:27 | TupleVariant(...) | no-match | -| test.rs:477:32:477:32 | _ | test.rs:477:39:477:39 | 0 | match | -| test.rs:477:39:477:39 | 0 | test.rs:476:9:480:9 | match e { ... } | | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:26:478:26 | _ | match | -| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:479:13:479:23 | UnitVariant | no-match | -| test.rs:478:26:478:26 | _ | test.rs:478:32:478:32 | 1 | match | -| test.rs:478:32:478:32 | 1 | test.rs:476:9:480:9 | match e { ... } | | +| test.rs:477:13:477:34 | After StructVariant {...} [match] | test.rs:477:39:477:39 | 0 | | +| test.rs:477:13:477:34 | After StructVariant {...} [no-match] | test.rs:478:13:478:27 | TupleVariant(...) | | +| test.rs:477:13:477:34 | StructVariant {...} | test.rs:477:13:477:34 | After StructVariant {...} [no-match] | no-match | +| test.rs:477:13:477:34 | StructVariant {...} | test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | match | +| test.rs:477:13:477:34 | [pattern-start] StructVariant {...} | test.rs:477:32:477:32 | _ | | +| test.rs:477:32:477:32 | After _ [match] | test.rs:477:13:477:34 | After StructVariant {...} [match] | match | +| test.rs:477:32:477:32 | _ | test.rs:477:32:477:32 | After _ [match] | match | +| test.rs:477:39:477:39 | 0 | test.rs:476:9:480:9 | After match e { ... } | | +| test.rs:478:13:478:27 | After TupleVariant(...) [match] | test.rs:478:32:478:32 | 1 | | +| test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | test.rs:479:13:479:23 | Before UnitVariant | | +| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:13:478:27 | After TupleVariant(...) [no-match] | no-match | +| test.rs:478:13:478:27 | TupleVariant(...) | test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | match | +| test.rs:478:13:478:27 | [pattern-start] TupleVariant(...) | test.rs:478:26:478:26 | _ | | +| test.rs:478:26:478:26 | After _ [match] | test.rs:478:13:478:27 | After TupleVariant(...) [match] | match | +| test.rs:478:26:478:26 | _ | test.rs:478:26:478:26 | After _ [match] | match | +| test.rs:478:32:478:32 | 1 | test.rs:476:9:480:9 | After match e { ... } | | +| test.rs:479:13:479:23 | After UnitVariant [match] | test.rs:479:28:479:28 | 2 | | +| test.rs:479:13:479:23 | Before UnitVariant | test.rs:479:13:479:23 | UnitVariant | | +| test.rs:479:13:479:23 | UnitVariant | test.rs:479:13:479:23 | After UnitVariant [match] | match | | test.rs:479:13:479:23 | UnitVariant | test.rs:479:13:479:23 | UnitVariant | | -| test.rs:479:13:479:23 | UnitVariant | test.rs:479:28:479:28 | 2 | match | -| test.rs:479:28:479:28 | 2 | test.rs:476:9:480:9 | match e { ... } | | -| test.rs:485:5:490:5 | enter fn test_infinite_loop | test.rs:486:9:488:9 | ExprStmt | | -| test.rs:486:9:488:9 | ExprStmt | test.rs:487:13:487:14 | TupleExpr | | +| test.rs:479:28:479:28 | 2 | test.rs:476:9:480:9 | After match e { ... } | | +| test.rs:485:5:490:5 | Entry | test.rs:485:45:490:5 | { ... } | | +| test.rs:485:45:490:5 | { ... } | test.rs:486:9:488:9 | ExprStmt | | +| test.rs:486:9:488:9 | ExprStmt | test.rs:486:9:488:9 | loop { ... } | | +| test.rs:486:9:488:9 | [LoopHeader] loop { ... } | test.rs:486:14:488:9 | { ... } | | +| test.rs:486:9:488:9 | loop { ... } | test.rs:486:14:488:9 | { ... } | | +| test.rs:486:14:488:9 | After { ... } | test.rs:486:9:488:9 | [LoopHeader] loop { ... } | | | test.rs:486:14:488:9 | { ... } | test.rs:487:13:487:14 | TupleExpr | | -| test.rs:487:13:487:14 | TupleExpr | test.rs:486:14:488:9 | { ... } | | -| test.rs:494:5:496:5 | enter fn say_hello | test.rs:495:9:495:34 | ExprStmt | | -| test.rs:494:5:496:5 | exit fn say_hello (normal) | test.rs:494:5:496:5 | exit fn say_hello | | -| test.rs:494:26:496:5 | { ... } | test.rs:494:5:496:5 | exit fn say_hello (normal) | | -| test.rs:495:9:495:16 | ...::_print | test.rs:495:18:495:32 | "hello, world!\\n" | | -| test.rs:495:9:495:33 | MacroExpr | test.rs:494:26:496:5 | { ... } | | -| test.rs:495:9:495:33 | println!... | test.rs:495:9:495:33 | MacroExpr | | -| test.rs:495:9:495:34 | ExprStmt | test.rs:495:18:495:32 | ExprStmt | | +| test.rs:487:13:487:14 | TupleExpr | test.rs:486:14:488:9 | After { ... } | | +| test.rs:494:5:496:5 | Entry | test.rs:494:26:496:5 | { ... } | | +| test.rs:494:5:496:5 | Normal Exit | test.rs:494:5:496:5 | Exit | | +| test.rs:494:26:496:5 | After { ... } | test.rs:494:5:496:5 | Normal Exit | | +| test.rs:494:26:496:5 | { ... } | test.rs:495:9:495:34 | ExprStmt | | +| test.rs:495:9:495:16 | ...::_print | test.rs:495:18:495:32 | Before MacroExpr | | +| test.rs:495:9:495:33 | After MacroExpr | test.rs:495:9:495:34 | After ExprStmt | | +| test.rs:495:9:495:33 | After println!... | test.rs:495:9:495:33 | MacroExpr | | +| test.rs:495:9:495:33 | Before MacroExpr | test.rs:495:9:495:33 | Before println!... | | +| test.rs:495:9:495:33 | Before println!... | test.rs:495:18:495:32 | { ... } | | +| test.rs:495:9:495:33 | MacroExpr | test.rs:495:9:495:33 | After MacroExpr | | +| test.rs:495:9:495:33 | println!... | test.rs:495:9:495:33 | After println!... | | +| test.rs:495:9:495:34 | After ExprStmt | test.rs:494:26:496:5 | After { ... } | | +| test.rs:495:9:495:34 | ExprStmt | test.rs:495:9:495:33 | Before MacroExpr | | | test.rs:495:18:495:32 | "hello, world!\\n" | test.rs:495:18:495:32 | FormatArgsExpr | | -| test.rs:495:18:495:32 | ...::_print(...) | test.rs:495:18:495:32 | { ... } | | -| test.rs:495:18:495:32 | ...::format_args_nl!... | test.rs:495:18:495:32 | MacroExpr | | -| test.rs:495:18:495:32 | ExprStmt | test.rs:495:9:495:16 | ...::_print | | -| test.rs:495:18:495:32 | FormatArgsExpr | test.rs:495:18:495:32 | ...::format_args_nl!... | | -| test.rs:495:18:495:32 | MacroExpr | test.rs:495:18:495:32 | ...::_print(...) | | -| test.rs:495:18:495:32 | { ... } | test.rs:495:9:495:33 | println!... | | +| test.rs:495:18:495:32 | ...::_print(...) | test.rs:495:18:495:32 | After ...::_print(...) | | +| test.rs:495:18:495:32 | ...::format_args_nl!... | test.rs:495:18:495:32 | After ...::format_args_nl!... | | +| test.rs:495:18:495:32 | After ...::_print(...) | test.rs:495:18:495:32 | After ExprStmt | | +| test.rs:495:18:495:32 | After ...::format_args_nl!... | test.rs:495:18:495:32 | MacroExpr | | +| test.rs:495:18:495:32 | After ExprStmt | test.rs:495:18:495:32 | After { ... } | | +| test.rs:495:18:495:32 | After FormatArgsExpr | test.rs:495:18:495:32 | ...::format_args_nl!... | | +| test.rs:495:18:495:32 | After MacroExpr | test.rs:495:18:495:32 | ...::_print(...) | | +| test.rs:495:18:495:32 | After { ... } | test.rs:495:9:495:33 | println!... | | +| test.rs:495:18:495:32 | After { ... } | test.rs:495:18:495:32 | After { ... } | | +| test.rs:495:18:495:32 | Before ...::_print(...) | test.rs:495:9:495:16 | ...::_print | | +| test.rs:495:18:495:32 | Before ...::format_args_nl!... | test.rs:495:18:495:32 | Before FormatArgsExpr | | +| test.rs:495:18:495:32 | Before FormatArgsExpr | test.rs:495:18:495:32 | "hello, world!\\n" | | +| test.rs:495:18:495:32 | Before MacroExpr | test.rs:495:18:495:32 | Before ...::format_args_nl!... | | +| test.rs:495:18:495:32 | ExprStmt | test.rs:495:18:495:32 | Before ...::_print(...) | | +| test.rs:495:18:495:32 | FormatArgsExpr | test.rs:495:18:495:32 | After FormatArgsExpr | | +| test.rs:495:18:495:32 | MacroExpr | test.rs:495:18:495:32 | After MacroExpr | | +| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | ExprStmt | | | test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | { ... } | | -| test.rs:498:5:517:5 | enter fn async_block | test.rs:498:26:498:26 | b | | -| test.rs:498:5:517:5 | exit fn async_block (normal) | test.rs:498:5:517:5 | exit fn async_block | | +| test.rs:498:5:517:5 | Entry | test.rs:498:26:498:32 | Before ...: bool | | +| test.rs:498:5:517:5 | Normal Exit | test.rs:498:5:517:5 | Exit | | +| test.rs:498:26:498:26 | After b [match] | test.rs:498:26:498:32 | ...: bool | | +| test.rs:498:26:498:26 | Before b | test.rs:498:26:498:26 | b | | +| test.rs:498:26:498:26 | b | test.rs:498:26:498:26 | After b [match] | match | | test.rs:498:26:498:26 | b | test.rs:498:26:498:26 | b | | -| test.rs:498:26:498:26 | b | test.rs:498:26:498:32 | ...: bool | match | -| test.rs:498:26:498:32 | ...: bool | test.rs:499:9:501:10 | let ... = ... | | -| test.rs:498:35:517:5 | { ... } | test.rs:498:5:517:5 | exit fn async_block (normal) | | +| test.rs:498:26:498:32 | ...: bool | test.rs:498:26:498:32 | After ...: bool | | +| test.rs:498:26:498:32 | After ...: bool | test.rs:498:35:517:5 | { ... } | | +| test.rs:498:26:498:32 | Before ...: bool | test.rs:498:26:498:26 | Before b | | +| test.rs:498:35:517:5 | After { ... } | test.rs:498:5:517:5 | Normal Exit | | +| test.rs:498:35:517:5 | { ... } | test.rs:499:9:501:10 | let ... = ... | | +| test.rs:499:9:501:10 | After let ... = ... | test.rs:502:9:504:10 | let ... = ... | | | test.rs:499:9:501:10 | let ... = ... | test.rs:499:26:501:9 | { ... } | | +| test.rs:499:13:499:22 | After say_godbye [match] | test.rs:499:9:501:10 | After let ... = ... | | +| test.rs:499:13:499:22 | Before say_godbye | test.rs:499:13:499:22 | say_godbye | | +| test.rs:499:13:499:22 | say_godbye | test.rs:499:13:499:22 | After say_godbye [match] | match | | test.rs:499:13:499:22 | say_godbye | test.rs:499:13:499:22 | say_godbye | | -| test.rs:499:13:499:22 | say_godbye | test.rs:502:9:504:10 | let ... = ... | match | -| test.rs:499:26:501:9 | enter { ... } | test.rs:500:13:500:42 | ExprStmt | | -| test.rs:499:26:501:9 | exit { ... } (normal) | test.rs:499:26:501:9 | exit { ... } | | -| test.rs:499:26:501:9 | { ... } | test.rs:499:13:499:22 | say_godbye | | -| test.rs:500:13:500:20 | ...::_print | test.rs:500:22:500:40 | "godbye, everyone!\\n" | | -| test.rs:500:13:500:41 | MacroExpr | test.rs:499:26:501:9 | exit { ... } (normal) | | -| test.rs:500:13:500:41 | println!... | test.rs:500:13:500:41 | MacroExpr | | -| test.rs:500:13:500:42 | ExprStmt | test.rs:500:22:500:40 | ExprStmt | | +| test.rs:499:26:501:9 | Entry | test.rs:499:32:501:9 | StmtList | | +| test.rs:499:26:501:9 | Normal Exit | test.rs:499:26:501:9 | Exit | | +| test.rs:499:26:501:9 | { ... } | test.rs:499:13:499:22 | Before say_godbye | | +| test.rs:499:32:501:9 | After StmtList | test.rs:499:26:501:9 | Normal Exit | | +| test.rs:499:32:501:9 | StmtList | test.rs:500:13:500:42 | ExprStmt | | +| test.rs:500:13:500:20 | ...::_print | test.rs:500:22:500:40 | Before MacroExpr | | +| test.rs:500:13:500:41 | After MacroExpr | test.rs:500:13:500:42 | After ExprStmt | | +| test.rs:500:13:500:41 | After println!... | test.rs:500:13:500:41 | MacroExpr | | +| test.rs:500:13:500:41 | Before MacroExpr | test.rs:500:13:500:41 | Before println!... | | +| test.rs:500:13:500:41 | Before println!... | test.rs:500:22:500:40 | { ... } | | +| test.rs:500:13:500:41 | MacroExpr | test.rs:500:13:500:41 | After MacroExpr | | +| test.rs:500:13:500:41 | println!... | test.rs:500:13:500:41 | After println!... | | +| test.rs:500:13:500:42 | After ExprStmt | test.rs:499:32:501:9 | After StmtList | | +| test.rs:500:13:500:42 | ExprStmt | test.rs:500:13:500:41 | Before MacroExpr | | | test.rs:500:22:500:40 | "godbye, everyone!\\n" | test.rs:500:22:500:40 | FormatArgsExpr | | -| test.rs:500:22:500:40 | ...::_print(...) | test.rs:500:22:500:40 | { ... } | | -| test.rs:500:22:500:40 | ...::format_args_nl!... | test.rs:500:22:500:40 | MacroExpr | | -| test.rs:500:22:500:40 | ExprStmt | test.rs:500:13:500:20 | ...::_print | | -| test.rs:500:22:500:40 | FormatArgsExpr | test.rs:500:22:500:40 | ...::format_args_nl!... | | -| test.rs:500:22:500:40 | MacroExpr | test.rs:500:22:500:40 | ...::_print(...) | | -| test.rs:500:22:500:40 | { ... } | test.rs:500:13:500:41 | println!... | | +| test.rs:500:22:500:40 | ...::_print(...) | test.rs:500:22:500:40 | After ...::_print(...) | | +| test.rs:500:22:500:40 | ...::format_args_nl!... | test.rs:500:22:500:40 | After ...::format_args_nl!... | | +| test.rs:500:22:500:40 | After ...::_print(...) | test.rs:500:22:500:40 | After ExprStmt | | +| test.rs:500:22:500:40 | After ...::format_args_nl!... | test.rs:500:22:500:40 | MacroExpr | | +| test.rs:500:22:500:40 | After ExprStmt | test.rs:500:22:500:40 | After { ... } | | +| test.rs:500:22:500:40 | After FormatArgsExpr | test.rs:500:22:500:40 | ...::format_args_nl!... | | +| test.rs:500:22:500:40 | After MacroExpr | test.rs:500:22:500:40 | ...::_print(...) | | +| test.rs:500:22:500:40 | After { ... } | test.rs:500:13:500:41 | println!... | | +| test.rs:500:22:500:40 | After { ... } | test.rs:500:22:500:40 | After { ... } | | +| test.rs:500:22:500:40 | Before ...::_print(...) | test.rs:500:13:500:20 | ...::_print | | +| test.rs:500:22:500:40 | Before ...::format_args_nl!... | test.rs:500:22:500:40 | Before FormatArgsExpr | | +| test.rs:500:22:500:40 | Before FormatArgsExpr | test.rs:500:22:500:40 | "godbye, everyone!\\n" | | +| test.rs:500:22:500:40 | Before MacroExpr | test.rs:500:22:500:40 | Before ...::format_args_nl!... | | +| test.rs:500:22:500:40 | ExprStmt | test.rs:500:22:500:40 | Before ...::_print(...) | | +| test.rs:500:22:500:40 | FormatArgsExpr | test.rs:500:22:500:40 | After FormatArgsExpr | | +| test.rs:500:22:500:40 | MacroExpr | test.rs:500:22:500:40 | After MacroExpr | | +| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | ExprStmt | | | test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | { ... } | | +| test.rs:502:9:504:10 | After let ... = ... | test.rs:505:9:505:28 | let ... = ... | | | test.rs:502:9:504:10 | let ... = ... | test.rs:502:31:504:9 | { ... } | | +| test.rs:502:13:502:27 | After say_how_are_you [match] | test.rs:502:9:504:10 | After let ... = ... | | +| test.rs:502:13:502:27 | Before say_how_are_you | test.rs:502:13:502:27 | say_how_are_you | | +| test.rs:502:13:502:27 | say_how_are_you | test.rs:502:13:502:27 | After say_how_are_you [match] | match | | test.rs:502:13:502:27 | say_how_are_you | test.rs:502:13:502:27 | say_how_are_you | | -| test.rs:502:13:502:27 | say_how_are_you | test.rs:505:9:505:28 | let ... = ... | match | -| test.rs:502:31:504:9 | enter { ... } | test.rs:503:13:503:37 | ExprStmt | | -| test.rs:502:31:504:9 | exit { ... } (normal) | test.rs:502:31:504:9 | exit { ... } | | -| test.rs:502:31:504:9 | { ... } | test.rs:502:13:502:27 | say_how_are_you | | -| test.rs:503:13:503:20 | ...::_print | test.rs:503:22:503:35 | "how are you?\\n" | | -| test.rs:503:13:503:36 | MacroExpr | test.rs:502:31:504:9 | exit { ... } (normal) | | -| test.rs:503:13:503:36 | println!... | test.rs:503:13:503:36 | MacroExpr | | -| test.rs:503:13:503:37 | ExprStmt | test.rs:503:22:503:35 | ExprStmt | | +| test.rs:502:31:504:9 | Entry | test.rs:502:37:504:9 | StmtList | | +| test.rs:502:31:504:9 | Normal Exit | test.rs:502:31:504:9 | Exit | | +| test.rs:502:31:504:9 | { ... } | test.rs:502:13:502:27 | Before say_how_are_you | | +| test.rs:502:37:504:9 | After StmtList | test.rs:502:31:504:9 | Normal Exit | | +| test.rs:502:37:504:9 | StmtList | test.rs:503:13:503:37 | ExprStmt | | +| test.rs:503:13:503:20 | ...::_print | test.rs:503:22:503:35 | Before MacroExpr | | +| test.rs:503:13:503:36 | After MacroExpr | test.rs:503:13:503:37 | After ExprStmt | | +| test.rs:503:13:503:36 | After println!... | test.rs:503:13:503:36 | MacroExpr | | +| test.rs:503:13:503:36 | Before MacroExpr | test.rs:503:13:503:36 | Before println!... | | +| test.rs:503:13:503:36 | Before println!... | test.rs:503:22:503:35 | { ... } | | +| test.rs:503:13:503:36 | MacroExpr | test.rs:503:13:503:36 | After MacroExpr | | +| test.rs:503:13:503:36 | println!... | test.rs:503:13:503:36 | After println!... | | +| test.rs:503:13:503:37 | After ExprStmt | test.rs:502:37:504:9 | After StmtList | | +| test.rs:503:13:503:37 | ExprStmt | test.rs:503:13:503:36 | Before MacroExpr | | | test.rs:503:22:503:35 | "how are you?\\n" | test.rs:503:22:503:35 | FormatArgsExpr | | -| test.rs:503:22:503:35 | ...::_print(...) | test.rs:503:22:503:35 | { ... } | | -| test.rs:503:22:503:35 | ...::format_args_nl!... | test.rs:503:22:503:35 | MacroExpr | | -| test.rs:503:22:503:35 | ExprStmt | test.rs:503:13:503:20 | ...::_print | | -| test.rs:503:22:503:35 | FormatArgsExpr | test.rs:503:22:503:35 | ...::format_args_nl!... | | -| test.rs:503:22:503:35 | MacroExpr | test.rs:503:22:503:35 | ...::_print(...) | | -| test.rs:503:22:503:35 | { ... } | test.rs:503:13:503:36 | println!... | | +| test.rs:503:22:503:35 | ...::_print(...) | test.rs:503:22:503:35 | After ...::_print(...) | | +| test.rs:503:22:503:35 | ...::format_args_nl!... | test.rs:503:22:503:35 | After ...::format_args_nl!... | | +| test.rs:503:22:503:35 | After ...::_print(...) | test.rs:503:22:503:35 | After ExprStmt | | +| test.rs:503:22:503:35 | After ...::format_args_nl!... | test.rs:503:22:503:35 | MacroExpr | | +| test.rs:503:22:503:35 | After ExprStmt | test.rs:503:22:503:35 | After { ... } | | +| test.rs:503:22:503:35 | After FormatArgsExpr | test.rs:503:22:503:35 | ...::format_args_nl!... | | +| test.rs:503:22:503:35 | After MacroExpr | test.rs:503:22:503:35 | ...::_print(...) | | +| test.rs:503:22:503:35 | After { ... } | test.rs:503:13:503:36 | println!... | | +| test.rs:503:22:503:35 | After { ... } | test.rs:503:22:503:35 | After { ... } | | +| test.rs:503:22:503:35 | Before ...::_print(...) | test.rs:503:13:503:20 | ...::_print | | +| test.rs:503:22:503:35 | Before ...::format_args_nl!... | test.rs:503:22:503:35 | Before FormatArgsExpr | | +| test.rs:503:22:503:35 | Before FormatArgsExpr | test.rs:503:22:503:35 | "how are you?\\n" | | +| test.rs:503:22:503:35 | Before MacroExpr | test.rs:503:22:503:35 | Before ...::format_args_nl!... | | +| test.rs:503:22:503:35 | ExprStmt | test.rs:503:22:503:35 | Before ...::_print(...) | | +| test.rs:503:22:503:35 | FormatArgsExpr | test.rs:503:22:503:35 | After FormatArgsExpr | | +| test.rs:503:22:503:35 | MacroExpr | test.rs:503:22:503:35 | After MacroExpr | | +| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | ExprStmt | | | test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | { ... } | | +| test.rs:505:9:505:28 | After let ... = ... | test.rs:506:9:506:26 | ExprStmt | | | test.rs:505:9:505:28 | let ... = ... | test.rs:505:20:505:27 | { ... } | | +| test.rs:505:13:505:16 | After noop [match] | test.rs:505:9:505:28 | After let ... = ... | | +| test.rs:505:13:505:16 | Before noop | test.rs:505:13:505:16 | noop | | +| test.rs:505:13:505:16 | noop | test.rs:505:13:505:16 | After noop [match] | match | | test.rs:505:13:505:16 | noop | test.rs:505:13:505:16 | noop | | -| test.rs:505:13:505:16 | noop | test.rs:506:9:506:26 | ExprStmt | match | -| test.rs:505:20:505:27 | { ... } | test.rs:505:13:505:16 | noop | | +| test.rs:505:20:505:27 | Entry | test.rs:505:26:505:27 | StmtList | | +| test.rs:505:20:505:27 | Normal Exit | test.rs:505:20:505:27 | Exit | | +| test.rs:505:20:505:27 | { ... } | test.rs:505:13:505:16 | Before noop | | +| test.rs:505:26:505:27 | StmtList | test.rs:505:20:505:27 | Normal Exit | | | test.rs:506:9:506:17 | say_hello | test.rs:506:9:506:19 | say_hello(...) | | -| test.rs:506:9:506:19 | say_hello(...) | test.rs:506:9:506:25 | await ... | | -| test.rs:506:9:506:25 | await ... | test.rs:507:9:507:30 | ExprStmt | | -| test.rs:506:9:506:26 | ExprStmt | test.rs:506:9:506:17 | say_hello | | +| test.rs:506:9:506:19 | After say_hello(...) | test.rs:506:9:506:25 | await ... | | +| test.rs:506:9:506:19 | Before say_hello(...) | test.rs:506:9:506:17 | say_hello | | +| test.rs:506:9:506:19 | say_hello(...) | test.rs:506:9:506:19 | After say_hello(...) | | +| test.rs:506:9:506:25 | After await ... | test.rs:506:9:506:26 | After ExprStmt | | +| test.rs:506:9:506:25 | Before await ... | test.rs:506:9:506:19 | Before say_hello(...) | | +| test.rs:506:9:506:25 | await ... | test.rs:506:9:506:25 | After await ... | | +| test.rs:506:9:506:26 | After ExprStmt | test.rs:507:9:507:30 | ExprStmt | | +| test.rs:506:9:506:26 | ExprStmt | test.rs:506:9:506:25 | Before await ... | | | test.rs:507:9:507:23 | say_how_are_you | test.rs:507:9:507:29 | await say_how_are_you | | -| test.rs:507:9:507:29 | await say_how_are_you | test.rs:508:9:508:25 | ExprStmt | | -| test.rs:507:9:507:30 | ExprStmt | test.rs:507:9:507:23 | say_how_are_you | | +| test.rs:507:9:507:29 | After await say_how_are_you | test.rs:507:9:507:30 | After ExprStmt | | +| test.rs:507:9:507:29 | Before await say_how_are_you | test.rs:507:9:507:23 | say_how_are_you | | +| test.rs:507:9:507:29 | await say_how_are_you | test.rs:507:9:507:29 | After await say_how_are_you | | +| test.rs:507:9:507:30 | After ExprStmt | test.rs:508:9:508:25 | ExprStmt | | +| test.rs:507:9:507:30 | ExprStmt | test.rs:507:9:507:29 | Before await say_how_are_you | | | test.rs:508:9:508:18 | say_godbye | test.rs:508:9:508:24 | await say_godbye | | -| test.rs:508:9:508:24 | await say_godbye | test.rs:509:9:509:19 | ExprStmt | | -| test.rs:508:9:508:25 | ExprStmt | test.rs:508:9:508:18 | say_godbye | | +| test.rs:508:9:508:24 | After await say_godbye | test.rs:508:9:508:25 | After ExprStmt | | +| test.rs:508:9:508:24 | Before await say_godbye | test.rs:508:9:508:18 | say_godbye | | +| test.rs:508:9:508:24 | await say_godbye | test.rs:508:9:508:24 | After await say_godbye | | +| test.rs:508:9:508:25 | After ExprStmt | test.rs:509:9:509:19 | ExprStmt | | +| test.rs:508:9:508:25 | ExprStmt | test.rs:508:9:508:24 | Before await say_godbye | | | test.rs:509:9:509:12 | noop | test.rs:509:9:509:18 | await noop | | -| test.rs:509:9:509:18 | await noop | test.rs:511:9:516:10 | let ... = ... | | -| test.rs:509:9:509:19 | ExprStmt | test.rs:509:9:509:12 | noop | | +| test.rs:509:9:509:18 | After await noop | test.rs:509:9:509:19 | After ExprStmt | | +| test.rs:509:9:509:18 | Before await noop | test.rs:509:9:509:12 | noop | | +| test.rs:509:9:509:18 | await noop | test.rs:509:9:509:18 | After await noop | | +| test.rs:509:9:509:19 | After ExprStmt | test.rs:511:9:516:10 | let ... = ... | | +| test.rs:509:9:509:19 | ExprStmt | test.rs:509:9:509:18 | Before await noop | | +| test.rs:511:9:516:10 | After let ... = ... | test.rs:498:35:517:5 | After { ... } | | | test.rs:511:9:516:10 | let ... = ... | test.rs:511:22:516:9 | \|...\| ... | | -| test.rs:511:13:511:18 | lambda | test.rs:498:35:517:5 | { ... } | match | +| test.rs:511:13:511:18 | After lambda [match] | test.rs:511:9:516:10 | After let ... = ... | | +| test.rs:511:13:511:18 | Before lambda | test.rs:511:13:511:18 | lambda | | +| test.rs:511:13:511:18 | lambda | test.rs:511:13:511:18 | After lambda [match] | match | | test.rs:511:13:511:18 | lambda | test.rs:511:13:511:18 | lambda | | -| test.rs:511:22:516:9 | \|...\| ... | test.rs:511:13:511:18 | lambda | | -| test.rs:511:22:516:9 | enter \|...\| ... | test.rs:511:23:511:25 | foo | | -| test.rs:511:22:516:9 | exit \|...\| ... (normal) | test.rs:511:22:516:9 | exit \|...\| ... | | -| test.rs:511:23:511:25 | ... | test.rs:511:28:516:9 | { ... } | | -| test.rs:511:23:511:25 | foo | test.rs:511:23:511:25 | ... | match | +| test.rs:511:22:516:9 | Entry | test.rs:511:23:511:25 | Before ... | | +| test.rs:511:22:516:9 | Normal Exit | test.rs:511:22:516:9 | Exit | | +| test.rs:511:22:516:9 | \|...\| ... | test.rs:511:13:511:18 | Before lambda | | +| test.rs:511:23:511:25 | ... | test.rs:511:23:511:25 | After ... | | +| test.rs:511:23:511:25 | After ... | test.rs:511:28:516:9 | { ... } | | +| test.rs:511:23:511:25 | After foo [match] | test.rs:511:23:511:25 | ... | | +| test.rs:511:23:511:25 | Before ... | test.rs:511:23:511:25 | Before foo | | +| test.rs:511:23:511:25 | Before foo | test.rs:511:23:511:25 | foo | | +| test.rs:511:23:511:25 | foo | test.rs:511:23:511:25 | After foo [match] | match | | test.rs:511:23:511:25 | foo | test.rs:511:23:511:25 | foo | | -| test.rs:511:28:516:9 | enter { ... } | test.rs:512:13:514:14 | ExprStmt | | -| test.rs:511:28:516:9 | exit { ... } (normal) | test.rs:511:28:516:9 | exit { ... } | | -| test.rs:511:28:516:9 | { ... } | test.rs:511:22:516:9 | exit \|...\| ... (normal) | | -| test.rs:512:13:514:13 | if b {...} | test.rs:515:13:515:15 | foo | | -| test.rs:512:13:514:14 | ExprStmt | test.rs:512:16:512:16 | b | | -| test.rs:512:16:512:16 | b | test.rs:512:13:514:13 | if b {...} | false | -| test.rs:512:16:512:16 | b | test.rs:513:17:513:41 | ExprStmt | true | -| test.rs:513:17:513:40 | return ... | test.rs:511:28:516:9 | exit { ... } (normal) | return | -| test.rs:513:17:513:41 | ExprStmt | test.rs:513:24:513:34 | async_block | | +| test.rs:511:28:516:9 | Entry | test.rs:511:34:516:9 | StmtList | | +| test.rs:511:28:516:9 | Normal Exit | test.rs:511:28:516:9 | Exit | | +| test.rs:511:28:516:9 | { ... } | test.rs:511:22:516:9 | Normal Exit | | +| test.rs:511:34:516:9 | After StmtList | test.rs:511:28:516:9 | Normal Exit | | +| test.rs:511:34:516:9 | StmtList | test.rs:512:13:514:14 | ExprStmt | | +| test.rs:512:13:514:13 | After if b {...} | test.rs:512:13:514:14 | After ExprStmt | | +| test.rs:512:13:514:13 | if b {...} | test.rs:512:16:512:16 | b | | +| test.rs:512:13:514:14 | After ExprStmt | test.rs:515:13:515:15 | foo | | +| test.rs:512:13:514:14 | ExprStmt | test.rs:512:13:514:13 | if b {...} | | +| test.rs:512:16:512:16 | After b [false] | test.rs:512:13:514:13 | After if b {...} | | +| test.rs:512:16:512:16 | After b [true] | test.rs:512:18:514:13 | { ... } | | +| test.rs:512:16:512:16 | b | test.rs:512:16:512:16 | After b [false] | false | +| test.rs:512:16:512:16 | b | test.rs:512:16:512:16 | After b [true] | true | +| test.rs:512:18:514:13 | { ... } | test.rs:513:17:513:41 | ExprStmt | | +| test.rs:513:17:513:40 | Before return ... | test.rs:513:24:513:40 | Before async_block(...) | | +| test.rs:513:17:513:40 | return ... | test.rs:511:28:516:9 | Normal Exit | return | +| test.rs:513:17:513:41 | ExprStmt | test.rs:513:17:513:40 | Before return ... | | | test.rs:513:24:513:34 | async_block | test.rs:513:36:513:39 | true | | -| test.rs:513:24:513:40 | async_block(...) | test.rs:513:17:513:40 | return ... | | +| test.rs:513:24:513:40 | After async_block(...) | test.rs:513:17:513:40 | return ... | | +| test.rs:513:24:513:40 | Before async_block(...) | test.rs:513:24:513:34 | async_block | | +| test.rs:513:24:513:40 | async_block(...) | test.rs:513:24:513:40 | After async_block(...) | | | test.rs:513:36:513:39 | true | test.rs:513:24:513:40 | async_block(...) | | -| test.rs:515:13:515:15 | foo | test.rs:511:28:516:9 | exit { ... } (normal) | | -| test.rs:523:5:525:5 | enter fn add_two | test.rs:523:22:523:22 | n | | -| test.rs:523:5:525:5 | exit fn add_two (normal) | test.rs:523:5:525:5 | exit fn add_two | | +| test.rs:515:13:515:15 | foo | test.rs:511:34:516:9 | After StmtList | | +| test.rs:523:5:525:5 | Entry | test.rs:523:22:523:27 | Before ...: i64 | | +| test.rs:523:5:525:5 | Normal Exit | test.rs:523:5:525:5 | Exit | | +| test.rs:523:22:523:22 | After n [match] | test.rs:523:22:523:27 | ...: i64 | | +| test.rs:523:22:523:22 | Before n | test.rs:523:22:523:22 | n | | +| test.rs:523:22:523:22 | n | test.rs:523:22:523:22 | After n [match] | match | | test.rs:523:22:523:22 | n | test.rs:523:22:523:22 | n | | -| test.rs:523:22:523:22 | n | test.rs:523:22:523:27 | ...: i64 | match | -| test.rs:523:22:523:27 | ...: i64 | test.rs:524:9:524:9 | n | | -| test.rs:523:37:525:5 | { ... } | test.rs:523:5:525:5 | exit fn add_two (normal) | | +| test.rs:523:22:523:27 | ...: i64 | test.rs:523:22:523:27 | After ...: i64 | | +| test.rs:523:22:523:27 | After ...: i64 | test.rs:523:37:525:5 | { ... } | | +| test.rs:523:22:523:27 | Before ...: i64 | test.rs:523:22:523:22 | Before n | | +| test.rs:523:37:525:5 | After { ... } | test.rs:523:5:525:5 | Normal Exit | | +| test.rs:523:37:525:5 | { ... } | test.rs:524:9:524:13 | Before ... + ... | | | test.rs:524:9:524:9 | n | test.rs:524:13:524:13 | 2 | | -| test.rs:524:9:524:13 | ... + ... | test.rs:523:37:525:5 | { ... } | | +| test.rs:524:9:524:13 | ... + ... | test.rs:524:9:524:13 | After ... + ... | | +| test.rs:524:9:524:13 | After ... + ... | test.rs:523:37:525:5 | After { ... } | | +| test.rs:524:9:524:13 | Before ... + ... | test.rs:524:9:524:9 | n | | | test.rs:524:13:524:13 | 2 | test.rs:524:9:524:13 | ... + ... | | -| test.rs:529:5:537:5 | enter fn const_block_assert | test.rs:532:9:534:9 | ExprStmt | | -| test.rs:529:5:537:5 | exit fn const_block_assert (normal) | test.rs:529:5:537:5 | exit fn const_block_assert | | -| test.rs:529:41:537:5 | { ... } | test.rs:529:5:537:5 | exit fn const_block_assert (normal) | | -| test.rs:532:9:534:9 | ExprStmt | test.rs:533:13:533:50 | ExprStmt | | -| test.rs:532:9:534:9 | { ... } | test.rs:536:9:536:10 | 42 | | +| test.rs:529:5:537:5 | Entry | test.rs:529:41:537:5 | { ... } | | +| test.rs:529:5:537:5 | Normal Exit | test.rs:529:5:537:5 | Exit | | +| test.rs:529:41:537:5 | After { ... } | test.rs:529:5:537:5 | Normal Exit | | +| test.rs:529:41:537:5 | { ... } | test.rs:532:9:534:9 | ExprStmt | | +| test.rs:532:9:534:9 | After ExprStmt | test.rs:536:9:536:10 | 42 | | +| test.rs:532:9:534:9 | After { ... } | test.rs:532:9:534:9 | After ExprStmt | | +| test.rs:532:9:534:9 | ExprStmt | test.rs:532:9:534:9 | { ... } | | +| test.rs:532:9:534:9 | { ... } | test.rs:533:13:533:50 | ExprStmt | | | test.rs:533:13:533:19 | "explicit panic" | test.rs:533:13:533:19 | ...::panic(...) | | | test.rs:533:13:533:19 | ...::panic | test.rs:533:13:533:19 | "explicit panic" | | -| test.rs:533:13:533:19 | ...::panic(...) | test.rs:533:13:533:19 | { ... } | | -| test.rs:533:13:533:19 | ...::panic_2021!... | test.rs:533:13:533:19 | MacroExpr | | -| test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | ...::panic | | -| test.rs:533:13:533:19 | MacroExpr | test.rs:533:13:533:19 | { ... } | | -| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | ...::panic_2021!... | | -| test.rs:533:13:533:19 | { ... } | test.rs:533:21:533:48 | if ... {...} | | -| test.rs:533:13:533:49 | MacroExpr | test.rs:532:9:534:9 | { ... } | | -| test.rs:533:13:533:49 | assert!... | test.rs:533:13:533:49 | MacroExpr | | -| test.rs:533:13:533:50 | ExprStmt | test.rs:533:21:533:42 | ...::size_of::<...> | | +| test.rs:533:13:533:19 | ...::panic(...) | test.rs:533:13:533:19 | After ...::panic(...) | | +| test.rs:533:13:533:19 | ...::panic_2021!... | test.rs:533:13:533:19 | After ...::panic_2021!... | | +| test.rs:533:13:533:19 | After ...::panic(...) | test.rs:533:13:533:19 | After { ... } | | +| test.rs:533:13:533:19 | After ...::panic_2021!... | test.rs:533:13:533:19 | MacroExpr | | +| test.rs:533:13:533:19 | After ExprStmt | test.rs:533:13:533:19 | After { ... } | | +| test.rs:533:13:533:19 | After MacroExpr | test.rs:533:13:533:19 | After ExprStmt | | +| test.rs:533:13:533:19 | After { ... } | test.rs:533:13:533:19 | ...::panic_2021!... | | +| test.rs:533:13:533:19 | After { ... } | test.rs:533:21:533:48 | After if ... {...} | | +| test.rs:533:13:533:19 | Before ...::panic(...) | test.rs:533:13:533:19 | ...::panic | | +| test.rs:533:13:533:19 | Before ...::panic_2021!... | test.rs:533:13:533:19 | { ... } | | +| test.rs:533:13:533:19 | Before MacroExpr | test.rs:533:13:533:19 | Before ...::panic_2021!... | | +| test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | Before MacroExpr | | +| test.rs:533:13:533:19 | MacroExpr | test.rs:533:13:533:19 | After MacroExpr | | +| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | Before ...::panic(...) | | +| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | ExprStmt | | +| test.rs:533:13:533:49 | After MacroExpr | test.rs:533:13:533:50 | After ExprStmt | | +| test.rs:533:13:533:49 | After assert!... | test.rs:533:13:533:49 | MacroExpr | | +| test.rs:533:13:533:49 | Before MacroExpr | test.rs:533:13:533:49 | Before assert!... | | +| test.rs:533:13:533:49 | Before assert!... | test.rs:533:21:533:48 | { ... } | | +| test.rs:533:13:533:49 | MacroExpr | test.rs:533:13:533:49 | After MacroExpr | | +| test.rs:533:13:533:49 | assert!... | test.rs:533:13:533:49 | After assert!... | | +| test.rs:533:13:533:50 | After ExprStmt | test.rs:532:9:534:9 | After { ... } | | +| test.rs:533:13:533:50 | ExprStmt | test.rs:533:13:533:49 | Before MacroExpr | | | test.rs:533:21:533:42 | ...::size_of::<...> | test.rs:533:21:533:44 | ...::size_of::<...>(...) | | -| test.rs:533:21:533:44 | ...::size_of::<...>(...) | test.rs:533:48:533:48 | 0 | | -| test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | -| test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | if ... {...} | false | -| test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:19 | ExprStmt | true | -| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | { ... } | | -| test.rs:533:21:533:48 | { ... } | test.rs:533:13:533:49 | assert!... | | +| test.rs:533:21:533:44 | ...::size_of::<...>(...) | test.rs:533:21:533:44 | After ...::size_of::<...>(...) | | +| test.rs:533:21:533:44 | After ...::size_of::<...>(...) | test.rs:533:48:533:48 | 0 | | +| test.rs:533:21:533:44 | Before ...::size_of::<...>(...) | test.rs:533:21:533:42 | ...::size_of::<...> | | +| test.rs:533:21:533:48 | ! ... | test.rs:533:21:533:48 | Before ... > ... | | +| test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | After ... > ... [false] | false | +| test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | After ... > ... [true] | true | +| test.rs:533:21:533:48 | After ! ... [false] | test.rs:533:21:533:48 | After if ... {...} | | +| test.rs:533:21:533:48 | After ! ... [true] | test.rs:533:13:533:19 | { ... } | | +| test.rs:533:21:533:48 | After ... > ... [false] | test.rs:533:21:533:48 | After ! ... [true] | true | +| test.rs:533:21:533:48 | After ... > ... [true] | test.rs:533:21:533:48 | After ! ... [false] | false | +| test.rs:533:21:533:48 | After if ... {...} | test.rs:533:21:533:48 | After { ... } | | +| test.rs:533:21:533:48 | After { ... } | test.rs:533:13:533:49 | assert!... | | +| test.rs:533:21:533:48 | After { ... } | test.rs:533:21:533:48 | After { ... } | | +| test.rs:533:21:533:48 | Before ... > ... | test.rs:533:21:533:44 | Before ...::size_of::<...>(...) | | +| test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | ! ... | | +| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | if ... {...} | | | test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | { ... } | | | test.rs:533:48:533:48 | 0 | test.rs:533:21:533:48 | ... > ... | | -| test.rs:536:9:536:10 | 42 | test.rs:529:41:537:5 | { ... } | | -| test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | ExprStmt | | -| test.rs:539:5:548:5 | exit fn const_block_panic (normal) | test.rs:539:5:548:5 | exit fn const_block_panic | | -| test.rs:539:35:548:5 | { ... } | test.rs:539:5:548:5 | exit fn const_block_panic (normal) | | -| test.rs:541:9:546:9 | ExprStmt | test.rs:541:12:541:16 | false | | -| test.rs:541:9:546:9 | if false {...} | test.rs:547:9:547:9 | N | | -| test.rs:541:12:541:16 | false | test.rs:541:9:546:9 | if false {...} | false | -| test.rs:547:9:547:9 | N | test.rs:539:35:548:5 | { ... } | | -| test.rs:551:1:556:1 | enter fn dead_code | test.rs:552:5:554:5 | ExprStmt | | -| test.rs:551:1:556:1 | exit fn dead_code (normal) | test.rs:551:1:556:1 | exit fn dead_code | | -| test.rs:552:5:554:5 | ExprStmt | test.rs:552:9:552:12 | true | | -| test.rs:552:9:552:12 | true | test.rs:553:9:553:17 | ExprStmt | true | -| test.rs:553:9:553:16 | return 0 | test.rs:551:1:556:1 | exit fn dead_code (normal) | return | -| test.rs:553:9:553:17 | ExprStmt | test.rs:553:16:553:16 | 0 | | +| test.rs:536:9:536:10 | 42 | test.rs:529:41:537:5 | After { ... } | | +| test.rs:539:5:548:5 | Entry | test.rs:539:35:548:5 | { ... } | | +| test.rs:539:5:548:5 | Normal Exit | test.rs:539:5:548:5 | Exit | | +| test.rs:539:35:548:5 | After { ... } | test.rs:539:5:548:5 | Normal Exit | | +| test.rs:539:35:548:5 | { ... } | test.rs:541:9:546:9 | ExprStmt | | +| test.rs:541:9:546:9 | After ExprStmt | test.rs:547:9:547:9 | N | | +| test.rs:541:9:546:9 | After if false {...} | test.rs:541:9:546:9 | After ExprStmt | | +| test.rs:541:9:546:9 | ExprStmt | test.rs:541:9:546:9 | if false {...} | | +| test.rs:541:9:546:9 | if false {...} | test.rs:541:12:541:16 | false | | +| test.rs:541:12:541:16 | After false [false] | test.rs:541:9:546:9 | After if false {...} | | +| test.rs:541:12:541:16 | false | test.rs:541:12:541:16 | After false [false] | false | +| test.rs:547:9:547:9 | N | test.rs:539:35:548:5 | After { ... } | | +| test.rs:551:1:556:1 | Entry | test.rs:551:23:556:1 | { ... } | | +| test.rs:551:1:556:1 | Normal Exit | test.rs:551:1:556:1 | Exit | | +| test.rs:551:23:556:1 | { ... } | test.rs:552:5:554:5 | ExprStmt | | +| test.rs:552:5:554:5 | ExprStmt | test.rs:552:5:554:5 | if ... {...} | | +| test.rs:552:5:554:5 | if ... {...} | test.rs:552:9:552:12 | true | | +| test.rs:552:9:552:12 | After true [true] | test.rs:552:15:554:5 | { ... } | | +| test.rs:552:9:552:12 | true | test.rs:552:9:552:12 | After true [true] | true | +| test.rs:552:15:554:5 | { ... } | test.rs:553:9:553:17 | ExprStmt | | +| test.rs:553:9:553:16 | Before return 0 | test.rs:553:16:553:16 | 0 | | +| test.rs:553:9:553:16 | return 0 | test.rs:551:1:556:1 | Normal Exit | return | +| test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:16 | Before return 0 | | | test.rs:553:16:553:16 | 0 | test.rs:553:9:553:16 | return 0 | | -| test.rs:558:1:558:16 | enter fn do_thing | test.rs:558:15:558:16 | { ... } | | -| test.rs:558:1:558:16 | exit fn do_thing (normal) | test.rs:558:1:558:16 | exit fn do_thing | | -| test.rs:558:15:558:16 | { ... } | test.rs:558:1:558:16 | exit fn do_thing (normal) | | -| test.rs:560:1:562:1 | enter fn condition_not_met | test.rs:561:5:561:9 | false | | -| test.rs:560:1:562:1 | exit fn condition_not_met (normal) | test.rs:560:1:562:1 | exit fn condition_not_met | | -| test.rs:560:32:562:1 | { ... } | test.rs:560:1:562:1 | exit fn condition_not_met (normal) | | -| test.rs:561:5:561:9 | false | test.rs:560:32:562:1 | { ... } | | -| test.rs:564:1:564:21 | enter fn do_next_thing | test.rs:564:20:564:21 | { ... } | | -| test.rs:564:1:564:21 | exit fn do_next_thing (normal) | test.rs:564:1:564:21 | exit fn do_next_thing | | -| test.rs:564:20:564:21 | { ... } | test.rs:564:1:564:21 | exit fn do_next_thing (normal) | | -| test.rs:566:1:566:21 | enter fn do_last_thing | test.rs:566:20:566:21 | { ... } | | -| test.rs:566:1:566:21 | exit fn do_last_thing (normal) | test.rs:566:1:566:21 | exit fn do_last_thing | | -| test.rs:566:20:566:21 | { ... } | test.rs:566:1:566:21 | exit fn do_last_thing (normal) | | -| test.rs:568:1:582:1 | enter fn labelled_block1 | test.rs:569:5:580:6 | let ... = ... | | -| test.rs:568:1:582:1 | exit fn labelled_block1 (normal) | test.rs:568:1:582:1 | exit fn labelled_block1 | | -| test.rs:568:29:582:1 | { ... } | test.rs:568:1:582:1 | exit fn labelled_block1 (normal) | | -| test.rs:569:5:580:6 | let ... = ... | test.rs:570:9:570:19 | ExprStmt | | +| test.rs:558:1:558:16 | Entry | test.rs:558:15:558:16 | { ... } | | +| test.rs:558:1:558:16 | Normal Exit | test.rs:558:1:558:16 | Exit | | +| test.rs:558:15:558:16 | { ... } | test.rs:558:1:558:16 | Normal Exit | | +| test.rs:560:1:562:1 | Entry | test.rs:560:32:562:1 | { ... } | | +| test.rs:560:1:562:1 | Normal Exit | test.rs:560:1:562:1 | Exit | | +| test.rs:560:32:562:1 | After { ... } | test.rs:560:1:562:1 | Normal Exit | | +| test.rs:560:32:562:1 | { ... } | test.rs:561:5:561:9 | false | | +| test.rs:561:5:561:9 | false | test.rs:560:32:562:1 | After { ... } | | +| test.rs:564:1:564:21 | Entry | test.rs:564:20:564:21 | { ... } | | +| test.rs:564:1:564:21 | Normal Exit | test.rs:564:1:564:21 | Exit | | +| test.rs:564:20:564:21 | { ... } | test.rs:564:1:564:21 | Normal Exit | | +| test.rs:566:1:566:21 | Entry | test.rs:566:20:566:21 | { ... } | | +| test.rs:566:1:566:21 | Normal Exit | test.rs:566:1:566:21 | Exit | | +| test.rs:566:20:566:21 | { ... } | test.rs:566:1:566:21 | Normal Exit | | +| test.rs:568:1:582:1 | Entry | test.rs:568:29:582:1 | { ... } | | +| test.rs:568:1:582:1 | Normal Exit | test.rs:568:1:582:1 | Exit | | +| test.rs:568:29:582:1 | After { ... } | test.rs:568:1:582:1 | Normal Exit | | +| test.rs:568:29:582:1 | { ... } | test.rs:569:5:580:6 | let ... = ... | | +| test.rs:569:5:580:6 | After let ... = ... | test.rs:581:5:581:10 | result | | +| test.rs:569:5:580:6 | let ... = ... | test.rs:569:18:580:5 | 'block: { ... } | | +| test.rs:569:9:569:14 | After result [match] | test.rs:569:5:580:6 | After let ... = ... | | +| test.rs:569:9:569:14 | Before result | test.rs:569:9:569:14 | result | | +| test.rs:569:9:569:14 | result | test.rs:569:9:569:14 | After result [match] | match | | test.rs:569:9:569:14 | result | test.rs:569:9:569:14 | result | | -| test.rs:569:9:569:14 | result | test.rs:581:5:581:10 | result | match | -| test.rs:569:18:580:5 | 'block: { ... } | test.rs:569:9:569:14 | result | | +| test.rs:569:18:580:5 | 'block: { ... } | test.rs:570:9:570:19 | ExprStmt | | +| test.rs:569:18:580:5 | After 'block: { ... } | test.rs:569:9:569:14 | Before result | | | test.rs:570:9:570:16 | do_thing | test.rs:570:9:570:18 | do_thing(...) | | -| test.rs:570:9:570:18 | do_thing(...) | test.rs:571:9:573:9 | ExprStmt | | -| test.rs:570:9:570:19 | ExprStmt | test.rs:570:9:570:16 | do_thing | | -| test.rs:571:9:573:9 | ExprStmt | test.rs:571:12:571:28 | condition_not_met | | -| test.rs:571:9:573:9 | if ... {...} | test.rs:574:9:574:24 | ExprStmt | | +| test.rs:570:9:570:18 | After do_thing(...) | test.rs:570:9:570:19 | After ExprStmt | | +| test.rs:570:9:570:18 | Before do_thing(...) | test.rs:570:9:570:16 | do_thing | | +| test.rs:570:9:570:18 | do_thing(...) | test.rs:570:9:570:18 | After do_thing(...) | | +| test.rs:570:9:570:19 | After ExprStmt | test.rs:571:9:573:9 | ExprStmt | | +| test.rs:570:9:570:19 | ExprStmt | test.rs:570:9:570:18 | Before do_thing(...) | | +| test.rs:571:9:573:9 | After ExprStmt | test.rs:574:9:574:24 | ExprStmt | | +| test.rs:571:9:573:9 | After if ... {...} | test.rs:571:9:573:9 | After ExprStmt | | +| test.rs:571:9:573:9 | ExprStmt | test.rs:571:9:573:9 | if ... {...} | | +| test.rs:571:9:573:9 | if ... {...} | test.rs:571:12:571:30 | Before condition_not_met(...) | | | test.rs:571:12:571:28 | condition_not_met | test.rs:571:12:571:30 | condition_not_met(...) | | -| test.rs:571:12:571:30 | condition_not_met(...) | test.rs:571:9:573:9 | if ... {...} | false | -| test.rs:571:12:571:30 | condition_not_met(...) | test.rs:572:13:572:27 | ExprStmt | true | -| test.rs:572:13:572:26 | break 'block 1 | test.rs:569:18:580:5 | 'block: { ... } | break | -| test.rs:572:13:572:27 | ExprStmt | test.rs:572:26:572:26 | 1 | | -| test.rs:572:26:572:26 | 1 | test.rs:572:13:572:26 | break 'block 1 | | +| test.rs:571:12:571:30 | After condition_not_met(...) [false] | test.rs:571:9:573:9 | After if ... {...} | | +| test.rs:571:12:571:30 | After condition_not_met(...) [true] | test.rs:571:32:573:9 | { ... } | | +| test.rs:571:12:571:30 | Before condition_not_met(...) | test.rs:571:12:571:28 | condition_not_met | | +| test.rs:571:12:571:30 | condition_not_met(...) | test.rs:571:12:571:30 | After condition_not_met(...) [false] | false | +| test.rs:571:12:571:30 | condition_not_met(...) | test.rs:571:12:571:30 | After condition_not_met(...) [true] | true | +| test.rs:571:32:573:9 | { ... } | test.rs:572:13:572:27 | ExprStmt | | +| test.rs:572:13:572:26 | [break] break 'block 1 | test.rs:569:18:580:5 | After 'block: { ... } | break | +| test.rs:572:13:572:26 | break 'block 1 | test.rs:572:26:572:26 | 1 | | +| test.rs:572:13:572:27 | ExprStmt | test.rs:572:13:572:26 | break 'block 1 | | +| test.rs:572:26:572:26 | 1 | test.rs:572:13:572:26 | [break] break 'block 1 | | | test.rs:574:9:574:21 | do_next_thing | test.rs:574:9:574:23 | do_next_thing(...) | | -| test.rs:574:9:574:23 | do_next_thing(...) | test.rs:575:9:577:9 | ExprStmt | | -| test.rs:574:9:574:24 | ExprStmt | test.rs:574:9:574:21 | do_next_thing | | -| test.rs:575:9:577:9 | ExprStmt | test.rs:575:12:575:28 | condition_not_met | | -| test.rs:575:9:577:9 | if ... {...} | test.rs:578:9:578:24 | ExprStmt | | +| test.rs:574:9:574:23 | After do_next_thing(...) | test.rs:574:9:574:24 | After ExprStmt | | +| test.rs:574:9:574:23 | Before do_next_thing(...) | test.rs:574:9:574:21 | do_next_thing | | +| test.rs:574:9:574:23 | do_next_thing(...) | test.rs:574:9:574:23 | After do_next_thing(...) | | +| test.rs:574:9:574:24 | After ExprStmt | test.rs:575:9:577:9 | ExprStmt | | +| test.rs:574:9:574:24 | ExprStmt | test.rs:574:9:574:23 | Before do_next_thing(...) | | +| test.rs:575:9:577:9 | After ExprStmt | test.rs:578:9:578:24 | ExprStmt | | +| test.rs:575:9:577:9 | After if ... {...} | test.rs:575:9:577:9 | After ExprStmt | | +| test.rs:575:9:577:9 | ExprStmt | test.rs:575:9:577:9 | if ... {...} | | +| test.rs:575:9:577:9 | if ... {...} | test.rs:575:12:575:30 | Before condition_not_met(...) | | | test.rs:575:12:575:28 | condition_not_met | test.rs:575:12:575:30 | condition_not_met(...) | | -| test.rs:575:12:575:30 | condition_not_met(...) | test.rs:575:9:577:9 | if ... {...} | false | -| test.rs:575:12:575:30 | condition_not_met(...) | test.rs:576:13:576:27 | ExprStmt | true | -| test.rs:576:13:576:26 | break 'block 2 | test.rs:569:18:580:5 | 'block: { ... } | break | -| test.rs:576:13:576:27 | ExprStmt | test.rs:576:26:576:26 | 2 | | -| test.rs:576:26:576:26 | 2 | test.rs:576:13:576:26 | break 'block 2 | | +| test.rs:575:12:575:30 | After condition_not_met(...) [false] | test.rs:575:9:577:9 | After if ... {...} | | +| test.rs:575:12:575:30 | After condition_not_met(...) [true] | test.rs:575:32:577:9 | { ... } | | +| test.rs:575:12:575:30 | Before condition_not_met(...) | test.rs:575:12:575:28 | condition_not_met | | +| test.rs:575:12:575:30 | condition_not_met(...) | test.rs:575:12:575:30 | After condition_not_met(...) [false] | false | +| test.rs:575:12:575:30 | condition_not_met(...) | test.rs:575:12:575:30 | After condition_not_met(...) [true] | true | +| test.rs:575:32:577:9 | { ... } | test.rs:576:13:576:27 | ExprStmt | | +| test.rs:576:13:576:26 | [break] break 'block 2 | test.rs:569:18:580:5 | After 'block: { ... } | break | +| test.rs:576:13:576:26 | break 'block 2 | test.rs:576:26:576:26 | 2 | | +| test.rs:576:13:576:27 | ExprStmt | test.rs:576:13:576:26 | break 'block 2 | | +| test.rs:576:26:576:26 | 2 | test.rs:576:13:576:26 | [break] break 'block 2 | | | test.rs:578:9:578:21 | do_last_thing | test.rs:578:9:578:23 | do_last_thing(...) | | -| test.rs:578:9:578:23 | do_last_thing(...) | test.rs:579:9:579:9 | 3 | | -| test.rs:578:9:578:24 | ExprStmt | test.rs:578:9:578:21 | do_last_thing | | -| test.rs:579:9:579:9 | 3 | test.rs:569:18:580:5 | 'block: { ... } | | -| test.rs:581:5:581:10 | result | test.rs:568:29:582:1 | { ... } | | -| test.rs:584:1:592:1 | enter fn labelled_block2 | test.rs:585:5:591:6 | let ... = ... | | -| test.rs:584:1:592:1 | exit fn labelled_block2 (normal) | test.rs:584:1:592:1 | exit fn labelled_block2 | | -| test.rs:584:22:592:1 | { ... } | test.rs:584:1:592:1 | exit fn labelled_block2 (normal) | | -| test.rs:585:5:591:6 | let ... = ... | test.rs:586:9:586:34 | let ... = None | | -| test.rs:585:9:585:14 | result | test.rs:584:22:592:1 | { ... } | match | +| test.rs:578:9:578:23 | After do_last_thing(...) | test.rs:578:9:578:24 | After ExprStmt | | +| test.rs:578:9:578:23 | Before do_last_thing(...) | test.rs:578:9:578:21 | do_last_thing | | +| test.rs:578:9:578:23 | do_last_thing(...) | test.rs:578:9:578:23 | After do_last_thing(...) | | +| test.rs:578:9:578:24 | After ExprStmt | test.rs:579:9:579:9 | 3 | | +| test.rs:578:9:578:24 | ExprStmt | test.rs:578:9:578:23 | Before do_last_thing(...) | | +| test.rs:579:9:579:9 | 3 | test.rs:569:18:580:5 | After 'block: { ... } | | +| test.rs:581:5:581:10 | result | test.rs:568:29:582:1 | After { ... } | | +| test.rs:584:1:592:1 | Entry | test.rs:584:22:592:1 | { ... } | | +| test.rs:584:1:592:1 | Normal Exit | test.rs:584:1:592:1 | Exit | | +| test.rs:584:22:592:1 | After { ... } | test.rs:584:1:592:1 | Normal Exit | | +| test.rs:584:22:592:1 | { ... } | test.rs:585:5:591:6 | let ... = ... | | +| test.rs:585:5:591:6 | After let ... = ... | test.rs:584:22:592:1 | After { ... } | | +| test.rs:585:5:591:6 | let ... = ... | test.rs:585:18:591:5 | 'block: { ... } | | +| test.rs:585:9:585:14 | After result [match] | test.rs:585:5:591:6 | After let ... = ... | | +| test.rs:585:9:585:14 | Before result | test.rs:585:9:585:14 | result | | +| test.rs:585:9:585:14 | result | test.rs:585:9:585:14 | After result [match] | match | | test.rs:585:9:585:14 | result | test.rs:585:9:585:14 | result | | -| test.rs:585:18:591:5 | 'block: { ... } | test.rs:585:9:585:14 | result | | +| test.rs:585:18:591:5 | 'block: { ... } | test.rs:586:9:586:34 | let ... = None | | +| test.rs:585:18:591:5 | After 'block: { ... } | test.rs:585:9:585:14 | Before result | | +| test.rs:586:9:586:34 | After let ... = None | test.rs:587:9:589:10 | let ... = x else {...} | | | test.rs:586:9:586:34 | let ... = None | test.rs:586:30:586:33 | None | | +| test.rs:586:13:586:13 | After x [match] | test.rs:586:9:586:34 | After let ... = None | | +| test.rs:586:13:586:13 | Before x | test.rs:586:13:586:13 | x | | +| test.rs:586:13:586:13 | x | test.rs:586:13:586:13 | After x [match] | match | | test.rs:586:13:586:13 | x | test.rs:586:13:586:13 | x | | -| test.rs:586:13:586:13 | x | test.rs:587:9:589:10 | let ... = x else {...} | match | -| test.rs:586:30:586:33 | None | test.rs:586:13:586:13 | x | | +| test.rs:586:30:586:33 | None | test.rs:586:13:586:13 | Before x | | +| test.rs:587:9:589:10 | After let ... = x else {...} | test.rs:590:9:590:9 | 0 | | | test.rs:587:9:589:10 | let ... = x else {...} | test.rs:587:23:587:23 | x | | -| test.rs:587:13:587:19 | Some(...) | test.rs:587:18:587:18 | y | match | -| test.rs:587:13:587:19 | Some(...) | test.rs:588:13:588:27 | ExprStmt | no-match | +| test.rs:587:13:587:19 | After Some(...) [match] | test.rs:587:9:589:10 | After let ... = x else {...} | | +| test.rs:587:13:587:19 | After Some(...) [no-match] | test.rs:587:30:589:9 | { ... } | | +| test.rs:587:13:587:19 | Some(...) | test.rs:587:13:587:19 | After Some(...) [no-match] | no-match | +| test.rs:587:13:587:19 | Some(...) | test.rs:587:13:587:19 | [pattern-start] Some(...) | match | +| test.rs:587:13:587:19 | [pattern-start] Some(...) | test.rs:587:18:587:18 | Before y | | +| test.rs:587:18:587:18 | After y [match] | test.rs:587:13:587:19 | After Some(...) [match] | match | +| test.rs:587:18:587:18 | Before y | test.rs:587:18:587:18 | y | | +| test.rs:587:18:587:18 | y | test.rs:587:18:587:18 | After y [match] | match | | test.rs:587:18:587:18 | y | test.rs:587:18:587:18 | y | | -| test.rs:587:18:587:18 | y | test.rs:590:9:590:9 | 0 | match | | test.rs:587:23:587:23 | x | test.rs:587:13:587:19 | Some(...) | | -| test.rs:588:13:588:26 | break 'block 1 | test.rs:585:18:591:5 | 'block: { ... } | break | -| test.rs:588:13:588:27 | ExprStmt | test.rs:588:26:588:26 | 1 | | -| test.rs:588:26:588:26 | 1 | test.rs:588:13:588:26 | break 'block 1 | | -| test.rs:590:9:590:9 | 0 | test.rs:585:18:591:5 | 'block: { ... } | | -| test.rs:594:1:600:1 | enter fn test_nested_function2 | test.rs:595:5:595:18 | let ... = 0 | | -| test.rs:594:1:600:1 | exit fn test_nested_function2 (normal) | test.rs:594:1:600:1 | exit fn test_nested_function2 | | -| test.rs:594:28:600:1 | { ... } | test.rs:594:1:600:1 | exit fn test_nested_function2 (normal) | | +| test.rs:587:30:589:9 | { ... } | test.rs:588:13:588:27 | ExprStmt | | +| test.rs:588:13:588:26 | [break] break 'block 1 | test.rs:585:18:591:5 | After 'block: { ... } | break | +| test.rs:588:13:588:26 | break 'block 1 | test.rs:588:26:588:26 | 1 | | +| test.rs:588:13:588:27 | ExprStmt | test.rs:588:13:588:26 | break 'block 1 | | +| test.rs:588:26:588:26 | 1 | test.rs:588:13:588:26 | [break] break 'block 1 | | +| test.rs:590:9:590:9 | 0 | test.rs:585:18:591:5 | After 'block: { ... } | | +| test.rs:594:1:600:1 | Entry | test.rs:594:28:600:1 | { ... } | | +| test.rs:594:1:600:1 | Normal Exit | test.rs:594:1:600:1 | Exit | | +| test.rs:594:28:600:1 | After { ... } | test.rs:594:1:600:1 | Normal Exit | | +| test.rs:594:28:600:1 | { ... } | test.rs:595:5:595:18 | let ... = 0 | | +| test.rs:595:5:595:18 | After let ... = 0 | test.rs:596:5:598:5 | fn nested | | | test.rs:595:5:595:18 | let ... = 0 | test.rs:595:17:595:17 | 0 | | -| test.rs:595:9:595:13 | mut x | test.rs:596:5:598:5 | fn nested | match | +| test.rs:595:9:595:13 | After mut x [match] | test.rs:595:5:595:18 | After let ... = 0 | | +| test.rs:595:9:595:13 | Before mut x | test.rs:595:13:595:13 | x | | +| test.rs:595:9:595:13 | mut x | test.rs:595:9:595:13 | After mut x [match] | match | | test.rs:595:13:595:13 | x | test.rs:595:9:595:13 | mut x | | -| test.rs:595:17:595:17 | 0 | test.rs:595:13:595:13 | x | | -| test.rs:596:5:598:5 | enter fn nested | test.rs:596:15:596:15 | x | | -| test.rs:596:5:598:5 | exit fn nested (normal) | test.rs:596:5:598:5 | exit fn nested | | +| test.rs:595:17:595:17 | 0 | test.rs:595:9:595:13 | Before mut x | | +| test.rs:596:5:598:5 | Entry | test.rs:596:15:596:25 | Before ...: ... | | +| test.rs:596:5:598:5 | Normal Exit | test.rs:596:5:598:5 | Exit | | | test.rs:596:5:598:5 | fn nested | test.rs:599:5:599:19 | ExprStmt | | +| test.rs:596:15:596:15 | After x [match] | test.rs:596:15:596:25 | ...: ... | | +| test.rs:596:15:596:15 | Before x | test.rs:596:15:596:15 | x | | +| test.rs:596:15:596:15 | x | test.rs:596:15:596:15 | After x [match] | match | | test.rs:596:15:596:15 | x | test.rs:596:15:596:15 | x | | -| test.rs:596:15:596:15 | x | test.rs:596:15:596:25 | ...: ... | match | -| test.rs:596:15:596:25 | ...: ... | test.rs:597:9:597:16 | ExprStmt | | -| test.rs:596:28:598:5 | { ... } | test.rs:596:5:598:5 | exit fn nested (normal) | | -| test.rs:597:9:597:10 | * ... | test.rs:597:15:597:15 | 1 | | -| test.rs:597:9:597:15 | ... += ... | test.rs:596:28:598:5 | { ... } | | -| test.rs:597:9:597:16 | ExprStmt | test.rs:597:10:597:10 | x | | +| test.rs:596:15:596:25 | ...: ... | test.rs:596:15:596:25 | After ...: ... | | +| test.rs:596:15:596:25 | After ...: ... | test.rs:596:28:598:5 | { ... } | | +| test.rs:596:15:596:25 | Before ...: ... | test.rs:596:15:596:15 | Before x | | +| test.rs:596:28:598:5 | After { ... } | test.rs:596:5:598:5 | Normal Exit | | +| test.rs:596:28:598:5 | { ... } | test.rs:597:9:597:16 | ExprStmt | | +| test.rs:597:9:597:10 | * ... | test.rs:597:9:597:10 | After * ... | | +| test.rs:597:9:597:10 | After * ... | test.rs:597:15:597:15 | 1 | | +| test.rs:597:9:597:10 | Before * ... | test.rs:597:10:597:10 | x | | +| test.rs:597:9:597:15 | ... += ... | test.rs:597:9:597:15 | After ... += ... | | +| test.rs:597:9:597:15 | After ... += ... | test.rs:597:9:597:16 | After ExprStmt | | +| test.rs:597:9:597:15 | Before ... += ... | test.rs:597:9:597:10 | Before * ... | | +| test.rs:597:9:597:16 | After ExprStmt | test.rs:596:28:598:5 | After { ... } | | +| test.rs:597:9:597:16 | ExprStmt | test.rs:597:9:597:15 | Before ... += ... | | | test.rs:597:10:597:10 | x | test.rs:597:9:597:10 | * ... | | | test.rs:597:15:597:15 | 1 | test.rs:597:9:597:15 | ... += ... | | -| test.rs:599:5:599:10 | nested | test.rs:599:17:599:17 | x | | -| test.rs:599:5:599:18 | nested(...) | test.rs:594:28:600:1 | { ... } | | -| test.rs:599:5:599:19 | ExprStmt | test.rs:599:5:599:10 | nested | | -| test.rs:599:12:599:17 | &mut x | test.rs:599:5:599:18 | nested(...) | | +| test.rs:599:5:599:10 | nested | test.rs:599:12:599:17 | Before &mut x | | +| test.rs:599:5:599:18 | After nested(...) | test.rs:599:5:599:19 | After ExprStmt | | +| test.rs:599:5:599:18 | Before nested(...) | test.rs:599:5:599:10 | nested | | +| test.rs:599:5:599:18 | nested(...) | test.rs:599:5:599:18 | After nested(...) | | +| test.rs:599:5:599:19 | After ExprStmt | test.rs:594:28:600:1 | After { ... } | | +| test.rs:599:5:599:19 | ExprStmt | test.rs:599:5:599:18 | Before nested(...) | | +| test.rs:599:12:599:17 | &mut x | test.rs:599:12:599:17 | After &mut x | | +| test.rs:599:12:599:17 | After &mut x | test.rs:599:5:599:18 | nested(...) | | +| test.rs:599:12:599:17 | Before &mut x | test.rs:599:17:599:17 | x | | | test.rs:599:17:599:17 | x | test.rs:599:12:599:17 | &mut x | | -| test.rs:611:5:613:5 | enter fn new | test.rs:611:12:611:12 | a | | -| test.rs:611:5:613:5 | exit fn new (normal) | test.rs:611:5:613:5 | exit fn new | | +| test.rs:611:5:613:5 | Entry | test.rs:611:12:611:17 | Before ...: i64 | | +| test.rs:611:5:613:5 | Normal Exit | test.rs:611:5:613:5 | Exit | | +| test.rs:611:12:611:12 | After a [match] | test.rs:611:12:611:17 | ...: i64 | | +| test.rs:611:12:611:12 | Before a | test.rs:611:12:611:12 | a | | +| test.rs:611:12:611:12 | a | test.rs:611:12:611:12 | After a [match] | match | | test.rs:611:12:611:12 | a | test.rs:611:12:611:12 | a | | -| test.rs:611:12:611:12 | a | test.rs:611:12:611:17 | ...: i64 | match | -| test.rs:611:12:611:17 | ...: i64 | test.rs:612:23:612:23 | a | | -| test.rs:611:28:613:5 | { ... } | test.rs:611:5:613:5 | exit fn new (normal) | | -| test.rs:612:9:612:25 | MyNumber {...} | test.rs:611:28:613:5 | { ... } | | +| test.rs:611:12:611:17 | ...: i64 | test.rs:611:12:611:17 | After ...: i64 | | +| test.rs:611:12:611:17 | After ...: i64 | test.rs:611:28:613:5 | { ... } | | +| test.rs:611:12:611:17 | Before ...: i64 | test.rs:611:12:611:12 | Before a | | +| test.rs:611:28:613:5 | After { ... } | test.rs:611:5:613:5 | Normal Exit | | +| test.rs:611:28:613:5 | { ... } | test.rs:612:9:612:25 | Before MyNumber {...} | | +| test.rs:612:9:612:25 | After MyNumber {...} | test.rs:611:28:613:5 | After { ... } | | +| test.rs:612:9:612:25 | Before MyNumber {...} | test.rs:612:23:612:23 | a | | +| test.rs:612:9:612:25 | MyNumber {...} | test.rs:612:9:612:25 | After MyNumber {...} | | | test.rs:612:23:612:23 | a | test.rs:612:9:612:25 | MyNumber {...} | | -| test.rs:615:5:617:5 | enter fn negated | test.rs:615:16:615:19 | self | | -| test.rs:615:5:617:5 | exit fn negated (normal) | test.rs:615:5:617:5 | exit fn negated | | -| test.rs:615:16:615:19 | SelfParam | test.rs:616:23:616:26 | self | | +| test.rs:615:5:617:5 | Entry | test.rs:615:16:615:19 | Before SelfParam | | +| test.rs:615:5:617:5 | Normal Exit | test.rs:615:5:617:5 | Exit | | +| test.rs:615:16:615:19 | After SelfParam | test.rs:615:30:617:5 | { ... } | | +| test.rs:615:16:615:19 | Before SelfParam | test.rs:615:16:615:19 | self | | +| test.rs:615:16:615:19 | SelfParam | test.rs:615:16:615:19 | After SelfParam | | | test.rs:615:16:615:19 | self | test.rs:615:16:615:19 | SelfParam | | -| test.rs:615:30:617:5 | { ... } | test.rs:615:5:617:5 | exit fn negated (normal) | | -| test.rs:616:9:616:30 | MyNumber {...} | test.rs:615:30:617:5 | { ... } | | +| test.rs:615:30:617:5 | After { ... } | test.rs:615:5:617:5 | Normal Exit | | +| test.rs:615:30:617:5 | { ... } | test.rs:616:9:616:30 | Before MyNumber {...} | | +| test.rs:616:9:616:30 | After MyNumber {...} | test.rs:615:30:617:5 | After { ... } | | +| test.rs:616:9:616:30 | Before MyNumber {...} | test.rs:616:23:616:28 | Before self.n | | +| test.rs:616:9:616:30 | MyNumber {...} | test.rs:616:9:616:30 | After MyNumber {...} | | | test.rs:616:23:616:26 | self | test.rs:616:23:616:28 | self.n | | -| test.rs:616:23:616:28 | self.n | test.rs:616:9:616:30 | MyNumber {...} | | -| test.rs:619:5:621:5 | enter fn multifly_add | test.rs:619:26:619:29 | self | | -| test.rs:619:5:621:5 | exit fn multifly_add (normal) | test.rs:619:5:621:5 | exit fn multifly_add | | -| test.rs:619:21:619:29 | SelfParam | test.rs:619:32:619:32 | a | | +| test.rs:616:23:616:28 | After self.n | test.rs:616:9:616:30 | MyNumber {...} | | +| test.rs:616:23:616:28 | Before self.n | test.rs:616:23:616:26 | self | | +| test.rs:616:23:616:28 | self.n | test.rs:616:23:616:28 | After self.n | | +| test.rs:619:5:621:5 | Entry | test.rs:619:21:619:29 | Before SelfParam | | +| test.rs:619:5:621:5 | Normal Exit | test.rs:619:5:621:5 | Exit | | +| test.rs:619:21:619:29 | After SelfParam | test.rs:619:32:619:37 | Before ...: i64 | | +| test.rs:619:21:619:29 | Before SelfParam | test.rs:619:26:619:29 | self | | +| test.rs:619:21:619:29 | SelfParam | test.rs:619:21:619:29 | After SelfParam | | | test.rs:619:26:619:29 | self | test.rs:619:21:619:29 | SelfParam | | +| test.rs:619:32:619:32 | After a [match] | test.rs:619:32:619:37 | ...: i64 | | +| test.rs:619:32:619:32 | Before a | test.rs:619:32:619:32 | a | | +| test.rs:619:32:619:32 | a | test.rs:619:32:619:32 | After a [match] | match | | test.rs:619:32:619:32 | a | test.rs:619:32:619:32 | a | | -| test.rs:619:32:619:32 | a | test.rs:619:32:619:37 | ...: i64 | match | -| test.rs:619:32:619:37 | ...: i64 | test.rs:619:40:619:40 | b | | +| test.rs:619:32:619:37 | ...: i64 | test.rs:619:32:619:37 | After ...: i64 | | +| test.rs:619:32:619:37 | After ...: i64 | test.rs:619:40:619:45 | Before ...: i64 | | +| test.rs:619:32:619:37 | Before ...: i64 | test.rs:619:32:619:32 | Before a | | +| test.rs:619:40:619:40 | After b [match] | test.rs:619:40:619:45 | ...: i64 | | +| test.rs:619:40:619:40 | Before b | test.rs:619:40:619:40 | b | | +| test.rs:619:40:619:40 | b | test.rs:619:40:619:40 | After b [match] | match | | test.rs:619:40:619:40 | b | test.rs:619:40:619:40 | b | | -| test.rs:619:40:619:40 | b | test.rs:619:40:619:45 | ...: i64 | match | -| test.rs:619:40:619:45 | ...: i64 | test.rs:620:9:620:34 | ExprStmt | | -| test.rs:619:48:621:5 | { ... } | test.rs:619:5:621:5 | exit fn multifly_add (normal) | | +| test.rs:619:40:619:45 | ...: i64 | test.rs:619:40:619:45 | After ...: i64 | | +| test.rs:619:40:619:45 | After ...: i64 | test.rs:619:48:621:5 | { ... } | | +| test.rs:619:40:619:45 | Before ...: i64 | test.rs:619:40:619:40 | Before b | | +| test.rs:619:48:621:5 | After { ... } | test.rs:619:5:621:5 | Normal Exit | | +| test.rs:619:48:621:5 | { ... } | test.rs:620:9:620:34 | ExprStmt | | | test.rs:620:9:620:12 | self | test.rs:620:9:620:14 | self.n | | -| test.rs:620:9:620:14 | self.n | test.rs:620:19:620:22 | self | | -| test.rs:620:9:620:33 | ... = ... | test.rs:619:48:621:5 | { ... } | | -| test.rs:620:9:620:34 | ExprStmt | test.rs:620:9:620:12 | self | | -| test.rs:620:18:620:33 | ... + ... | test.rs:620:9:620:33 | ... = ... | | +| test.rs:620:9:620:14 | After self.n | test.rs:620:18:620:33 | Before ... + ... | | +| test.rs:620:9:620:14 | Before self.n | test.rs:620:9:620:12 | self | | +| test.rs:620:9:620:14 | self.n | test.rs:620:9:620:14 | After self.n | | +| test.rs:620:9:620:33 | ... = ... | test.rs:620:9:620:33 | After ... = ... | | +| test.rs:620:9:620:33 | After ... = ... | test.rs:620:9:620:34 | After ExprStmt | | +| test.rs:620:9:620:33 | Before ... = ... | test.rs:620:9:620:14 | Before self.n | | +| test.rs:620:9:620:34 | After ExprStmt | test.rs:619:48:621:5 | After { ... } | | +| test.rs:620:9:620:34 | ExprStmt | test.rs:620:9:620:33 | Before ... = ... | | +| test.rs:620:18:620:33 | ... + ... | test.rs:620:18:620:33 | After ... + ... | | +| test.rs:620:18:620:33 | After ... + ... | test.rs:620:9:620:33 | ... = ... | | +| test.rs:620:18:620:33 | Before ... + ... | test.rs:620:19:620:28 | Before ... * ... | | | test.rs:620:19:620:22 | self | test.rs:620:19:620:24 | self.n | | -| test.rs:620:19:620:24 | self.n | test.rs:620:28:620:28 | a | | -| test.rs:620:19:620:28 | ... * ... | test.rs:620:33:620:33 | b | | +| test.rs:620:19:620:24 | After self.n | test.rs:620:28:620:28 | a | | +| test.rs:620:19:620:24 | Before self.n | test.rs:620:19:620:22 | self | | +| test.rs:620:19:620:24 | self.n | test.rs:620:19:620:24 | After self.n | | +| test.rs:620:19:620:28 | ... * ... | test.rs:620:19:620:28 | After ... * ... | | +| test.rs:620:19:620:28 | After ... * ... | test.rs:620:33:620:33 | b | | +| test.rs:620:19:620:28 | Before ... * ... | test.rs:620:19:620:24 | Before self.n | | | test.rs:620:28:620:28 | a | test.rs:620:19:620:28 | ... * ... | | | test.rs:620:33:620:33 | b | test.rs:620:18:620:33 | ... + ... | | breakTarget diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index b64d4ad75596..43da3390e92d 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -1,2146 +1,3942 @@ edges -| main.rs:5:1:8:1 | enter fn print_str | main.rs:5:14:5:14 | s | | -| main.rs:5:1:8:1 | exit fn print_str (normal) | main.rs:5:1:8:1 | exit fn print_str | | +| main.rs:5:1:8:1 | Entry | main.rs:5:14:5:20 | Before ...: ... | | +| main.rs:5:1:8:1 | Normal Exit | main.rs:5:1:8:1 | Exit | | +| main.rs:5:14:5:14 | After s [match] | main.rs:5:14:5:20 | ...: ... | | +| main.rs:5:14:5:14 | Before s | main.rs:5:14:5:14 | s | | +| main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | After s [match] | match | | main.rs:5:14:5:14 | s | main.rs:5:14:5:14 | s | | -| main.rs:5:14:5:14 | s | main.rs:5:14:5:20 | ...: ... | match | -| main.rs:5:14:5:20 | ...: ... | main.rs:7:5:7:22 | ExprStmt | | -| main.rs:6:1:8:1 | { ... } | main.rs:5:1:8:1 | exit fn print_str (normal) | | -| main.rs:7:5:7:12 | ...::_print | main.rs:7:14:7:17 | "{}\\n" | | -| main.rs:7:5:7:21 | MacroExpr | main.rs:6:1:8:1 | { ... } | | -| main.rs:7:5:7:21 | println!... | main.rs:7:5:7:21 | MacroExpr | | -| main.rs:7:5:7:22 | ExprStmt | main.rs:7:14:7:20 | ExprStmt | | +| main.rs:5:14:5:20 | ...: ... | main.rs:5:14:5:20 | After ...: ... | | +| main.rs:5:14:5:20 | After ...: ... | main.rs:6:1:8:1 | { ... } | | +| main.rs:5:14:5:20 | Before ...: ... | main.rs:5:14:5:14 | Before s | | +| main.rs:6:1:8:1 | After { ... } | main.rs:5:1:8:1 | Normal Exit | | +| main.rs:6:1:8:1 | { ... } | main.rs:7:5:7:22 | ExprStmt | | +| main.rs:7:5:7:12 | ...::_print | main.rs:7:14:7:20 | Before MacroExpr | | +| main.rs:7:5:7:21 | After MacroExpr | main.rs:7:5:7:22 | After ExprStmt | | +| main.rs:7:5:7:21 | After println!... | main.rs:7:5:7:21 | MacroExpr | | +| main.rs:7:5:7:21 | Before MacroExpr | main.rs:7:5:7:21 | Before println!... | | +| main.rs:7:5:7:21 | Before println!... | main.rs:7:14:7:20 | { ... } | | +| main.rs:7:5:7:21 | MacroExpr | main.rs:7:5:7:21 | After MacroExpr | | +| main.rs:7:5:7:21 | println!... | main.rs:7:5:7:21 | After println!... | | +| main.rs:7:5:7:22 | After ExprStmt | main.rs:6:1:8:1 | After { ... } | | +| main.rs:7:5:7:22 | ExprStmt | main.rs:7:5:7:21 | Before MacroExpr | | | main.rs:7:14:7:17 | "{}\\n" | main.rs:7:20:7:20 | s | | -| main.rs:7:14:7:20 | ...::_print(...) | main.rs:7:14:7:20 | { ... } | | -| main.rs:7:14:7:20 | ...::format_args_nl!... | main.rs:7:14:7:20 | MacroExpr | | -| main.rs:7:14:7:20 | ExprStmt | main.rs:7:5:7:12 | ...::_print | | -| main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | ...::format_args_nl!... | | -| main.rs:7:14:7:20 | MacroExpr | main.rs:7:14:7:20 | ...::_print(...) | | -| main.rs:7:14:7:20 | { ... } | main.rs:7:5:7:21 | println!... | | +| main.rs:7:14:7:20 | ...::_print(...) | main.rs:7:14:7:20 | After ...::_print(...) | | +| main.rs:7:14:7:20 | ...::format_args_nl!... | main.rs:7:14:7:20 | After ...::format_args_nl!... | | +| main.rs:7:14:7:20 | After ...::_print(...) | main.rs:7:14:7:20 | After ExprStmt | | +| main.rs:7:14:7:20 | After ...::format_args_nl!... | main.rs:7:14:7:20 | MacroExpr | | +| main.rs:7:14:7:20 | After ExprStmt | main.rs:7:14:7:20 | After { ... } | | +| main.rs:7:14:7:20 | After FormatArgsExpr | main.rs:7:14:7:20 | ...::format_args_nl!... | | +| main.rs:7:14:7:20 | After MacroExpr | main.rs:7:14:7:20 | ...::_print(...) | | +| main.rs:7:14:7:20 | After { ... } | main.rs:7:5:7:21 | println!... | | +| main.rs:7:14:7:20 | After { ... } | main.rs:7:14:7:20 | After { ... } | | +| main.rs:7:14:7:20 | Before ...::_print(...) | main.rs:7:5:7:12 | ...::_print | | +| main.rs:7:14:7:20 | Before ...::format_args_nl!... | main.rs:7:14:7:20 | Before FormatArgsExpr | | +| main.rs:7:14:7:20 | Before FormatArgsExpr | main.rs:7:14:7:17 | "{}\\n" | | +| main.rs:7:14:7:20 | Before MacroExpr | main.rs:7:14:7:20 | Before ...::format_args_nl!... | | +| main.rs:7:14:7:20 | ExprStmt | main.rs:7:14:7:20 | Before ...::_print(...) | | +| main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | After FormatArgsExpr | | +| main.rs:7:14:7:20 | MacroExpr | main.rs:7:14:7:20 | After MacroExpr | | +| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | ExprStmt | | | main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | { ... } | | | main.rs:7:20:7:20 | s | main.rs:7:14:7:20 | FormatArgsExpr | | -| main.rs:10:1:13:1 | enter fn print_i64 | main.rs:10:14:10:14 | i | | -| main.rs:10:1:13:1 | exit fn print_i64 (normal) | main.rs:10:1:13:1 | exit fn print_i64 | | +| main.rs:10:1:13:1 | Entry | main.rs:10:14:10:19 | Before ...: i64 | | +| main.rs:10:1:13:1 | Normal Exit | main.rs:10:1:13:1 | Exit | | +| main.rs:10:14:10:14 | After i [match] | main.rs:10:14:10:19 | ...: i64 | | +| main.rs:10:14:10:14 | Before i | main.rs:10:14:10:14 | i | | +| main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | After i [match] | match | | main.rs:10:14:10:14 | i | main.rs:10:14:10:14 | i | | -| main.rs:10:14:10:14 | i | main.rs:10:14:10:19 | ...: i64 | match | -| main.rs:10:14:10:19 | ...: i64 | main.rs:12:5:12:22 | ExprStmt | | -| main.rs:11:1:13:1 | { ... } | main.rs:10:1:13:1 | exit fn print_i64 (normal) | | -| main.rs:12:5:12:12 | ...::_print | main.rs:12:14:12:17 | "{}\\n" | | -| main.rs:12:5:12:21 | MacroExpr | main.rs:11:1:13:1 | { ... } | | -| main.rs:12:5:12:21 | println!... | main.rs:12:5:12:21 | MacroExpr | | -| main.rs:12:5:12:22 | ExprStmt | main.rs:12:14:12:20 | ExprStmt | | +| main.rs:10:14:10:19 | ...: i64 | main.rs:10:14:10:19 | After ...: i64 | | +| main.rs:10:14:10:19 | After ...: i64 | main.rs:11:1:13:1 | { ... } | | +| main.rs:10:14:10:19 | Before ...: i64 | main.rs:10:14:10:14 | Before i | | +| main.rs:11:1:13:1 | After { ... } | main.rs:10:1:13:1 | Normal Exit | | +| main.rs:11:1:13:1 | { ... } | main.rs:12:5:12:22 | ExprStmt | | +| main.rs:12:5:12:12 | ...::_print | main.rs:12:14:12:20 | Before MacroExpr | | +| main.rs:12:5:12:21 | After MacroExpr | main.rs:12:5:12:22 | After ExprStmt | | +| main.rs:12:5:12:21 | After println!... | main.rs:12:5:12:21 | MacroExpr | | +| main.rs:12:5:12:21 | Before MacroExpr | main.rs:12:5:12:21 | Before println!... | | +| main.rs:12:5:12:21 | Before println!... | main.rs:12:14:12:20 | { ... } | | +| main.rs:12:5:12:21 | MacroExpr | main.rs:12:5:12:21 | After MacroExpr | | +| main.rs:12:5:12:21 | println!... | main.rs:12:5:12:21 | After println!... | | +| main.rs:12:5:12:22 | After ExprStmt | main.rs:11:1:13:1 | After { ... } | | +| main.rs:12:5:12:22 | ExprStmt | main.rs:12:5:12:21 | Before MacroExpr | | | main.rs:12:14:12:17 | "{}\\n" | main.rs:12:20:12:20 | i | | -| main.rs:12:14:12:20 | ...::_print(...) | main.rs:12:14:12:20 | { ... } | | -| main.rs:12:14:12:20 | ...::format_args_nl!... | main.rs:12:14:12:20 | MacroExpr | | -| main.rs:12:14:12:20 | ExprStmt | main.rs:12:5:12:12 | ...::_print | | -| main.rs:12:14:12:20 | FormatArgsExpr | main.rs:12:14:12:20 | ...::format_args_nl!... | | -| main.rs:12:14:12:20 | MacroExpr | main.rs:12:14:12:20 | ...::_print(...) | | -| main.rs:12:14:12:20 | { ... } | main.rs:12:5:12:21 | println!... | | +| main.rs:12:14:12:20 | ...::_print(...) | main.rs:12:14:12:20 | After ...::_print(...) | | +| main.rs:12:14:12:20 | ...::format_args_nl!... | main.rs:12:14:12:20 | After ...::format_args_nl!... | | +| main.rs:12:14:12:20 | After ...::_print(...) | main.rs:12:14:12:20 | After ExprStmt | | +| main.rs:12:14:12:20 | After ...::format_args_nl!... | main.rs:12:14:12:20 | MacroExpr | | +| main.rs:12:14:12:20 | After ExprStmt | main.rs:12:14:12:20 | After { ... } | | +| main.rs:12:14:12:20 | After FormatArgsExpr | main.rs:12:14:12:20 | ...::format_args_nl!... | | +| main.rs:12:14:12:20 | After MacroExpr | main.rs:12:14:12:20 | ...::_print(...) | | +| main.rs:12:14:12:20 | After { ... } | main.rs:12:5:12:21 | println!... | | +| main.rs:12:14:12:20 | After { ... } | main.rs:12:14:12:20 | After { ... } | | +| main.rs:12:14:12:20 | Before ...::_print(...) | main.rs:12:5:12:12 | ...::_print | | +| main.rs:12:14:12:20 | Before ...::format_args_nl!... | main.rs:12:14:12:20 | Before FormatArgsExpr | | +| main.rs:12:14:12:20 | Before FormatArgsExpr | main.rs:12:14:12:17 | "{}\\n" | | +| main.rs:12:14:12:20 | Before MacroExpr | main.rs:12:14:12:20 | Before ...::format_args_nl!... | | +| main.rs:12:14:12:20 | ExprStmt | main.rs:12:14:12:20 | Before ...::_print(...) | | +| main.rs:12:14:12:20 | FormatArgsExpr | main.rs:12:14:12:20 | After FormatArgsExpr | | +| main.rs:12:14:12:20 | MacroExpr | main.rs:12:14:12:20 | After MacroExpr | | +| main.rs:12:14:12:20 | { ... } | main.rs:12:14:12:20 | ExprStmt | | | main.rs:12:14:12:20 | { ... } | main.rs:12:14:12:20 | { ... } | | | main.rs:12:20:12:20 | i | main.rs:12:14:12:20 | FormatArgsExpr | | -| main.rs:15:1:17:1 | enter fn print_i64_ref | main.rs:15:18:15:18 | i | | -| main.rs:15:1:17:1 | exit fn print_i64_ref (normal) | main.rs:15:1:17:1 | exit fn print_i64_ref | | +| main.rs:15:1:17:1 | Entry | main.rs:15:18:15:24 | Before ...: ... | | +| main.rs:15:1:17:1 | Normal Exit | main.rs:15:1:17:1 | Exit | | +| main.rs:15:18:15:18 | After i [match] | main.rs:15:18:15:24 | ...: ... | | +| main.rs:15:18:15:18 | Before i | main.rs:15:18:15:18 | i | | +| main.rs:15:18:15:18 | i | main.rs:15:18:15:18 | After i [match] | match | | main.rs:15:18:15:18 | i | main.rs:15:18:15:18 | i | | -| main.rs:15:18:15:18 | i | main.rs:15:18:15:24 | ...: ... | match | -| main.rs:15:18:15:24 | ...: ... | main.rs:16:5:16:13 | print_i64 | | -| main.rs:15:27:17:1 | { ... } | main.rs:15:1:17:1 | exit fn print_i64_ref (normal) | | -| main.rs:16:5:16:13 | print_i64 | main.rs:16:16:16:16 | i | | -| main.rs:16:5:16:17 | print_i64(...) | main.rs:15:27:17:1 | { ... } | | -| main.rs:16:15:16:16 | * ... | main.rs:16:5:16:17 | print_i64(...) | | +| main.rs:15:18:15:24 | ...: ... | main.rs:15:18:15:24 | After ...: ... | | +| main.rs:15:18:15:24 | After ...: ... | main.rs:15:27:17:1 | { ... } | | +| main.rs:15:18:15:24 | Before ...: ... | main.rs:15:18:15:18 | Before i | | +| main.rs:15:27:17:1 | After { ... } | main.rs:15:1:17:1 | Normal Exit | | +| main.rs:15:27:17:1 | { ... } | main.rs:16:5:16:17 | Before print_i64(...) | | +| main.rs:16:5:16:13 | print_i64 | main.rs:16:15:16:16 | Before * ... | | +| main.rs:16:5:16:17 | After print_i64(...) | main.rs:15:27:17:1 | After { ... } | | +| main.rs:16:5:16:17 | Before print_i64(...) | main.rs:16:5:16:13 | print_i64 | | +| main.rs:16:5:16:17 | print_i64(...) | main.rs:16:5:16:17 | After print_i64(...) | | +| main.rs:16:15:16:16 | * ... | main.rs:16:15:16:16 | After * ... | | +| main.rs:16:15:16:16 | After * ... | main.rs:16:5:16:17 | print_i64(...) | | +| main.rs:16:15:16:16 | Before * ... | main.rs:16:16:16:16 | i | | | main.rs:16:16:16:16 | i | main.rs:16:15:16:16 | * ... | | -| main.rs:19:1:22:1 | enter fn immutable_variable | main.rs:20:5:20:17 | let ... = "a" | | -| main.rs:19:1:22:1 | exit fn immutable_variable (normal) | main.rs:19:1:22:1 | exit fn immutable_variable | | -| main.rs:19:25:22:1 | { ... } | main.rs:19:1:22:1 | exit fn immutable_variable (normal) | | +| main.rs:19:1:22:1 | Entry | main.rs:19:25:22:1 | { ... } | | +| main.rs:19:1:22:1 | Normal Exit | main.rs:19:1:22:1 | Exit | | +| main.rs:19:25:22:1 | After { ... } | main.rs:19:1:22:1 | Normal Exit | | +| main.rs:19:25:22:1 | { ... } | main.rs:20:5:20:17 | let ... = "a" | | +| main.rs:20:5:20:17 | After let ... = "a" | main.rs:21:5:21:18 | ExprStmt | | | main.rs:20:5:20:17 | let ... = "a" | main.rs:20:14:20:16 | "a" | | +| main.rs:20:9:20:10 | After x1 [match] | main.rs:20:5:20:17 | After let ... = "a" | | +| main.rs:20:9:20:10 | Before x1 | main.rs:20:9:20:10 | x1 | | +| main.rs:20:9:20:10 | x1 | main.rs:20:9:20:10 | After x1 [match] | match | | main.rs:20:9:20:10 | x1 | main.rs:20:9:20:10 | x1 | | -| main.rs:20:9:20:10 | x1 | main.rs:21:5:21:18 | ExprStmt | match | -| main.rs:20:14:20:16 | "a" | main.rs:20:9:20:10 | x1 | | +| main.rs:20:14:20:16 | "a" | main.rs:20:9:20:10 | Before x1 | | | main.rs:21:5:21:13 | print_str | main.rs:21:15:21:16 | x1 | | -| main.rs:21:5:21:17 | print_str(...) | main.rs:19:25:22:1 | { ... } | | -| main.rs:21:5:21:18 | ExprStmt | main.rs:21:5:21:13 | print_str | | +| main.rs:21:5:21:17 | After print_str(...) | main.rs:21:5:21:18 | After ExprStmt | | +| main.rs:21:5:21:17 | Before print_str(...) | main.rs:21:5:21:13 | print_str | | +| main.rs:21:5:21:17 | print_str(...) | main.rs:21:5:21:17 | After print_str(...) | | +| main.rs:21:5:21:18 | After ExprStmt | main.rs:19:25:22:1 | After { ... } | | +| main.rs:21:5:21:18 | ExprStmt | main.rs:21:5:21:17 | Before print_str(...) | | | main.rs:21:15:21:16 | x1 | main.rs:21:5:21:17 | print_str(...) | | -| main.rs:24:1:31:1 | enter fn mutable_variable | main.rs:25:5:25:19 | let ... = 4 | | -| main.rs:24:1:31:1 | exit fn mutable_variable (normal) | main.rs:24:1:31:1 | exit fn mutable_variable | | -| main.rs:24:23:31:1 | { ... } | main.rs:24:1:31:1 | exit fn mutable_variable (normal) | | +| main.rs:24:1:31:1 | Entry | main.rs:24:23:31:1 | { ... } | | +| main.rs:24:1:31:1 | Normal Exit | main.rs:24:1:31:1 | Exit | | +| main.rs:24:23:31:1 | After { ... } | main.rs:24:1:31:1 | Normal Exit | | +| main.rs:24:23:31:1 | { ... } | main.rs:25:5:25:19 | let ... = 4 | | +| main.rs:25:5:25:19 | After let ... = 4 | main.rs:26:5:26:18 | ExprStmt | | | main.rs:25:5:25:19 | let ... = 4 | main.rs:25:18:25:18 | 4 | | -| main.rs:25:9:25:14 | mut x2 | main.rs:26:5:26:18 | ExprStmt | match | +| main.rs:25:9:25:14 | After mut x2 [match] | main.rs:25:5:25:19 | After let ... = 4 | | +| main.rs:25:9:25:14 | Before mut x2 | main.rs:25:13:25:14 | x2 | | +| main.rs:25:9:25:14 | mut x2 | main.rs:25:9:25:14 | After mut x2 [match] | match | | main.rs:25:13:25:14 | x2 | main.rs:25:9:25:14 | mut x2 | | -| main.rs:25:18:25:18 | 4 | main.rs:25:13:25:14 | x2 | | +| main.rs:25:18:25:18 | 4 | main.rs:25:9:25:14 | Before mut x2 | | | main.rs:26:5:26:13 | print_i64 | main.rs:26:15:26:16 | x2 | | -| main.rs:26:5:26:17 | print_i64(...) | main.rs:27:5:27:11 | ExprStmt | | -| main.rs:26:5:26:18 | ExprStmt | main.rs:26:5:26:13 | print_i64 | | +| main.rs:26:5:26:17 | After print_i64(...) | main.rs:26:5:26:18 | After ExprStmt | | +| main.rs:26:5:26:17 | Before print_i64(...) | main.rs:26:5:26:13 | print_i64 | | +| main.rs:26:5:26:17 | print_i64(...) | main.rs:26:5:26:17 | After print_i64(...) | | +| main.rs:26:5:26:18 | After ExprStmt | main.rs:27:5:27:11 | ExprStmt | | +| main.rs:26:5:26:18 | ExprStmt | main.rs:26:5:26:17 | Before print_i64(...) | | | main.rs:26:15:26:16 | x2 | main.rs:26:5:26:17 | print_i64(...) | | | main.rs:27:5:27:6 | x2 | main.rs:27:10:27:10 | 5 | | -| main.rs:27:5:27:10 | ... = ... | main.rs:28:5:28:18 | ExprStmt | | -| main.rs:27:5:27:11 | ExprStmt | main.rs:27:5:27:6 | x2 | | +| main.rs:27:5:27:10 | ... = ... | main.rs:27:5:27:10 | After ... = ... | | +| main.rs:27:5:27:10 | After ... = ... | main.rs:27:5:27:11 | After ExprStmt | | +| main.rs:27:5:27:10 | Before ... = ... | main.rs:27:5:27:6 | x2 | | +| main.rs:27:5:27:11 | After ExprStmt | main.rs:28:5:28:18 | ExprStmt | | +| main.rs:27:5:27:11 | ExprStmt | main.rs:27:5:27:10 | Before ... = ... | | | main.rs:27:10:27:10 | 5 | main.rs:27:5:27:10 | ... = ... | | | main.rs:28:5:28:13 | print_i64 | main.rs:28:15:28:16 | x2 | | -| main.rs:28:5:28:17 | print_i64(...) | main.rs:29:5:29:12 | ExprStmt | | -| main.rs:28:5:28:18 | ExprStmt | main.rs:28:5:28:13 | print_i64 | | +| main.rs:28:5:28:17 | After print_i64(...) | main.rs:28:5:28:18 | After ExprStmt | | +| main.rs:28:5:28:17 | Before print_i64(...) | main.rs:28:5:28:13 | print_i64 | | +| main.rs:28:5:28:17 | print_i64(...) | main.rs:28:5:28:17 | After print_i64(...) | | +| main.rs:28:5:28:18 | After ExprStmt | main.rs:29:5:29:12 | ExprStmt | | +| main.rs:28:5:28:18 | ExprStmt | main.rs:28:5:28:17 | Before print_i64(...) | | | main.rs:28:15:28:16 | x2 | main.rs:28:5:28:17 | print_i64(...) | | | main.rs:29:5:29:6 | x2 | main.rs:29:10:29:11 | x2 | | -| main.rs:29:5:29:11 | ... = ... | main.rs:30:5:30:18 | ExprStmt | | -| main.rs:29:5:29:12 | ExprStmt | main.rs:29:5:29:6 | x2 | | +| main.rs:29:5:29:11 | ... = ... | main.rs:29:5:29:11 | After ... = ... | | +| main.rs:29:5:29:11 | After ... = ... | main.rs:29:5:29:12 | After ExprStmt | | +| main.rs:29:5:29:11 | Before ... = ... | main.rs:29:5:29:6 | x2 | | +| main.rs:29:5:29:12 | After ExprStmt | main.rs:30:5:30:18 | ExprStmt | | +| main.rs:29:5:29:12 | ExprStmt | main.rs:29:5:29:11 | Before ... = ... | | | main.rs:29:10:29:11 | x2 | main.rs:29:5:29:11 | ... = ... | | | main.rs:30:5:30:13 | print_i64 | main.rs:30:15:30:16 | x2 | | -| main.rs:30:5:30:17 | print_i64(...) | main.rs:24:23:31:1 | { ... } | | -| main.rs:30:5:30:18 | ExprStmt | main.rs:30:5:30:13 | print_i64 | | +| main.rs:30:5:30:17 | After print_i64(...) | main.rs:30:5:30:18 | After ExprStmt | | +| main.rs:30:5:30:17 | Before print_i64(...) | main.rs:30:5:30:13 | print_i64 | | +| main.rs:30:5:30:17 | print_i64(...) | main.rs:30:5:30:17 | After print_i64(...) | | +| main.rs:30:5:30:18 | After ExprStmt | main.rs:24:23:31:1 | After { ... } | | +| main.rs:30:5:30:18 | ExprStmt | main.rs:30:5:30:17 | Before print_i64(...) | | | main.rs:30:15:30:16 | x2 | main.rs:30:5:30:17 | print_i64(...) | | -| main.rs:33:1:38:1 | enter fn mutable_variable_immutable_borrow | main.rs:34:5:34:18 | let ... = 1 | | -| main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow (normal) | main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow | | -| main.rs:33:40:38:1 | { ... } | main.rs:33:1:38:1 | exit fn mutable_variable_immutable_borrow (normal) | | +| main.rs:33:1:38:1 | Entry | main.rs:33:40:38:1 | { ... } | | +| main.rs:33:1:38:1 | Normal Exit | main.rs:33:1:38:1 | Exit | | +| main.rs:33:40:38:1 | After { ... } | main.rs:33:1:38:1 | Normal Exit | | +| main.rs:33:40:38:1 | { ... } | main.rs:34:5:34:18 | let ... = 1 | | +| main.rs:34:5:34:18 | After let ... = 1 | main.rs:35:5:35:22 | ExprStmt | | | main.rs:34:5:34:18 | let ... = 1 | main.rs:34:17:34:17 | 1 | | -| main.rs:34:9:34:13 | mut x | main.rs:35:5:35:22 | ExprStmt | match | +| main.rs:34:9:34:13 | After mut x [match] | main.rs:34:5:34:18 | After let ... = 1 | | +| main.rs:34:9:34:13 | Before mut x | main.rs:34:13:34:13 | x | | +| main.rs:34:9:34:13 | mut x | main.rs:34:9:34:13 | After mut x [match] | match | | main.rs:34:13:34:13 | x | main.rs:34:9:34:13 | mut x | | -| main.rs:34:17:34:17 | 1 | main.rs:34:13:34:13 | x | | -| main.rs:35:5:35:17 | print_i64_ref | main.rs:35:20:35:20 | x | | -| main.rs:35:5:35:21 | print_i64_ref(...) | main.rs:36:5:36:10 | ExprStmt | | -| main.rs:35:5:35:22 | ExprStmt | main.rs:35:5:35:17 | print_i64_ref | | -| main.rs:35:19:35:20 | &x | main.rs:35:5:35:21 | print_i64_ref(...) | | +| main.rs:34:17:34:17 | 1 | main.rs:34:9:34:13 | Before mut x | | +| main.rs:35:5:35:17 | print_i64_ref | main.rs:35:19:35:20 | Before &x | | +| main.rs:35:5:35:21 | After print_i64_ref(...) | main.rs:35:5:35:22 | After ExprStmt | | +| main.rs:35:5:35:21 | Before print_i64_ref(...) | main.rs:35:5:35:17 | print_i64_ref | | +| main.rs:35:5:35:21 | print_i64_ref(...) | main.rs:35:5:35:21 | After print_i64_ref(...) | | +| main.rs:35:5:35:22 | After ExprStmt | main.rs:36:5:36:10 | ExprStmt | | +| main.rs:35:5:35:22 | ExprStmt | main.rs:35:5:35:21 | Before print_i64_ref(...) | | +| main.rs:35:19:35:20 | &x | main.rs:35:19:35:20 | After &x | | +| main.rs:35:19:35:20 | After &x | main.rs:35:5:35:21 | print_i64_ref(...) | | +| main.rs:35:19:35:20 | Before &x | main.rs:35:20:35:20 | x | | | main.rs:35:20:35:20 | x | main.rs:35:19:35:20 | &x | | | main.rs:36:5:36:5 | x | main.rs:36:9:36:9 | 2 | | -| main.rs:36:5:36:9 | ... = ... | main.rs:37:5:37:22 | ExprStmt | | -| main.rs:36:5:36:10 | ExprStmt | main.rs:36:5:36:5 | x | | +| main.rs:36:5:36:9 | ... = ... | main.rs:36:5:36:9 | After ... = ... | | +| main.rs:36:5:36:9 | After ... = ... | main.rs:36:5:36:10 | After ExprStmt | | +| main.rs:36:5:36:9 | Before ... = ... | main.rs:36:5:36:5 | x | | +| main.rs:36:5:36:10 | After ExprStmt | main.rs:37:5:37:22 | ExprStmt | | +| main.rs:36:5:36:10 | ExprStmt | main.rs:36:5:36:9 | Before ... = ... | | | main.rs:36:9:36:9 | 2 | main.rs:36:5:36:9 | ... = ... | | -| main.rs:37:5:37:17 | print_i64_ref | main.rs:37:20:37:20 | x | | -| main.rs:37:5:37:21 | print_i64_ref(...) | main.rs:33:40:38:1 | { ... } | | -| main.rs:37:5:37:22 | ExprStmt | main.rs:37:5:37:17 | print_i64_ref | | -| main.rs:37:19:37:20 | &x | main.rs:37:5:37:21 | print_i64_ref(...) | | +| main.rs:37:5:37:17 | print_i64_ref | main.rs:37:19:37:20 | Before &x | | +| main.rs:37:5:37:21 | After print_i64_ref(...) | main.rs:37:5:37:22 | After ExprStmt | | +| main.rs:37:5:37:21 | Before print_i64_ref(...) | main.rs:37:5:37:17 | print_i64_ref | | +| main.rs:37:5:37:21 | print_i64_ref(...) | main.rs:37:5:37:21 | After print_i64_ref(...) | | +| main.rs:37:5:37:22 | After ExprStmt | main.rs:33:40:38:1 | After { ... } | | +| main.rs:37:5:37:22 | ExprStmt | main.rs:37:5:37:21 | Before print_i64_ref(...) | | +| main.rs:37:19:37:20 | &x | main.rs:37:19:37:20 | After &x | | +| main.rs:37:19:37:20 | After &x | main.rs:37:5:37:21 | print_i64_ref(...) | | +| main.rs:37:19:37:20 | Before &x | main.rs:37:20:37:20 | x | | | main.rs:37:20:37:20 | x | main.rs:37:19:37:20 | &x | | -| main.rs:40:1:46:1 | enter fn variable_shadow1 | main.rs:41:5:41:15 | let ... = 1 | | -| main.rs:40:1:46:1 | exit fn variable_shadow1 (normal) | main.rs:40:1:46:1 | exit fn variable_shadow1 | | -| main.rs:40:23:46:1 | { ... } | main.rs:40:1:46:1 | exit fn variable_shadow1 (normal) | | +| main.rs:40:1:46:1 | Entry | main.rs:40:23:46:1 | { ... } | | +| main.rs:40:1:46:1 | Normal Exit | main.rs:40:1:46:1 | Exit | | +| main.rs:40:23:46:1 | After { ... } | main.rs:40:1:46:1 | Normal Exit | | +| main.rs:40:23:46:1 | { ... } | main.rs:41:5:41:15 | let ... = 1 | | +| main.rs:41:5:41:15 | After let ... = 1 | main.rs:42:5:42:18 | ExprStmt | | | main.rs:41:5:41:15 | let ... = 1 | main.rs:41:14:41:14 | 1 | | +| main.rs:41:9:41:10 | After x3 [match] | main.rs:41:5:41:15 | After let ... = 1 | | +| main.rs:41:9:41:10 | Before x3 | main.rs:41:9:41:10 | x3 | | +| main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | After x3 [match] | match | | main.rs:41:9:41:10 | x3 | main.rs:41:9:41:10 | x3 | | -| main.rs:41:9:41:10 | x3 | main.rs:42:5:42:18 | ExprStmt | match | -| main.rs:41:14:41:14 | 1 | main.rs:41:9:41:10 | x3 | | +| main.rs:41:14:41:14 | 1 | main.rs:41:9:41:10 | Before x3 | | | main.rs:42:5:42:13 | print_i64 | main.rs:42:15:42:16 | x3 | | -| main.rs:42:5:42:17 | print_i64(...) | main.rs:43:5:44:15 | let ... = ... | | -| main.rs:42:5:42:18 | ExprStmt | main.rs:42:5:42:13 | print_i64 | | +| main.rs:42:5:42:17 | After print_i64(...) | main.rs:42:5:42:18 | After ExprStmt | | +| main.rs:42:5:42:17 | Before print_i64(...) | main.rs:42:5:42:13 | print_i64 | | +| main.rs:42:5:42:17 | print_i64(...) | main.rs:42:5:42:17 | After print_i64(...) | | +| main.rs:42:5:42:18 | After ExprStmt | main.rs:43:5:44:15 | let ... = ... | | +| main.rs:42:5:42:18 | ExprStmt | main.rs:42:5:42:17 | Before print_i64(...) | | | main.rs:42:15:42:16 | x3 | main.rs:42:5:42:17 | print_i64(...) | | -| main.rs:43:5:44:15 | let ... = ... | main.rs:44:9:44:10 | x3 | | +| main.rs:43:5:44:15 | After let ... = ... | main.rs:45:5:45:18 | ExprStmt | | +| main.rs:43:5:44:15 | let ... = ... | main.rs:44:9:44:14 | Before ... + ... | | +| main.rs:43:9:43:10 | After x3 [match] | main.rs:43:5:44:15 | After let ... = ... | | +| main.rs:43:9:43:10 | Before x3 | main.rs:43:9:43:10 | x3 | | +| main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | After x3 [match] | match | | main.rs:43:9:43:10 | x3 | main.rs:43:9:43:10 | x3 | | -| main.rs:43:9:43:10 | x3 | main.rs:45:5:45:18 | ExprStmt | match | | main.rs:44:9:44:10 | x3 | main.rs:44:14:44:14 | 1 | | -| main.rs:44:9:44:14 | ... + ... | main.rs:43:9:43:10 | x3 | | +| main.rs:44:9:44:14 | ... + ... | main.rs:44:9:44:14 | After ... + ... | | +| main.rs:44:9:44:14 | After ... + ... | main.rs:43:9:43:10 | Before x3 | | +| main.rs:44:9:44:14 | Before ... + ... | main.rs:44:9:44:10 | x3 | | | main.rs:44:14:44:14 | 1 | main.rs:44:9:44:14 | ... + ... | | | main.rs:45:5:45:13 | print_i64 | main.rs:45:15:45:16 | x3 | | -| main.rs:45:5:45:17 | print_i64(...) | main.rs:40:23:46:1 | { ... } | | -| main.rs:45:5:45:18 | ExprStmt | main.rs:45:5:45:13 | print_i64 | | +| main.rs:45:5:45:17 | After print_i64(...) | main.rs:45:5:45:18 | After ExprStmt | | +| main.rs:45:5:45:17 | Before print_i64(...) | main.rs:45:5:45:13 | print_i64 | | +| main.rs:45:5:45:17 | print_i64(...) | main.rs:45:5:45:17 | After print_i64(...) | | +| main.rs:45:5:45:18 | After ExprStmt | main.rs:40:23:46:1 | After { ... } | | +| main.rs:45:5:45:18 | ExprStmt | main.rs:45:5:45:17 | Before print_i64(...) | | | main.rs:45:15:45:16 | x3 | main.rs:45:5:45:17 | print_i64(...) | | -| main.rs:48:1:56:1 | enter fn variable_shadow2 | main.rs:49:5:49:17 | let ... = "a" | | -| main.rs:48:1:56:1 | exit fn variable_shadow2 (normal) | main.rs:48:1:56:1 | exit fn variable_shadow2 | | -| main.rs:48:23:56:1 | { ... } | main.rs:48:1:56:1 | exit fn variable_shadow2 (normal) | | +| main.rs:48:1:56:1 | Entry | main.rs:48:23:56:1 | { ... } | | +| main.rs:48:1:56:1 | Normal Exit | main.rs:48:1:56:1 | Exit | | +| main.rs:48:23:56:1 | After { ... } | main.rs:48:1:56:1 | Normal Exit | | +| main.rs:48:23:56:1 | { ... } | main.rs:49:5:49:17 | let ... = "a" | | +| main.rs:49:5:49:17 | After let ... = "a" | main.rs:50:5:50:18 | ExprStmt | | | main.rs:49:5:49:17 | let ... = "a" | main.rs:49:14:49:16 | "a" | | +| main.rs:49:9:49:10 | After x4 [match] | main.rs:49:5:49:17 | After let ... = "a" | | +| main.rs:49:9:49:10 | Before x4 | main.rs:49:9:49:10 | x4 | | +| main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | After x4 [match] | match | | main.rs:49:9:49:10 | x4 | main.rs:49:9:49:10 | x4 | | -| main.rs:49:9:49:10 | x4 | main.rs:50:5:50:18 | ExprStmt | match | -| main.rs:49:14:49:16 | "a" | main.rs:49:9:49:10 | x4 | | +| main.rs:49:14:49:16 | "a" | main.rs:49:9:49:10 | Before x4 | | | main.rs:50:5:50:13 | print_str | main.rs:50:15:50:16 | x4 | | -| main.rs:50:5:50:17 | print_str(...) | main.rs:51:5:54:5 | ExprStmt | | -| main.rs:50:5:50:18 | ExprStmt | main.rs:50:5:50:13 | print_str | | +| main.rs:50:5:50:17 | After print_str(...) | main.rs:50:5:50:18 | After ExprStmt | | +| main.rs:50:5:50:17 | Before print_str(...) | main.rs:50:5:50:13 | print_str | | +| main.rs:50:5:50:17 | print_str(...) | main.rs:50:5:50:17 | After print_str(...) | | +| main.rs:50:5:50:18 | After ExprStmt | main.rs:51:5:54:5 | ExprStmt | | +| main.rs:50:5:50:18 | ExprStmt | main.rs:50:5:50:17 | Before print_str(...) | | | main.rs:50:15:50:16 | x4 | main.rs:50:5:50:17 | print_str(...) | | -| main.rs:51:5:54:5 | ExprStmt | main.rs:52:9:52:21 | let ... = "b" | | -| main.rs:51:5:54:5 | { ... } | main.rs:55:5:55:18 | ExprStmt | | +| main.rs:51:5:54:5 | After ExprStmt | main.rs:55:5:55:18 | ExprStmt | | +| main.rs:51:5:54:5 | After { ... } | main.rs:51:5:54:5 | After ExprStmt | | +| main.rs:51:5:54:5 | ExprStmt | main.rs:51:5:54:5 | { ... } | | +| main.rs:51:5:54:5 | { ... } | main.rs:52:9:52:21 | let ... = "b" | | +| main.rs:52:9:52:21 | After let ... = "b" | main.rs:53:9:53:22 | ExprStmt | | | main.rs:52:9:52:21 | let ... = "b" | main.rs:52:18:52:20 | "b" | | +| main.rs:52:13:52:14 | After x4 [match] | main.rs:52:9:52:21 | After let ... = "b" | | +| main.rs:52:13:52:14 | Before x4 | main.rs:52:13:52:14 | x4 | | +| main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | After x4 [match] | match | | main.rs:52:13:52:14 | x4 | main.rs:52:13:52:14 | x4 | | -| main.rs:52:13:52:14 | x4 | main.rs:53:9:53:22 | ExprStmt | match | -| main.rs:52:18:52:20 | "b" | main.rs:52:13:52:14 | x4 | | +| main.rs:52:18:52:20 | "b" | main.rs:52:13:52:14 | Before x4 | | | main.rs:53:9:53:17 | print_str | main.rs:53:19:53:20 | x4 | | -| main.rs:53:9:53:21 | print_str(...) | main.rs:51:5:54:5 | { ... } | | -| main.rs:53:9:53:22 | ExprStmt | main.rs:53:9:53:17 | print_str | | +| main.rs:53:9:53:21 | After print_str(...) | main.rs:53:9:53:22 | After ExprStmt | | +| main.rs:53:9:53:21 | Before print_str(...) | main.rs:53:9:53:17 | print_str | | +| main.rs:53:9:53:21 | print_str(...) | main.rs:53:9:53:21 | After print_str(...) | | +| main.rs:53:9:53:22 | After ExprStmt | main.rs:51:5:54:5 | After { ... } | | +| main.rs:53:9:53:22 | ExprStmt | main.rs:53:9:53:21 | Before print_str(...) | | | main.rs:53:19:53:20 | x4 | main.rs:53:9:53:21 | print_str(...) | | | main.rs:55:5:55:13 | print_str | main.rs:55:15:55:16 | x4 | | -| main.rs:55:5:55:17 | print_str(...) | main.rs:48:23:56:1 | { ... } | | -| main.rs:55:5:55:18 | ExprStmt | main.rs:55:5:55:13 | print_str | | +| main.rs:55:5:55:17 | After print_str(...) | main.rs:55:5:55:18 | After ExprStmt | | +| main.rs:55:5:55:17 | Before print_str(...) | main.rs:55:5:55:13 | print_str | | +| main.rs:55:5:55:17 | print_str(...) | main.rs:55:5:55:17 | After print_str(...) | | +| main.rs:55:5:55:18 | After ExprStmt | main.rs:48:23:56:1 | After { ... } | | +| main.rs:55:5:55:18 | ExprStmt | main.rs:55:5:55:17 | Before print_str(...) | | | main.rs:55:15:55:16 | x4 | main.rs:55:5:55:17 | print_str(...) | | -| main.rs:63:1:78:1 | enter fn let_pattern1 | main.rs:64:5:73:47 | let ... = ... | | -| main.rs:63:1:78:1 | exit fn let_pattern1 (normal) | main.rs:63:1:78:1 | exit fn let_pattern1 | | -| main.rs:63:19:78:1 | { ... } | main.rs:63:1:78:1 | exit fn let_pattern1 (normal) | | -| main.rs:64:5:73:47 | let ... = ... | main.rs:73:11:73:13 | "a" | | -| main.rs:64:9:73:5 | TuplePat | main.rs:65:9:68:9 | TuplePat | match | -| main.rs:65:9:68:9 | TuplePat | main.rs:66:13:66:14 | a1 | match | +| main.rs:63:1:78:1 | Entry | main.rs:63:19:78:1 | { ... } | | +| main.rs:63:1:78:1 | Normal Exit | main.rs:63:1:78:1 | Exit | | +| main.rs:63:19:78:1 | After { ... } | main.rs:63:1:78:1 | Normal Exit | | +| main.rs:63:19:78:1 | { ... } | main.rs:64:5:73:47 | let ... = ... | | +| main.rs:64:5:73:47 | After let ... = ... | main.rs:74:5:74:18 | ExprStmt | | +| main.rs:64:5:73:47 | let ... = ... | main.rs:73:9:73:46 | Before TupleExpr | | +| main.rs:64:9:73:5 | After TuplePat [match] | main.rs:64:5:73:47 | After let ... = ... | | +| main.rs:64:9:73:5 | TuplePat | main.rs:64:9:73:5 | [pattern-start] TuplePat | match | +| main.rs:64:9:73:5 | [pattern-start] TuplePat | main.rs:65:9:68:9 | TuplePat | | +| main.rs:65:9:68:9 | After TuplePat [match] | main.rs:69:9:72:9 | Point {...} | | +| main.rs:65:9:68:9 | TuplePat | main.rs:65:9:68:9 | [pattern-start] TuplePat | match | +| main.rs:65:9:68:9 | [pattern-start] TuplePat | main.rs:66:13:66:14 | Before a1 | | +| main.rs:66:13:66:14 | After a1 [match] | main.rs:67:13:67:14 | Before b1 | | +| main.rs:66:13:66:14 | Before a1 | main.rs:66:13:66:14 | a1 | | +| main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | After a1 [match] | match | | main.rs:66:13:66:14 | a1 | main.rs:66:13:66:14 | a1 | | -| main.rs:66:13:66:14 | a1 | main.rs:67:13:67:14 | b1 | match | +| main.rs:67:13:67:14 | After b1 [match] | main.rs:65:9:68:9 | After TuplePat [match] | match | +| main.rs:67:13:67:14 | Before b1 | main.rs:67:13:67:14 | b1 | | +| main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | After b1 [match] | match | | main.rs:67:13:67:14 | b1 | main.rs:67:13:67:14 | b1 | | -| main.rs:67:13:67:14 | b1 | main.rs:69:9:72:9 | Point {...} | match | -| main.rs:69:9:72:9 | Point {...} | main.rs:70:13:70:13 | x | match | +| main.rs:69:9:72:9 | After Point {...} [match] | main.rs:64:9:73:5 | After TuplePat [match] | match | +| main.rs:69:9:72:9 | Point {...} | main.rs:69:9:72:9 | [pattern-start] Point {...} | match | +| main.rs:69:9:72:9 | [pattern-start] Point {...} | main.rs:70:13:70:13 | Before x | | +| main.rs:70:13:70:13 | After x [match] | main.rs:71:13:71:13 | Before y | | +| main.rs:70:13:70:13 | Before x | main.rs:70:13:70:13 | x | | +| main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | After x [match] | match | | main.rs:70:13:70:13 | x | main.rs:70:13:70:13 | x | | -| main.rs:70:13:70:13 | x | main.rs:71:13:71:13 | y | match | +| main.rs:71:13:71:13 | After y [match] | main.rs:69:9:72:9 | After Point {...} [match] | match | +| main.rs:71:13:71:13 | Before y | main.rs:71:13:71:13 | y | | +| main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | After y [match] | match | | main.rs:71:13:71:13 | y | main.rs:71:13:71:13 | y | | -| main.rs:71:13:71:13 | y | main.rs:74:5:74:18 | ExprStmt | match | -| main.rs:73:9:73:46 | TupleExpr | main.rs:64:9:73:5 | TuplePat | | -| main.rs:73:10:73:19 | TupleExpr | main.rs:73:33:73:35 | "x" | | +| main.rs:73:9:73:46 | After TupleExpr | main.rs:64:9:73:5 | TuplePat | | +| main.rs:73:9:73:46 | Before TupleExpr | main.rs:73:10:73:19 | Before TupleExpr | | +| main.rs:73:9:73:46 | TupleExpr | main.rs:73:9:73:46 | After TupleExpr | | +| main.rs:73:10:73:19 | After TupleExpr | main.rs:73:22:73:45 | Before Point {...} | | +| main.rs:73:10:73:19 | Before TupleExpr | main.rs:73:11:73:13 | "a" | | +| main.rs:73:10:73:19 | TupleExpr | main.rs:73:10:73:19 | After TupleExpr | | | main.rs:73:11:73:13 | "a" | main.rs:73:16:73:18 | "b" | | | main.rs:73:16:73:18 | "b" | main.rs:73:10:73:19 | TupleExpr | | -| main.rs:73:22:73:45 | Point {...} | main.rs:73:9:73:46 | TupleExpr | | +| main.rs:73:22:73:45 | After Point {...} | main.rs:73:9:73:46 | TupleExpr | | +| main.rs:73:22:73:45 | Before Point {...} | main.rs:73:33:73:35 | "x" | | +| main.rs:73:22:73:45 | Point {...} | main.rs:73:22:73:45 | After Point {...} | | | main.rs:73:33:73:35 | "x" | main.rs:73:41:73:43 | "y" | | | main.rs:73:41:73:43 | "y" | main.rs:73:22:73:45 | Point {...} | | | main.rs:74:5:74:13 | print_str | main.rs:74:15:74:16 | a1 | | -| main.rs:74:5:74:17 | print_str(...) | main.rs:75:5:75:18 | ExprStmt | | -| main.rs:74:5:74:18 | ExprStmt | main.rs:74:5:74:13 | print_str | | +| main.rs:74:5:74:17 | After print_str(...) | main.rs:74:5:74:18 | After ExprStmt | | +| main.rs:74:5:74:17 | Before print_str(...) | main.rs:74:5:74:13 | print_str | | +| main.rs:74:5:74:17 | print_str(...) | main.rs:74:5:74:17 | After print_str(...) | | +| main.rs:74:5:74:18 | After ExprStmt | main.rs:75:5:75:18 | ExprStmt | | +| main.rs:74:5:74:18 | ExprStmt | main.rs:74:5:74:17 | Before print_str(...) | | | main.rs:74:15:74:16 | a1 | main.rs:74:5:74:17 | print_str(...) | | | main.rs:75:5:75:13 | print_str | main.rs:75:15:75:16 | b1 | | -| main.rs:75:5:75:17 | print_str(...) | main.rs:76:5:76:17 | ExprStmt | | -| main.rs:75:5:75:18 | ExprStmt | main.rs:75:5:75:13 | print_str | | +| main.rs:75:5:75:17 | After print_str(...) | main.rs:75:5:75:18 | After ExprStmt | | +| main.rs:75:5:75:17 | Before print_str(...) | main.rs:75:5:75:13 | print_str | | +| main.rs:75:5:75:17 | print_str(...) | main.rs:75:5:75:17 | After print_str(...) | | +| main.rs:75:5:75:18 | After ExprStmt | main.rs:76:5:76:17 | ExprStmt | | +| main.rs:75:5:75:18 | ExprStmt | main.rs:75:5:75:17 | Before print_str(...) | | | main.rs:75:15:75:16 | b1 | main.rs:75:5:75:17 | print_str(...) | | | main.rs:76:5:76:13 | print_str | main.rs:76:15:76:15 | x | | -| main.rs:76:5:76:16 | print_str(...) | main.rs:77:5:77:17 | ExprStmt | | -| main.rs:76:5:76:17 | ExprStmt | main.rs:76:5:76:13 | print_str | | +| main.rs:76:5:76:16 | After print_str(...) | main.rs:76:5:76:17 | After ExprStmt | | +| main.rs:76:5:76:16 | Before print_str(...) | main.rs:76:5:76:13 | print_str | | +| main.rs:76:5:76:16 | print_str(...) | main.rs:76:5:76:16 | After print_str(...) | | +| main.rs:76:5:76:17 | After ExprStmt | main.rs:77:5:77:17 | ExprStmt | | +| main.rs:76:5:76:17 | ExprStmt | main.rs:76:5:76:16 | Before print_str(...) | | | main.rs:76:15:76:15 | x | main.rs:76:5:76:16 | print_str(...) | | | main.rs:77:5:77:13 | print_str | main.rs:77:15:77:15 | y | | -| main.rs:77:5:77:16 | print_str(...) | main.rs:63:19:78:1 | { ... } | | -| main.rs:77:5:77:17 | ExprStmt | main.rs:77:5:77:13 | print_str | | +| main.rs:77:5:77:16 | After print_str(...) | main.rs:77:5:77:17 | After ExprStmt | | +| main.rs:77:5:77:16 | Before print_str(...) | main.rs:77:5:77:13 | print_str | | +| main.rs:77:5:77:16 | print_str(...) | main.rs:77:5:77:16 | After print_str(...) | | +| main.rs:77:5:77:17 | After ExprStmt | main.rs:63:19:78:1 | After { ... } | | +| main.rs:77:5:77:17 | ExprStmt | main.rs:77:5:77:16 | Before print_str(...) | | | main.rs:77:15:77:15 | y | main.rs:77:5:77:16 | print_str(...) | | -| main.rs:80:1:88:1 | enter fn let_pattern2 | main.rs:81:5:81:38 | let ... = ... | | -| main.rs:80:1:88:1 | exit fn let_pattern2 (normal) | main.rs:80:1:88:1 | exit fn let_pattern2 | | -| main.rs:80:19:88:1 | { ... } | main.rs:80:1:88:1 | exit fn let_pattern2 (normal) | | -| main.rs:81:5:81:38 | let ... = ... | main.rs:81:25:81:27 | "a" | | +| main.rs:80:1:88:1 | Entry | main.rs:80:19:88:1 | { ... } | | +| main.rs:80:1:88:1 | Normal Exit | main.rs:80:1:88:1 | Exit | | +| main.rs:80:19:88:1 | After { ... } | main.rs:80:1:88:1 | Normal Exit | | +| main.rs:80:19:88:1 | { ... } | main.rs:81:5:81:38 | let ... = ... | | +| main.rs:81:5:81:38 | After let ... = ... | main.rs:82:5:85:11 | let ... = p1 | | +| main.rs:81:5:81:38 | let ... = ... | main.rs:81:14:81:37 | Before Point {...} | | +| main.rs:81:9:81:10 | After p1 [match] | main.rs:81:5:81:38 | After let ... = ... | | +| main.rs:81:9:81:10 | Before p1 | main.rs:81:9:81:10 | p1 | | +| main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | After p1 [match] | match | | main.rs:81:9:81:10 | p1 | main.rs:81:9:81:10 | p1 | | -| main.rs:81:9:81:10 | p1 | main.rs:82:5:85:11 | let ... = p1 | match | -| main.rs:81:14:81:37 | Point {...} | main.rs:81:9:81:10 | p1 | | +| main.rs:81:14:81:37 | After Point {...} | main.rs:81:9:81:10 | Before p1 | | +| main.rs:81:14:81:37 | Before Point {...} | main.rs:81:25:81:27 | "a" | | +| main.rs:81:14:81:37 | Point {...} | main.rs:81:14:81:37 | After Point {...} | | | main.rs:81:25:81:27 | "a" | main.rs:81:33:81:35 | "b" | | | main.rs:81:33:81:35 | "b" | main.rs:81:14:81:37 | Point {...} | | +| main.rs:82:5:85:11 | After let ... = p1 | main.rs:86:5:86:18 | ExprStmt | | | main.rs:82:5:85:11 | let ... = p1 | main.rs:85:9:85:10 | p1 | | -| main.rs:82:9:85:5 | Point {...} | main.rs:83:12:83:13 | a2 | match | +| main.rs:82:9:85:5 | After Point {...} [match] | main.rs:82:5:85:11 | After let ... = p1 | | +| main.rs:82:9:85:5 | Point {...} | main.rs:82:9:85:5 | [pattern-start] Point {...} | match | +| main.rs:82:9:85:5 | [pattern-start] Point {...} | main.rs:83:12:83:13 | Before a2 | | +| main.rs:83:12:83:13 | After a2 [match] | main.rs:84:12:84:13 | Before b2 | | +| main.rs:83:12:83:13 | Before a2 | main.rs:83:12:83:13 | a2 | | +| main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | After a2 [match] | match | | main.rs:83:12:83:13 | a2 | main.rs:83:12:83:13 | a2 | | -| main.rs:83:12:83:13 | a2 | main.rs:84:12:84:13 | b2 | match | +| main.rs:84:12:84:13 | After b2 [match] | main.rs:82:9:85:5 | After Point {...} [match] | match | +| main.rs:84:12:84:13 | Before b2 | main.rs:84:12:84:13 | b2 | | +| main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | After b2 [match] | match | | main.rs:84:12:84:13 | b2 | main.rs:84:12:84:13 | b2 | | -| main.rs:84:12:84:13 | b2 | main.rs:86:5:86:18 | ExprStmt | match | | main.rs:85:9:85:10 | p1 | main.rs:82:9:85:5 | Point {...} | | | main.rs:86:5:86:13 | print_str | main.rs:86:15:86:16 | a2 | | -| main.rs:86:5:86:17 | print_str(...) | main.rs:87:5:87:18 | ExprStmt | | -| main.rs:86:5:86:18 | ExprStmt | main.rs:86:5:86:13 | print_str | | +| main.rs:86:5:86:17 | After print_str(...) | main.rs:86:5:86:18 | After ExprStmt | | +| main.rs:86:5:86:17 | Before print_str(...) | main.rs:86:5:86:13 | print_str | | +| main.rs:86:5:86:17 | print_str(...) | main.rs:86:5:86:17 | After print_str(...) | | +| main.rs:86:5:86:18 | After ExprStmt | main.rs:87:5:87:18 | ExprStmt | | +| main.rs:86:5:86:18 | ExprStmt | main.rs:86:5:86:17 | Before print_str(...) | | | main.rs:86:15:86:16 | a2 | main.rs:86:5:86:17 | print_str(...) | | | main.rs:87:5:87:13 | print_str | main.rs:87:15:87:16 | b2 | | -| main.rs:87:5:87:17 | print_str(...) | main.rs:80:19:88:1 | { ... } | | -| main.rs:87:5:87:18 | ExprStmt | main.rs:87:5:87:13 | print_str | | +| main.rs:87:5:87:17 | After print_str(...) | main.rs:87:5:87:18 | After ExprStmt | | +| main.rs:87:5:87:17 | Before print_str(...) | main.rs:87:5:87:13 | print_str | | +| main.rs:87:5:87:17 | print_str(...) | main.rs:87:5:87:17 | After print_str(...) | | +| main.rs:87:5:87:18 | After ExprStmt | main.rs:80:19:88:1 | After { ... } | | +| main.rs:87:5:87:18 | ExprStmt | main.rs:87:5:87:17 | Before print_str(...) | | | main.rs:87:15:87:16 | b2 | main.rs:87:5:87:17 | print_str(...) | | -| main.rs:90:1:97:1 | enter fn let_pattern3 | main.rs:91:5:91:42 | let ... = ... | | -| main.rs:90:1:97:1 | exit fn let_pattern3 (normal) | main.rs:90:1:97:1 | exit fn let_pattern3 | | -| main.rs:90:19:97:1 | { ... } | main.rs:90:1:97:1 | exit fn let_pattern3 (normal) | | -| main.rs:91:5:91:42 | let ... = ... | main.rs:91:14:91:17 | Some | | +| main.rs:90:1:97:1 | Entry | main.rs:90:19:97:1 | { ... } | | +| main.rs:90:1:97:1 | Normal Exit | main.rs:90:1:97:1 | Exit | | +| main.rs:90:19:97:1 | After { ... } | main.rs:90:1:97:1 | Normal Exit | | +| main.rs:90:19:97:1 | { ... } | main.rs:91:5:91:42 | let ... = ... | | +| main.rs:91:5:91:42 | After let ... = ... | main.rs:93:5:96:5 | if ... {...} | | +| main.rs:91:5:91:42 | let ... = ... | main.rs:91:14:91:41 | Before Some(...) | | +| main.rs:91:9:91:10 | After s1 [match] | main.rs:91:5:91:42 | After let ... = ... | | +| main.rs:91:9:91:10 | Before s1 | main.rs:91:9:91:10 | s1 | | +| main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | After s1 [match] | match | | main.rs:91:9:91:10 | s1 | main.rs:91:9:91:10 | s1 | | -| main.rs:91:9:91:10 | s1 | main.rs:94:11:94:12 | s1 | match | -| main.rs:91:14:91:17 | Some | main.rs:91:19:91:30 | ...::from | | -| main.rs:91:14:91:41 | Some(...) | main.rs:91:9:91:10 | s1 | | +| main.rs:91:14:91:17 | Some | main.rs:91:19:91:40 | Before ...::from(...) | | +| main.rs:91:14:91:41 | After Some(...) | main.rs:91:9:91:10 | Before s1 | | +| main.rs:91:14:91:41 | Before Some(...) | main.rs:91:14:91:17 | Some | | +| main.rs:91:14:91:41 | Some(...) | main.rs:91:14:91:41 | After Some(...) | | | main.rs:91:19:91:30 | ...::from | main.rs:91:32:91:39 | "Hello!" | | -| main.rs:91:19:91:40 | ...::from(...) | main.rs:91:14:91:41 | Some(...) | | +| main.rs:91:19:91:40 | ...::from(...) | main.rs:91:19:91:40 | After ...::from(...) | | +| main.rs:91:19:91:40 | After ...::from(...) | main.rs:91:14:91:41 | Some(...) | | +| main.rs:91:19:91:40 | Before ...::from(...) | main.rs:91:19:91:30 | ...::from | | | main.rs:91:32:91:39 | "Hello!" | main.rs:91:19:91:40 | ...::from(...) | | -| main.rs:93:5:96:5 | if ... {...} | main.rs:90:19:97:1 | { ... } | | -| main.rs:93:8:94:12 | [boolean(false)] let ... = s1 | main.rs:93:5:96:5 | if ... {...} | false | -| main.rs:93:8:94:12 | [boolean(true)] let ... = s1 | main.rs:95:9:95:22 | ExprStmt | true | -| main.rs:93:12:93:23 | Some(...) | main.rs:93:8:94:12 | [boolean(false)] let ... = s1 | no-match | -| main.rs:93:12:93:23 | Some(...) | main.rs:93:21:93:22 | s2 | match | -| main.rs:93:17:93:22 | ref s2 | main.rs:93:8:94:12 | [boolean(true)] let ... = s1 | match | +| main.rs:93:5:96:5 | After if ... {...} | main.rs:90:19:97:1 | After { ... } | | +| main.rs:93:5:96:5 | if ... {...} | main.rs:93:8:94:12 | let ... = s1 | | +| main.rs:93:8:94:12 | After let ... = s1 [false] | main.rs:93:5:96:5 | After if ... {...} | | +| main.rs:93:8:94:12 | After let ... = s1 [true] | main.rs:94:14:96:5 | { ... } | | +| main.rs:93:8:94:12 | let ... = s1 | main.rs:94:11:94:12 | s1 | | +| main.rs:93:12:93:23 | After Some(...) [match] | main.rs:93:8:94:12 | After let ... = s1 [true] | true | +| main.rs:93:12:93:23 | After Some(...) [no-match] | main.rs:93:8:94:12 | After let ... = s1 [false] | false | +| main.rs:93:12:93:23 | Some(...) | main.rs:93:12:93:23 | After Some(...) [no-match] | no-match | +| main.rs:93:12:93:23 | Some(...) | main.rs:93:12:93:23 | [pattern-start] Some(...) | match | +| main.rs:93:12:93:23 | [pattern-start] Some(...) | main.rs:93:17:93:22 | Before ref s2 | | +| main.rs:93:17:93:22 | After ref s2 [match] | main.rs:93:12:93:23 | After Some(...) [match] | match | +| main.rs:93:17:93:22 | Before ref s2 | main.rs:93:21:93:22 | s2 | | +| main.rs:93:17:93:22 | ref s2 | main.rs:93:17:93:22 | After ref s2 [match] | match | | main.rs:93:21:93:22 | s2 | main.rs:93:17:93:22 | ref s2 | | | main.rs:94:11:94:12 | s1 | main.rs:93:12:93:23 | Some(...) | | -| main.rs:94:14:96:5 | { ... } | main.rs:93:5:96:5 | if ... {...} | | +| main.rs:94:14:96:5 | After { ... } | main.rs:93:5:96:5 | After if ... {...} | | +| main.rs:94:14:96:5 | { ... } | main.rs:95:9:95:22 | ExprStmt | | | main.rs:95:9:95:17 | print_str | main.rs:95:19:95:20 | s2 | | -| main.rs:95:9:95:21 | print_str(...) | main.rs:94:14:96:5 | { ... } | | -| main.rs:95:9:95:22 | ExprStmt | main.rs:95:9:95:17 | print_str | | +| main.rs:95:9:95:21 | After print_str(...) | main.rs:95:9:95:22 | After ExprStmt | | +| main.rs:95:9:95:21 | Before print_str(...) | main.rs:95:9:95:17 | print_str | | +| main.rs:95:9:95:21 | print_str(...) | main.rs:95:9:95:21 | After print_str(...) | | +| main.rs:95:9:95:22 | After ExprStmt | main.rs:94:14:96:5 | After { ... } | | +| main.rs:95:9:95:22 | ExprStmt | main.rs:95:9:95:21 | Before print_str(...) | | | main.rs:95:19:95:20 | s2 | main.rs:95:9:95:21 | print_str(...) | | -| main.rs:99:1:110:1 | enter fn let_pattern4 | main.rs:100:5:100:23 | let ... = ... | | -| main.rs:99:1:110:1 | exit fn let_pattern4 (normal) | main.rs:99:1:110:1 | exit fn let_pattern4 | | -| main.rs:99:19:110:1 | { ... } | main.rs:99:1:110:1 | exit fn let_pattern4 (normal) | | -| main.rs:100:5:100:23 | let ... = ... | main.rs:100:13:100:16 | Some | | +| main.rs:99:1:110:1 | Entry | main.rs:99:19:110:1 | { ... } | | +| main.rs:99:1:110:1 | Exceptional Exit | main.rs:99:1:110:1 | Exit | | +| main.rs:99:1:110:1 | Normal Exit | main.rs:99:1:110:1 | Exit | | +| main.rs:99:19:110:1 | After { ... } | main.rs:99:1:110:1 | Normal Exit | | +| main.rs:99:19:110:1 | { ... } | main.rs:100:5:100:23 | let ... = ... | | +| main.rs:100:5:100:23 | After let ... = ... | main.rs:101:5:108:6 | let ... = x else {...} | | +| main.rs:100:5:100:23 | let ... = ... | main.rs:100:13:100:22 | Before Some(...) | | +| main.rs:100:9:100:9 | After x [match] | main.rs:100:5:100:23 | After let ... = ... | | +| main.rs:100:9:100:9 | Before x | main.rs:100:9:100:9 | x | | +| main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | After x [match] | match | | main.rs:100:9:100:9 | x | main.rs:100:9:100:9 | x | | -| main.rs:100:9:100:9 | x | main.rs:101:5:108:6 | let ... = x else {...} | match | | main.rs:100:13:100:16 | Some | main.rs:100:18:100:21 | "x5" | | -| main.rs:100:13:100:22 | Some(...) | main.rs:100:9:100:9 | x | | +| main.rs:100:13:100:22 | After Some(...) | main.rs:100:9:100:9 | Before x | | +| main.rs:100:13:100:22 | Before Some(...) | main.rs:100:13:100:16 | Some | | +| main.rs:100:13:100:22 | Some(...) | main.rs:100:13:100:22 | After Some(...) | | | main.rs:100:18:100:21 | "x5" | main.rs:100:13:100:22 | Some(...) | | +| main.rs:101:5:108:6 | After let ... = x else {...} | main.rs:109:5:109:17 | ExprStmt | | | main.rs:101:5:108:6 | let ... = x else {...} | main.rs:102:7:102:7 | x | | -| main.rs:101:9:101:15 | Some(...) | main.rs:101:14:101:14 | x | match | -| main.rs:101:9:101:15 | Some(...) | main.rs:104:9:105:14 | let ... = x | no-match | +| main.rs:101:9:101:15 | After Some(...) [match] | main.rs:101:5:108:6 | After let ... = x else {...} | | +| main.rs:101:9:101:15 | After Some(...) [no-match] | main.rs:103:10:108:5 | { ... } | | +| main.rs:101:9:101:15 | Some(...) | main.rs:101:9:101:15 | After Some(...) [no-match] | no-match | +| main.rs:101:9:101:15 | Some(...) | main.rs:101:9:101:15 | [pattern-start] Some(...) | match | +| main.rs:101:9:101:15 | [pattern-start] Some(...) | main.rs:101:14:101:14 | Before x | | +| main.rs:101:14:101:14 | After x [match] | main.rs:101:9:101:15 | After Some(...) [match] | match | +| main.rs:101:14:101:14 | Before x | main.rs:101:14:101:14 | x | | +| main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | After x [match] | match | | main.rs:101:14:101:14 | x | main.rs:101:14:101:14 | x | | -| main.rs:101:14:101:14 | x | main.rs:109:5:109:17 | ExprStmt | match | | main.rs:102:7:102:7 | x | main.rs:101:9:101:15 | Some(...) | | +| main.rs:103:10:108:5 | After { ... } | main.rs:103:10:108:5 | [let-else-diverge] { ... } | | +| main.rs:103:10:108:5 | [let-else-diverge] { ... } | main.rs:99:1:110:1 | Exceptional Exit | exception | +| main.rs:103:10:108:5 | { ... } | main.rs:104:9:105:14 | let ... = x | | +| main.rs:104:9:105:14 | After let ... = x | main.rs:106:9:106:30 | ExprStmt | | | main.rs:104:9:105:14 | let ... = x | main.rs:105:13:105:13 | x | | +| main.rs:104:13:104:13 | After x [match] | main.rs:104:9:105:14 | After let ... = x | | +| main.rs:104:13:104:13 | Before x | main.rs:104:13:104:13 | x | | +| main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | After x [match] | match | | main.rs:104:13:104:13 | x | main.rs:104:13:104:13 | x | | -| main.rs:104:13:104:13 | x | main.rs:106:9:106:30 | ExprStmt | match | -| main.rs:105:13:105:13 | x | main.rs:104:13:104:13 | x | | -| main.rs:106:9:106:17 | print_str | main.rs:106:19:106:19 | x | | -| main.rs:106:9:106:29 | print_str(...) | main.rs:107:9:107:13 | ...::panic | | -| main.rs:106:9:106:30 | ExprStmt | main.rs:106:9:106:17 | print_str | | +| main.rs:105:13:105:13 | x | main.rs:104:13:104:13 | Before x | | +| main.rs:106:9:106:17 | print_str | main.rs:106:19:106:28 | Before x.unwrap() | | +| main.rs:106:9:106:29 | After print_str(...) | main.rs:106:9:106:30 | After ExprStmt | | +| main.rs:106:9:106:29 | Before print_str(...) | main.rs:106:9:106:17 | print_str | | +| main.rs:106:9:106:29 | print_str(...) | main.rs:106:9:106:29 | After print_str(...) | | +| main.rs:106:9:106:30 | After ExprStmt | main.rs:107:9:107:15 | Before MacroExpr | | +| main.rs:106:9:106:30 | ExprStmt | main.rs:106:9:106:29 | Before print_str(...) | | | main.rs:106:19:106:19 | x | main.rs:106:19:106:28 | x.unwrap() | | -| main.rs:106:19:106:28 | x.unwrap() | main.rs:106:9:106:29 | print_str(...) | | +| main.rs:106:19:106:28 | After x.unwrap() | main.rs:106:9:106:29 | print_str(...) | | +| main.rs:106:19:106:28 | Before x.unwrap() | main.rs:106:19:106:19 | x | | +| main.rs:106:19:106:28 | x.unwrap() | main.rs:106:19:106:28 | After x.unwrap() | | | main.rs:107:9:107:13 | "not yet implemented" | main.rs:107:9:107:13 | ...::panic(...) | | | main.rs:107:9:107:13 | ...::panic | main.rs:107:9:107:13 | "not yet implemented" | | -| main.rs:107:9:107:13 | ...::panic(...) | main.rs:107:9:107:13 | { ... } | | -| main.rs:107:9:107:13 | { ... } | main.rs:107:9:107:15 | todo!... | | -| main.rs:107:9:107:15 | MacroExpr | main.rs:103:10:108:5 | { ... } | | -| main.rs:107:9:107:15 | todo!... | main.rs:107:9:107:15 | MacroExpr | | +| main.rs:107:9:107:13 | ...::panic(...) | main.rs:107:9:107:13 | After ...::panic(...) | | +| main.rs:107:9:107:13 | After ...::panic(...) | main.rs:107:9:107:13 | After { ... } | | +| main.rs:107:9:107:13 | After { ... } | main.rs:107:9:107:15 | todo!... | | +| main.rs:107:9:107:13 | Before ...::panic(...) | main.rs:107:9:107:13 | ...::panic | | +| main.rs:107:9:107:13 | { ... } | main.rs:107:9:107:13 | Before ...::panic(...) | | +| main.rs:107:9:107:15 | After MacroExpr | main.rs:103:10:108:5 | After { ... } | | +| main.rs:107:9:107:15 | After todo!... | main.rs:107:9:107:15 | MacroExpr | | +| main.rs:107:9:107:15 | Before MacroExpr | main.rs:107:9:107:15 | Before todo!... | | +| main.rs:107:9:107:15 | Before todo!... | main.rs:107:9:107:13 | { ... } | | +| main.rs:107:9:107:15 | MacroExpr | main.rs:107:9:107:15 | After MacroExpr | | +| main.rs:107:9:107:15 | todo!... | main.rs:107:9:107:15 | After todo!... | | | 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:99:19:110:1 | { ... } | | -| main.rs:109:5:109:17 | ExprStmt | main.rs:109:5:109:13 | print_str | | +| main.rs:109:5:109:16 | After print_str(...) | main.rs:109:5:109:17 | After ExprStmt | | +| main.rs:109:5:109:16 | Before print_str(...) | main.rs:109:5:109:13 | print_str | | +| main.rs:109:5:109:16 | print_str(...) | main.rs:109:5:109:16 | After print_str(...) | | +| main.rs:109:5:109:17 | After ExprStmt | main.rs:99:19:110:1 | After { ... } | | +| main.rs:109:5:109:17 | ExprStmt | main.rs:109:5:109:16 | Before 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: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:41 | let ... = ... | main.rs:113:13:113:16 | Some | | +| main.rs:112:1:119:1 | Entry | main.rs:112:19:119:1 | { ... } | | +| main.rs:112:1:119:1 | Normal Exit | main.rs:112:1:119:1 | Exit | | +| main.rs:112:19:119:1 | After { ... } | main.rs:112:1:119:1 | Normal Exit | | +| main.rs:112:19:119:1 | { ... } | main.rs:113:5:113:41 | let ... = ... | | +| main.rs:113:5:113:41 | After let ... = ... | main.rs:115:5:118:5 | while ... { ... } | | +| main.rs:113:5:113:41 | let ... = ... | main.rs:113:13:113:40 | Before Some(...) | | +| main.rs:113:9:113:9 | After s [match] | main.rs:113:5:113:41 | After let ... = ... | | +| main.rs:113:9:113:9 | Before s | main.rs:113:9:113:9 | s | | +| main.rs:113:9:113:9 | s | main.rs:113:9:113:9 | After s [match] | match | | 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:13:113:16 | Some | main.rs:113:18:113:39 | Before ...::from(...) | | +| main.rs:113:13:113:40 | After Some(...) | main.rs:113:9:113:9 | Before s | | +| main.rs:113:13:113:40 | Before Some(...) | main.rs:113:13:113:16 | Some | | +| main.rs:113:13:113:40 | Some(...) | main.rs:113:13:113:40 | After Some(...) | | | 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:18:113:39 | ...::from(...) | main.rs:113:18:113:39 | After ...::from(...) | | +| main.rs:113:18:113:39 | After ...::from(...) | main.rs:113:13:113:40 | Some(...) | | +| main.rs:113:18:113:39 | Before ...::from(...) | main.rs:113:18:113:29 | ...::from | | | 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: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:5:118:5 | After while ... { ... } | main.rs:112:19:119:1 | After { ... } | | +| main.rs:115:5:118:5 | [LoopHeader] while ... { ... } | main.rs:115:11:116:11 | let ... = s | | +| main.rs:115:5:118:5 | while ... { ... } | main.rs:115:5:118:5 | [LoopHeader] while ... { ... } | | +| main.rs:115:11:116:11 | After let ... = s [false] | main.rs:115:5:118:5 | After while ... { ... } | | +| main.rs:115:11:116:11 | After let ... = s [true] | main.rs:116:13:118:5 | { ... } | | +| main.rs:115:11:116:11 | let ... = s | main.rs:116:11:116:11 | s | | +| main.rs:115:15:115:25 | After Some(...) [match] | main.rs:115:11:116:11 | After let ... = s [true] | true | +| main.rs:115:15:115:25 | After Some(...) [no-match] | main.rs:115:11:116:11 | After let ... = s [false] | false | +| main.rs:115:15:115:25 | Some(...) | main.rs:115:15:115:25 | After Some(...) [no-match] | no-match | +| main.rs:115:15:115:25 | Some(...) | main.rs:115:15:115:25 | [pattern-start] Some(...) | match | +| main.rs:115:15:115:25 | [pattern-start] Some(...) | main.rs:115:20:115:24 | Before ref s | | +| main.rs:115:20:115:24 | After ref s [match] | main.rs:115:15:115:25 | After Some(...) [match] | match | +| main.rs:115:20:115:24 | Before ref s | main.rs:115:24:115:24 | s | | +| main.rs:115:20:115:24 | ref s | main.rs:115:20:115:24 | After ref s [match] | 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:116:13:118:5 | After { ... } | main.rs:115:5:118:5 | [LoopHeader] while ... { ... } | | +| 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:116:13:118:5 | { ... } | | -| main.rs:117:9:117:21 | ExprStmt | main.rs:117:9:117:17 | print_str | | +| main.rs:117:9:117:20 | After print_str(...) | main.rs:117:9:117:21 | After ExprStmt | | +| main.rs:117:9:117:20 | Before print_str(...) | main.rs:117:9:117:17 | print_str | | +| main.rs:117:9:117:20 | print_str(...) | main.rs:117:9:117:20 | After print_str(...) | | +| main.rs:117:9:117:21 | After ExprStmt | main.rs:116:13:118:5 | After { ... } | | +| main.rs:117:9:117:21 | ExprStmt | main.rs:117:9:117:20 | Before 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:121:1:129:1 | Entry | main.rs:122:19:129:1 | { ... } | | +| main.rs:121:1:129:1 | Normal Exit | main.rs:121:1:129:1 | Exit | | +| main.rs:122:19:129:1 | After { ... } | main.rs:121:1:129:1 | Normal Exit | | +| main.rs:122:19:129:1 | { ... } | main.rs:123:5:128:5 | if ... {...} | | +| main.rs:123:5:128:5 | After if ... {...} | main.rs:122:19:129:1 | After { ... } | | +| main.rs:123:5:128:5 | if ... {...} | main.rs:123:8:125:26 | ... && ... | | +| main.rs:123:8:123:29 | After let ... = ... [false] | main.rs:123:8:125:26 | After ... && ... [false] | false | +| main.rs:123:8:123:29 | After let ... = ... [true] | main.rs:124:12:125:26 | let ... = ... | | +| main.rs:123:8:123:29 | let ... = ... | main.rs:123:22:123:29 | Before Some(...) | | +| main.rs:123:8:125:26 | ... && ... | main.rs:123:8:123:29 | let ... = ... | | +| main.rs:123:8:125:26 | After ... && ... [false] | main.rs:123:5:128:5 | After if ... {...} | | +| main.rs:123:8:125:26 | After ... && ... [true] | main.rs:126:5:128:5 | { ... } | | +| main.rs:123:12:123:18 | After Some(...) [match] | main.rs:123:8:123:29 | After let ... = ... [true] | true | +| main.rs:123:12:123:18 | After Some(...) [no-match] | main.rs:123:8:123:29 | After let ... = ... [false] | false | +| main.rs:123:12:123:18 | Some(...) | main.rs:123:12:123:18 | After Some(...) [no-match] | no-match | +| main.rs:123:12:123:18 | Some(...) | main.rs:123:12:123:18 | [pattern-start] Some(...) | match | +| main.rs:123:12:123:18 | [pattern-start] Some(...) | main.rs:123:17:123:17 | Before x | | +| main.rs:123:17:123:17 | After x [match] | main.rs:123:12:123:18 | After Some(...) [match] | match | +| main.rs:123:17:123:17 | Before x | main.rs:123:17:123:17 | x | | +| main.rs:123:17:123:17 | x | main.rs:123:17:123:17 | After x [match] | 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:22:123:29 | After Some(...) | main.rs:123:12:123:18 | Some(...) | | +| main.rs:123:22:123:29 | Before Some(...) | main.rs:123:22:123:25 | Some | | +| main.rs:123:22:123:29 | Some(...) | main.rs:123:22:123:29 | After 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:12:125:26 | After let ... = ... [false] | main.rs:123:8:125:26 | After ... && ... [false] | false | +| main.rs:124:12:125:26 | After let ... = ... [true] | main.rs:123:8:125:26 | After ... && ... [true] | true | +| main.rs:124:12:125:26 | let ... = ... | main.rs:125:13:125:26 | Before Ok::<...>(...) | | +| main.rs:124:16:124:20 | After Ok(...) [match] | main.rs:124:12:125:26 | After let ... = ... [true] | true | +| main.rs:124:16:124:20 | After Ok(...) [no-match] | main.rs:124:12:125:26 | After let ... = ... [false] | false | +| main.rs:124:16:124:20 | Ok(...) | main.rs:124:16:124:20 | After Ok(...) [no-match] | no-match | +| main.rs:124:16:124:20 | Ok(...) | main.rs:124:16:124:20 | [pattern-start] Ok(...) | match | +| main.rs:124:16:124:20 | [pattern-start] Ok(...) | main.rs:124:19:124:19 | Before x | | +| main.rs:124:19:124:19 | After x [match] | main.rs:124:16:124:20 | After Ok(...) [match] | match | +| main.rs:124:19:124:19 | Before x | main.rs:124:19:124:19 | x | | +| main.rs:124:19:124:19 | x | main.rs:124:19:124:19 | After x [match] | 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:13:125:26 | After Ok::<...>(...) | main.rs:124:16:124:20 | Ok(...) | | +| main.rs:125:13:125:26 | Before Ok::<...>(...) | main.rs:125:13:125:23 | Ok::<...> | | +| main.rs:125:13:125:26 | Ok::<...>(...) | main.rs:125:13:125:26 | After 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:126:5:128:5 | After { ... } | main.rs:123:5:128:5 | After if ... {...} | | +| 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:126:5:128:5 | { ... } | | -| main.rs:127:9:127:21 | ExprStmt | main.rs:127:9:127:17 | print_i64 | | +| main.rs:127:9:127:20 | After print_i64(...) | main.rs:127:9:127:21 | After ExprStmt | | +| main.rs:127:9:127:20 | Before print_i64(...) | main.rs:127:9:127:17 | print_i64 | | +| main.rs:127:9:127:20 | print_i64(...) | main.rs:127:9:127:20 | After print_i64(...) | | +| main.rs:127:9:127:21 | After ExprStmt | main.rs:126:5:128:5 | After { ... } | | +| main.rs:127:9:127:21 | ExprStmt | main.rs:127:9:127:20 | Before 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:131:1:154:1 | Entry | main.rs:132:19:154:1 | { ... } | | +| main.rs:131:1:154:1 | Normal Exit | main.rs:131:1:154:1 | Exit | | +| main.rs:132:19:154:1 | After { ... } | main.rs:131:1:154:1 | Normal Exit | | +| main.rs:132:19:154:1 | { ... } | main.rs:133:5:133:14 | let ... = 1 | | +| main.rs:133:5:133:14 | After let ... = 1 | main.rs:134:5:153:5 | if ... {...} else {...} | | | main.rs:133:5:133:14 | let ... = 1 | main.rs:133:13:133:13 | 1 | | +| main.rs:133:9:133:9 | After x [match] | main.rs:133:5:133:14 | After let ... = 1 | | +| main.rs:133:9:133:9 | Before x | main.rs:133:9:133:9 | x | | +| main.rs:133:9:133:9 | x | main.rs:133:9:133:9 | After x [match] | match | | 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:133:13:133:13 | 1 | main.rs:133:9:133:9 | Before x | | +| main.rs:134:5:153:5 | After if ... {...} else {...} | main.rs:132:19:154:1 | After { ... } | | +| main.rs:134:5:153:5 | if ... {...} else {...} | main.rs:134:8:147:13 | ... && ... | | +| main.rs:134:8:135:13 | After let ... = ... [true] | main.rs:136:8:137:13 | let ... = ... | | +| main.rs:134:8:135:13 | let ... = ... | main.rs:135:9:135:13 | Before ... + ... | | +| main.rs:134:8:137:13 | ... && ... | main.rs:134:8:135:13 | let ... = ... | | +| main.rs:134:8:137:13 | After ... && ... [true] | main.rs:138:8:139:13 | let ... = ... | | +| main.rs:134:8:139:13 | ... && ... | main.rs:134:8:137:13 | ... && ... | | +| main.rs:134:8:139:13 | After ... && ... [true] | main.rs:140:8:141:13 | let ... = ... | | +| main.rs:134:8:141:13 | ... && ... | main.rs:134:8:139:13 | ... && ... | | +| main.rs:134:8:141:13 | After ... && ... [true] | main.rs:142:8:143:13 | let ... = ... | | +| main.rs:134:8:143:13 | ... && ... | main.rs:134:8:141:13 | ... && ... | | +| main.rs:134:8:143:13 | After ... && ... [true] | main.rs:144:8:145:13 | let ... = ... | | +| main.rs:134:8:145:13 | ... && ... | main.rs:134:8:143:13 | ... && ... | | +| main.rs:134:8:145:13 | After ... && ... [true] | main.rs:146:8:147:13 | let ... = ... | | +| main.rs:134:8:147:13 | ... && ... | main.rs:134:8:145:13 | ... && ... | | +| main.rs:134:8:147:13 | After ... && ... [true] | main.rs:148:5:150:5 | { ... } | | +| main.rs:134:12:134:12 | After x [match] | main.rs:134:8:135:13 | After let ... = ... [true] | true | +| main.rs:134:12:134:12 | Before x | main.rs:134:12:134:12 | x | | +| main.rs:134:12:134:12 | x | main.rs:134:12:134:12 | After x [match] | 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:9:135:13 | ... + ... | main.rs:135:9:135:13 | After ... + ... | | +| main.rs:135:9:135:13 | After ... + ... | main.rs:134:12:134:12 | Before x | | +| main.rs:135:9:135:13 | Before ... + ... | main.rs:135:9:135:9 | 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:8:137:13 | After let ... = ... [true] | main.rs:134:8:137:13 | After ... && ... [true] | true | +| main.rs:136:8:137:13 | let ... = ... | main.rs:137:9:137:13 | Before ... + ... | | +| main.rs:136:12:136:12 | After x [match] | main.rs:136:8:137:13 | After let ... = ... [true] | true | +| main.rs:136:12:136:12 | Before x | main.rs:136:12:136:12 | x | | +| main.rs:136:12:136:12 | x | main.rs:136:12:136:12 | After x [match] | 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:9:137:13 | ... + ... | main.rs:137:9:137:13 | After ... + ... | | +| main.rs:137:9:137:13 | After ... + ... | main.rs:136:12:136:12 | Before x | | +| main.rs:137:9:137:13 | Before ... + ... | main.rs:137:9:137:9 | 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:8:139:13 | After let ... = ... [true] | main.rs:134:8:139:13 | After ... && ... [true] | true | +| main.rs:138:8:139:13 | let ... = ... | main.rs:139:9:139:13 | Before ... + ... | | +| main.rs:138:12:138:12 | After x [match] | main.rs:138:8:139:13 | After let ... = ... [true] | true | +| main.rs:138:12:138:12 | Before x | main.rs:138:12:138:12 | x | | +| main.rs:138:12:138:12 | x | main.rs:138:12:138:12 | After x [match] | 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:9:139:13 | ... + ... | main.rs:139:9:139:13 | After ... + ... | | +| main.rs:139:9:139:13 | After ... + ... | main.rs:138:12:138:12 | Before x | | +| main.rs:139:9:139:13 | Before ... + ... | main.rs:139:9:139:9 | 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:8:141:13 | After let ... = ... [true] | main.rs:134:8:141:13 | After ... && ... [true] | true | +| main.rs:140:8:141:13 | let ... = ... | main.rs:141:9:141:13 | Before ... + ... | | +| main.rs:140:12:140:12 | After x [match] | main.rs:140:8:141:13 | After let ... = ... [true] | true | +| main.rs:140:12:140:12 | Before x | main.rs:140:12:140:12 | x | | +| main.rs:140:12:140:12 | x | main.rs:140:12:140:12 | After x [match] | 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:9:141:13 | ... + ... | main.rs:141:9:141:13 | After ... + ... | | +| main.rs:141:9:141:13 | After ... + ... | main.rs:140:12:140:12 | Before x | | +| main.rs:141:9:141:13 | Before ... + ... | main.rs:141:9:141:9 | 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:8:143:13 | After let ... = ... [true] | main.rs:134:8:143:13 | After ... && ... [true] | true | +| main.rs:142:8:143:13 | let ... = ... | main.rs:143:9:143:13 | Before ... + ... | | +| main.rs:142:12:142:12 | After x [match] | main.rs:142:8:143:13 | After let ... = ... [true] | true | +| main.rs:142:12:142:12 | Before x | main.rs:142:12:142:12 | x | | +| main.rs:142:12:142:12 | x | main.rs:142:12:142:12 | After x [match] | 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:9:143:13 | ... + ... | main.rs:143:9:143:13 | After ... + ... | | +| main.rs:143:9:143:13 | After ... + ... | main.rs:142:12:142:12 | Before x | | +| main.rs:143:9:143:13 | Before ... + ... | main.rs:143:9:143:9 | 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:8:145:13 | After let ... = ... [true] | main.rs:134:8:145:13 | After ... && ... [true] | true | +| main.rs:144:8:145:13 | let ... = ... | main.rs:145:9:145:13 | Before ... + ... | | +| main.rs:144:12:144:12 | After x [match] | main.rs:144:8:145:13 | After let ... = ... [true] | true | +| main.rs:144:12:144:12 | Before x | main.rs:144:12:144:12 | x | | +| main.rs:144:12:144:12 | x | main.rs:144:12:144:12 | After x [match] | 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:9:145:13 | ... + ... | main.rs:145:9:145:13 | After ... + ... | | +| main.rs:145:9:145:13 | After ... + ... | main.rs:144:12:144:12 | Before x | | +| main.rs:145:9:145:13 | Before ... + ... | main.rs:145:9:145:9 | 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:8:147:13 | After let ... = ... [true] | main.rs:134:8:147:13 | After ... && ... [true] | true | +| main.rs:146:8:147:13 | let ... = ... | main.rs:147:9:147:13 | Before ... + ... | | +| main.rs:146:12:146:12 | After x [match] | main.rs:146:8:147:13 | After let ... = ... [true] | true | +| main.rs:146:12:146:12 | Before x | main.rs:146:12:146:12 | x | | +| main.rs:146:12:146:12 | x | main.rs:146:12:146:12 | After x [match] | 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:9:147:13 | ... + ... | main.rs:147:9:147:13 | After ... + ... | | +| main.rs:147:9:147:13 | After ... + ... | main.rs:146:12:146:12 | Before x | | +| main.rs:147:9:147:13 | Before ... + ... | main.rs:147:9:147:9 | 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:148:5:150:5 | After { ... } | main.rs:134:5:153:5 | After if ... {...} else {...} | | +| 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:148:5:150:5 | { ... } | | -| main.rs:149:9:149:21 | ExprStmt | main.rs:149:9:149:17 | print_i64 | | +| main.rs:149:9:149:20 | After print_i64(...) | main.rs:149:9:149:21 | After ExprStmt | | +| main.rs:149:9:149:20 | Before print_i64(...) | main.rs:149:9:149:17 | print_i64 | | +| main.rs:149:9:149:20 | print_i64(...) | main.rs:149:9:149:20 | After print_i64(...) | | +| main.rs:149:9:149:21 | After ExprStmt | main.rs:148:5:150:5 | After { ... } | | +| main.rs:149:9:149:21 | ExprStmt | main.rs:149:9:149:20 | Before 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:156:1:171:1 | Entry | main.rs:156:21:171:1 | { ... } | | +| main.rs:156:1:171:1 | Normal Exit | main.rs:156:1:171:1 | Exit | | +| main.rs:156:21:171:1 | After { ... } | main.rs:156:1:171:1 | Normal Exit | | +| main.rs:156:21:171:1 | { ... } | main.rs:157:5:157:21 | let ... = ... | | +| main.rs:157:5:157:21 | After let ... = ... | main.rs:158:5:158:16 | let ... = 10 | | +| main.rs:157:5:157:21 | let ... = ... | main.rs:157:14:157:20 | Before Some(...) | | +| main.rs:157:9:157:10 | After x6 [match] | main.rs:157:5:157:21 | After let ... = ... | | +| main.rs:157:9:157:10 | Before x6 | main.rs:157:9:157:10 | x6 | | +| main.rs:157:9:157:10 | x6 | main.rs:157:9:157:10 | After x6 [match] | match | | 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:14:157:20 | After Some(...) | main.rs:157:9:157:10 | Before x6 | | +| main.rs:157:14:157:20 | Before Some(...) | main.rs:157:14:157:17 | Some | | +| main.rs:157:14:157:20 | Some(...) | main.rs:157:14:157:20 | After Some(...) | | | main.rs:157:19:157:19 | 5 | main.rs:157:14:157:20 | Some(...) | | +| main.rs:158:5:158:16 | After let ... = 10 | main.rs:160:5:168:5 | ExprStmt | | | main.rs:158:5:158:16 | let ... = 10 | main.rs:158:14:158:15 | 10 | | +| main.rs:158:9:158:10 | After y1 [match] | main.rs:158:5:158:16 | After let ... = 10 | | +| main.rs:158:9:158:10 | Before y1 | main.rs:158:9:158:10 | y1 | | +| main.rs:158:9:158:10 | y1 | main.rs:158:9:158:10 | After y1 [match] | match | | 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:158:14:158:15 | 10 | main.rs:158:9:158:10 | Before y1 | | +| main.rs:160:5:168:5 | After ExprStmt | main.rs:170:5:170:18 | ExprStmt | | +| main.rs:160:5:168:5 | After match x6 { ... } | main.rs:160:5:168:5 | After ExprStmt | | +| main.rs:160:5:168:5 | ExprStmt | main.rs:160:5:168:5 | match x6 { ... } | | +| main.rs:160:5:168:5 | match x6 { ... } | main.rs:160:11:160:12 | x6 | | | 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:9:161:16 | After Some(...) [match] | main.rs:161:21:161:39 | Before print_str(...) | | +| main.rs:161:9:161:16 | After Some(...) [no-match] | main.rs:162:9:162:16 | Some(...) | | +| main.rs:161:9:161:16 | Some(...) | main.rs:161:9:161:16 | After Some(...) [no-match] | no-match | +| main.rs:161:9:161:16 | Some(...) | main.rs:161:9:161:16 | [pattern-start] Some(...) | match | +| main.rs:161:9:161:16 | [pattern-start] Some(...) | main.rs:161:14:161:15 | Before 50 | | | 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:14:161:15 | 50 | main.rs:161:14:161:15 | After 50 [match] | match | +| main.rs:161:14:161:15 | 50 | main.rs:161:14:161:15 | After 50 [no-match] | no-match | +| main.rs:161:14:161:15 | After 50 [match] | main.rs:161:9:161:16 | After Some(...) [match] | match | +| main.rs:161:14:161:15 | After 50 [no-match] | main.rs:161:9:161:16 | After Some(...) [no-match] | no-match | +| main.rs:161:14:161:15 | Before 50 | main.rs:161:14:161:15 | 50 | | | 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:21:161:39 | After print_str(...) | main.rs:160:5:168:5 | After match x6 { ... } | | +| main.rs:161:21:161:39 | Before print_str(...) | main.rs:161:21:161:29 | print_str | | +| main.rs:161:21:161:39 | print_str(...) | main.rs:161:21:161:39 | After print_str(...) | | | 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:9:162:16 | After Some(...) [match] | main.rs:164:9:166:9 | { ... } | | +| main.rs:162:9:162:16 | After Some(...) [no-match] | main.rs:167:9:167:12 | Before None | | +| main.rs:162:9:162:16 | Some(...) | main.rs:162:9:162:16 | After Some(...) [no-match] | no-match | +| main.rs:162:9:162:16 | Some(...) | main.rs:162:9:162:16 | [pattern-start] Some(...) | match | +| main.rs:162:9:162:16 | [pattern-start] Some(...) | main.rs:162:14:162:15 | Before y1 | | +| main.rs:162:14:162:15 | After y1 [match] | main.rs:162:9:162:16 | After Some(...) [match] | match | +| main.rs:162:14:162:15 | Before y1 | main.rs:162:14:162:15 | y1 | | +| main.rs:162:14:162:15 | y1 | main.rs:162:14:162:15 | After y1 [match] | 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:164:9:166:9 | After { ... } | main.rs:160:5:168:5 | After match x6 { ... } | | +| main.rs:164:9:166:9 | { ... } | main.rs:165:13:165:25 | Before print_i64(...) | | | 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:13:165:25 | After print_i64(...) | main.rs:164:9:166:9 | After { ... } | | +| main.rs:165:13:165:25 | Before print_i64(...) | main.rs:165:13:165:21 | print_i64 | | +| main.rs:165:13:165:25 | print_i64(...) | main.rs:165:13:165:25 | After print_i64(...) | | | main.rs:165:23:165:24 | y1 | main.rs:165:13:165:25 | print_i64(...) | | +| main.rs:167:9:167:12 | After None [match] | main.rs:167:17:167:33 | Before print_str(...) | | +| main.rs:167:9:167:12 | Before None | main.rs:167:9:167:12 | None | | +| main.rs:167:9:167:12 | None | main.rs:167:9:167:12 | After None [match] | match | | 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:17:167:33 | After print_str(...) | main.rs:160:5:168:5 | After match x6 { ... } | | +| main.rs:167:17:167:33 | Before print_str(...) | main.rs:167:17:167:25 | print_str | | +| main.rs:167:17:167:33 | print_str(...) | main.rs:167:17:167:33 | After print_str(...) | | | 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:5:170:17 | After print_i64(...) | main.rs:170:5:170:18 | After ExprStmt | | +| main.rs:170:5:170:17 | Before print_i64(...) | main.rs:170:5:170:13 | print_i64 | | +| main.rs:170:5:170:17 | print_i64(...) | main.rs:170:5:170:17 | After print_i64(...) | | +| main.rs:170:5:170:18 | After ExprStmt | main.rs:156:21:171:1 | After { ... } | | +| main.rs:170:5:170:18 | ExprStmt | main.rs:170:5:170:17 | Before 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:173:1:202:1 | Entry | main.rs:173:21:202:1 | { ... } | | +| main.rs:173:1:202:1 | Normal Exit | main.rs:173:1:202:1 | Exit | | +| main.rs:173:21:202:1 | After { ... } | main.rs:173:1:202:1 | Normal Exit | | +| main.rs:173:21:202:1 | { ... } | main.rs:174:5:174:36 | let ... = ... | | +| main.rs:174:5:174:36 | After let ... = ... | main.rs:176:5:189:5 | ExprStmt | | +| main.rs:174:5:174:36 | let ... = ... | main.rs:174:19:174:35 | Before TupleExpr | | +| main.rs:174:9:174:15 | After numbers [match] | main.rs:174:5:174:36 | After let ... = ... | | +| main.rs:174:9:174:15 | Before numbers | main.rs:174:9:174:15 | numbers | | +| main.rs:174:9:174:15 | numbers | main.rs:174:9:174:15 | After numbers [match] | match | | 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:19:174:35 | After TupleExpr | main.rs:174:9:174:15 | Before numbers | | +| main.rs:174:19:174:35 | Before TupleExpr | main.rs:174:20:174:20 | 2 | | +| main.rs:174:19:174:35 | TupleExpr | main.rs:174:19:174:35 | After TupleExpr | | | 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:5:189:5 | After ExprStmt | main.rs:191:5:201:5 | match numbers { ... } | | +| main.rs:176:5:189:5 | After match numbers { ... } | main.rs:176:5:189:5 | After ExprStmt | | +| main.rs:176:5:189:5 | ExprStmt | main.rs:176:5:189:5 | match numbers { ... } | | +| main.rs:176:5:189:5 | match numbers { ... } | main.rs:176:11:176: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:178:9:184:9 | After TuplePat [match] | main.rs:184:14:188:9 | { ... } | | +| main.rs:178:9:184:9 | TuplePat | main.rs:178:9:184:9 | [pattern-start] TuplePat | match | +| main.rs:178:9:184:9 | [pattern-start] TuplePat | main.rs:179:13:179:17 | Before first | | +| main.rs:179:13:179:17 | After first [match] | main.rs:180:13:180:13 | _ | | +| main.rs:179:13:179:17 | Before first | main.rs:179:13:179:17 | first | | +| main.rs:179:13:179:17 | first | main.rs:179:13:179:17 | After first [match] | 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:180:13:180:13 | After _ [match] | main.rs:181:13:181:17 | Before third | | +| main.rs:180:13:180:13 | _ | main.rs:180:13:180:13 | After _ [match] | match | +| main.rs:181:13:181:17 | After third [match] | main.rs:182:13:182:13 | _ | | +| main.rs:181:13:181:17 | Before third | main.rs:181:13:181:17 | third | | +| main.rs:181:13:181:17 | third | main.rs:181:13:181:17 | After third [match] | 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:182:13:182:13 | After _ [match] | main.rs:183:13:183:17 | Before fifth | | +| main.rs:182:13:182:13 | _ | main.rs:182:13:182:13 | After _ [match] | match | +| main.rs:183:13:183:17 | After fifth [match] | main.rs:178:9:184:9 | After TuplePat [match] | match | +| main.rs:183:13:183:17 | Before fifth | main.rs:183:13:183:17 | fifth | | +| main.rs:183:13:183:17 | fifth | main.rs:183:13:183:17 | After fifth [match] | 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:184:14:188:9 | After { ... } | main.rs:176:5:189:5 | After match numbers { ... } | | +| main.rs:184:14:188:9 | { ... } | 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:29 | ExprStmt | | -| main.rs:185:13:185:29 | ExprStmt | main.rs:185:13:185:21 | print_i64 | | +| main.rs:185:13:185:28 | After print_i64(...) | main.rs:185:13:185:29 | After ExprStmt | | +| main.rs:185:13:185:28 | Before print_i64(...) | main.rs:185:13:185:21 | print_i64 | | +| main.rs:185:13:185:28 | print_i64(...) | main.rs:185:13:185:28 | After print_i64(...) | | +| main.rs:185:13:185:29 | After ExprStmt | main.rs:186:13:186:29 | ExprStmt | | +| main.rs:185:13:185:29 | ExprStmt | main.rs:185:13:185:28 | Before 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:13:186:28 | After print_i64(...) | main.rs:186:13:186:29 | After ExprStmt | | +| main.rs:186:13:186:28 | Before print_i64(...) | main.rs:186:13:186:21 | print_i64 | | +| main.rs:186:13:186:28 | print_i64(...) | main.rs:186:13:186:28 | After print_i64(...) | | +| main.rs:186:13:186:29 | After ExprStmt | main.rs:187:13:187:29 | ExprStmt | | +| main.rs:186:13:186:29 | ExprStmt | main.rs:186:13:186:28 | Before 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:13:187:28 | After print_i64(...) | main.rs:187:13:187:29 | After ExprStmt | | +| main.rs:187:13:187:28 | Before print_i64(...) | main.rs:187:13:187:21 | print_i64 | | +| main.rs:187:13:187:28 | print_i64(...) | main.rs:187:13:187:28 | After print_i64(...) | | +| main.rs:187:13:187:29 | After ExprStmt | main.rs:184:14:188:9 | After { ... } | | +| main.rs:187:13:187:29 | ExprStmt | main.rs:187:13:187:28 | Before 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:5:201:5 | After match numbers { ... } | main.rs:173:21:202:1 | After { ... } | | +| main.rs:191:5:201:5 | match numbers { ... } | main.rs:191:11:191:17 | numbers | | | 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:193:9:197:9 | After TuplePat [match] | main.rs:197:14:200:9 | { ... } | | +| main.rs:193:9:197:9 | TuplePat | main.rs:193:9:197:9 | [pattern-start] TuplePat | match | +| main.rs:193:9:197:9 | [pattern-start] TuplePat | main.rs:194:13:194:17 | Before first | | +| main.rs:194:13:194:17 | After first [match] | main.rs:195:13:195:14 | .. | | +| main.rs:194:13:194:17 | Before first | main.rs:194:13:194:17 | first | | +| main.rs:194:13:194:17 | first | main.rs:194:13:194:17 | After first [match] | 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:195:13:195:14 | .. | main.rs:195:13:195:14 | After .. [match] | match | +| main.rs:195:13:195:14 | After .. [match] | main.rs:196:13:196:16 | Before last | | +| main.rs:196:13:196:16 | After last [match] | main.rs:193:9:197:9 | After TuplePat [match] | match | +| main.rs:196:13:196:16 | Before last | main.rs:196:13:196:16 | last | | +| main.rs:196:13:196:16 | last | main.rs:196:13:196:16 | After last [match] | 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:197:14:200:9 | After { ... } | main.rs:191:5:201:5 | After match numbers { ... } | | +| main.rs:197:14:200:9 | { ... } | 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:28 | ExprStmt | | -| main.rs:198:13:198:29 | ExprStmt | main.rs:198:13:198:21 | print_i64 | | +| main.rs:198:13:198:28 | After print_i64(...) | main.rs:198:13:198:29 | After ExprStmt | | +| main.rs:198:13:198:28 | Before print_i64(...) | main.rs:198:13:198:21 | print_i64 | | +| main.rs:198:13:198:28 | print_i64(...) | main.rs:198:13:198:28 | After print_i64(...) | | +| main.rs:198:13:198:29 | After ExprStmt | main.rs:199:13:199:28 | ExprStmt | | +| main.rs:198:13:198:29 | ExprStmt | main.rs:198:13:198:28 | Before 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:13:199:27 | After print_i64(...) | main.rs:199:13:199:28 | After ExprStmt | | +| main.rs:199:13:199:27 | Before print_i64(...) | main.rs:199:13:199:21 | print_i64 | | +| main.rs:199:13:199:27 | print_i64(...) | main.rs:199:13:199:27 | After print_i64(...) | | +| main.rs:199:13:199:28 | After ExprStmt | main.rs:197:14:200:9 | After { ... } | | +| main.rs:199:13:199:28 | ExprStmt | main.rs:199:13:199:27 | Before 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:204:1:212:1 | Entry | main.rs:204:21:212:1 | { ... } | | +| main.rs:204:1:212:1 | Normal Exit | main.rs:204:1:212:1 | Exit | | +| main.rs:204:21:212:1 | After { ... } | main.rs:204:1:212:1 | Normal Exit | | +| main.rs:204:21:212:1 | { ... } | main.rs:205:5:205:38 | let ... = ... | | +| main.rs:205:5:205:38 | After let ... = ... | main.rs:207:5:211:5 | match p2 { ... } | | +| main.rs:205:5:205:38 | let ... = ... | main.rs:205:14:205:37 | Before Point {...} | | +| main.rs:205:9:205:10 | After p2 [match] | main.rs:205:5:205:38 | After let ... = ... | | +| main.rs:205:9:205:10 | Before p2 | main.rs:205:9:205:10 | p2 | | +| main.rs:205:9:205:10 | p2 | main.rs:205:9:205:10 | After p2 [match] | match | | 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:14:205:37 | After Point {...} | main.rs:205:9:205:10 | Before p2 | | +| main.rs:205:14:205:37 | Before Point {...} | main.rs:205:25:205:27 | "x" | | +| main.rs:205:14:205:37 | Point {...} | main.rs:205:14:205:37 | After Point {...} | | | 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:5:211:5 | After match p2 { ... } | main.rs:204:21:212:1 | After { ... } | | +| main.rs:207:5:211:5 | match p2 { ... } | main.rs:207:11:207:12 | p2 | | | 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:208:9:210:9 | After Point {...} [match] | main.rs:210:14:210:26 | Before print_str(...) | | +| main.rs:208:9:210:9 | Point {...} | main.rs:208:9:210:9 | [pattern-start] Point {...} | match | +| main.rs:208:9:210:9 | [pattern-start] Point {...} | main.rs:209:16:209:17 | Before x7 | | +| main.rs:209:16:209:17 | After x7 [match] | main.rs:209:20:209:21 | .. | | +| main.rs:209:16:209:17 | Before x7 | main.rs:209:16:209:17 | x7 | | +| main.rs:209:16:209:17 | x7 | main.rs:209:16:209:17 | After x7 [match] | 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:209:20:209:21 | .. | main.rs:209:20:209:21 | After .. [match] | match | +| main.rs:209:20:209:21 | After .. [match] | main.rs:208:9:210:9 | After Point {...} [match] | 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:14:210:26 | After print_str(...) | main.rs:207:5:211:5 | After match p2 { ... } | | +| main.rs:210:14:210:26 | Before print_str(...) | main.rs:210:14:210:22 | print_str | | +| main.rs:210:14:210:26 | print_str(...) | main.rs:210:14:210:26 | After print_str(...) | | | 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:218:1:235:1 | Entry | main.rs:218:21:235:1 | { ... } | | +| main.rs:218:1:235:1 | Normal Exit | main.rs:218:1:235:1 | Exit | | +| main.rs:218:21:235:1 | After { ... } | main.rs:218:1:235:1 | Normal Exit | | +| main.rs:218:21:235:1 | { ... } | main.rs:219:5:219:39 | let ... = ... | | +| main.rs:219:5:219:39 | After let ... = ... | main.rs:221:5:234:5 | match msg { ... } | | +| main.rs:219:5:219:39 | let ... = ... | main.rs:219:15:219:38 | Before ...::Hello {...} | | +| main.rs:219:9:219:11 | After msg [match] | main.rs:219:5:219:39 | After let ... = ... | | +| main.rs:219:9:219:11 | Before msg | main.rs:219:9:219:11 | msg | | +| main.rs:219:9:219:11 | msg | main.rs:219:9:219:11 | After msg [match] | match | | 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:15:219:38 | ...::Hello {...} | main.rs:219:15:219:38 | After ...::Hello {...} | | +| main.rs:219:15:219:38 | After ...::Hello {...} | main.rs:219:9:219:11 | Before msg | | +| main.rs:219:15:219:38 | Before ...::Hello {...} | main.rs:219:36:219:36 | 0 | | | 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:5:234:5 | After match msg { ... } | main.rs:218:21:235:1 | After { ... } | | +| main.rs:221:5:234:5 | match msg { ... } | main.rs:221:11:221:13 | msg | | | 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:223:9:225:9 | ...::Hello {...} | main.rs:223:9:225:9 | After ...::Hello {...} [no-match] | no-match | +| main.rs:223:9:225:9 | ...::Hello {...} | main.rs:223:9:225:9 | [pattern-start] ...::Hello {...} | match | +| main.rs:223:9:225:9 | After ...::Hello {...} [match] | main.rs:225:14:225:35 | Before print_i64(...) | | +| main.rs:223:9:225:9 | After ...::Hello {...} [no-match] | main.rs:226:9:226:38 | ...::Hello {...} | | +| main.rs:223:9:225:9 | [pattern-start] ...::Hello {...} | main.rs:224:17:224:35 | Before id_variable @ ... | | | 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:17:224:35 | After id_variable @ ... [match] | main.rs:223:9:225:9 | After ...::Hello {...} [match] | match | +| main.rs:224:17:224:35 | After id_variable @ ... [no-match] | main.rs:223:9:225:9 | After ...::Hello {...} [no-match] | no-match | +| main.rs:224:17:224:35 | Before id_variable @ ... | main.rs:224:31:224:35 | RangePat | | +| main.rs:224:17:224:35 | id_variable @ ... | main.rs:224:17:224:35 | After id_variable @ ... [match] | 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:31:224:31 | 3 | main.rs:224:31:224:31 | After 3 [match] | match | +| main.rs:224:31:224:31 | 3 | main.rs:224:31:224:31 | After 3 [no-match] | no-match | +| main.rs:224:31:224:31 | After 3 [match] | main.rs:224:35:224:35 | Before 7 | | +| main.rs:224:31:224:31 | After 3 [no-match] | main.rs:224:31:224:35 | After RangePat [no-match] | no-match | +| main.rs:224:31:224:31 | Before 3 | main.rs:224:31:224:31 | 3 | | +| main.rs:224:31:224:35 | After RangePat [match] | main.rs:224:17:224:27 | id_variable | | +| main.rs:224:31:224:35 | After RangePat [no-match] | main.rs:224:17:224:35 | After id_variable @ ... [no-match] | no-match | +| main.rs:224:31:224:35 | RangePat | main.rs:224:31:224:35 | [pattern-start] RangePat | match | +| main.rs:224:31:224:35 | [pattern-start] RangePat | main.rs:224:31:224:31 | Before 3 | | | 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:224:35:224:35 | 7 | main.rs:224:35:224:35 | After 7 [match] | match | +| main.rs:224:35:224:35 | 7 | main.rs:224:35:224:35 | After 7 [no-match] | no-match | +| main.rs:224:35:224:35 | After 7 [match] | main.rs:224:31:224:35 | After RangePat [match] | match | +| main.rs:224:35:224:35 | After 7 [no-match] | main.rs:224:31:224:35 | After RangePat [no-match] | no-match | +| main.rs:224:35:224:35 | Before 7 | main.rs:224:35:224:35 | 7 | | | 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:14:225:35 | After print_i64(...) | main.rs:221:5:234:5 | After match msg { ... } | | +| main.rs:225:14:225:35 | Before print_i64(...) | main.rs:225:14:225:22 | print_i64 | | +| main.rs:225:14:225:35 | print_i64(...) | main.rs:225:14:225:35 | After print_i64(...) | | | 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:9:226:38 | ...::Hello {...} | main.rs:226:9:226:38 | After ...::Hello {...} [no-match] | no-match | +| main.rs:226:9:226:38 | ...::Hello {...} | main.rs:226:9:226:38 | [pattern-start] ...::Hello {...} | match | +| main.rs:226:9:226:38 | After ...::Hello {...} [match] | main.rs:226:43:228:9 | { ... } | | +| main.rs:226:9:226:38 | After ...::Hello {...} [no-match] | main.rs:229:9:229:29 | ...::Hello {...} | | +| main.rs:226:9:226:38 | [pattern-start] ...::Hello {...} | main.rs:226:30:226:36 | RangePat | | | 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:30:226:31 | 10 | main.rs:226:30:226:31 | After 10 [match] | match | +| main.rs:226:30:226:31 | 10 | main.rs:226:30:226:31 | After 10 [no-match] | no-match | +| main.rs:226:30:226:31 | After 10 [match] | main.rs:226:35:226:36 | Before 12 | | +| main.rs:226:30:226:31 | After 10 [no-match] | main.rs:226:30:226:36 | After RangePat [no-match] | no-match | +| main.rs:226:30:226:31 | Before 10 | main.rs:226:30:226:31 | 10 | | +| main.rs:226:30:226:36 | After RangePat [match] | main.rs:226:9:226:38 | After ...::Hello {...} [match] | match | +| main.rs:226:30:226:36 | After RangePat [no-match] | main.rs:226:9:226:38 | After ...::Hello {...} [no-match] | no-match | +| main.rs:226:30:226:36 | RangePat | main.rs:226:30:226:36 | [pattern-start] RangePat | match | +| main.rs:226:30:226:36 | [pattern-start] RangePat | main.rs:226:30:226:31 | Before 10 | | | 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:226:35:226:36 | 12 | main.rs:226:35:226:36 | After 12 [match] | match | +| main.rs:226:35:226:36 | 12 | main.rs:226:35:226:36 | After 12 [no-match] | no-match | +| main.rs:226:35:226:36 | After 12 [match] | main.rs:226:30:226:36 | After RangePat [match] | match | +| main.rs:226:35:226:36 | After 12 [no-match] | main.rs:226:30:226:36 | After RangePat [no-match] | no-match | +| main.rs:226:35:226:36 | Before 12 | main.rs:226:35:226:36 | 12 | | +| main.rs:226:43:228:9 | After { ... } | main.rs:221:5:234:5 | After match msg { ... } | | +| main.rs:226:43:228:9 | { ... } | main.rs:227:13:227:52 | Before MacroExpr | | +| main.rs:227:13:227:20 | ...::_print | main.rs:227:22:227:51 | Before MacroExpr | | +| main.rs:227:13:227:52 | After MacroExpr | main.rs:226:43:228:9 | After { ... } | | +| main.rs:227:13:227:52 | After println!... | main.rs:227:13:227:52 | MacroExpr | | +| main.rs:227:13:227:52 | Before MacroExpr | main.rs:227:13:227:52 | Before println!... | | +| main.rs:227:13:227:52 | Before println!... | main.rs:227:22:227:51 | { ... } | | +| main.rs:227:13:227:52 | MacroExpr | main.rs:227:13:227:52 | After MacroExpr | | +| main.rs:227:13:227:52 | println!... | main.rs:227:13:227:52 | After println!... | | | 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 | ...::_print(...) | main.rs:227:22:227:51 | After ...::_print(...) | | +| main.rs:227:22:227:51 | ...::format_args_nl!... | main.rs:227:22:227:51 | After ...::format_args_nl!... | | +| main.rs:227:22:227:51 | After ...::_print(...) | main.rs:227:22:227:51 | After ExprStmt | | +| main.rs:227:22:227:51 | After ...::format_args_nl!... | main.rs:227:22:227:51 | MacroExpr | | +| main.rs:227:22:227:51 | After ExprStmt | main.rs:227:22:227:51 | After { ... } | | +| main.rs:227:22:227:51 | After FormatArgsExpr | main.rs:227:22:227:51 | ...::format_args_nl!... | | +| main.rs:227:22:227:51 | After MacroExpr | main.rs:227:22:227:51 | ...::_print(...) | | +| main.rs:227:22:227:51 | After { ... } | main.rs:227:13:227:52 | println!... | | +| main.rs:227:22:227:51 | After { ... } | main.rs:227:22:227:51 | After { ... } | | +| main.rs:227:22:227:51 | Before ...::_print(...) | main.rs:227:13:227:20 | ...::_print | | +| main.rs:227:22:227:51 | Before ...::format_args_nl!... | main.rs:227:22:227:51 | Before FormatArgsExpr | | +| main.rs:227:22:227:51 | Before FormatArgsExpr | main.rs:227:22:227:51 | "Found an id in another range\\... | | +| main.rs:227:22:227:51 | Before MacroExpr | main.rs:227:22:227:51 | Before ...::format_args_nl!... | | +| main.rs:227:22:227:51 | ExprStmt | main.rs:227:22:227:51 | Before ...::_print(...) | | +| main.rs:227:22:227:51 | FormatArgsExpr | main.rs:227:22:227:51 | After FormatArgsExpr | | +| main.rs:227:22:227:51 | MacroExpr | main.rs:227:22:227:51 | After MacroExpr | | +| main.rs:227:22:227:51 | { ... } | main.rs:227:22:227:51 | ExprStmt | | | 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:9:229:29 | ...::Hello {...} | main.rs:229:9:229:29 | [pattern-start] ...::Hello {...} | match | +| main.rs:229:9:229:29 | After ...::Hello {...} [match] | main.rs:231:9:233:9 | { ... } | | +| main.rs:229:9:229:29 | [pattern-start] ...::Hello {...} | main.rs:229:26:229:27 | Before id | | +| main.rs:229:26:229:27 | After id [match] | main.rs:229:9:229:29 | After ...::Hello {...} [match] | match | +| main.rs:229:26:229:27 | Before id | main.rs:229:26:229:27 | id | | +| main.rs:229:26:229:27 | id | main.rs:229:26:229:27 | After id [match] | 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:231:9:233:9 | After { ... } | main.rs:221:5:234:5 | After match msg { ... } | | +| main.rs:231:9:233:9 | { ... } | main.rs:232:13:232:25 | Before print_i64(...) | | | 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:13:232:25 | After print_i64(...) | main.rs:231:9:233:9 | After { ... } | | +| main.rs:232:13:232:25 | Before print_i64(...) | main.rs:232:13:232:21 | print_i64 | | +| main.rs:232:13:232:25 | print_i64(...) | main.rs:232:13:232:25 | After print_i64(...) | | | 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:242:1:248:1 | Entry | main.rs:242:21:248:1 | { ... } | | +| main.rs:242:1:248:1 | Normal Exit | main.rs:242:1:248:1 | Exit | | +| main.rs:242:21:248:1 | After { ... } | main.rs:242:1:248:1 | Normal Exit | | +| main.rs:242:21:248:1 | { ... } | main.rs:243:5:243:34 | let ... = ... | | +| main.rs:243:5:243:34 | After let ... = ... | main.rs:244:5:247:5 | match either { ... } | | +| main.rs:243:5:243:34 | let ... = ... | main.rs:243:18:243:33 | Before ...::Left(...) | | +| main.rs:243:9:243:14 | After either [match] | main.rs:243:5:243:34 | After let ... = ... | | +| main.rs:243:9:243:14 | Before either | main.rs:243:9:243:14 | either | | +| main.rs:243:9:243:14 | either | main.rs:243:9:243:14 | After either [match] | match | | 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:18:243:33 | ...::Left(...) | main.rs:243:18:243:33 | After ...::Left(...) | | +| main.rs:243:18:243:33 | After ...::Left(...) | main.rs:243:9:243:14 | Before either | | +| main.rs:243:18:243:33 | Before ...::Left(...) | main.rs:243:18:243:29 | ...::Left | | | 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:244:5:247:5 | After match either { ... } | main.rs:242:21:248:1 | After { ... } | | +| main.rs:244:5:247:5 | match either { ... } | main.rs:244:11:244:16 | either | | +| main.rs:244:11:244:16 | either | main.rs:245:9:245:44 | ... \| ... | | +| main.rs:245:9:245:24 | ...::Left(...) | main.rs:245:9:245:24 | After ...::Left(...) [no-match] | no-match | +| main.rs:245:9:245:24 | ...::Left(...) | main.rs:245:9:245:24 | [pattern-start] ...::Left(...) | match | +| main.rs:245:9:245:24 | After ...::Left(...) [match] | main.rs:245:9:245:44 | After ... \| ... [match] | match | +| main.rs:245:9:245:24 | After ...::Left(...) [no-match] | main.rs:245:28:245:44 | ...::Right(...) | | +| main.rs:245:9:245:24 | [pattern-start] ...::Left(...) | main.rs:245:22:245:23 | Before a3 | | +| main.rs:245:9:245:44 | ... \| ... | main.rs:245:9:245:24 | ...::Left(...) | | +| main.rs:245:9:245:44 | After ... \| ... [match] | main.rs:246:16:246:28 | Before print_i64(...) | | +| main.rs:245:22:245:23 | After a3 [match] | main.rs:245:9:245:24 | After ...::Left(...) [match] | match | +| main.rs:245:22:245:23 | Before a3 | main.rs:245:22:245:23 | a3 | | +| main.rs:245:22:245:23 | a3 | main.rs:245:22:245:23 | After a3 [match] | 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:28:245:44 | ...::Right(...) | main.rs:245:28:245:44 | [pattern-start] ...::Right(...) | match | +| main.rs:245:28:245:44 | After ...::Right(...) [match] | main.rs:245:9:245:44 | After ... \| ... [match] | match | +| main.rs:245:28:245:44 | [pattern-start] ...::Right(...) | main.rs:245:42:245:43 | Before a3 | | +| main.rs:245:42:245:43 | After a3 [match] | main.rs:245:28:245:44 | After ...::Right(...) [match] | match | +| main.rs:245:42:245:43 | Before a3 | main.rs:245:42:245:43 | a3 | | +| main.rs:245:42:245:43 | a3 | main.rs:245:42:245:43 | After a3 [match] | 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:16:246:28 | After print_i64(...) | main.rs:244:5:247:5 | After match either { ... } | | +| main.rs:246:16:246:28 | Before print_i64(...) | main.rs:246:16:246:24 | print_i64 | | +| main.rs:246:16:246:28 | print_i64(...) | main.rs:246:16:246:28 | After print_i64(...) | | | 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:256:1:270:1 | Entry | main.rs:256:21:270:1 | { ... } | | +| main.rs:256:1:270:1 | Normal Exit | main.rs:256:1:270:1 | Exit | | +| main.rs:256:21:270:1 | After { ... } | main.rs:256:1:270:1 | Normal Exit | | +| main.rs:256:21:270:1 | { ... } | main.rs:257:5:257:37 | let ... = ... | | +| main.rs:257:5:257:37 | After let ... = ... | main.rs:258:5:261:5 | ExprStmt | | +| main.rs:257:5:257:37 | let ... = ... | main.rs:257:14:257:36 | Before ...::Second(...) | | +| main.rs:257:9:257:10 | After tv [match] | main.rs:257:5:257:37 | After let ... = ... | | +| main.rs:257:9:257:10 | Before tv | main.rs:257:9:257:10 | tv | | +| main.rs:257:9:257:10 | tv | main.rs:257:9:257:10 | After tv [match] | match | | 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:14:257:36 | ...::Second(...) | main.rs:257:14:257:36 | After ...::Second(...) | | +| main.rs:257:14:257:36 | After ...::Second(...) | main.rs:257:9:257:10 | Before tv | | +| main.rs:257:14:257:36 | Before ...::Second(...) | main.rs:257:14:257:32 | ...::Second | | | 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:258:5:261:5 | After ExprStmt | main.rs:262:5:265:5 | ExprStmt | | +| main.rs:258:5:261:5 | After match tv { ... } | main.rs:258:5:261:5 | After ExprStmt | | +| main.rs:258:5:261:5 | ExprStmt | main.rs:258:5:261:5 | match tv { ... } | | +| main.rs:258:5:261:5 | match tv { ... } | main.rs:258:11:258:12 | tv | | +| main.rs:258:11:258:12 | tv | main.rs:259:9:259:81 | ... \| ... \| ... | | +| main.rs:259:9:259:30 | ...::First(...) | main.rs:259:9:259:30 | After ...::First(...) [no-match] | no-match | +| main.rs:259:9:259:30 | ...::First(...) | main.rs:259:9:259:30 | [pattern-start] ...::First(...) | match | +| main.rs:259:9:259:30 | After ...::First(...) [match] | main.rs:259:9:259:81 | After ... \| ... \| ... [match] | match | +| main.rs:259:9:259:30 | After ...::First(...) [no-match] | main.rs:259:34:259:56 | ...::Second(...) | | +| main.rs:259:9:259:30 | [pattern-start] ...::First(...) | main.rs:259:28:259:29 | Before a4 | | +| main.rs:259:9:259:81 | ... \| ... \| ... | main.rs:259:9:259:30 | ...::First(...) | | +| main.rs:259:9:259:81 | After ... \| ... \| ... [match] | main.rs:260:16:260:28 | Before print_i64(...) | | +| main.rs:259:28:259:29 | After a4 [match] | main.rs:259:9:259:30 | After ...::First(...) [match] | match | +| main.rs:259:28:259:29 | Before a4 | main.rs:259:28:259:29 | a4 | | +| main.rs:259:28:259:29 | a4 | main.rs:259:28:259:29 | After a4 [match] | 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:34:259:56 | ...::Second(...) | main.rs:259:34:259:56 | After ...::Second(...) [no-match] | no-match | +| main.rs:259:34:259:56 | ...::Second(...) | main.rs:259:34:259:56 | [pattern-start] ...::Second(...) | match | +| main.rs:259:34:259:56 | After ...::Second(...) [match] | main.rs:259:9:259:81 | After ... \| ... \| ... [match] | match | +| main.rs:259:34:259:56 | After ...::Second(...) [no-match] | main.rs:259:60:259:81 | ...::Third(...) | | +| main.rs:259:34:259:56 | [pattern-start] ...::Second(...) | main.rs:259:54:259:55 | Before a4 | | +| main.rs:259:54:259:55 | After a4 [match] | main.rs:259:34:259:56 | After ...::Second(...) [match] | match | +| main.rs:259:54:259:55 | Before a4 | main.rs:259:54:259:55 | a4 | | +| main.rs:259:54:259:55 | a4 | main.rs:259:54:259:55 | After a4 [match] | 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:60:259:81 | ...::Third(...) | main.rs:259:60:259:81 | [pattern-start] ...::Third(...) | match | +| main.rs:259:60:259:81 | After ...::Third(...) [match] | main.rs:259:9:259:81 | After ... \| ... \| ... [match] | match | +| main.rs:259:60:259:81 | [pattern-start] ...::Third(...) | main.rs:259:79:259:80 | Before a4 | | +| main.rs:259:79:259:80 | After a4 [match] | main.rs:259:60:259:81 | After ...::Third(...) [match] | match | +| main.rs:259:79:259:80 | Before a4 | main.rs:259:79:259:80 | a4 | | +| main.rs:259:79:259:80 | a4 | main.rs:259:79:259:80 | After a4 [match] | 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:16:260:28 | After print_i64(...) | main.rs:258:5:261:5 | After match tv { ... } | | +| main.rs:260:16:260:28 | Before print_i64(...) | main.rs:260:16:260:24 | print_i64 | | +| main.rs:260:16:260:28 | print_i64(...) | main.rs:260:16:260:28 | After print_i64(...) | | | 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:262:5:265:5 | After ExprStmt | main.rs:266:5:269:5 | match tv { ... } | | +| main.rs:262:5:265:5 | After match tv { ... } | main.rs:262:5:265:5 | After ExprStmt | | +| main.rs:262:5:265:5 | ExprStmt | main.rs:262:5:265:5 | match tv { ... } | | +| main.rs:262:5:265:5 | match tv { ... } | main.rs:262:11:262:12 | tv | | +| main.rs:262:11:262:12 | tv | main.rs:263:9:263:83 | ... \| ... | | +| main.rs:263:9:263:83 | ... \| ... | main.rs:263:10:263:57 | ... \| ... | | +| main.rs:263:9:263:83 | After ... \| ... [match] | main.rs:264:16:264:28 | Before print_i64(...) | | +| main.rs:263:10:263:31 | ...::First(...) | main.rs:263:10:263:31 | After ...::First(...) [no-match] | no-match | +| main.rs:263:10:263:31 | ...::First(...) | main.rs:263:10:263:31 | [pattern-start] ...::First(...) | match | +| main.rs:263:10:263:31 | After ...::First(...) [match] | main.rs:263:10:263:57 | After ... \| ... [match] | match | +| main.rs:263:10:263:31 | After ...::First(...) [no-match] | main.rs:263:35:263:57 | ...::Second(...) | | +| main.rs:263:10:263:31 | [pattern-start] ...::First(...) | main.rs:263:29:263:30 | Before a5 | | +| main.rs:263:10:263:57 | ... \| ... | main.rs:263:10:263:31 | ...::First(...) | | +| main.rs:263:10:263:57 | After ... \| ... [match] | main.rs:263:9:263:83 | After ... \| ... [match] | match | +| main.rs:263:10:263:57 | After ... \| ... [no-match] | main.rs:263:62:263:83 | ...::Third(...) | | +| main.rs:263:29:263:30 | After a5 [match] | main.rs:263:10:263:31 | After ...::First(...) [match] | match | +| main.rs:263:29:263:30 | Before a5 | main.rs:263:29:263:30 | a5 | | +| main.rs:263:29:263:30 | a5 | main.rs:263:29:263:30 | After a5 [match] | 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:35:263:57 | ...::Second(...) | main.rs:263:35:263:57 | After ...::Second(...) [no-match] | no-match | +| main.rs:263:35:263:57 | ...::Second(...) | main.rs:263:35:263:57 | [pattern-start] ...::Second(...) | match | +| main.rs:263:35:263:57 | After ...::Second(...) [match] | main.rs:263:10:263:57 | After ... \| ... [match] | match | +| main.rs:263:35:263:57 | After ...::Second(...) [no-match] | main.rs:263:10:263:57 | After ... \| ... [no-match] | no-match | +| main.rs:263:35:263:57 | [pattern-start] ...::Second(...) | main.rs:263:55:263:56 | Before a5 | | +| main.rs:263:55:263:56 | After a5 [match] | main.rs:263:35:263:57 | After ...::Second(...) [match] | match | +| main.rs:263:55:263:56 | Before a5 | main.rs:263:55:263:56 | a5 | | +| main.rs:263:55:263:56 | a5 | main.rs:263:55:263:56 | After a5 [match] | 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:62:263:83 | ...::Third(...) | main.rs:263:62:263:83 | [pattern-start] ...::Third(...) | match | +| main.rs:263:62:263:83 | After ...::Third(...) [match] | main.rs:263:9:263:83 | After ... \| ... [match] | match | +| main.rs:263:62:263:83 | [pattern-start] ...::Third(...) | main.rs:263:81:263:82 | Before a5 | | +| main.rs:263:81:263:82 | After a5 [match] | main.rs:263:62:263:83 | After ...::Third(...) [match] | match | +| main.rs:263:81:263:82 | Before a5 | main.rs:263:81:263:82 | a5 | | +| main.rs:263:81:263:82 | a5 | main.rs:263:81:263:82 | After a5 [match] | 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:16:264:28 | After print_i64(...) | main.rs:262:5:265:5 | After match tv { ... } | | +| main.rs:264:16:264:28 | Before print_i64(...) | main.rs:264:16:264:24 | print_i64 | | +| main.rs:264:16:264:28 | print_i64(...) | main.rs:264:16:264:28 | After print_i64(...) | | | 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:266:5:269:5 | After match tv { ... } | main.rs:256:21:270:1 | After { ... } | | +| main.rs:266:5:269:5 | match tv { ... } | main.rs:266:11:266:12 | tv | | +| main.rs:266:11:266:12 | tv | main.rs:267:9:267:83 | ... \| ... | | +| main.rs:267:9:267:30 | ...::First(...) | main.rs:267:9:267:30 | After ...::First(...) [no-match] | no-match | +| main.rs:267:9:267:30 | ...::First(...) | main.rs:267:9:267:30 | [pattern-start] ...::First(...) | match | +| main.rs:267:9:267:30 | After ...::First(...) [match] | main.rs:267:9:267:83 | After ... \| ... [match] | match | +| main.rs:267:9:267:30 | After ...::First(...) [no-match] | main.rs:267:35:267:82 | ... \| ... | | +| main.rs:267:9:267:30 | [pattern-start] ...::First(...) | main.rs:267:28:267:29 | Before a6 | | +| main.rs:267:9:267:83 | ... \| ... | main.rs:267:9:267:30 | ...::First(...) | | +| main.rs:267:9:267:83 | After ... \| ... [match] | main.rs:268:16:268:28 | Before print_i64(...) | | +| main.rs:267:28:267:29 | After a6 [match] | main.rs:267:9:267:30 | After ...::First(...) [match] | match | +| main.rs:267:28:267:29 | Before a6 | main.rs:267:28:267:29 | a6 | | +| main.rs:267:28:267:29 | a6 | main.rs:267:28:267:29 | After a6 [match] | 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:35:267:57 | ...::Second(...) | main.rs:267:35:267:57 | After ...::Second(...) [no-match] | no-match | +| main.rs:267:35:267:57 | ...::Second(...) | main.rs:267:35:267:57 | [pattern-start] ...::Second(...) | match | +| main.rs:267:35:267:57 | After ...::Second(...) [match] | main.rs:267:35:267:82 | After ... \| ... [match] | match | +| main.rs:267:35:267:57 | After ...::Second(...) [no-match] | main.rs:267:61:267:82 | ...::Third(...) | | +| main.rs:267:35:267:57 | [pattern-start] ...::Second(...) | main.rs:267:55:267:56 | Before a6 | | +| main.rs:267:35:267:82 | ... \| ... | main.rs:267:35:267:57 | ...::Second(...) | | +| main.rs:267:35:267:82 | After ... \| ... [match] | main.rs:267:9:267:83 | After ... \| ... [match] | match | +| main.rs:267:55:267:56 | After a6 [match] | main.rs:267:35:267:57 | After ...::Second(...) [match] | match | +| main.rs:267:55:267:56 | Before a6 | main.rs:267:55:267:56 | a6 | | +| main.rs:267:55:267:56 | a6 | main.rs:267:55:267:56 | After a6 [match] | 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:61:267:82 | ...::Third(...) | main.rs:267:61:267:82 | [pattern-start] ...::Third(...) | match | +| main.rs:267:61:267:82 | After ...::Third(...) [match] | main.rs:267:35:267:82 | After ... \| ... [match] | match | +| main.rs:267:61:267:82 | [pattern-start] ...::Third(...) | main.rs:267:80:267:81 | Before a6 | | +| main.rs:267:80:267:81 | After a6 [match] | main.rs:267:61:267:82 | After ...::Third(...) [match] | match | +| main.rs:267:80:267:81 | Before a6 | main.rs:267:80:267:81 | a6 | | +| main.rs:267:80:267:81 | a6 | main.rs:267:80:267:81 | After a6 [match] | 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:16:268:28 | After print_i64(...) | main.rs:266:5:269:5 | After match tv { ... } | | +| main.rs:268:16:268:28 | Before print_i64(...) | main.rs:268:16:268:24 | print_i64 | | +| main.rs:268:16:268:28 | print_i64(...) | main.rs:268:16:268:28 | After print_i64(...) | | | 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:272:1:280:1 | Entry | main.rs:272:21:280:1 | { ... } | | +| main.rs:272:1:280:1 | Normal Exit | main.rs:272:1:280:1 | Exit | | +| main.rs:272:21:280:1 | After { ... } | main.rs:272:1:280:1 | Normal Exit | | +| main.rs:272:21:280:1 | { ... } | main.rs:273:5:273:34 | let ... = ... | | +| main.rs:273:5:273:34 | After let ... = ... | main.rs:274:5:279:5 | match either { ... } | | +| main.rs:273:5:273:34 | let ... = ... | main.rs:273:18:273:33 | Before ...::Left(...) | | +| main.rs:273:9:273:14 | After either [match] | main.rs:273:5:273:34 | After let ... = ... | | +| main.rs:273:9:273:14 | Before either | main.rs:273:9:273:14 | either | | +| main.rs:273:9:273:14 | either | main.rs:273:9:273:14 | After either [match] | match | | 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:18:273:33 | ...::Left(...) | main.rs:273:18:273:33 | After ...::Left(...) | | +| main.rs:273:18:273:33 | After ...::Left(...) | main.rs:273:9:273:14 | Before either | | +| main.rs:273:18:273:33 | Before ...::Left(...) | main.rs:273:18:273:29 | ...::Left | | | 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:274:5:279:5 | After match either { ... } | main.rs:272:21:280:1 | After { ... } | | +| main.rs:274:5:279:5 | match either { ... } | main.rs:274:11:274:16 | either | | +| main.rs:274:11:274:16 | either | main.rs:275:9:275:44 | ... \| ... | | +| main.rs:275:9:275:24 | ...::Left(...) | main.rs:275:9:275:24 | After ...::Left(...) [no-match] | no-match | +| main.rs:275:9:275:24 | ...::Left(...) | main.rs:275:9:275:24 | [pattern-start] ...::Left(...) | match | +| main.rs:275:9:275:24 | After ...::Left(...) [match] | main.rs:275:9:275:44 | After ... \| ... [match] | match | +| main.rs:275:9:275:24 | After ...::Left(...) [no-match] | main.rs:275:28:275:44 | ...::Right(...) | | +| main.rs:275:9:275:24 | [pattern-start] ...::Left(...) | main.rs:275:22:275:23 | Before a7 | | +| main.rs:275:9:275:44 | ... \| ... | main.rs:275:9:275:24 | ...::Left(...) | | +| main.rs:275:9:275:44 | After ... \| ... [match] | main.rs:276:16:276:21 | Before ... > ... | | +| main.rs:275:9:275:44 | After ... \| ... [no-match] | main.rs:278:9:278:9 | _ | | +| main.rs:275:22:275:23 | After a7 [match] | main.rs:275:9:275:24 | After ...::Left(...) [match] | match | +| main.rs:275:22:275:23 | Before a7 | main.rs:275:22:275:23 | a7 | | +| main.rs:275:22:275:23 | a7 | main.rs:275:22:275:23 | After a7 [match] | 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:28:275:44 | ...::Right(...) | main.rs:275:28:275:44 | After ...::Right(...) [no-match] | no-match | +| main.rs:275:28:275:44 | ...::Right(...) | main.rs:275:28:275:44 | [pattern-start] ...::Right(...) | match | +| main.rs:275:28:275:44 | After ...::Right(...) [match] | main.rs:275:9:275:44 | After ... \| ... [match] | match | +| main.rs:275:28:275:44 | After ...::Right(...) [no-match] | main.rs:275:9:275:44 | After ... \| ... [no-match] | no-match | +| main.rs:275:28:275:44 | [pattern-start] ...::Right(...) | main.rs:275:42:275:43 | Before a7 | | +| main.rs:275:42:275:43 | After a7 [match] | main.rs:275:28:275:44 | After ...::Right(...) [match] | match | +| main.rs:275:42:275:43 | Before a7 | main.rs:275:42:275:43 | a7 | | +| main.rs:275:42:275:43 | a7 | main.rs:275:42:275:43 | After a7 [match] | 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:16:276:21 | ... > ... | main.rs:276:16:276:21 | After ... > ... [false] | false | +| main.rs:276:16:276:21 | ... > ... | main.rs:276:16:276:21 | After ... > ... [true] | true | +| main.rs:276:16:276:21 | After ... > ... [false] | main.rs:278:9:278:9 | _ | | +| main.rs:276:16:276:21 | After ... > ... [true] | main.rs:277:16:277:28 | Before print_i64(...) | | +| main.rs:276:16:276:21 | Before ... > ... | 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 | 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:16:277:28 | After print_i64(...) | main.rs:274:5:279:5 | After match either { ... } | | +| main.rs:277:16:277:28 | Before print_i64(...) | main.rs:277:16:277:24 | print_i64 | | +| main.rs:277:16:277:28 | print_i64(...) | main.rs:277:16:277:28 | After print_i64(...) | | | 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:278:9:278:9 | After _ [match] | main.rs:278:14:278:15 | TupleExpr | | +| main.rs:278:9:278:9 | _ | main.rs:278:9:278:9 | After _ [match] | match | +| main.rs:278:14:278:15 | TupleExpr | main.rs:274:5:279:5 | After match either { ... } | | +| main.rs:282:1:297:1 | Entry | main.rs:282:21:297:1 | { ... } | | +| main.rs:282:1:297:1 | Normal Exit | main.rs:282:1:297:1 | Exit | | +| main.rs:282:21:297:1 | After { ... } | main.rs:282:1:297:1 | Normal Exit | | +| main.rs:282:21:297:1 | { ... } | main.rs:283:5:283:34 | let ... = ... | | +| main.rs:283:5:283:34 | After let ... = ... | main.rs:285:5:296:5 | match either { ... } | | +| main.rs:283:5:283:34 | let ... = ... | main.rs:283:18:283:33 | Before ...::Left(...) | | +| main.rs:283:9:283:14 | After either [match] | main.rs:283:5:283:34 | After let ... = ... | | +| main.rs:283:9:283:14 | Before either | main.rs:283:9:283:14 | either | | +| main.rs:283:9:283:14 | either | main.rs:283:9:283:14 | After either [match] | match | | 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:18:283:33 | ...::Left(...) | main.rs:283:18:283:33 | After ...::Left(...) | | +| main.rs:283:18:283:33 | After ...::Left(...) | main.rs:283:9:283:14 | Before either | | +| main.rs:283:18:283:33 | Before ...::Left(...) | main.rs:283:18:283:29 | ...::Left | | | 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:285:5:296:5 | After match either { ... } | main.rs:282:21:297:1 | After { ... } | | +| main.rs:285:5:296:5 | match either { ... } | main.rs:285:11:285:16 | either | | +| main.rs:285:11:285:16 | either | main.rs:286:9:287:52 | Before ref e @ ... | | +| main.rs:286:9:287:52 | After ref e @ ... [match] | main.rs:288:12:294:9 | { ... } | | +| main.rs:286:9:287:52 | After ref e @ ... [no-match] | main.rs:295:9:295:9 | _ | | +| main.rs:286:9:287:52 | Before ref e @ ... | main.rs:287:14:287:51 | ... \| ... | | +| main.rs:286:9:287:52 | ref e @ ... | main.rs:286:9:287:52 | After ref e @ ... [match] | 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:14:287:30 | ...::Left(...) | main.rs:287:14:287:30 | After ...::Left(...) [no-match] | no-match | +| main.rs:287:14:287:30 | ...::Left(...) | main.rs:287:14:287:30 | [pattern-start] ...::Left(...) | match | +| main.rs:287:14:287:30 | After ...::Left(...) [match] | main.rs:287:14:287:51 | After ... \| ... [match] | match | +| main.rs:287:14:287:30 | After ...::Left(...) [no-match] | main.rs:287:34:287:51 | ...::Right(...) | | +| main.rs:287:14:287:30 | [pattern-start] ...::Left(...) | main.rs:287:27:287:29 | Before a11 | | +| main.rs:287:14:287:51 | ... \| ... | main.rs:287:14:287:30 | ...::Left(...) | | +| main.rs:287:14:287:51 | After ... \| ... [match] | main.rs:286:13:286:13 | e | | +| main.rs:287:14:287:51 | After ... \| ... [no-match] | main.rs:286:9:287:52 | After ref e @ ... [no-match] | no-match | +| main.rs:287:27:287:29 | After a11 [match] | main.rs:287:14:287:30 | After ...::Left(...) [match] | match | +| main.rs:287:27:287:29 | Before a11 | main.rs:287:27:287:29 | a11 | | +| main.rs:287:27:287:29 | a11 | main.rs:287:27:287:29 | After a11 [match] | 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:34:287:51 | ...::Right(...) | main.rs:287:34:287:51 | After ...::Right(...) [no-match] | no-match | +| main.rs:287:34:287:51 | ...::Right(...) | main.rs:287:34:287:51 | [pattern-start] ...::Right(...) | match | +| main.rs:287:34:287:51 | After ...::Right(...) [match] | main.rs:287:14:287:51 | After ... \| ... [match] | match | +| main.rs:287:34:287:51 | After ...::Right(...) [no-match] | main.rs:287:14:287:51 | After ... \| ... [no-match] | no-match | +| main.rs:287:34:287:51 | [pattern-start] ...::Right(...) | main.rs:287:48:287:50 | Before a11 | | +| main.rs:287:48:287:50 | After a11 [match] | main.rs:287:34:287:51 | After ...::Right(...) [match] | match | +| main.rs:287:48:287:50 | Before a11 | main.rs:287:48:287:50 | a11 | | +| main.rs:287:48:287:50 | a11 | main.rs:287:48:287:50 | After a11 [match] | 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:288:12:294:9 | After { ... } | main.rs:285:5:296:5 | After match either { ... } | | +| main.rs:288:12:294:9 | { ... } | 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:291:15:291:15 | e | | -| main.rs:289:13:289:27 | ExprStmt | main.rs:289:13:289:21 | print_i64 | | +| main.rs:289:13:289:26 | After print_i64(...) | main.rs:289:13:289:27 | After ExprStmt | | +| main.rs:289:13:289:26 | Before print_i64(...) | main.rs:289:13:289:21 | print_i64 | | +| main.rs:289:13:289:26 | print_i64(...) | main.rs:289:13:289:26 | After print_i64(...) | | +| main.rs:289:13:289:27 | After ExprStmt | main.rs:290:13:293:13 | if ... {...} | | +| main.rs:289:13:289:27 | ExprStmt | main.rs:289:13:289:26 | Before 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:13:293:13 | After if ... {...} | main.rs:288:12:294:9 | After { ... } | | +| main.rs:290:13:293:13 | if ... {...} | main.rs:290:16:291:15 | let ... = e | | +| main.rs:290:16:291:15 | After let ... = e [false] | main.rs:290:13:293:13 | After if ... {...} | | +| main.rs:290:16:291:15 | After let ... = e [true] | main.rs:291:17:293:13 | { ... } | | +| main.rs:290:16:291:15 | let ... = e | main.rs:291:15:291:15 | e | | +| main.rs:290:20:290:36 | ...::Left(...) | main.rs:290:20:290:36 | After ...::Left(...) [no-match] | no-match | +| main.rs:290:20:290:36 | ...::Left(...) | main.rs:290:20:290:36 | [pattern-start] ...::Left(...) | match | +| main.rs:290:20:290:36 | After ...::Left(...) [match] | main.rs:290:16:291:15 | After let ... = e [true] | true | +| main.rs:290:20:290:36 | After ...::Left(...) [no-match] | main.rs:290:16:291:15 | After let ... = e [false] | false | +| main.rs:290:20:290:36 | [pattern-start] ...::Left(...) | main.rs:290:33:290:35 | Before a12 | | +| main.rs:290:33:290:35 | After a12 [match] | main.rs:290:20:290:36 | After ...::Left(...) [match] | match | +| main.rs:290:33:290:35 | Before a12 | main.rs:290:33:290:35 | a12 | | +| main.rs:290:33:290:35 | a12 | main.rs:290:33:290:35 | After a12 [match] | 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:291:17:293:13 | After { ... } | main.rs:290:13:293:13 | After if ... {...} | | +| 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 | Before * ... | | +| main.rs:292:17:292:31 | After print_i64(...) | main.rs:292:17:292:32 | After ExprStmt | | +| main.rs:292:17:292:31 | Before print_i64(...) | main.rs:292:17:292:25 | print_i64 | | +| main.rs:292:17:292:31 | print_i64(...) | main.rs:292:17:292:31 | After print_i64(...) | | +| main.rs:292:17:292:32 | After ExprStmt | main.rs:291:17:293:13 | After { ... } | | +| main.rs:292:17:292:32 | ExprStmt | main.rs:292:17:292:31 | Before print_i64(...) | | +| main.rs:292:27:292:30 | * ... | main.rs:292:27:292:30 | After * ... | | +| main.rs:292:27:292:30 | After * ... | main.rs:292:17:292:31 | print_i64(...) | | +| main.rs:292:27:292:30 | Before * ... | main.rs:292:28:292:30 | a12 | | | 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:295:9:295:9 | After _ [match] | main.rs:295:14:295:15 | TupleExpr | | +| main.rs:295:9:295:9 | _ | main.rs:295:9:295:9 | After _ [match] | match | +| main.rs:295:14:295:15 | TupleExpr | main.rs:285:5:296:5 | After match either { ... } | | +| main.rs:306:1:312:1 | Entry | main.rs:306:21:312:1 | { ... } | | +| main.rs:306:1:312:1 | Normal Exit | main.rs:306:1:312:1 | Exit | | +| main.rs:306:21:312:1 | After { ... } | main.rs:306:1:312:1 | Normal Exit | | +| main.rs:306:21:312:1 | { ... } | main.rs:307:5:307:36 | let ... = ... | | +| main.rs:307:5:307:36 | After let ... = ... | main.rs:308:5:311:5 | match fv { ... } | | +| main.rs:307:5:307:36 | let ... = ... | main.rs:307:14:307:35 | Before ...::Second(...) | | +| main.rs:307:9:307:10 | After fv [match] | main.rs:307:5:307:36 | After let ... = ... | | +| main.rs:307:9:307:10 | Before fv | main.rs:307:9:307:10 | fv | | +| main.rs:307:9:307:10 | fv | main.rs:307:9:307:10 | After fv [match] | match | | 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:14:307:35 | ...::Second(...) | main.rs:307:14:307:35 | After ...::Second(...) | | +| main.rs:307:14:307:35 | After ...::Second(...) | main.rs:307:9:307:10 | Before fv | | +| main.rs:307:14:307:35 | Before ...::Second(...) | main.rs:307:14:307:31 | ...::Second | | | 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:308:5:311:5 | After match fv { ... } | main.rs:306:21:312:1 | After { ... } | | +| main.rs:308:5:311:5 | match fv { ... } | main.rs:308:11:308:12 | fv | | +| main.rs:308:11:308:12 | fv | main.rs:309:9:309:109 | ... \| ... \| ... | | +| main.rs:309:9:309:30 | ...::First(...) | main.rs:309:9:309:30 | After ...::First(...) [no-match] | no-match | +| main.rs:309:9:309:30 | ...::First(...) | main.rs:309:9:309:30 | [pattern-start] ...::First(...) | match | +| main.rs:309:9:309:30 | After ...::First(...) [match] | main.rs:309:9:309:109 | After ... \| ... \| ... [match] | match | +| main.rs:309:9:309:30 | After ...::First(...) [no-match] | main.rs:309:35:309:82 | ... \| ... | | +| main.rs:309:9:309:30 | [pattern-start] ...::First(...) | main.rs:309:27:309:29 | Before a13 | | +| main.rs:309:9:309:109 | ... \| ... \| ... | main.rs:309:9:309:30 | ...::First(...) | | +| main.rs:309:9:309:109 | After ... \| ... \| ... [match] | main.rs:310:16:310:29 | Before print_i64(...) | | +| main.rs:309:27:309:29 | After a13 [match] | main.rs:309:9:309:30 | After ...::First(...) [match] | match | +| main.rs:309:27:309:29 | Before a13 | main.rs:309:27:309:29 | a13 | | +| main.rs:309:27:309:29 | a13 | main.rs:309:27:309:29 | After a13 [match] | 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:35:309:57 | ...::Second(...) | main.rs:309:35:309:57 | After ...::Second(...) [no-match] | no-match | +| main.rs:309:35:309:57 | ...::Second(...) | main.rs:309:35:309:57 | [pattern-start] ...::Second(...) | match | +| main.rs:309:35:309:57 | After ...::Second(...) [match] | main.rs:309:35:309:82 | After ... \| ... [match] | match | +| main.rs:309:35:309:57 | After ...::Second(...) [no-match] | main.rs:309:61:309:82 | ...::Third(...) | | +| main.rs:309:35:309:57 | [pattern-start] ...::Second(...) | main.rs:309:54:309:56 | Before a13 | | +| main.rs:309:35:309:82 | ... \| ... | main.rs:309:35:309:57 | ...::Second(...) | | +| main.rs:309:35:309:82 | After ... \| ... [match] | main.rs:309:9:309:109 | After ... \| ... \| ... [match] | match | +| main.rs:309:35:309:82 | After ... \| ... [no-match] | main.rs:309:87:309:109 | ...::Fourth(...) | | +| main.rs:309:54:309:56 | After a13 [match] | main.rs:309:35:309:57 | After ...::Second(...) [match] | match | +| main.rs:309:54:309:56 | Before a13 | main.rs:309:54:309:56 | a13 | | +| main.rs:309:54:309:56 | a13 | main.rs:309:54:309:56 | After a13 [match] | 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:61:309:82 | ...::Third(...) | main.rs:309:61:309:82 | After ...::Third(...) [no-match] | no-match | +| main.rs:309:61:309:82 | ...::Third(...) | main.rs:309:61:309:82 | [pattern-start] ...::Third(...) | match | +| main.rs:309:61:309:82 | After ...::Third(...) [match] | main.rs:309:35:309:82 | After ... \| ... [match] | match | +| main.rs:309:61:309:82 | After ...::Third(...) [no-match] | main.rs:309:35:309:82 | After ... \| ... [no-match] | no-match | +| main.rs:309:61:309:82 | [pattern-start] ...::Third(...) | main.rs:309:79:309:81 | Before a13 | | +| main.rs:309:79:309:81 | After a13 [match] | main.rs:309:61:309:82 | After ...::Third(...) [match] | match | +| main.rs:309:79:309:81 | Before a13 | main.rs:309:79:309:81 | a13 | | +| main.rs:309:79:309:81 | a13 | main.rs:309:79:309:81 | After a13 [match] | 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:87:309:109 | ...::Fourth(...) | main.rs:309:87:309:109 | [pattern-start] ...::Fourth(...) | match | +| main.rs:309:87:309:109 | After ...::Fourth(...) [match] | main.rs:309:9:309:109 | After ... \| ... \| ... [match] | match | +| main.rs:309:87:309:109 | [pattern-start] ...::Fourth(...) | main.rs:309:106:309:108 | Before a13 | | +| main.rs:309:106:309:108 | After a13 [match] | main.rs:309:87:309:109 | After ...::Fourth(...) [match] | match | +| main.rs:309:106:309:108 | Before a13 | main.rs:309:106:309:108 | a13 | | +| main.rs:309:106:309:108 | a13 | main.rs:309:106:309:108 | After a13 [match] | 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:16:310:29 | After print_i64(...) | main.rs:308:5:311:5 | After match fv { ... } | | +| main.rs:310:16:310:29 | Before print_i64(...) | main.rs:310:16:310:24 | print_i64 | | +| main.rs:310:16:310:29 | print_i64(...) | main.rs:310:16:310:29 | After print_i64(...) | | | 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:314:1:328:1 | Entry | main.rs:315:22:328:1 | { ... } | | +| main.rs:314:1:328:1 | Normal Exit | main.rs:314:1:328:1 | Exit | | +| main.rs:315:22:328:1 | After { ... } | main.rs:314:1:328:1 | Normal Exit | | +| main.rs:315:22:328:1 | { ... } | main.rs:316:5:316:20 | let ... = ... | | +| main.rs:316:5:316:20 | After let ... = ... | main.rs:317:5:327:5 | if ... {...} else {...} | | +| main.rs:316:5:316:20 | let ... = ... | main.rs:316:12:316:19 | Before Some(...) | | +| main.rs:316:9:316:9 | After x [match] | main.rs:316:5:316:20 | After let ... = ... | | +| main.rs:316:9:316:9 | Before x | main.rs:316:9:316:9 | x | | +| main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | After x [match] | match | | main.rs:316:9:316:9 | x | main.rs:316:9:316:9 | x | | -| 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:12:316:19 | After Some(...) | main.rs:316:9:316:9 | Before x | | +| main.rs:316:12:316:19 | Before Some(...) | main.rs:316:12:316:15 | Some | | +| main.rs:316:12:316:19 | Some(...) | main.rs:316:12:316:19 | After Some(...) | | | 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:5:327:5 | After if ... {...} else {...} | main.rs:315:22:328:1 | After { ... } | | +| main.rs:317:5:327:5 | if ... {...} else {...} | main.rs:317:8:320:9 | ... && ... | | +| main.rs:317:8:318:7 | After let ... = x [false] | main.rs:317:8:320:9 | After ... && ... [false] | false | +| main.rs:317:8:318:7 | After let ... = x [true] | main.rs:320:5:320:9 | Before ... > ... | | +| main.rs:317:8:318:7 | let ... = x | main.rs:318:7:318:7 | x | | +| main.rs:317:8:320:9 | ... && ... | main.rs:317:8:318:7 | let ... = x | | +| main.rs:317:8:320:9 | After ... && ... [false] | main.rs:323:12:327:5 | { ... } | | +| main.rs:317:8:320:9 | After ... && ... [true] | main.rs:321:5:323:5 | { ... } | | +| main.rs:317:12:317:18 | After Some(...) [match] | main.rs:317:8:318:7 | After let ... = x [true] | true | +| main.rs:317:12:317:18 | After Some(...) [no-match] | main.rs:317:8:318:7 | After let ... = x [false] | false | +| main.rs:317:12:317:18 | Some(...) | main.rs:317:12:317:18 | After Some(...) [no-match] | no-match | +| main.rs:317:12:317:18 | Some(...) | main.rs:317:12:317:18 | [pattern-start] Some(...) | match | +| main.rs:317:12:317:18 | [pattern-start] Some(...) | main.rs:317:17:317:17 | Before x | | +| main.rs:317:17:317:17 | After x [match] | main.rs:317:12:317:18 | After Some(...) [match] | match | +| main.rs:317:17:317:17 | Before x | main.rs:317:17:317:17 | x | | +| main.rs:317:17:317:17 | x | main.rs:317:17:317:17 | After x [match] | 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:5:320:9 | ... > ... | main.rs:320:5:320:9 | After ... > ... [false] | false | +| main.rs:320:5:320:9 | ... > ... | main.rs:320:5:320:9 | After ... > ... [true] | true | +| main.rs:320:5:320:9 | After ... > ... [false] | main.rs:317:8:320:9 | After ... && ... [false] | false | +| main.rs:320:5:320:9 | After ... > ... [true] | main.rs:317:8:320:9 | After ... && ... [true] | true | +| main.rs:320:5:320:9 | Before ... > ... | main.rs:320:5:320:5 | x | | | 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:321:5:323:5 | After { ... } | main.rs:317:5:327:5 | After if ... {...} else {...} | | +| 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:321:5:323:5 | { ... } | | -| main.rs:322:9:322:21 | ExprStmt | main.rs:322:9:322:17 | print_i64 | | +| main.rs:322:9:322:20 | After print_i64(...) | main.rs:322:9:322:21 | After ExprStmt | | +| main.rs:322:9:322:20 | Before print_i64(...) | main.rs:322:9:322:17 | print_i64 | | +| main.rs:322:9:322:20 | print_i64(...) | main.rs:322:9:322:20 | After print_i64(...) | | +| main.rs:322:9:322:21 | After ExprStmt | main.rs:321:5:323:5 | After { ... } | | +| main.rs:322:9:322:21 | ExprStmt | main.rs:322:9:322:20 | Before 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:323:12:327:5 | After { ... } | main.rs:317:5:327:5 | After if ... {...} else {...} | | +| main.rs:323:12:327:5 | { ... } | main.rs:324:9:325:14 | let ... = x | | +| main.rs:324:9:325:14 | After let ... = x | main.rs:326:9:326:30 | ExprStmt | | | main.rs:324:9:325:14 | let ... = x | main.rs:325:13:325:13 | x | | +| main.rs:324:13:324:13 | After x [match] | main.rs:324:9:325:14 | After let ... = x | | +| main.rs:324:13:324:13 | Before x | main.rs:324:13:324:13 | x | | +| main.rs:324:13:324:13 | x | main.rs:324:13:324:13 | After x [match] | match | | 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:325:13:325:13 | x | main.rs:324:13:324:13 | Before x | | +| main.rs:326:9:326:17 | print_i64 | main.rs:326:19:326:28 | Before x.unwrap() | | +| main.rs:326:9:326:29 | After print_i64(...) | main.rs:326:9:326:30 | After ExprStmt | | +| main.rs:326:9:326:29 | Before print_i64(...) | main.rs:326:9:326:17 | print_i64 | | +| main.rs:326:9:326:29 | print_i64(...) | main.rs:326:9:326:29 | After print_i64(...) | | +| main.rs:326:9:326:30 | After ExprStmt | main.rs:323:12:327:5 | After { ... } | | +| main.rs:326:9:326:30 | ExprStmt | main.rs:326:9:326:29 | Before 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:326:19:326:28 | After x.unwrap() | main.rs:326:9:326:29 | print_i64(...) | | +| main.rs:326:19:326:28 | Before x.unwrap() | main.rs:326:19:326:19 | x | | +| main.rs:326:19:326:28 | x.unwrap() | main.rs:326:19:326:28 | After x.unwrap() | | +| main.rs:330:1:347:1 | Entry | main.rs:331:22:347:1 | { ... } | | +| main.rs:330:1:347:1 | Normal Exit | main.rs:330:1:347:1 | Exit | | +| main.rs:331:22:347:1 | After { ... } | main.rs:330:1:347:1 | Normal Exit | | +| main.rs:331:22:347:1 | { ... } | main.rs:332:5:332:21 | let ... = ... | | +| main.rs:332:5:332:21 | After let ... = ... | main.rs:333:5:346:5 | if ... {...} else {...} | | +| main.rs:332:5:332:21 | let ... = ... | main.rs:332:13:332:20 | Before Some(...) | | +| main.rs:332:9:332:9 | After x [match] | main.rs:332:5:332:21 | After let ... = ... | | +| main.rs:332:9:332:9 | Before x | main.rs:332:9:332:9 | x | | +| main.rs:332:9:332:9 | x | main.rs:332:9:332:9 | After x [match] | match | | 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:13:332:20 | After Some(...) | main.rs:332:9:332:9 | Before x | | +| main.rs:332:13:332:20 | Before Some(...) | main.rs:332:13:332:16 | Some | | +| main.rs:332:13:332:20 | Some(...) | main.rs:332:13:332:20 | After Some(...) | | | 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:5:346:5 | After if ... {...} else {...} | main.rs:331:22:347:1 | After { ... } | | +| main.rs:333:5:346:5 | if ... {...} else {...} | main.rs:333:8:339:9 | ... && ... | | +| main.rs:333:8:334:7 | After let ... = x [false] | main.rs:333:8:337:13 | After ... && ... [false] | false | +| main.rs:333:8:334:7 | After let ... = x [true] | main.rs:336:5:337:13 | let ... = ... | | +| main.rs:333:8:334:7 | let ... = x | main.rs:334:7:334:7 | x | | +| main.rs:333:8:337:13 | ... && ... | main.rs:333:8:334:7 | let ... = x | | +| main.rs:333:8:337:13 | After ... && ... [false] | main.rs:333:8:339:9 | After ... && ... [false] | false | +| main.rs:333:8:337:13 | After ... && ... [true] | main.rs:339:5:339:9 | Before ... > ... | | +| main.rs:333:8:339:9 | ... && ... | main.rs:333:8:337:13 | ... && ... | | +| main.rs:333:8:339:9 | After ... && ... [false] | main.rs:342:12:346:5 | { ... } | | +| main.rs:333:8:339:9 | After ... && ... [true] | main.rs:340:5:342:5 | { ... } | | +| main.rs:333:12:333:18 | After Some(...) [match] | main.rs:333:8:334:7 | After let ... = x [true] | true | +| main.rs:333:12:333:18 | After Some(...) [no-match] | main.rs:333:8:334:7 | After let ... = x [false] | false | +| main.rs:333:12:333:18 | Some(...) | main.rs:333:12:333:18 | After Some(...) [no-match] | no-match | +| main.rs:333:12:333:18 | Some(...) | main.rs:333:12:333:18 | [pattern-start] Some(...) | match | +| main.rs:333:12:333:18 | [pattern-start] Some(...) | main.rs:333:17:333:17 | Before x | | +| main.rs:333:17:333:17 | After x [match] | main.rs:333:12:333:18 | After Some(...) [match] | match | +| main.rs:333:17:333:17 | Before x | main.rs:333:17:333:17 | x | | +| main.rs:333:17:333:17 | x | main.rs:333:17:333:17 | After x [match] | 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:14:336:14 | x | main.rs:336:5:337:13 | [boolean(true)] let ... = ... | match | +| main.rs:336:5:337:13 | After let ... = ... [false] | main.rs:333:8:337:13 | After ... && ... [false] | false | +| main.rs:336:5:337:13 | After let ... = ... [true] | main.rs:333:8:337:13 | After ... && ... [true] | true | +| main.rs:336:5:337:13 | let ... = ... | main.rs:337:7:337:13 | Before Some(...) | | +| main.rs:336:9:336:15 | After Some(...) [match] | main.rs:336:5:337:13 | After let ... = ... [true] | true | +| main.rs:336:9:336:15 | After Some(...) [no-match] | main.rs:336:5:337:13 | After let ... = ... [false] | false | +| main.rs:336:9:336:15 | Some(...) | main.rs:336:9:336:15 | After Some(...) [no-match] | no-match | +| main.rs:336:9:336:15 | Some(...) | main.rs:336:9:336:15 | [pattern-start] Some(...) | match | +| main.rs:336:9:336:15 | [pattern-start] Some(...) | main.rs:336:14:336:14 | Before x | | +| main.rs:336:14:336:14 | After x [match] | main.rs:336:9:336:15 | After Some(...) [match] | match | +| main.rs:336:14:336:14 | Before x | main.rs:336:14:336:14 | x | | +| main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | After x [match] | match | | main.rs:336:14:336:14 | x | main.rs:336:14:336:14 | x | | | 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:7:337:13 | After Some(...) | main.rs:336:9:336:15 | Some(...) | | +| main.rs:337:7:337:13 | Before Some(...) | main.rs:337:7:337:10 | Some | | +| main.rs:337:7:337:13 | Some(...) | main.rs:337:7:337:13 | After 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:5:339:9 | ... > ... | main.rs:339:5:339:9 | After ... > ... [false] | false | +| main.rs:339:5:339:9 | ... > ... | main.rs:339:5:339:9 | After ... > ... [true] | true | +| main.rs:339:5:339:9 | After ... > ... [false] | main.rs:333:8:339:9 | After ... && ... [false] | false | +| main.rs:339:5:339:9 | After ... > ... [true] | main.rs:333:8:339:9 | After ... && ... [true] | true | +| main.rs:339:5:339:9 | Before ... > ... | main.rs:339:5:339:5 | x | | | 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:340:5:342:5 | After { ... } | main.rs:333:5:346:5 | After if ... {...} else {...} | | +| 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:340:5:342:5 | { ... } | | -| main.rs:341:9:341:21 | ExprStmt | main.rs:341:9:341:17 | print_i64 | | +| main.rs:341:9:341:20 | After print_i64(...) | main.rs:341:9:341:21 | After ExprStmt | | +| main.rs:341:9:341:20 | Before print_i64(...) | main.rs:341:9:341:17 | print_i64 | | +| main.rs:341:9:341:20 | print_i64(...) | main.rs:341:9:341:20 | After print_i64(...) | | +| main.rs:341:9:341:21 | After ExprStmt | main.rs:340:5:342:5 | After { ... } | | +| main.rs:341:9:341:21 | ExprStmt | main.rs:341:9:341:20 | Before 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:342:12:346:5 | After { ... } | main.rs:333:5:346:5 | After if ... {...} else {...} | | +| main.rs:342:12:346:5 | { ... } | main.rs:343:9:344:14 | let ... = x | | +| main.rs:343:9:344:14 | After let ... = x | main.rs:345:9:345:30 | ExprStmt | | | main.rs:343:9:344:14 | let ... = x | main.rs:344:13:344:13 | x | | +| main.rs:343:13:343:13 | After x [match] | main.rs:343:9:344:14 | After let ... = x | | +| main.rs:343:13:343:13 | Before x | main.rs:343:13:343:13 | x | | +| main.rs:343:13:343:13 | x | main.rs:343:13:343:13 | After x [match] | match | | 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:344:13:344:13 | x | main.rs:343:13:343:13 | Before x | | +| main.rs:345:9:345:17 | print_i64 | main.rs:345:19:345:28 | Before x.unwrap() | | +| main.rs:345:9:345:29 | After print_i64(...) | main.rs:345:9:345:30 | After ExprStmt | | +| main.rs:345:9:345:29 | Before print_i64(...) | main.rs:345:9:345:17 | print_i64 | | +| main.rs:345:9:345:29 | print_i64(...) | main.rs:345:9:345:29 | After print_i64(...) | | +| main.rs:345:9:345:30 | After ExprStmt | main.rs:342:12:346:5 | After { ... } | | +| main.rs:345:9:345:30 | ExprStmt | main.rs:345:9:345:29 | Before 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:345:19:345:28 | After x.unwrap() | main.rs:345:9:345:29 | print_i64(...) | | +| main.rs:345:19:345:28 | Before x.unwrap() | main.rs:345:19:345:19 | x | | +| main.rs:345:19:345:28 | x.unwrap() | main.rs:345:19:345:28 | After x.unwrap() | | +| main.rs:349:1:365:1 | Entry | main.rs:350:22:365:1 | { ... } | | +| main.rs:349:1:365:1 | Normal Exit | main.rs:349:1:365:1 | Exit | | +| main.rs:350:22:365:1 | After { ... } | main.rs:349:1:365:1 | Normal Exit | | +| main.rs:350:22:365:1 | { ... } | main.rs:351:5:351:21 | let ... = ... | | +| main.rs:351:5:351:21 | After let ... = ... | main.rs:352:5:362:5 | ExprStmt | | +| main.rs:351:5:351:21 | let ... = ... | main.rs:351:13:351:20 | Before Some(...) | | +| main.rs:351:9:351:9 | After x [match] | main.rs:351:5:351:21 | After let ... = ... | | +| main.rs:351:9:351:9 | Before x | main.rs:351:9:351:9 | x | | +| main.rs:351:9:351:9 | x | main.rs:351:9:351:9 | After x [match] | match | | 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:13:351:20 | After Some(...) | main.rs:351:9:351:9 | Before x | | +| main.rs:351:13:351:20 | Before Some(...) | main.rs:351:13:351:16 | Some | | +| main.rs:351:13:351:20 | Some(...) | main.rs:351:13:351:20 | After Some(...) | | | 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:5:362:5 | After ExprStmt | main.rs:364:5:364:26 | ExprStmt | | +| main.rs:352:5:362:5 | After while ... { ... } | main.rs:352:5:362:5 | After ExprStmt | | +| main.rs:352:5:362:5 | ExprStmt | main.rs:352:5:362:5 | while ... { ... } | | +| main.rs:352:5:362:5 | [LoopHeader] while ... { ... } | main.rs:352:11:358:9 | ... && ... | | +| main.rs:352:5:362:5 | while ... { ... } | main.rs:352:5:362:5 | [LoopHeader] while ... { ... } | | +| main.rs:352:11:353:7 | After let ... = x [false] | main.rs:352:11:356:13 | After ... && ... [false] | false | +| main.rs:352:11:353:7 | After let ... = x [true] | main.rs:355:5:356:13 | let ... = ... | | +| main.rs:352:11:353:7 | let ... = x | main.rs:353:7:353:7 | x | | +| main.rs:352:11:356:13 | ... && ... | main.rs:352:11:353:7 | let ... = x | | +| main.rs:352:11:356:13 | After ... && ... [false] | main.rs:352:11:358:9 | After ... && ... [false] | false | +| main.rs:352:11:356:13 | After ... && ... [true] | main.rs:358:5:358:9 | Before ... > ... | | +| main.rs:352:11:358:9 | ... && ... | main.rs:352:11:356:13 | ... && ... | | +| main.rs:352:11:358:9 | After ... && ... [false] | main.rs:352:5:362:5 | After while ... { ... } | | +| main.rs:352:11:358:9 | After ... && ... [true] | main.rs:359:5:362:5 | { ... } | | +| main.rs:352:15:352:21 | After Some(...) [match] | main.rs:352:11:353:7 | After let ... = x [true] | true | +| main.rs:352:15:352:21 | After Some(...) [no-match] | main.rs:352:11:353:7 | After let ... = x [false] | false | +| main.rs:352:15:352:21 | Some(...) | main.rs:352:15:352:21 | After Some(...) [no-match] | no-match | +| main.rs:352:15:352:21 | Some(...) | main.rs:352:15:352:21 | [pattern-start] Some(...) | match | +| main.rs:352:15:352:21 | [pattern-start] Some(...) | main.rs:352:20:352:20 | Before x | | +| main.rs:352:20:352:20 | After x [match] | main.rs:352:15:352:21 | After Some(...) [match] | match | +| main.rs:352:20:352:20 | Before x | main.rs:352:20:352:20 | x | | +| main.rs:352:20:352:20 | x | main.rs:352:20:352:20 | After x [match] | 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:5:356:13 | After let ... = ... [false] | main.rs:352:11:356:13 | After ... && ... [false] | false | +| main.rs:355:5:356:13 | After let ... = ... [true] | main.rs:352:11:356:13 | After ... && ... [true] | true | +| main.rs:355:5:356:13 | let ... = ... | main.rs:356:7:356:13 | Before Some(...) | | +| main.rs:355:9:355:15 | After Some(...) [match] | main.rs:355:5:356:13 | After let ... = ... [true] | true | +| main.rs:355:9:355:15 | After Some(...) [no-match] | main.rs:355:5:356:13 | After let ... = ... [false] | false | +| main.rs:355:9:355:15 | Some(...) | main.rs:355:9:355:15 | After Some(...) [no-match] | no-match | +| main.rs:355:9:355:15 | Some(...) | main.rs:355:9:355:15 | [pattern-start] Some(...) | match | +| main.rs:355:9:355:15 | [pattern-start] Some(...) | main.rs:355:14:355:14 | Before x | | +| main.rs:355:14:355:14 | After x [match] | main.rs:355:9:355:15 | After Some(...) [match] | match | +| main.rs:355:14:355:14 | Before x | main.rs:355:14:355:14 | x | | +| main.rs:355:14:355:14 | x | main.rs:355:14:355:14 | After x [match] | 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:7:356:13 | After Some(...) | main.rs:355:9:355:15 | Some(...) | | +| main.rs:356:7:356:13 | Before Some(...) | main.rs:356:7:356:10 | Some | | +| main.rs:356:7:356:13 | Some(...) | main.rs:356:7:356:13 | After 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:5:358:9 | ... > ... | main.rs:358:5:358:9 | After ... > ... [false] | false | +| main.rs:358:5:358:9 | ... > ... | main.rs:358:5:358:9 | After ... > ... [true] | true | +| main.rs:358:5:358:9 | After ... > ... [false] | main.rs:352:11:358:9 | After ... && ... [false] | false | +| main.rs:358:5:358:9 | After ... > ... [true] | main.rs:352:11:358:9 | After ... && ... [true] | true | +| main.rs:358:5:358:9 | Before ... > ... | main.rs:358:5:358:5 | x | | | main.rs:358:9:358:9 | 0 | main.rs:358:5:358:9 | ... > ... | | +| main.rs:359:5:362:5 | { ... } | 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:14 | ExprStmt | | -| main.rs:360:9:360:21 | ExprStmt | main.rs:360:9:360:17 | print_i64 | | +| main.rs:360:9:360:20 | After print_i64(...) | main.rs:360:9:360:21 | After ExprStmt | | +| main.rs:360:9:360:20 | Before print_i64(...) | main.rs:360:9:360:17 | print_i64 | | +| main.rs:360:9:360:20 | print_i64(...) | main.rs:360:9:360:20 | After print_i64(...) | | +| main.rs:360:9:360:21 | After ExprStmt | main.rs:361:9:361:14 | ExprStmt | | +| main.rs:360:9:360:21 | ExprStmt | main.rs:360:9:360:20 | Before 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:13 | [break] break | main.rs:352:5:362:5 | After while ... { ... } | break | +| main.rs:361:9:361:13 | break | main.rs:361:9:361:13 | [break] 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:5:364:13 | print_i64 | main.rs:364:15:364:24 | Before x.unwrap() | | +| main.rs:364:5:364:25 | After print_i64(...) | main.rs:364:5:364:26 | After ExprStmt | | +| main.rs:364:5:364:25 | Before print_i64(...) | main.rs:364:5:364:13 | print_i64 | | +| main.rs:364:5:364:25 | print_i64(...) | main.rs:364:5:364:25 | After print_i64(...) | | +| main.rs:364:5:364:26 | After ExprStmt | main.rs:350:22:365:1 | After { ... } | | +| main.rs:364:5:364:26 | ExprStmt | main.rs:364:5:364:25 | Before 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:364:15:364:24 | After x.unwrap() | main.rs:364:5:364:25 | print_i64(...) | | +| main.rs:364:15:364:24 | Before x.unwrap() | main.rs:364:15:364:15 | x | | +| main.rs:364:15:364:24 | x.unwrap() | main.rs:364:15:364:24 | After x.unwrap() | | +| main.rs:367:1:379:1 | Entry | main.rs:368:22:379:1 | { ... } | | +| main.rs:367:1:379:1 | Normal Exit | main.rs:367:1:379:1 | Exit | | +| main.rs:368:22:379:1 | After { ... } | main.rs:367:1:379:1 | Normal Exit | | +| main.rs:368:22:379:1 | { ... } | main.rs:369:5:369:21 | let ... = ... | | +| main.rs:369:5:369:21 | After let ... = ... | main.rs:370:5:376:5 | ExprStmt | | +| main.rs:369:5:369:21 | let ... = ... | main.rs:369:13:369:20 | Before Some(...) | | +| main.rs:369:9:369:9 | After x [match] | main.rs:369:5:369:21 | After let ... = ... | | +| main.rs:369:9:369:9 | Before x | main.rs:369:9:369:9 | x | | +| main.rs:369:9:369:9 | x | main.rs:369:9:369:9 | After x [match] | match | | 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:13:369:20 | After Some(...) | main.rs:369:9:369:9 | Before x | | +| main.rs:369:13:369:20 | Before Some(...) | main.rs:369:13:369:16 | Some | | +| main.rs:369:13:369:20 | Some(...) | main.rs:369:13:369:20 | After Some(...) | | | 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:5:376:5 | After ExprStmt | main.rs:378:5:378:26 | ExprStmt | | +| main.rs:370:5:376:5 | After match x { ... } | main.rs:370:5:376:5 | After ExprStmt | | +| main.rs:370:5:376:5 | ExprStmt | main.rs:370:5:376:5 | match x { ... } | | +| main.rs:370:5:376:5 | match x { ... } | main.rs:370:11:370:11 | x | | | 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:9:371:15 | After Some(...) [match] | main.rs:372:16:374:23 | ... && ... | | +| main.rs:371:9:371:15 | After Some(...) [no-match] | main.rs:375:9:375:9 | _ | | +| main.rs:371:9:371:15 | Some(...) | main.rs:371:9:371:15 | After Some(...) [no-match] | no-match | +| main.rs:371:9:371:15 | Some(...) | main.rs:371:9:371:15 | [pattern-start] Some(...) | match | +| main.rs:371:9:371:15 | [pattern-start] Some(...) | main.rs:371:14:371:14 | Before x | | +| main.rs:371:14:371:14 | After x [match] | main.rs:371:9:371:15 | After Some(...) [match] | match | +| main.rs:371:14:371:14 | Before x | main.rs:371:14:371:14 | x | | +| main.rs:371:14:371:14 | x | main.rs:371:14:371:14 | After x [match] | 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:16:373:18 | After let ... = x [true] | main.rs:374:19:374:23 | Before ... > ... | | +| main.rs:372:16:373:18 | let ... = x | main.rs:373:18:373:18 | x | | +| main.rs:372:16:374:23 | ... && ... | main.rs:372:16:373:18 | let ... = x | | +| main.rs:372:16:374:23 | After ... && ... [false] | main.rs:375:9:375:9 | _ | | +| main.rs:372:16:374:23 | After ... && ... [true] | main.rs:374:28:374:29 | TupleExpr | | +| main.rs:372:20:372:20 | After x [match] | main.rs:372:16:373:18 | After let ... = x [true] | true | +| main.rs:372:20:372:20 | Before x | main.rs:372:20:372:20 | x | | +| main.rs:372:20:372:20 | x | main.rs:372:20:372:20 | After x [match] | 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:373:18:373:18 | x | main.rs:372:20:372:20 | Before 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:19:374:23 | ... > ... | main.rs:374:19:374:23 | After ... > ... [false] | false | +| main.rs:374:19:374:23 | ... > ... | main.rs:374:19:374:23 | After ... > ... [true] | true | +| main.rs:374:19:374:23 | After ... > ... [false] | main.rs:372:16:374:23 | After ... && ... [false] | false | +| main.rs:374:19:374:23 | After ... > ... [true] | main.rs:372:16:374:23 | After ... && ... [true] | true | +| main.rs:374:19:374:23 | Before ... > ... | main.rs:374:19:374:19 | x | | | 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:374:28:374:29 | TupleExpr | main.rs:370:5:376:5 | After match x { ... } | | +| main.rs:375:9:375:9 | After _ [match] | main.rs:375:14:375:15 | TupleExpr | | +| main.rs:375:9:375:9 | _ | main.rs:375:9:375:9 | After _ [match] | match | +| main.rs:375:14:375:15 | TupleExpr | main.rs:370:5:376:5 | After match x { ... } | | +| main.rs:378:5:378:13 | print_i64 | main.rs:378:15:378:24 | Before x.unwrap() | | +| main.rs:378:5:378:25 | After print_i64(...) | main.rs:378:5:378:26 | After ExprStmt | | +| main.rs:378:5:378:25 | Before print_i64(...) | main.rs:378:5:378:13 | print_i64 | | +| main.rs:378:5:378:25 | print_i64(...) | main.rs:378:5:378:25 | After print_i64(...) | | +| main.rs:378:5:378:26 | After ExprStmt | main.rs:368:22:379:1 | After { ... } | | +| main.rs:378:5:378:26 | ExprStmt | main.rs:378:5:378:25 | Before 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:378:15:378:24 | After x.unwrap() | main.rs:378:5:378:25 | print_i64(...) | | +| main.rs:378:15:378:24 | Before x.unwrap() | main.rs:378:15:378:15 | x | | +| main.rs:378:15:378:24 | x.unwrap() | main.rs:378:15:378:24 | After x.unwrap() | | +| main.rs:381:1:396:1 | Entry | main.rs:382:22:396:1 | { ... } | | +| main.rs:381:1:396:1 | Normal Exit | main.rs:381:1:396:1 | Exit | | +| main.rs:382:22:396:1 | After { ... } | main.rs:381:1:396:1 | Normal Exit | | +| main.rs:382:22:396:1 | { ... } | main.rs:383:5:383:19 | let ... = ... | | +| main.rs:383:5:383:19 | After let ... = ... | main.rs:384:5:395:5 | if ... {...} else {...} | | +| main.rs:383:5:383:19 | let ... = ... | main.rs:383:13:383:18 | Before Ok(...) | | +| main.rs:383:9:383:9 | After x [match] | main.rs:383:5:383:19 | After let ... = ... | | +| main.rs:383:9:383:9 | Before x | main.rs:383:9:383:9 | x | | +| main.rs:383:9:383:9 | x | main.rs:383:9:383:9 | After x [match] | match | | 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:13:383:18 | After Ok(...) | main.rs:383:9:383:9 | Before x | | +| main.rs:383:13:383:18 | Before Ok(...) | main.rs:383:13:383:14 | Ok | | +| main.rs:383:13:383:18 | Ok(...) | main.rs:383:13:383:18 | After Ok(...) | | | 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:5:395:5 | After if ... {...} else {...} | main.rs:382:22:396:1 | After { ... } | | +| main.rs:384:5:395:5 | if ... {...} else {...} | main.rs:384:8:385:7 | let ... = x | | +| main.rs:384:8:385:7 | After let ... = x [false] | main.rs:389:10:395:5 | if ... {...} else {...} | | +| main.rs:384:8:385:7 | After let ... = x [true] | main.rs:386:5:388:5 | { ... } | | +| main.rs:384:8:385:7 | let ... = x | main.rs:385:7:385:7 | x | | +| main.rs:384:12:384:17 | After Err(...) [match] | main.rs:384:8:385:7 | After let ... = x [true] | true | +| main.rs:384:12:384:17 | After Err(...) [no-match] | main.rs:384:8:385:7 | After let ... = x [false] | false | +| main.rs:384:12:384:17 | Err(...) | main.rs:384:12:384:17 | After Err(...) [no-match] | no-match | +| main.rs:384:12:384:17 | Err(...) | main.rs:384:12:384:17 | [pattern-start] Err(...) | match | +| main.rs:384:12:384:17 | [pattern-start] Err(...) | main.rs:384:16:384:16 | Before x | | +| main.rs:384:16:384:16 | After x [match] | main.rs:384:12:384:17 | After Err(...) [match] | match | +| main.rs:384:16:384:16 | Before x | main.rs:384:16:384:16 | x | | +| main.rs:384:16:384:16 | x | main.rs:384:16:384:16 | After x [match] | 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:386:5:388:5 | After { ... } | main.rs:384:5:395:5 | After if ... {...} else {...} | | +| 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:386:5:388:5 | { ... } | | -| main.rs:387:9:387:21 | ExprStmt | main.rs:387:9:387:17 | print_i64 | | +| main.rs:387:9:387:20 | After print_i64(...) | main.rs:387:9:387:21 | After ExprStmt | | +| main.rs:387:9:387:20 | Before print_i64(...) | main.rs:387:9:387:17 | print_i64 | | +| main.rs:387:9:387:20 | print_i64(...) | main.rs:387:9:387:20 | After print_i64(...) | | +| main.rs:387:9:387:21 | After ExprStmt | main.rs:386:5:388:5 | After { ... } | | +| main.rs:387:9:387:21 | ExprStmt | main.rs:387:9:387:20 | Before 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:10:395:5 | After if ... {...} else {...} | main.rs:384:5:395:5 | After if ... {...} else {...} | | +| main.rs:389:10:395:5 | if ... {...} else {...} | main.rs:389:13:390:7 | let ... = x | | +| main.rs:389:13:390:7 | After let ... = x [false] | main.rs:393:12:395:5 | { ... } | | +| main.rs:389:13:390:7 | After let ... = x [true] | main.rs:391:5:393:5 | { ... } | | +| main.rs:389:13:390:7 | let ... = x | main.rs:390:7:390:7 | x | | +| main.rs:389:17:389:21 | After Ok(...) [match] | main.rs:389:13:390:7 | After let ... = x [true] | true | +| main.rs:389:17:389:21 | After Ok(...) [no-match] | main.rs:389:13:390:7 | After let ... = x [false] | false | +| main.rs:389:17:389:21 | Ok(...) | main.rs:389:17:389:21 | After Ok(...) [no-match] | no-match | +| main.rs:389:17:389:21 | Ok(...) | main.rs:389:17:389:21 | [pattern-start] Ok(...) | match | +| main.rs:389:17:389:21 | [pattern-start] Ok(...) | main.rs:389:20:389:20 | Before x | | +| main.rs:389:20:389:20 | After x [match] | main.rs:389:17:389:21 | After Ok(...) [match] | match | +| main.rs:389:20:389:20 | Before x | main.rs:389:20:389:20 | x | | +| main.rs:389:20:389:20 | x | main.rs:389:20:389:20 | After x [match] | 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:391:5:393:5 | After { ... } | main.rs:389:10:395:5 | After if ... {...} else {...} | | +| 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:391:5:393:5 | { ... } | | -| main.rs:392:9:392:21 | ExprStmt | main.rs:392:9:392:17 | print_i64 | | +| main.rs:392:9:392:20 | After print_i64(...) | main.rs:392:9:392:21 | After ExprStmt | | +| main.rs:392:9:392:20 | Before print_i64(...) | main.rs:392:9:392:17 | print_i64 | | +| main.rs:392:9:392:20 | print_i64(...) | main.rs:392:9:392:20 | After print_i64(...) | | +| main.rs:392:9:392:21 | After ExprStmt | main.rs:391:5:393:5 | After { ... } | | +| main.rs:392:9:392:21 | ExprStmt | main.rs:392:9:392:20 | Before 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:393:12:395:5 | After { ... } | main.rs:389:10:395:5 | After if ... {...} else {...} | | +| 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:28 | Before x.unwrap() | | +| main.rs:394:9:394:29 | After print_i64(...) | main.rs:394:9:394:30 | After ExprStmt | | +| main.rs:394:9:394:29 | Before print_i64(...) | main.rs:394:9:394:17 | print_i64 | | +| main.rs:394:9:394:29 | print_i64(...) | main.rs:394:9:394:29 | After print_i64(...) | | +| main.rs:394:9:394:30 | After ExprStmt | main.rs:393:12:395:5 | After { ... } | | +| main.rs:394:9:394:30 | ExprStmt | main.rs:394:9:394:29 | Before 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:394:19:394:28 | After x.unwrap() | main.rs:394:9:394:29 | print_i64(...) | | +| main.rs:394:19:394:28 | Before x.unwrap() | main.rs:394:19:394:19 | x | | +| main.rs:394:19:394:28 | x.unwrap() | main.rs:394:19:394:28 | After x.unwrap() | | +| main.rs:398:1:405:1 | Entry | main.rs:398:22:405:1 | { ... } | | +| main.rs:398:1:405:1 | Normal Exit | main.rs:398:1:405:1 | Exit | | +| main.rs:398:22:405:1 | After { ... } | main.rs:398:1:405:1 | Normal Exit | | +| main.rs:398:22:405:1 | { ... } | main.rs:399:5:399:20 | let ... = ... | | +| main.rs:399:5:399:20 | After let ... = ... | main.rs:400:5:404:10 | ExprStmt | | +| main.rs:399:5:399:20 | let ... = ... | main.rs:399:13:399:19 | Before Some(...) | | +| main.rs:399:9:399:9 | After x [match] | main.rs:399:5:399:20 | After let ... = ... | | +| main.rs:399:9:399:9 | Before x | main.rs:399:9:399:9 | x | | +| main.rs:399:9:399:9 | x | main.rs:399:9:399:9 | After x [match] | match | | 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:13:399:19 | After Some(...) | main.rs:399:9:399:9 | Before x | | +| main.rs:399:13:399:19 | Before Some(...) | main.rs:399:13:399:16 | Some | | +| main.rs:399:13:399:19 | Some(...) | main.rs:399:13:399:19 | After Some(...) | | | 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:5:404:9 | After match x { ... } | main.rs:400:5:404:10 | After ExprStmt | | +| main.rs:400:5:404:9 | match x { ... } | main.rs:400:11:400:11 | x | | +| main.rs:400:5:404:10 | After ExprStmt | main.rs:398:22:405:1 | After { ... } | | +| main.rs:400:5:404:10 | ExprStmt | main.rs:400:5:404:9 | match 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:13:401:19 | After Some(...) [match] | main.rs:402:20:402:20 | x | | +| main.rs:401:13:401:19 | After Some(...) [no-match] | main.rs:403:13:403:13 | _ | | +| main.rs:401:13:401:19 | Some(...) | main.rs:401:13:401:19 | After Some(...) [no-match] | no-match | +| main.rs:401:13:401:19 | Some(...) | main.rs:401:13:401:19 | [pattern-start] Some(...) | match | +| main.rs:401:13:401:19 | [pattern-start] Some(...) | main.rs:401:18:401:18 | Before x | | +| main.rs:401:18:401:18 | After x [match] | main.rs:401:13:401:19 | After Some(...) [match] | match | +| main.rs:401:18:401:18 | Before x | main.rs:401:18:401:18 | x | | +| main.rs:401:18:401:18 | x | main.rs:401:18:401:18 | After x [match] | 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:402:20:402:20 | x | main.rs:400:5:404:9 | After match x { ... } | | +| main.rs:403:13:403:13 | After _ [match] | main.rs:403:18:403:18 | 0 | | +| main.rs:403:13:403:13 | _ | main.rs:403:13:403:13 | After _ [match] | match | +| main.rs:403:18:403:18 | 0 | main.rs:400:5:404:9 | After match x { ... } | | +| main.rs:407:1:417:1 | Entry | main.rs:407:22:417:1 | { ... } | | +| main.rs:407:1:417:1 | Normal Exit | main.rs:407:1:417:1 | Exit | | +| main.rs:407:22:417:1 | After { ... } | main.rs:407:1:417:1 | Normal Exit | | +| main.rs:407:22:417:1 | { ... } | main.rs:408:5:408:21 | let ... = ... | | +| main.rs:408:5:408:21 | After let ... = ... | main.rs:409:5:416:5 | match x { ... } | | +| main.rs:408:5:408:21 | let ... = ... | main.rs:408:13:408:20 | Before Some(...) | | +| main.rs:408:9:408:9 | After x [match] | main.rs:408:5:408:21 | After let ... = ... | | +| main.rs:408:9:408:9 | Before x | main.rs:408:9:408:9 | x | | +| main.rs:408:9:408:9 | x | main.rs:408:9:408:9 | After x [match] | match | | 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:13:408:20 | After Some(...) | main.rs:408:9:408:9 | Before x | | +| main.rs:408:13:408:20 | Before Some(...) | main.rs:408:13:408:16 | Some | | +| main.rs:408:13:408:20 | Some(...) | main.rs:408:13:408:20 | After Some(...) | | | 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:5:416:5 | After match x { ... } | main.rs:407:22:417:1 | After { ... } | | +| main.rs:409:5:416:5 | match x { ... } | main.rs:409:11:409:11 | x | | | 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:9:410:15 | After Some(...) [match] | main.rs:411:16:413:23 | ... && ... | | +| main.rs:410:9:410:15 | After Some(...) [no-match] | main.rs:415:9:415:9 | _ | | +| main.rs:410:9:410:15 | Some(...) | main.rs:410:9:410:15 | After Some(...) [no-match] | no-match | +| main.rs:410:9:410:15 | Some(...) | main.rs:410:9:410:15 | [pattern-start] Some(...) | match | +| main.rs:410:9:410:15 | [pattern-start] Some(...) | main.rs:410:14:410:14 | Before y | | +| main.rs:410:14:410:14 | After y [match] | main.rs:410:9:410:15 | After Some(...) [match] | match | +| main.rs:410:14:410:14 | Before y | main.rs:410:14:410:14 | y | | +| main.rs:410:14:410:14 | y | main.rs:410:14:410:14 | After y [match] | 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:16:411:20 | ... > ... | main.rs:411:16:411:20 | After ... > ... [false] | false | +| main.rs:411:16:411:20 | ... > ... | main.rs:411:16:411:20 | After ... > ... [true] | true | +| main.rs:411:16:411:20 | After ... > ... [false] | main.rs:411:16:413:23 | After ... && ... [false] | false | +| main.rs:411:16:411:20 | After ... > ... [true] | main.rs:412:13:413:23 | let ... = ... | | +| main.rs:411:16:411:20 | Before ... > ... | main.rs:411:16:411:16 | y | | +| main.rs:411:16:413:23 | ... && ... | main.rs:411:16:411:20 | Before ... > ... | | +| main.rs:411:16:413:23 | After ... && ... [false] | main.rs:415:9:415:9 | _ | | +| main.rs:411:16:413:23 | After ... && ... [true] | main.rs:414:16:414:27 | Before print_i64(...) | | | 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:13:413:23 | After let ... = ... [false] | main.rs:411:16:413:23 | After ... && ... [false] | false | +| main.rs:412:13:413:23 | After let ... = ... [true] | main.rs:411:16:413:23 | After ... && ... [true] | true | +| main.rs:412:13:413:23 | let ... = ... | main.rs:413:17:413:23 | Before Some(...) | | +| main.rs:412:17:412:23 | After Some(...) [match] | main.rs:412:13:413:23 | After let ... = ... [true] | true | +| main.rs:412:17:412:23 | After Some(...) [no-match] | main.rs:412:13:413:23 | After let ... = ... [false] | false | +| main.rs:412:17:412:23 | Some(...) | main.rs:412:17:412:23 | After Some(...) [no-match] | no-match | +| main.rs:412:17:412:23 | Some(...) | main.rs:412:17:412:23 | [pattern-start] Some(...) | match | +| main.rs:412:17:412:23 | [pattern-start] Some(...) | main.rs:412:22:412:22 | Before y | | +| main.rs:412:22:412:22 | After y [match] | main.rs:412:17:412:23 | After Some(...) [match] | match | +| main.rs:412:22:412:22 | Before y | main.rs:412:22:412:22 | y | | +| main.rs:412:22:412:22 | y | main.rs:412:22:412:22 | After y [match] | 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:17:413:23 | After Some(...) | main.rs:412:17:412:23 | Some(...) | | +| main.rs:413:17:413:23 | Before Some(...) | main.rs:413:17:413:20 | Some | | +| main.rs:413:17:413:23 | Some(...) | main.rs:413:17:413:23 | After 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:16:414:27 | After print_i64(...) | main.rs:409:5:416:5 | After match x { ... } | | +| main.rs:414:16:414:27 | Before print_i64(...) | main.rs:414:16:414:24 | print_i64 | | +| main.rs:414:16:414:27 | print_i64(...) | main.rs:414:16:414:27 | After print_i64(...) | | | 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:415:9:415:9 | After _ [match] | main.rs:415:14:415:15 | { ... } | | +| main.rs:415:9:415:9 | _ | main.rs:415:9:415:9 | After _ [match] | match | +| main.rs:415:14:415:15 | { ... } | main.rs:409:5:416:5 | After match x { ... } | | +| main.rs:419:1:429:1 | Entry | main.rs:420:5:420:12 | Before ...: ... | | +| main.rs:419:1:429:1 | Normal Exit | main.rs:419:1:429:1 | Exit | | +| main.rs:420:5:420:6 | After a8 [match] | main.rs:420:5:420:12 | ...: ... | | +| main.rs:420:5:420:6 | Before a8 | main.rs:420:5:420:6 | a8 | | +| main.rs:420:5:420:6 | a8 | main.rs:420:5:420:6 | After a8 [match] | match | | 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:420:5:420:12 | ...: ... | main.rs:420:5:420:12 | After ...: ... | | +| main.rs:420:5:420:12 | After ...: ... | main.rs:421:5:424:19 | Before ...: ... | | +| main.rs:420:5:420:12 | Before ...: ... | main.rs:420:5:420:6 | Before a8 | | +| main.rs:421:5:424:5 | After TuplePat [match] | main.rs:421:5:424:19 | ...: ... | | +| main.rs:421:5:424:5 | TuplePat | main.rs:421:5:424:5 | [pattern-start] TuplePat | match | +| main.rs:421:5:424:5 | [pattern-start] TuplePat | main.rs:422:9:422:10 | Before b3 | | +| main.rs:421:5:424:19 | ...: ... | main.rs:421:5:424:19 | After ...: ... | | +| main.rs:421:5:424:19 | After ...: ... | main.rs:425:9:429:1 | { ... } | | +| main.rs:421:5:424:19 | Before ...: ... | main.rs:421:5:424:5 | TuplePat | | +| main.rs:422:9:422:10 | After b3 [match] | main.rs:423:9:423:10 | Before c1 | | +| main.rs:422:9:422:10 | Before b3 | main.rs:422:9:422:10 | b3 | | +| main.rs:422:9:422:10 | b3 | main.rs:422:9:422:10 | After b3 [match] | match | | 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 | After c1 [match] | main.rs:421:5:424:5 | After TuplePat [match] | match | +| main.rs:423:9:423:10 | Before c1 | main.rs:423:9:423:10 | c1 | | +| main.rs:423:9:423:10 | c1 | main.rs:423:9:423:10 | After c1 [match] | 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:425:9:429:1 | After { ... } | main.rs:419:1:429:1 | Normal Exit | | +| main.rs:425:9:429:1 | { ... } | 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:18 | ExprStmt | | -| main.rs:426:5:426:18 | ExprStmt | main.rs:426:5:426:13 | print_str | | +| main.rs:426:5:426:17 | After print_str(...) | main.rs:426:5:426:18 | After ExprStmt | | +| main.rs:426:5:426:17 | Before print_str(...) | main.rs:426:5:426:13 | print_str | | +| main.rs:426:5:426:17 | print_str(...) | main.rs:426:5:426:17 | After print_str(...) | | +| main.rs:426:5:426:18 | After ExprStmt | main.rs:427:5:427:18 | ExprStmt | | +| main.rs:426:5:426:18 | ExprStmt | main.rs:426:5:426:17 | Before 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:5:427:17 | After print_str(...) | main.rs:427:5:427:18 | After ExprStmt | | +| main.rs:427:5:427:17 | Before print_str(...) | main.rs:427:5:427:13 | print_str | | +| main.rs:427:5:427:17 | print_str(...) | main.rs:427:5:427:17 | After print_str(...) | | +| main.rs:427:5:427:18 | After ExprStmt | main.rs:428:5:428:18 | ExprStmt | | +| main.rs:427:5:427:18 | ExprStmt | main.rs:427:5:427:17 | Before 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:5:428:17 | After print_str(...) | main.rs:428:5:428:18 | After ExprStmt | | +| main.rs:428:5:428:17 | Before print_str(...) | main.rs:428:5:428:13 | print_str | | +| main.rs:428:5:428:17 | print_str(...) | main.rs:428:5:428:17 | After print_str(...) | | +| main.rs:428:5:428:18 | After ExprStmt | main.rs:425:9:429:1 | After { ... } | | +| main.rs:428:5:428:18 | ExprStmt | main.rs:428:5:428:17 | Before 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:1:434:1 | Entry | main.rs:431:19:431:64 | Before ...: Either | | +| main.rs:431:1:434:1 | Normal Exit | main.rs:431:1:434:1 | Exit | | +| main.rs:431:19:431:64 | ...: Either | main.rs:431:19:431:64 | After ...: Either | | +| main.rs:431:19:431:64 | After ...: Either | main.rs:432:9:434:1 | { ... } | | +| main.rs:431:19:431:64 | Before ...: Either | main.rs:431:20:431:55 | ... \| ... | | +| main.rs:431:20:431:35 | ...::Left(...) | main.rs:431:20:431:35 | After ...::Left(...) [no-match] | no-match | +| main.rs:431:20:431:35 | ...::Left(...) | main.rs:431:20:431:35 | [pattern-start] ...::Left(...) | match | +| main.rs:431:20:431:35 | After ...::Left(...) [match] | main.rs:431:20:431:55 | After ... \| ... [match] | match | +| main.rs:431:20:431:35 | After ...::Left(...) [no-match] | main.rs:431:39:431:55 | ...::Right(...) | | +| main.rs:431:20:431:35 | [pattern-start] ...::Left(...) | main.rs:431:33:431:34 | Before a9 | | +| main.rs:431:20:431:55 | ... \| ... | main.rs:431:20:431:35 | ...::Left(...) | | +| main.rs:431:20:431:55 | After ... \| ... [match] | main.rs:431:19:431:64 | ...: Either | | +| main.rs:431:33:431:34 | After a9 [match] | main.rs:431:20:431:35 | After ...::Left(...) [match] | match | +| main.rs:431:33:431:34 | Before a9 | main.rs:431:33:431:34 | a9 | | +| main.rs:431:33:431:34 | a9 | main.rs:431:33:431:34 | After a9 [match] | 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:39:431:55 | ...::Right(...) | main.rs:431:39:431:55 | [pattern-start] ...::Right(...) | match | +| main.rs:431:39:431:55 | After ...::Right(...) [match] | main.rs:431:20:431:55 | After ... \| ... [match] | match | +| main.rs:431:39:431:55 | [pattern-start] ...::Right(...) | main.rs:431:53:431:54 | Before a9 | | +| main.rs:431:53:431:54 | After a9 [match] | main.rs:431:39:431:55 | After ...::Right(...) [match] | match | +| main.rs:431:53:431:54 | Before a9 | main.rs:431:53:431:54 | a9 | | +| main.rs:431:53:431:54 | a9 | main.rs:431:53:431:54 | After a9 [match] | 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:432:9:434:1 | After { ... } | main.rs:431:1:434:1 | Normal Exit | | +| 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:432:9:434:1 | { ... } | | -| main.rs:433:5:433:18 | ExprStmt | main.rs:433:5:433:13 | print_i64 | | +| main.rs:433:5:433:17 | After print_i64(...) | main.rs:433:5:433:18 | After ExprStmt | | +| main.rs:433:5:433:17 | Before print_i64(...) | main.rs:433:5:433:13 | print_i64 | | +| main.rs:433:5:433:17 | print_i64(...) | main.rs:433:5:433:17 | After print_i64(...) | | +| main.rs:433:5:433:18 | After ExprStmt | main.rs:432:9:434:1 | After { ... } | | +| main.rs:433:5:433:18 | ExprStmt | main.rs:433:5:433:17 | Before 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:436:1:471:1 | Entry | main.rs:436:26:471:1 | { ... } | | +| main.rs:436:1:471:1 | Normal Exit | main.rs:436:1:471:1 | Exit | | +| main.rs:436:26:471:1 | After { ... } | main.rs:436:1:471:1 | Normal Exit | | +| main.rs:436:26:471:1 | { ... } | main.rs:437:5:441:18 | let ... = ... | | +| main.rs:437:5:441:18 | After let ... = ... | main.rs:442:5:442:19 | ExprStmt | | +| main.rs:437:5:441:18 | let ... = ... | main.rs:441:9:441:17 | Before TupleExpr | | +| main.rs:437:9:441:5 | After TuplePat [match] | main.rs:437:5:441:18 | After let ... = ... | | +| main.rs:437:9:441:5 | TuplePat | main.rs:437:9:441:5 | [pattern-start] TuplePat | match | +| main.rs:437:9:441:5 | [pattern-start] TuplePat | main.rs:438:9:438:15 | Before mut a10 | | +| main.rs:438:9:438:15 | After mut a10 [match] | main.rs:439:9:439:14 | Before mut b4 | | +| main.rs:438:9:438:15 | Before mut a10 | main.rs:438:13:438:15 | a10 | | +| main.rs:438:9:438:15 | mut a10 | main.rs:438:9:438:15 | After mut a10 [match] | 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:9:439:14 | After mut b4 [match] | main.rs:440:9:440:14 | Before mut c2 | | +| main.rs:439:9:439:14 | Before mut b4 | main.rs:439:13:439:14 | b4 | | +| main.rs:439:9:439:14 | mut b4 | main.rs:439:9:439:14 | After mut b4 [match] | 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:9:440:14 | After mut c2 [match] | main.rs:437:9:441:5 | After TuplePat [match] | match | +| main.rs:440:9:440:14 | Before mut c2 | main.rs:440:13:440:14 | c2 | | +| main.rs:440:9:440:14 | mut c2 | main.rs:440:9:440:14 | After mut c2 [match] | 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:9:441:17 | After TupleExpr | main.rs:437:9:441:5 | TuplePat | | +| main.rs:441:9:441:17 | Before TupleExpr | main.rs:441:10:441:10 | 1 | | +| main.rs:441:9:441:17 | TupleExpr | main.rs:441:9:441:17 | After TupleExpr | | | 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:5:442:18 | After print_i64(...) | main.rs:442:5:442:19 | After ExprStmt | | +| main.rs:442:5:442:18 | Before print_i64(...) | main.rs:442:5:442:13 | print_i64 | | +| main.rs:442:5:442:18 | print_i64(...) | main.rs:442:5:442:18 | After print_i64(...) | | +| main.rs:442:5:442:19 | After ExprStmt | main.rs:443:5:443:18 | ExprStmt | | +| main.rs:442:5:442:19 | ExprStmt | main.rs:442:5:442:18 | Before 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:5:443:17 | After print_i64(...) | main.rs:443:5:443:18 | After ExprStmt | | +| main.rs:443:5:443:17 | Before print_i64(...) | main.rs:443:5:443:13 | print_i64 | | +| main.rs:443:5:443:17 | print_i64(...) | main.rs:443:5:443:17 | After print_i64(...) | | +| main.rs:443:5:443:18 | After ExprStmt | main.rs:444:5:444:18 | ExprStmt | | +| main.rs:443:5:443:18 | ExprStmt | main.rs:443:5:443:17 | Before print_i64(...) | | | 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:5:444:17 | After print_i64(...) | main.rs:444:5:444:18 | After ExprStmt | | +| main.rs:444:5:444:17 | Before print_i64(...) | main.rs:444:5:444:13 | print_i64 | | +| main.rs:444:5:444:17 | print_i64(...) | main.rs:444:5:444:17 | After print_i64(...) | | +| main.rs:444:5:444:18 | After ExprStmt | main.rs:446:5:454:6 | ExprStmt | | +| main.rs:444:5:444:18 | ExprStmt | main.rs:444:5:444:17 | Before 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:446:5:450:5 | After TupleExpr | main.rs:450:9:454:5 | Before TupleExpr | | +| main.rs:446:5:450:5 | Before TupleExpr | main.rs:447:9:447:10 | c2 | | +| main.rs:446:5:450:5 | TupleExpr | main.rs:446:5:450:5 | After TupleExpr | | +| main.rs:446:5:454:5 | ... = ... | main.rs:446:5:454:5 | After ... = ... | | +| main.rs:446:5:454:5 | After ... = ... | main.rs:446:5:454:6 | After ExprStmt | | +| main.rs:446:5:454:5 | Before ... = ... | main.rs:446:5:450:5 | Before TupleExpr | | +| main.rs:446:5:454:6 | After ExprStmt | main.rs:455:5:455:19 | ExprStmt | | +| main.rs:446:5:454:6 | ExprStmt | main.rs:446:5:454:5 | Before ... = ... | | | 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:450:9:454:5 | After TupleExpr | main.rs:446:5:454:5 | ... = ... | | +| main.rs:450:9:454:5 | Before TupleExpr | main.rs:451:9:451:11 | a10 | | +| main.rs:450:9:454:5 | TupleExpr | main.rs:450:9:454:5 | After TupleExpr | | | 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:5:455:18 | After print_i64(...) | main.rs:455:5:455:19 | After ExprStmt | | +| main.rs:455:5:455:18 | Before print_i64(...) | main.rs:455:5:455:13 | print_i64 | | +| main.rs:455:5:455:18 | print_i64(...) | main.rs:455:5:455:18 | After print_i64(...) | | +| main.rs:455:5:455:19 | After ExprStmt | main.rs:456:5:456:18 | ExprStmt | | +| main.rs:455:5:455:19 | ExprStmt | main.rs:455:5:455:18 | Before 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:5:456:17 | After print_i64(...) | main.rs:456:5:456:18 | After ExprStmt | | +| main.rs:456:5:456:17 | Before print_i64(...) | main.rs:456:5:456:13 | print_i64 | | +| main.rs:456:5:456:17 | print_i64(...) | main.rs:456:5:456:17 | After print_i64(...) | | +| main.rs:456:5:456:18 | After ExprStmt | main.rs:457:5:457:18 | ExprStmt | | +| main.rs:456:5:456:18 | ExprStmt | main.rs:456:5:456:17 | Before 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:5:457:17 | After print_i64(...) | main.rs:457:5:457:18 | After ExprStmt | | +| main.rs:457:5:457:17 | Before print_i64(...) | main.rs:457:5:457:13 | print_i64 | | +| main.rs:457:5:457:17 | print_i64(...) | main.rs:457:5:457:17 | After print_i64(...) | | +| main.rs:457:5:457:18 | After ExprStmt | main.rs:459:5:467:5 | ExprStmt | | +| main.rs:457:5:457:18 | ExprStmt | main.rs:457:5:457:17 | Before 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:5:467:5 | After ExprStmt | main.rs:469:5:469:19 | ExprStmt | | +| main.rs:459:5:467:5 | After match ... { ... } | main.rs:459:5:467:5 | After ExprStmt | | +| main.rs:459:5:467:5 | ExprStmt | main.rs:459:5:467:5 | match ... { ... } | | +| main.rs:459:5:467:5 | match ... { ... } | main.rs:459:11:459:16 | Before TupleExpr | | +| main.rs:459:11:459:16 | After TupleExpr | main.rs:460:9:463:9 | TuplePat | | +| main.rs:459:11:459:16 | Before TupleExpr | main.rs:459:12:459:12 | 4 | | +| main.rs:459:11:459:16 | TupleExpr | main.rs:459:11:459:16 | After TupleExpr | | | 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:460:9:463:9 | After TuplePat [match] | main.rs:463:14:466:9 | { ... } | | +| main.rs:460:9:463:9 | TuplePat | main.rs:460:9:463:9 | [pattern-start] TuplePat | match | +| main.rs:460:9:463:9 | [pattern-start] TuplePat | main.rs:461:13:461:15 | Before a10 | | +| main.rs:461:13:461:15 | After a10 [match] | main.rs:462:13:462:14 | Before b4 | | +| main.rs:461:13:461:15 | Before a10 | main.rs:461:13:461:15 | a10 | | +| main.rs:461:13:461:15 | a10 | main.rs:461:13:461:15 | After a10 [match] | 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 | After b4 [match] | main.rs:460:9:463:9 | After TuplePat [match] | match | +| main.rs:462:13:462:14 | Before b4 | main.rs:462:13:462:14 | b4 | | +| main.rs:462:13:462:14 | b4 | main.rs:462:13:462:14 | After b4 [match] | 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:463:14:466:9 | After { ... } | main.rs:459:5:467:5 | After match ... { ... } | | +| main.rs:463:14:466:9 | { ... } | 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:26 | ExprStmt | | -| main.rs:464:13:464:27 | ExprStmt | main.rs:464:13:464:21 | print_i64 | | +| main.rs:464:13:464:26 | After print_i64(...) | main.rs:464:13:464:27 | After ExprStmt | | +| main.rs:464:13:464:26 | Before print_i64(...) | main.rs:464:13:464:21 | print_i64 | | +| main.rs:464:13:464:26 | print_i64(...) | main.rs:464:13:464:26 | After print_i64(...) | | +| main.rs:464:13:464:27 | After ExprStmt | main.rs:465:13:465:26 | ExprStmt | | +| main.rs:464:13:464:27 | ExprStmt | main.rs:464:13:464:26 | Before 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:13:465:25 | After print_i64(...) | main.rs:465:13:465:26 | After ExprStmt | | +| main.rs:465:13:465:25 | Before print_i64(...) | main.rs:465:13:465:21 | print_i64 | | +| main.rs:465:13:465:25 | print_i64(...) | main.rs:465:13:465:25 | After print_i64(...) | | +| main.rs:465:13:465:26 | After ExprStmt | main.rs:463:14:466:9 | After { ... } | | +| main.rs:465:13:465:26 | ExprStmt | main.rs:465:13:465:25 | Before 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:5:469:18 | After print_i64(...) | main.rs:469:5:469:19 | After ExprStmt | | +| main.rs:469:5:469:18 | Before print_i64(...) | main.rs:469:5:469:13 | print_i64 | | +| main.rs:469:5:469:18 | print_i64(...) | main.rs:469:5:469:18 | After print_i64(...) | | +| main.rs:469:5:469:19 | After ExprStmt | main.rs:470:5:470:18 | ExprStmt | | +| main.rs:469:5:469:19 | ExprStmt | main.rs:469:5:469:18 | Before 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:5:470:17 | After print_i64(...) | main.rs:470:5:470:18 | After ExprStmt | | +| main.rs:470:5:470:17 | Before print_i64(...) | main.rs:470:5:470:13 | print_i64 | | +| main.rs:470:5:470:17 | print_i64(...) | main.rs:470:5:470:17 | After print_i64(...) | | +| main.rs:470:5:470:18 | After ExprStmt | main.rs:436:26:471:1 | After { ... } | | +| main.rs:470:5:470:18 | ExprStmt | main.rs:470:5:470:17 | Before 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:473:1:488:1 | Entry | main.rs:473:23:488:1 | { ... } | | +| main.rs:473:1:488:1 | Normal Exit | main.rs:473:1:488:1 | Exit | | +| main.rs:473:23:488:1 | After { ... } | main.rs:473:1:488:1 | Normal Exit | | +| main.rs:473:23:488:1 | { ... } | main.rs:474:5:476:10 | let ... = ... | | +| main.rs:474:5:476:10 | After let ... = ... | main.rs:477:5:478:27 | let ... = ... | | | main.rs:474:5:476:10 | let ... = ... | main.rs:475:9:476:9 | \|...\| x | | +| main.rs:474:9:474:23 | After example_closure [match] | main.rs:474:5:476:10 | After let ... = ... | | +| main.rs:474:9:474:23 | Before example_closure | main.rs:474:9:474:23 | example_closure | | +| main.rs:474:9:474:23 | example_closure | main.rs:474:9:474:23 | After example_closure [match] | match | | 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:9:476:9 | Entry | main.rs:475:10:475:15 | Before ...: i64 | | +| main.rs:475:9:476:9 | Normal Exit | main.rs:475:9:476:9 | Exit | | +| main.rs:475:9:476:9 | \|...\| x | main.rs:474:9:474:23 | Before example_closure | | +| main.rs:475:10:475:10 | After x [match] | main.rs:475:10:475:15 | ...: i64 | | +| main.rs:475:10:475:10 | Before x | main.rs:475:10:475:10 | x | | +| main.rs:475:10:475:10 | x | main.rs:475:10:475:10 | After x [match] | match | | 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:475:10:475:15 | ...: i64 | main.rs:475:10:475:15 | After ...: i64 | | +| main.rs:475:10:475:15 | After ...: i64 | main.rs:476:9:476:9 | x | | +| main.rs:475:10:475:15 | Before ...: i64 | main.rs:475:10:475:10 | Before x | | +| main.rs:476:9:476:9 | x | main.rs:475:9:476:9 | Normal Exit | | +| main.rs:477:5:478:27 | After let ... = ... | main.rs:479:5:479:18 | ExprStmt | | +| main.rs:477:5:478:27 | let ... = ... | main.rs:478:9:478:26 | Before example_closure(...) | | +| main.rs:477:9:477:10 | After n1 [match] | main.rs:477:5:478:27 | After let ... = ... | | +| main.rs:477:9:477:10 | Before n1 | main.rs:477:9:477:10 | n1 | | +| main.rs:477:9:477:10 | n1 | main.rs:477:9:477:10 | After n1 [match] | match | | 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:9:478:26 | After example_closure(...) | main.rs:477:9:477:10 | Before n1 | | +| main.rs:478:9:478:26 | Before example_closure(...) | main.rs:478:9:478:23 | example_closure | | +| main.rs:478:9:478:26 | example_closure(...) | main.rs:478:9:478:26 | After example_closure(...) | | | 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:5:479:17 | After print_i64(...) | main.rs:479:5:479:18 | After ExprStmt | | +| main.rs:479:5:479:17 | Before print_i64(...) | main.rs:479:5:479:13 | print_i64 | | +| main.rs:479:5:479:17 | print_i64(...) | main.rs:479:5:479:17 | After print_i64(...) | | +| main.rs:479:5:479:18 | After ExprStmt | main.rs:481:5:481:25 | ExprStmt | | +| main.rs:479:5:479:18 | ExprStmt | main.rs:479:5:479:17 | Before 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:481:5:481:24 | After immutable_variable(...) | main.rs:481:5:481:25 | After ExprStmt | | +| main.rs:481:5:481:24 | Before immutable_variable(...) | main.rs:481:5:481:22 | immutable_variable | | +| main.rs:481:5:481:24 | immutable_variable(...) | main.rs:481:5:481:24 | After immutable_variable(...) | | +| main.rs:481:5:481:25 | After ExprStmt | main.rs:482:5:484:10 | let ... = ... | | +| main.rs:481:5:481:25 | ExprStmt | main.rs:481:5:481:24 | Before immutable_variable(...) | | +| main.rs:482:5:484:10 | After let ... = ... | main.rs:485:5:486:30 | let ... = ... | | | main.rs:482:5:484:10 | let ... = ... | main.rs:483:5:484:9 | \|...\| x | | +| main.rs:482:9:482:26 | After immutable_variable [match] | main.rs:482:5:484:10 | After let ... = ... | | +| main.rs:482:9:482:26 | Before immutable_variable | main.rs:482:9:482:26 | immutable_variable | | +| main.rs:482:9:482:26 | immutable_variable | main.rs:482:9:482:26 | After immutable_variable [match] | match | | 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:5:484:9 | Entry | main.rs:483:6:483:11 | Before ...: i64 | | +| main.rs:483:5:484:9 | Normal Exit | main.rs:483:5:484:9 | Exit | | +| main.rs:483:5:484:9 | \|...\| x | main.rs:482:9:482:26 | Before immutable_variable | | +| main.rs:483:6:483:6 | After x [match] | main.rs:483:6:483:11 | ...: i64 | | +| main.rs:483:6:483:6 | Before x | main.rs:483:6:483:6 | x | | +| main.rs:483:6:483:6 | x | main.rs:483:6:483:6 | After x [match] | match | | 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:483:6:483:11 | ...: i64 | main.rs:483:6:483:11 | After ...: i64 | | +| main.rs:483:6:483:11 | After ...: i64 | main.rs:484:9:484:9 | x | | +| main.rs:483:6:483:11 | Before ...: i64 | main.rs:483:6:483:6 | Before x | | +| main.rs:484:9:484:9 | x | main.rs:483:5:484:9 | Normal Exit | | +| main.rs:485:5:486:30 | After let ... = ... | main.rs:487:5:487:18 | ExprStmt | | +| main.rs:485:5:486:30 | let ... = ... | main.rs:486:9:486:29 | Before immutable_variable(...) | | +| main.rs:485:9:485:10 | After n2 [match] | main.rs:485:5:486:30 | After let ... = ... | | +| main.rs:485:9:485:10 | Before n2 | main.rs:485:9:485:10 | n2 | | +| main.rs:485:9:485:10 | n2 | main.rs:485:9:485:10 | After n2 [match] | match | | 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:9:486:29 | After immutable_variable(...) | main.rs:485:9:485:10 | Before n2 | | +| main.rs:486:9:486:29 | Before immutable_variable(...) | main.rs:486:9:486:26 | immutable_variable | | +| main.rs:486:9:486:29 | immutable_variable(...) | main.rs:486:9:486:29 | After immutable_variable(...) | | | 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:5:487:17 | After print_i64(...) | main.rs:487:5:487:18 | After ExprStmt | | +| main.rs:487:5:487:17 | Before print_i64(...) | main.rs:487:5:487:13 | print_i64 | | +| main.rs:487:5:487:17 | print_i64(...) | main.rs:487:5:487:17 | After print_i64(...) | | +| main.rs:487:5:487:18 | After ExprStmt | main.rs:473:23:488:1 | After { ... } | | +| main.rs:487:5:487:18 | ExprStmt | main.rs:487:5:487:17 | Before 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:490:1:520:1 | Entry | main.rs:490:22:520:1 | { ... } | | +| main.rs:490:1:520:1 | Normal Exit | main.rs:490:1:520:1 | Exit | | +| main.rs:490:22:520:1 | After { ... } | main.rs:490:1:520:1 | Normal Exit | | +| main.rs:490:22:520:1 | { ... } | main.rs:492:5:494:10 | let ... = ... | | +| main.rs:492:5:494:10 | After let ... = ... | main.rs:495:5:495:20 | ExprStmt | | | main.rs:492:5:494:10 | let ... = ... | main.rs:493:9:494:9 | \|...\| x | | +| main.rs:492:9:492:9 | After f [match] | main.rs:492:5:494:10 | After let ... = ... | | +| main.rs:492:9:492:9 | Before f | main.rs:492:9:492:9 | f | | +| main.rs:492:9:492:9 | f | main.rs:492:9:492:9 | After f [match] | match | | 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:9:494:9 | Entry | main.rs:493:10:493:15 | Before ...: i64 | | +| main.rs:493:9:494:9 | Normal Exit | main.rs:493:9:494:9 | Exit | | +| main.rs:493:9:494:9 | \|...\| x | main.rs:492:9:492:9 | Before f | | +| main.rs:493:10:493:10 | After x [match] | main.rs:493:10:493:15 | ...: i64 | | +| main.rs:493:10:493:10 | Before x | main.rs:493:10:493:10 | x | | +| main.rs:493:10:493:10 | x | main.rs:493:10:493:10 | After x [match] | match | | 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:493:10:493:15 | ...: i64 | main.rs:493:10:493:15 | After ...: i64 | | +| main.rs:493:10:493:15 | After ...: i64 | main.rs:494:9:494:9 | x | | +| main.rs:493:10:493:15 | Before ...: i64 | main.rs:493:10:493:10 | Before x | | +| main.rs:494:9:494:9 | x | main.rs:493:9:494:9 | Normal Exit | | +| main.rs:495:5:495:13 | print_i64 | main.rs:495:15:495:18 | Before f(...) | | +| main.rs:495:5:495:19 | After print_i64(...) | main.rs:495:5:495:20 | After ExprStmt | | +| main.rs:495:5:495:19 | Before print_i64(...) | main.rs:495:5:495:13 | print_i64 | | +| main.rs:495:5:495:19 | print_i64(...) | main.rs:495:5:495:19 | After print_i64(...) | | +| main.rs:495:5:495:20 | After ExprStmt | main.rs:497:5:500:5 | fn f | | +| main.rs:495:5:495:20 | ExprStmt | main.rs:495:5:495:19 | Before 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:15:495:18 | After f(...) | main.rs:495:5:495:19 | print_i64(...) | | +| main.rs:495:15:495:18 | Before f(...) | main.rs:495:15:495:15 | f | | +| main.rs:495:15:495:18 | f(...) | main.rs:495:15:495:18 | After f(...) | | | 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 | Entry | main.rs:497:10:497:15 | Before ...: i64 | | +| main.rs:497:5:500:5 | Normal Exit | main.rs:497:5:500:5 | Exit | | | main.rs:497:5:500:5 | fn f | main.rs:502:5:502:20 | ExprStmt | | +| main.rs:497:10:497:10 | After x [match] | main.rs:497:10:497:15 | ...: i64 | | +| main.rs:497:10:497:10 | Before x | main.rs:497:10:497:10 | x | | +| main.rs:497:10:497:10 | x | main.rs:497:10:497:10 | After x [match] | match | | 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:497:10:497:15 | ...: i64 | main.rs:497:10:497:15 | After ...: i64 | | +| main.rs:497:10:497:15 | After ...: i64 | main.rs:498:5:500:5 | { ... } | | +| main.rs:497:10:497:15 | Before ...: i64 | main.rs:497:10:497:10 | Before x | | +| main.rs:498:5:500:5 | After { ... } | main.rs:497:5:500:5 | Normal Exit | | +| main.rs:498:5:500:5 | { ... } | main.rs:499:9:499:13 | Before ... + ... | | | 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:9:499:13 | ... + ... | main.rs:499:9:499:13 | After ... + ... | | +| main.rs:499:9:499:13 | After ... + ... | main.rs:498:5:500:5 | After { ... } | | +| main.rs:499:9:499:13 | Before ... + ... | main.rs:499:9:499:9 | x | | | 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:5:502:13 | print_i64 | main.rs:502:15:502:18 | Before f(...) | | +| main.rs:502:5:502:19 | After print_i64(...) | main.rs:502:5:502:20 | After ExprStmt | | +| main.rs:502:5:502:19 | Before print_i64(...) | main.rs:502:5:502:13 | print_i64 | | +| main.rs:502:5:502:19 | print_i64(...) | main.rs:502:5:502:19 | After print_i64(...) | | +| main.rs:502:5:502:20 | After ExprStmt | main.rs:504:5:519:5 | { ... } | | +| main.rs:502:5:502:20 | ExprStmt | main.rs:502:5:502:19 | Before 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:15:502:18 | After f(...) | main.rs:502:5:502:19 | print_i64(...) | | +| main.rs:502:15:502:18 | Before f(...) | main.rs:502:15:502:15 | f | | +| main.rs:502:15:502:18 | f(...) | main.rs:502:15:502:18 | After f(...) | | | 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:504:5:519:5 | After { ... } | main.rs:490:22:520:1 | After { ... } | | +| main.rs:504:5:519:5 | { ... } | main.rs:505:9:505:24 | ExprStmt | | +| main.rs:505:9:505:17 | print_i64 | main.rs:505:19:505:22 | Before f(...) | | +| main.rs:505:9:505:23 | After print_i64(...) | main.rs:505:9:505:24 | After ExprStmt | | +| main.rs:505:9:505:23 | Before print_i64(...) | main.rs:505:9:505:17 | print_i64 | | +| main.rs:505:9:505:23 | print_i64(...) | main.rs:505:9:505:23 | After print_i64(...) | | +| main.rs:505:9:505:24 | After ExprStmt | main.rs:506:9:509:9 | fn f | | +| main.rs:505:9:505:24 | ExprStmt | main.rs:505:9:505:23 | Before 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:19:505:22 | After f(...) | main.rs:505:9:505:23 | print_i64(...) | | +| main.rs:505:19:505:22 | Before f(...) | main.rs:505:19:505:19 | f | | +| main.rs:505:19:505:22 | f(...) | main.rs:505:19:505:22 | After f(...) | | | 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 | Entry | main.rs:506:14:506:19 | Before ...: i64 | | +| main.rs:506:9:509:9 | Normal Exit | main.rs:506:9:509:9 | Exit | | | main.rs:506:9:509:9 | fn f | main.rs:511:9:513:9 | ExprStmt | | +| main.rs:506:14:506:14 | After x [match] | main.rs:506:14:506:19 | ...: i64 | | +| main.rs:506:14:506:14 | Before x | main.rs:506:14:506:14 | x | | +| main.rs:506:14:506:14 | x | main.rs:506:14:506:14 | After x [match] | match | | 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:506:14:506:19 | ...: i64 | main.rs:506:14:506:19 | After ...: i64 | | +| main.rs:506:14:506:19 | After ...: i64 | main.rs:507:9:509:9 | { ... } | | +| main.rs:506:14:506:19 | Before ...: i64 | main.rs:506:14:506:14 | Before x | | +| main.rs:507:9:509:9 | After { ... } | main.rs:506:9:509:9 | Normal Exit | | +| main.rs:507:9:509:9 | { ... } | main.rs:508:13:508:17 | Before ... * ... | | | 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:13:508:17 | ... * ... | main.rs:508:13:508:17 | After ... * ... | | +| main.rs:508:13:508:17 | After ... * ... | main.rs:507:9:509:9 | After { ... } | | +| main.rs:508:13:508:17 | Before ... * ... | main.rs:508:13:508:13 | 2 | | | 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:511:9:513:9 | After ExprStmt | main.rs:515:9:517:14 | let ... = ... | | +| main.rs:511:9:513:9 | After { ... } | main.rs:511:9:513:9 | After ExprStmt | | +| main.rs:511:9:513:9 | ExprStmt | main.rs:511:9:513:9 | { ... } | | +| 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:26 | Before f(...) | | +| main.rs:512:13:512:27 | After print_i64(...) | main.rs:512:13:512:28 | After ExprStmt | | +| main.rs:512:13:512:27 | Before print_i64(...) | main.rs:512:13:512:21 | print_i64 | | +| main.rs:512:13:512:27 | print_i64(...) | main.rs:512:13:512:27 | After print_i64(...) | | +| main.rs:512:13:512:28 | After ExprStmt | main.rs:511:9:513:9 | After { ... } | | +| main.rs:512:13:512:28 | ExprStmt | main.rs:512:13:512:27 | Before 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:23:512:26 | After f(...) | main.rs:512:13:512:27 | print_i64(...) | | +| main.rs:512:23:512:26 | Before f(...) | main.rs:512:23:512:23 | f | | +| main.rs:512:23:512:26 | f(...) | main.rs:512:23:512:26 | After f(...) | | | main.rs:512:25:512:25 | 4 | main.rs:512:23:512:26 | f(...) | | +| main.rs:515:9:517:14 | After let ... = ... | main.rs:518:9:518:24 | ExprStmt | | | main.rs:515:9:517:14 | let ... = ... | main.rs:516:13:517:13 | \|...\| x | | +| main.rs:515:13:515:13 | After f [match] | main.rs:515:9:517:14 | After let ... = ... | | +| main.rs:515:13:515:13 | Before f | main.rs:515:13:515:13 | f | | +| main.rs:515:13:515:13 | f | main.rs:515:13:515:13 | After f [match] | match | | 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:13:517:13 | Entry | main.rs:516:14:516:19 | Before ...: i64 | | +| main.rs:516:13:517:13 | Normal Exit | main.rs:516:13:517:13 | Exit | | +| main.rs:516:13:517:13 | \|...\| x | main.rs:515:13:515:13 | Before f | | +| main.rs:516:14:516:14 | After x [match] | main.rs:516:14:516:19 | ...: i64 | | +| main.rs:516:14:516:14 | Before x | main.rs:516:14:516:14 | x | | +| main.rs:516:14:516:14 | x | main.rs:516:14:516:14 | After x [match] | match | | 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:516:14:516:19 | ...: i64 | main.rs:516:14:516:19 | After ...: i64 | | +| main.rs:516:14:516:19 | After ...: i64 | main.rs:517:13:517:13 | x | | +| main.rs:516:14:516:19 | Before ...: i64 | main.rs:516:14:516:14 | Before x | | +| main.rs:517:13:517:13 | x | main.rs:516:13:517:13 | Normal Exit | | +| main.rs:518:9:518:17 | print_i64 | main.rs:518:19:518:22 | Before f(...) | | +| main.rs:518:9:518:23 | After print_i64(...) | main.rs:518:9:518:24 | After ExprStmt | | +| main.rs:518:9:518:23 | Before print_i64(...) | main.rs:518:9:518:17 | print_i64 | | +| main.rs:518:9:518:23 | print_i64(...) | main.rs:518:9:518:23 | After print_i64(...) | | +| main.rs:518:9:518:24 | After ExprStmt | main.rs:504:5:519:5 | After { ... } | | +| main.rs:518:9:518:24 | ExprStmt | main.rs:518:9:518:23 | Before 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:19:518:22 | After f(...) | main.rs:518:9:518:23 | print_i64(...) | | +| main.rs:518:19:518:22 | Before f(...) | main.rs:518:19:518:19 | f | | +| main.rs:518:19:518:22 | f(...) | main.rs:518:19:518:22 | After f(...) | | | 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:522:1:529:1 | Entry | main.rs:522:19:529:1 | { ... } | | +| main.rs:522:1:529:1 | Normal Exit | main.rs:522:1:529:1 | Exit | | +| main.rs:522:19:529:1 | After { ... } | main.rs:522:1:529:1 | Normal Exit | | +| main.rs:522:19:529:1 | { ... } | main.rs:523:5:523:42 | let ... = ... | | +| main.rs:523:5:523:42 | After let ... = ... | main.rs:525:5:528:5 | for ... in ... { ... } | | +| main.rs:523:5:523:42 | let ... = ... | main.rs:523:13:523:41 | Before &... | | +| main.rs:523:9:523:9 | After v [match] | main.rs:523:5:523:42 | After let ... = ... | | +| main.rs:523:9:523:9 | Before v | main.rs:523:9:523:9 | v | | +| main.rs:523:9:523:9 | v | main.rs:523:9:523:9 | After v [match] | match | | 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:13:523:41 | &... | main.rs:523:13:523:41 | After &... | | +| main.rs:523:13:523:41 | After &... | main.rs:523:9:523:9 | Before v | | +| main.rs:523:13:523:41 | Before &... | main.rs:523:14:523:41 | Before [...] | | +| main.rs:523:14:523:41 | After [...] | main.rs:523:13:523:41 | &... | | +| main.rs:523:14:523:41 | Before [...] | main.rs:523:15:523:22 | "apples" | | +| main.rs:523:14:523:41 | [...] | main.rs:523:14:523:41 | After [...] | | | 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:5:528:5 | After for ... in ... { ... } | main.rs:522:19:529:1 | After { ... } | | +| main.rs:525:5:528:5 | [LoopHeader] for ... in ... { ... } | main.rs:525:9:525:12 | Before text | | +| main.rs:525:5:528:5 | for ... in ... { ... } | main.rs:526:12:526:12 | v | | +| main.rs:525:9:525:12 | After text [match] | main.rs:526:14:528:5 | { ... } | | +| main.rs:525:9:525:12 | After text [no-match] | main.rs:525:5:528:5 | After for ... in ... { ... } | | +| main.rs:525:9:525:12 | Before text | main.rs:525:9:525:12 | text | | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | After text [match] | match | +| main.rs:525:9:525:12 | text | main.rs:525:9:525:12 | After text [no-match] | 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:526:12:526:12 | v | main.rs:525:9:525:12 | Before text | | +| main.rs:526:14:528:5 | After { ... } | main.rs:525:5:528:5 | [LoopHeader] for ... in ... { ... } | | +| 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:526:14:528:5 | { ... } | | -| main.rs:527:9:527:24 | ExprStmt | main.rs:527:9:527:17 | print_str | | +| main.rs:527:9:527:23 | After print_str(...) | main.rs:527:9:527:24 | After ExprStmt | | +| main.rs:527:9:527:23 | Before print_str(...) | main.rs:527:9:527:17 | print_str | | +| main.rs:527:9:527:23 | print_str(...) | main.rs:527:9:527:23 | After print_str(...) | | +| main.rs:527:9:527:24 | After ExprStmt | main.rs:526:14:528:5 | After { ... } | | +| main.rs:527:9:527:24 | ExprStmt | main.rs:527:9:527:23 | Before 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:531:1:537:1 | Entry | main.rs:531:17:537:1 | { ... } | | +| main.rs:531:1:537:1 | Normal Exit | main.rs:531:1:537:1 | Exit | | +| main.rs:531:17:537:1 | After { ... } | main.rs:531:1:537:1 | Normal Exit | | +| main.rs:531:17:537:1 | { ... } | main.rs:532:5:532:18 | let ... = 0 | | +| main.rs:532:5:532:18 | After let ... = 0 | main.rs:533:5:533:11 | ExprStmt | | | 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:9:532:13 | After mut a [match] | main.rs:532:5:532:18 | After let ... = 0 | | +| main.rs:532:9:532:13 | Before mut a | main.rs:532:13:532:13 | a | | +| main.rs:532:9:532:13 | mut a | main.rs:532:9:532:13 | After mut a [match] | 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:532:17:532:17 | 0 | main.rs:532:9:532:13 | Before mut 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:5:533:10 | ... += ... | main.rs:533:5:533:10 | After ... += ... | | +| main.rs:533:5:533:10 | After ... += ... | main.rs:533:5:533:11 | After ExprStmt | | +| main.rs:533:5:533:10 | Before ... += ... | main.rs:533:5:533:5 | a | | +| main.rs:533:5:533:11 | After ExprStmt | main.rs:534:5:534:17 | ExprStmt | | +| main.rs:533:5:533:11 | ExprStmt | main.rs:533:5:533:10 | Before ... += ... | | | 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:5:534:16 | After print_i64(...) | main.rs:534:5:534:17 | After ExprStmt | | +| main.rs:534:5:534:16 | Before print_i64(...) | main.rs:534:5:534:13 | print_i64 | | +| main.rs:534:5:534:16 | print_i64(...) | main.rs:534:5:534:16 | After print_i64(...) | | +| main.rs:534:5:534:17 | After ExprStmt | main.rs:535:5:535:28 | ExprStmt | | +| main.rs:534:5:534:17 | ExprStmt | main.rs:534:5:534:16 | Before 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:5:535:27 | ... .add_assign(...) | main.rs:535:5:535:27 | After ... .add_assign(...) | | +| main.rs:535:5:535:27 | After ... .add_assign(...) | main.rs:535:5:535:28 | After ExprStmt | | +| main.rs:535:5:535:27 | Before ... .add_assign(...) | main.rs:535:6:535:11 | Before &mut a | | +| main.rs:535:5:535:28 | After ExprStmt | main.rs:536:5:536:17 | ExprStmt | | +| main.rs:535:5:535:28 | ExprStmt | main.rs:535:5:535:27 | Before ... .add_assign(...) | | +| main.rs:535:6:535:11 | &mut a | main.rs:535:6:535:11 | After &mut a | | +| main.rs:535:6:535:11 | After &mut a | main.rs:535:25:535:26 | 10 | | +| main.rs:535:6:535:11 | Before &mut a | main.rs:535:11:535:11 | a | | | 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:5:536:16 | After print_i64(...) | main.rs:536:5:536:17 | After ExprStmt | | +| main.rs:536:5:536:16 | Before print_i64(...) | main.rs:536:5:536:13 | print_i64 | | +| main.rs:536:5:536:16 | print_i64(...) | main.rs:536:5:536:16 | After print_i64(...) | | +| main.rs:536:5:536:17 | After ExprStmt | main.rs:531:17:537:1 | After { ... } | | +| main.rs:536:5:536:17 | ExprStmt | main.rs:536:5:536:16 | Before 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:539:1:545:1 | Entry | main.rs:539:13:545:1 | { ... } | | +| main.rs:539:1:545:1 | Normal Exit | main.rs:539:1:545:1 | Exit | | +| main.rs:539:13:545:1 | After { ... } | main.rs:539:1:545:1 | Normal Exit | | +| main.rs:539:13:545:1 | { ... } | main.rs:540:5:540:18 | let ... = 1 | | +| main.rs:540:5:540:18 | After let ... = 1 | main.rs:541:5:542:15 | let ... = ... | | | 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:9:540:13 | After mut i [match] | main.rs:540:5:540:18 | After let ... = 1 | | +| main.rs:540:9:540:13 | Before mut i | main.rs:540:13:540:13 | i | | +| main.rs:540:9:540:13 | mut i | main.rs:540:9:540:13 | After mut i [match] | 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:540:17:540:17 | 1 | main.rs:540:9:540:13 | Before mut i | | +| main.rs:541:5:542:15 | After let ... = ... | main.rs:543:5:543:15 | ExprStmt | | +| main.rs:541:5:542:15 | let ... = ... | main.rs:542:9:542:14 | Before &mut i | | +| main.rs:541:9:541:13 | After ref_i [match] | main.rs:541:5:542:15 | After let ... = ... | | +| main.rs:541:9:541:13 | Before ref_i | main.rs:541:9:541:13 | ref_i | | +| main.rs:541:9:541:13 | ref_i | main.rs:541:9:541:13 | After ref_i [match] | match | | 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:9:542:14 | &mut i | main.rs:542:9:542:14 | After &mut i | | +| main.rs:542:9:542:14 | After &mut i | main.rs:541:9:541:13 | Before ref_i | | +| main.rs:542:9:542:14 | Before &mut i | main.rs:542:14:542:14 | 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:5:543:10 | * ... | main.rs:543:5:543:10 | After * ... | | +| main.rs:543:5:543:10 | After * ... | main.rs:543:14:543:14 | 2 | | +| main.rs:543:5:543:10 | Before * ... | main.rs:543:6:543:10 | ref_i | | +| main.rs:543:5:543:14 | ... = ... | main.rs:543:5:543:14 | After ... = ... | | +| main.rs:543:5:543:14 | After ... = ... | main.rs:543:5:543:15 | After ExprStmt | | +| main.rs:543:5:543:14 | Before ... = ... | main.rs:543:5:543:10 | Before * ... | | +| main.rs:543:5:543:15 | After ExprStmt | main.rs:544:5:544:17 | ExprStmt | | +| main.rs:543:5:543:15 | ExprStmt | main.rs:543:5:543:14 | Before ... = ... | | | 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:5:544:16 | After print_i64(...) | main.rs:544:5:544:17 | After ExprStmt | | +| main.rs:544:5:544:16 | Before print_i64(...) | main.rs:544:5:544:13 | print_i64 | | +| main.rs:544:5:544:16 | print_i64(...) | main.rs:544:5:544:16 | After print_i64(...) | | +| main.rs:544:5:544:17 | After ExprStmt | main.rs:539:13:545:1 | After { ... } | | +| main.rs:544:5:544:17 | ExprStmt | main.rs:544:5:544:16 | Before 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:1:552:1 | Entry | main.rs:547:17:547:27 | Before ...: ... | | +| main.rs:547:1:552:1 | Normal Exit | main.rs:547:1:552:1 | Exit | | +| main.rs:547:17:547:17 | After x [match] | main.rs:547:17:547:27 | ...: ... | | +| main.rs:547:17:547:17 | Before x | main.rs:547:17:547:17 | x | | +| main.rs:547:17:547:17 | x | main.rs:547:17:547:17 | After x [match] | match | | 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:547:17:547:27 | ...: ... | main.rs:547:17:547:27 | After ...: ... | | +| main.rs:547:17:547:27 | After ...: ... | main.rs:547:42:552:1 | { ... } | | +| main.rs:547:17:547:27 | Before ...: ... | main.rs:547:17:547:17 | Before x | | +| main.rs:547:42:552:1 | { ... } | main.rs:548:5:550:11 | ExprStmt | | +| main.rs:548:5:548:6 | * ... | main.rs:548:5:548:6 | After * ... | | +| main.rs:548:5:548:6 | After * ... | main.rs:549:9:550:10 | Before ... + ... | | +| main.rs:548:5:548:6 | Before * ... | main.rs:548:6:548:6 | x | | +| main.rs:548:5:550:10 | ... = ... | main.rs:548:5:550:10 | After ... = ... | | +| main.rs:548:5:550:10 | After ... = ... | main.rs:548:5:550:11 | After ExprStmt | | +| main.rs:548:5:550:10 | Before ... = ... | main.rs:548:5:548:6 | Before * ... | | +| main.rs:548:5:550:11 | After ExprStmt | main.rs:551:5:551:13 | ExprStmt | | +| main.rs:548:5:550:11 | ExprStmt | main.rs:548:5:550:10 | Before ... = ... | | | 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:9:549:10 | * ... | main.rs:549:9:549:10 | After * ... | | +| main.rs:549:9:549:10 | After * ... | main.rs:550:9:550:10 | Before * ... | | +| main.rs:549:9:549:10 | Before * ... | main.rs:549:10:549:10 | x | | +| main.rs:549:9:550:10 | ... + ... | main.rs:549:9:550:10 | After ... + ... | | +| main.rs:549:9:550:10 | After ... + ... | main.rs:548:5:550:10 | ... = ... | | +| main.rs:549:9:550:10 | Before ... + ... | main.rs:549:9:549:10 | Before * ... | | | 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:9:550:10 | * ... | main.rs:550:9:550:10 | After * ... | | +| main.rs:550:9:550:10 | After * ... | main.rs:549:9:550:10 | ... + ... | | +| main.rs:550:9:550:10 | Before * ... | main.rs:550:10:550:10 | x | | | 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:5:551:12 | Before return x | main.rs:551:12:551:12 | x | | +| main.rs:551:5:551:12 | return x | main.rs:547:1:552:1 | Normal Exit | return | +| main.rs:551:5:551:13 | ExprStmt | main.rs:551:5:551:12 | Before return 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:1:560:1 | Entry | main.rs:554:22:554:35 | Before ...: ... | | +| main.rs:554:1:560:1 | Normal Exit | main.rs:554:1:560:1 | Exit | | +| main.rs:554:22:554:22 | After x [match] | main.rs:554:22:554:35 | ...: ... | | +| main.rs:554:22:554:22 | Before x | main.rs:554:22:554:22 | x | | +| main.rs:554:22:554:22 | x | main.rs:554:22:554:22 | After x [match] | match | | 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:22:554:35 | ...: ... | main.rs:554:22:554:35 | After ...: ... | | +| main.rs:554:22:554:35 | After ...: ... | main.rs:554:38:554:56 | Before ...: ... | | +| main.rs:554:22:554:35 | Before ...: ... | main.rs:554:22:554:22 | Before x | | +| main.rs:554:38:554:38 | After y [match] | main.rs:554:38:554:56 | ...: ... | | +| main.rs:554:38:554:38 | Before y | main.rs:554:38:554:38 | y | | +| main.rs:554:38:554:38 | y | main.rs:554:38:554:38 | After y [match] | match | | 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:554:38:554:56 | ...: ... | main.rs:554:38:554:56 | After ...: ... | | +| main.rs:554:38:554:56 | After ...: ... | main.rs:554:59:560:1 | { ... } | | +| main.rs:554:38:554:56 | Before ...: ... | main.rs:554:38:554:38 | Before y | | +| main.rs:554:59:560:1 | After { ... } | main.rs:554:1:560:1 | Normal Exit | | +| main.rs:554:59:560:1 | { ... } | main.rs:555:5:557:11 | ExprStmt | | +| main.rs:555:5:555:6 | * ... | main.rs:555:5:555:6 | After * ... | | +| main.rs:555:5:555:6 | After * ... | main.rs:556:9:557:10 | Before ... + ... | | +| main.rs:555:5:555:6 | Before * ... | main.rs:555:6:555:6 | x | | +| main.rs:555:5:557:10 | ... = ... | main.rs:555:5:557:10 | After ... = ... | | +| main.rs:555:5:557:10 | After ... = ... | main.rs:555:5:557:11 | After ExprStmt | | +| main.rs:555:5:557:10 | Before ... = ... | main.rs:555:5:555:6 | Before * ... | | +| main.rs:555:5:557:11 | After ExprStmt | main.rs:558:5:559:10 | ExprStmt | | +| main.rs:555:5:557:11 | ExprStmt | main.rs:555:5:557:10 | Before ... = ... | | | 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:9:556:10 | * ... | main.rs:556:9:556:10 | After * ... | | +| main.rs:556:9:556:10 | After * ... | main.rs:557:9:557:10 | Before * ... | | +| main.rs:556:9:556:10 | Before * ... | main.rs:556:10:556:10 | x | | +| main.rs:556:9:557:10 | ... + ... | main.rs:556:9:557:10 | After ... + ... | | +| main.rs:556:9:557:10 | After ... + ... | main.rs:555:5:557:10 | ... = ... | | +| main.rs:556:9:557:10 | Before ... + ... | main.rs:556:9:556:10 | Before * ... | | | 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:9:557:10 | * ... | main.rs:557:9:557:10 | After * ... | | +| main.rs:557:9:557:10 | After * ... | main.rs:556:9:557:10 | ... + ... | | +| main.rs:557:9:557:10 | Before * ... | main.rs:557:10:557:10 | x | | | 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:5:558:6 | * ... | main.rs:558:5:558:6 | After * ... | | +| main.rs:558:5:558:6 | After * ... | main.rs:559:9:559:9 | x | | +| main.rs:558:5:558:6 | Before * ... | main.rs:558:6:558:6 | y | | +| main.rs:558:5:559:9 | ... = ... | main.rs:558:5:559:9 | After ... = ... | | +| main.rs:558:5:559:9 | After ... = ... | main.rs:558:5:559:10 | After ExprStmt | | +| main.rs:558:5:559:9 | Before ... = ... | main.rs:558:5:558:6 | Before * ... | | +| main.rs:558:5:559:10 | After ExprStmt | main.rs:554:59:560:1 | After { ... } | | +| main.rs:558:5:559:10 | ExprStmt | main.rs:558:5:559:9 | Before ... = ... | | | 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:562:1:582:1 | Entry | main.rs:562:17:582:1 | { ... } | | +| main.rs:562:1:582:1 | Normal Exit | main.rs:562:1:582:1 | Exit | | +| main.rs:562:17:582:1 | After { ... } | main.rs:562:1:582:1 | Normal Exit | | +| main.rs:562:17:582:1 | { ... } | main.rs:563:5:563:18 | let ... = 2 | | +| main.rs:563:5:563:18 | After let ... = 2 | main.rs:564:5:565:29 | let ... = ... | | | 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:9:563:13 | After mut x [match] | main.rs:563:5:563:18 | After let ... = 2 | | +| main.rs:563:9:563:13 | Before mut x | main.rs:563:13:563:13 | x | | +| main.rs:563:9:563:13 | mut x | main.rs:563:9:563:13 | After mut x [match] | 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:563:17:563:17 | 2 | main.rs:563:9:563:13 | Before mut x | | +| main.rs:564:5:565:29 | After let ... = ... | main.rs:566:5:566:12 | ExprStmt | | +| main.rs:564:5:565:29 | let ... = ... | main.rs:565:9:565:28 | Before mutate_param(...) | | +| main.rs:564:9:564:9 | After y [match] | main.rs:564:5:565:29 | After let ... = ... | | +| main.rs:564:9:564:9 | Before y | main.rs:564:9:564:9 | y | | +| main.rs:564:9:564:9 | y | main.rs:564:9:564:9 | After y [match] | match | | 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:9:565:20 | mutate_param | main.rs:565:22:565:27 | Before &mut x | | +| main.rs:565:9:565:28 | After mutate_param(...) | main.rs:564:9:564:9 | Before y | | +| main.rs:565:9:565:28 | Before mutate_param(...) | main.rs:565:9:565:20 | mutate_param | | +| main.rs:565:9:565:28 | mutate_param(...) | main.rs:565:9:565:28 | After mutate_param(...) | | +| main.rs:565:22:565:27 | &mut x | main.rs:565:22:565:27 | After &mut x | | +| main.rs:565:22:565:27 | After &mut x | main.rs:565:9:565:28 | mutate_param(...) | | +| main.rs:565:22:565:27 | Before &mut x | main.rs:565:27:565:27 | x | | | 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:5:566:6 | * ... | main.rs:566:5:566:6 | After * ... | | +| main.rs:566:5:566:6 | After * ... | main.rs:566:10:566:11 | 10 | | +| main.rs:566:5:566:6 | Before * ... | main.rs:566:6:566:6 | y | | +| main.rs:566:5:566:11 | ... = ... | main.rs:566:5:566:11 | After ... = ... | | +| main.rs:566:5:566:11 | After ... = ... | main.rs:566:5:566:12 | After ExprStmt | | +| main.rs:566:5:566:11 | Before ... = ... | main.rs:566:5:566:6 | Before * ... | | +| main.rs:566:5:566:12 | After ExprStmt | main.rs:569:5:569:17 | ExprStmt | | +| main.rs:566:5:566:12 | ExprStmt | main.rs:566:5:566:11 | Before ... = ... | | | 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:5:569:16 | After print_i64(...) | main.rs:569:5:569:17 | After ExprStmt | | +| main.rs:569:5:569:16 | Before print_i64(...) | main.rs:569:5:569:13 | print_i64 | | +| main.rs:569:5:569:16 | print_i64(...) | main.rs:569:5:569:16 | After print_i64(...) | | +| main.rs:569:5:569:17 | After ExprStmt | main.rs:571:5:571:18 | let ... = 4 | | +| main.rs:569:5:569:17 | ExprStmt | main.rs:569:5:569:16 | Before print_i64(...) | | | main.rs:569:15:569:15 | x | main.rs:569:5:569:16 | print_i64(...) | | +| main.rs:571:5:571:18 | After let ... = 4 | main.rs:572:5:573:20 | let ... = ... | | | 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:9:571:13 | After mut z [match] | main.rs:571:5:571:18 | After let ... = 4 | | +| main.rs:571:9:571:13 | Before mut z | main.rs:571:13:571:13 | z | | +| main.rs:571:9:571:13 | mut z | main.rs:571:9:571:13 | After mut z [match] | 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:571:17:571:17 | 4 | main.rs:571:9:571:13 | Before mut z | | +| main.rs:572:5:573:20 | After let ... = ... | main.rs:574:5:577:6 | ExprStmt | | +| main.rs:572:5:573:20 | let ... = ... | main.rs:573:9:573:19 | Before &mut ... | | +| main.rs:572:9:572:9 | After w [match] | main.rs:572:5:573:20 | After let ... = ... | | +| main.rs:572:9:572:9 | Before w | main.rs:572:9:572:9 | w | | +| main.rs:572:9:572:9 | w | main.rs:572:9:572:9 | After w [match] | match | | 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:9:573:19 | &mut ... | main.rs:573:9:573:19 | After &mut ... | | +| main.rs:573:9:573:19 | After &mut ... | main.rs:572:9:572:9 | Before w | | +| main.rs:573:9:573:19 | Before &mut ... | main.rs:573:14:573:19 | Before &mut x | | +| main.rs:573:14:573:19 | &mut x | main.rs:573:14:573:19 | After &mut x | | +| main.rs:573:14:573:19 | After &mut x | main.rs:573:9:573:19 | &mut ... | | +| main.rs:573:14:573:19 | Before &mut x | main.rs:573:19:573:19 | x | | | 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:574:5:574:17 | mutate_param2 | main.rs:575:9:575:14 | Before &mut z | | +| main.rs:574:5:577:5 | After mutate_param2(...) | main.rs:574:5:577:6 | After ExprStmt | | +| main.rs:574:5:577:5 | Before mutate_param2(...) | main.rs:574:5:574:17 | mutate_param2 | | +| main.rs:574:5:577:5 | mutate_param2(...) | main.rs:574:5:577:5 | After mutate_param2(...) | | +| main.rs:574:5:577:6 | After ExprStmt | main.rs:578:5:578:13 | ExprStmt | | +| main.rs:574:5:577:6 | ExprStmt | main.rs:574:5:577:5 | Before mutate_param2(...) | | +| main.rs:575:9:575:14 | &mut z | main.rs:575:9:575:14 | After &mut z | | +| main.rs:575:9:575:14 | After &mut z | main.rs:576:9:576:9 | w | | +| main.rs:575:9:575:14 | Before &mut z | main.rs:575:14:575:14 | z | | | 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:5:578:7 | * ... | main.rs:578:5:578:7 | After * ... | | +| main.rs:578:5:578:7 | After * ... | main.rs:578:11:578:12 | 11 | | +| main.rs:578:5:578:7 | Before * ... | main.rs:578:6:578:7 | Before * ... | | +| main.rs:578:5:578:12 | ... = ... | main.rs:578:5:578:12 | After ... = ... | | +| main.rs:578:5:578:12 | After ... = ... | main.rs:578:5:578:13 | After ExprStmt | | +| main.rs:578:5:578:12 | Before ... = ... | main.rs:578:5:578:7 | Before * ... | | +| main.rs:578:5:578:13 | After ExprStmt | main.rs:581:5:581:17 | ExprStmt | | +| main.rs:578:5:578:13 | ExprStmt | main.rs:578:5:578:12 | Before ... = ... | | +| main.rs:578:6:578:7 | * ... | main.rs:578:6:578:7 | After * ... | | +| main.rs:578:6:578:7 | After * ... | main.rs:578:5:578:7 | * ... | | +| main.rs:578:6:578:7 | Before * ... | main.rs:578:7:578:7 | w | | | 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:5:581:16 | After print_i64(...) | main.rs:581:5:581:17 | After ExprStmt | | +| main.rs:581:5:581:16 | Before print_i64(...) | main.rs:581:5:581:13 | print_i64 | | +| main.rs:581:5:581:16 | print_i64(...) | main.rs:581:5:581:16 | After print_i64(...) | | +| main.rs:581:5:581:17 | After ExprStmt | main.rs:562:17:582:1 | After { ... } | | +| main.rs:581:5:581:17 | ExprStmt | main.rs:581:5:581:16 | Before 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:584:1:590:1 | Entry | main.rs:584:12:590:1 | { ... } | | +| main.rs:584:1:590:1 | Normal Exit | main.rs:584:1:590:1 | Exit | | +| main.rs:584:12:590:1 | After { ... } | main.rs:584:1:590:1 | Normal Exit | | +| main.rs:584:12:590:1 | { ... } | main.rs:585:5:585:18 | let ... = 1 | | +| main.rs:585:5:585:18 | After let ... = 1 | main.rs:586:5:587:15 | let ... = ... | | | 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:9:585:13 | After mut x [match] | main.rs:585:5:585:18 | After let ... = 1 | | +| main.rs:585:9:585:13 | Before mut x | main.rs:585:13:585:13 | x | | +| main.rs:585:9:585:13 | mut x | main.rs:585:9:585:13 | After mut x [match] | 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:585:17:585:17 | 1 | main.rs:585:9:585:13 | Before mut x | | +| main.rs:586:5:587:15 | After let ... = ... | main.rs:588:5:588:11 | ExprStmt | | +| main.rs:586:5:587:15 | let ... = ... | main.rs:587:9:587:14 | Before &mut x | | +| main.rs:586:9:586:9 | After y [match] | main.rs:586:5:587:15 | After let ... = ... | | +| main.rs:586:9:586:9 | Before y | main.rs:586:9:586:9 | y | | +| main.rs:586:9:586:9 | y | main.rs:586:9:586:9 | After y [match] | match | | 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:9:587:14 | &mut x | main.rs:587:9:587:14 | After &mut x | | +| main.rs:587:9:587:14 | After &mut x | main.rs:586:9:586:9 | Before y | | +| main.rs:587:9:587:14 | Before &mut x | main.rs:587:14:587:14 | x | | | 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:5:588:6 | * ... | main.rs:588:5:588:6 | After * ... | | +| main.rs:588:5:588:6 | After * ... | main.rs:588:10:588:10 | 2 | | +| main.rs:588:5:588:6 | Before * ... | main.rs:588:6:588:6 | y | | +| main.rs:588:5:588:10 | ... = ... | main.rs:588:5:588:10 | After ... = ... | | +| main.rs:588:5:588:10 | After ... = ... | main.rs:588:5:588:11 | After ExprStmt | | +| main.rs:588:5:588:10 | Before ... = ... | main.rs:588:5:588:6 | Before * ... | | +| main.rs:588:5:588:11 | After ExprStmt | main.rs:589:5:589:17 | ExprStmt | | +| main.rs:588:5:588:11 | ExprStmt | main.rs:588:5:588:10 | Before ... = ... | | | 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:5:589:16 | After print_i64(...) | main.rs:589:5:589:17 | After ExprStmt | | +| main.rs:589:5:589:16 | Before print_i64(...) | main.rs:589:5:589:13 | print_i64 | | +| main.rs:589:5:589:16 | print_i64(...) | main.rs:589:5:589:16 | After print_i64(...) | | +| main.rs:589:5:589:17 | After ExprStmt | main.rs:584:12:590:1 | After { ... } | | +| main.rs:589:5:589:17 | ExprStmt | main.rs:589:5:589:16 | Before 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:592:1:601:1 | Entry | main.rs:592:20:601:1 | { ... } | | +| main.rs:592:1:601:1 | Normal Exit | main.rs:592:1:601:1 | Exit | | +| main.rs:592:20:601:1 | After { ... } | main.rs:592:1:601:1 | Normal Exit | | +| main.rs:592:20:601:1 | { ... } | main.rs:593:5:593:16 | let ... = 100 | | +| main.rs:593:5:593:16 | After let ... = 100 | main.rs:596:5:598:6 | let ... = ... | | | main.rs:593:5:593:16 | let ... = 100 | main.rs:593:13:593:15 | 100 | | +| main.rs:593:9:593:9 | After x [match] | main.rs:593:5:593:16 | After let ... = 100 | | +| main.rs:593:9:593:9 | Before x | main.rs:593:9:593:9 | x | | +| main.rs:593:9:593:9 | x | main.rs:593:9:593:9 | After x [match] | match | | 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:593:13:593:15 | 100 | main.rs:593:9:593:9 | Before x | | +| main.rs:596:5:598:6 | After let ... = ... | main.rs:599:5:599:10 | ExprStmt | | | main.rs:596:5:598:6 | let ... = ... | main.rs:596:15:598:5 | \|...\| ... | | +| main.rs:596:9:596:11 | After cap [match] | main.rs:596:5:598:6 | After let ... = ... | | +| main.rs:596:9:596:11 | Before cap | main.rs:596:9:596:11 | cap | | +| main.rs:596:9:596:11 | cap | main.rs:596:9:596:11 | After cap [match] | match | | 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:596:15:598:5 | Entry | main.rs:596:18:598:5 | { ... } | | +| main.rs:596:15:598:5 | Normal Exit | main.rs:596:15:598:5 | Exit | | +| main.rs:596:15:598:5 | \|...\| ... | main.rs:596:9:596:11 | Before cap | | +| main.rs:596:18:598:5 | After { ... } | main.rs:596:15:598:5 | Normal Exit | | +| 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:596:18:598:5 | { ... } | | -| main.rs:597:9:597:21 | ExprStmt | main.rs:597:9:597:17 | print_i64 | | +| main.rs:597:9:597:20 | After print_i64(...) | main.rs:597:9:597:21 | After ExprStmt | | +| main.rs:597:9:597:20 | Before print_i64(...) | main.rs:597:9:597:17 | print_i64 | | +| main.rs:597:9:597:20 | print_i64(...) | main.rs:597:9:597:20 | After print_i64(...) | | +| main.rs:597:9:597:21 | After ExprStmt | main.rs:596:18:598:5 | After { ... } | | +| main.rs:597:9:597:21 | ExprStmt | main.rs:597:9:597:20 | Before 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:599:5:599:9 | After cap(...) | main.rs:599:5:599:10 | After ExprStmt | | +| main.rs:599:5:599:9 | Before cap(...) | main.rs:599:5:599:7 | cap | | +| main.rs:599:5:599:9 | cap(...) | main.rs:599:5:599:9 | After cap(...) | | +| main.rs:599:5:599:10 | After ExprStmt | main.rs:600:5:600:17 | ExprStmt | | +| main.rs:599:5:599:10 | ExprStmt | main.rs:599:5:599:9 | Before 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:5:600:16 | After print_i64(...) | main.rs:600:5:600:17 | After ExprStmt | | +| main.rs:600:5:600:16 | Before print_i64(...) | main.rs:600:5:600:13 | print_i64 | | +| main.rs:600:5:600:16 | print_i64(...) | main.rs:600:5:600:16 | After print_i64(...) | | +| main.rs:600:5:600:17 | After ExprStmt | main.rs:592:20:601:1 | After { ... } | | +| main.rs:600:5:600:17 | ExprStmt | main.rs:600:5:600:16 | Before 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:603:1:630:1 | Entry | main.rs:603:18:630:1 | { ... } | | +| main.rs:603:1:630:1 | Normal Exit | main.rs:603:1:630:1 | Exit | | +| main.rs:603:18:630:1 | After { ... } | main.rs:603:1:630:1 | Normal Exit | | +| main.rs:603:18:630:1 | { ... } | main.rs:604:5:604:18 | let ... = 1 | | +| main.rs:604:5:604:18 | After let ... = 1 | main.rs:607:5:609:6 | let ... = ... | | | 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:9:604:13 | After mut x [match] | main.rs:604:5:604:18 | After let ... = 1 | | +| main.rs:604:9:604:13 | Before mut x | main.rs:604:13:604:13 | x | | +| main.rs:604:9:604:13 | mut x | main.rs:604:9:604:13 | After mut x [match] | 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:604:17:604:17 | 1 | main.rs:604:9:604:13 | Before mut x | | +| main.rs:607:5:609:6 | After let ... = ... | main.rs:610:5:610:15 | ExprStmt | | | main.rs:607:5:609:6 | let ... = ... | main.rs:607:20:609:5 | \|...\| ... | | +| main.rs:607:9:607:16 | After closure1 [match] | main.rs:607:5:609:6 | After let ... = ... | | +| main.rs:607:9:607:16 | Before closure1 | main.rs:607:9:607:16 | closure1 | | +| main.rs:607:9:607:16 | closure1 | main.rs:607:9:607:16 | After closure1 [match] | match | | 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:607:20:609:5 | Entry | main.rs:607:23:609:5 | { ... } | | +| main.rs:607:20:609:5 | Normal Exit | main.rs:607:20:609:5 | Exit | | +| main.rs:607:20:609:5 | \|...\| ... | main.rs:607:9:607:16 | Before closure1 | | +| main.rs:607:23:609:5 | After { ... } | main.rs:607:20:609:5 | Normal Exit | | +| 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:607:23:609:5 | { ... } | | -| main.rs:608:9:608:21 | ExprStmt | main.rs:608:9:608:17 | print_i64 | | +| main.rs:608:9:608:20 | After print_i64(...) | main.rs:608:9:608:21 | After ExprStmt | | +| main.rs:608:9:608:20 | Before print_i64(...) | main.rs:608:9:608:17 | print_i64 | | +| main.rs:608:9:608:20 | print_i64(...) | main.rs:608:9:608:20 | After print_i64(...) | | +| main.rs:608:9:608:21 | After ExprStmt | main.rs:607:23:609:5 | After { ... } | | +| main.rs:608:9:608:21 | ExprStmt | main.rs:608:9:608:20 | Before 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:610:5:610:14 | After closure1(...) | main.rs:610:5:610:15 | After ExprStmt | | +| main.rs:610:5:610:14 | Before closure1(...) | main.rs:610:5:610:12 | closure1 | | +| main.rs:610:5:610:14 | closure1(...) | main.rs:610:5:610:14 | After closure1(...) | | +| main.rs:610:5:610:15 | After ExprStmt | main.rs:611:5:611:17 | ExprStmt | | +| main.rs:610:5:610:15 | ExprStmt | main.rs:610:5:610:14 | Before 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:5:611:16 | After print_i64(...) | main.rs:611:5:611:17 | After ExprStmt | | +| main.rs:611:5:611:16 | Before print_i64(...) | main.rs:611:5:611:13 | print_i64 | | +| main.rs:611:5:611:16 | print_i64(...) | main.rs:611:5:611:16 | After print_i64(...) | | +| main.rs:611:5:611:17 | After ExprStmt | main.rs:613:5:613:18 | let ... = 2 | | +| main.rs:611:5:611:17 | ExprStmt | main.rs:611:5:611:16 | Before print_i64(...) | | | main.rs:611:15:611:15 | x | main.rs:611:5:611:16 | print_i64(...) | | +| main.rs:613:5:613:18 | After let ... = 2 | main.rs:616:5:618:6 | let ... = ... | | | 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:9:613:13 | After mut y [match] | main.rs:613:5:613:18 | After let ... = 2 | | +| main.rs:613:9:613:13 | Before mut y | main.rs:613:13:613:13 | y | | +| main.rs:613:9:613:13 | mut y | main.rs:613:9:613:13 | After mut y [match] | 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:613:17:613:17 | 2 | main.rs:613:9:613:13 | Before mut y | | +| main.rs:616:5:618:6 | After let ... = ... | main.rs:619:5:619:15 | ExprStmt | | | 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:9:616:20 | After mut closure2 [match] | main.rs:616:5:618:6 | After let ... = ... | | +| main.rs:616:9:616:20 | Before mut closure2 | main.rs:616:13:616:20 | closure2 | | +| main.rs:616:9:616:20 | mut closure2 | main.rs:616:9:616:20 | After mut closure2 [match] | 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:616:24:618:5 | Entry | main.rs:616:27:618:5 | { ... } | | +| main.rs:616:24:618:5 | Normal Exit | main.rs:616:24:618:5 | Exit | | +| main.rs:616:24:618:5 | \|...\| ... | main.rs:616:9:616:20 | Before mut closure2 | | +| main.rs:616:27:618:5 | After { ... } | main.rs:616:24:618:5 | Normal Exit | | +| 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:616:27:618:5 | { ... } | | -| main.rs:617:9:617:14 | ExprStmt | main.rs:617:9:617:9 | y | | +| main.rs:617:9:617:13 | ... = ... | main.rs:617:9:617:13 | After ... = ... | | +| main.rs:617:9:617:13 | After ... = ... | main.rs:617:9:617:14 | After ExprStmt | | +| main.rs:617:9:617:13 | Before ... = ... | main.rs:617:9:617:9 | y | | +| main.rs:617:9:617:14 | After ExprStmt | main.rs:616:27:618:5 | After { ... } | | +| main.rs:617:9:617:14 | ExprStmt | main.rs:617:9:617:13 | Before ... = ... | | | main.rs:617:13:617:13 | 3 | main.rs:617:9:617:13 | ... = ... | | | 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:619:5:619:14 | After closure2(...) | main.rs:619:5:619:15 | After ExprStmt | | +| main.rs:619:5:619:14 | Before closure2(...) | main.rs:619:5:619:12 | closure2 | | +| main.rs:619:5:619:14 | closure2(...) | main.rs:619:5:619:14 | After closure2(...) | | +| main.rs:619:5:619:15 | After ExprStmt | main.rs:620:5:620:17 | ExprStmt | | +| main.rs:619:5:619:15 | ExprStmt | main.rs:619:5:619:14 | Before 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:5:620:16 | After print_i64(...) | main.rs:620:5:620:17 | After ExprStmt | | +| main.rs:620:5:620:16 | Before print_i64(...) | main.rs:620:5:620:13 | print_i64 | | +| main.rs:620:5:620:16 | print_i64(...) | main.rs:620:5:620:16 | After print_i64(...) | | +| main.rs:620:5:620:17 | After ExprStmt | main.rs:622:5:622:18 | let ... = 2 | | +| main.rs:620:5:620:17 | ExprStmt | main.rs:620:5:620:16 | Before print_i64(...) | | | main.rs:620:15:620:15 | y | main.rs:620:5:620:16 | print_i64(...) | | +| main.rs:622:5:622:18 | After let ... = 2 | main.rs:625:5:627:6 | let ... = ... | | | 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:9:622:13 | After mut z [match] | main.rs:622:5:622:18 | After let ... = 2 | | +| main.rs:622:9:622:13 | Before mut z | main.rs:622:13:622:13 | z | | +| main.rs:622:9:622:13 | mut z | main.rs:622:9:622:13 | After mut z [match] | 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:622:17:622:17 | 2 | main.rs:622:9:622:13 | Before mut z | | +| main.rs:625:5:627:6 | After let ... = ... | main.rs:628:5:628:15 | ExprStmt | | | 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:9:625:20 | After mut closure3 [match] | main.rs:625:5:627:6 | After let ... = ... | | +| main.rs:625:9:625:20 | Before mut closure3 | main.rs:625:13:625:20 | closure3 | | +| main.rs:625:9:625:20 | mut closure3 | main.rs:625:9:625:20 | After mut closure3 [match] | 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:625:24:627:5 | Entry | main.rs:625:27:627:5 | { ... } | | +| main.rs:625:24:627:5 | Normal Exit | main.rs:625:24:627:5 | Exit | | +| main.rs:625:24:627:5 | \|...\| ... | main.rs:625:9:625:20 | Before mut closure3 | | +| main.rs:625:27:627:5 | After { ... } | main.rs:625:24:627:5 | Normal Exit | | +| 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:625:27:627:5 | { ... } | | -| main.rs:626:9:626:24 | ExprStmt | main.rs:626:9:626:9 | z | | +| main.rs:626:9:626:23 | After z.add_assign(...) | main.rs:626:9:626:24 | After ExprStmt | | +| main.rs:626:9:626:23 | Before z.add_assign(...) | main.rs:626:9:626:9 | z | | +| main.rs:626:9:626:23 | z.add_assign(...) | main.rs:626:9:626:23 | After z.add_assign(...) | | +| main.rs:626:9:626:24 | After ExprStmt | main.rs:625:27:627:5 | After { ... } | | +| main.rs:626:9:626:24 | ExprStmt | main.rs:626:9:626:23 | Before z.add_assign(...) | | | 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:628:5:628:14 | After closure3(...) | main.rs:628:5:628:15 | After ExprStmt | | +| main.rs:628:5:628:14 | Before closure3(...) | main.rs:628:5:628:12 | closure3 | | +| main.rs:628:5:628:14 | closure3(...) | main.rs:628:5:628:14 | After closure3(...) | | +| main.rs:628:5:628:15 | After ExprStmt | main.rs:629:5:629:17 | ExprStmt | | +| main.rs:628:5:628:15 | ExprStmt | main.rs:628:5:628:14 | Before 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:5:629:16 | After print_i64(...) | main.rs:629:5:629:17 | After ExprStmt | | +| main.rs:629:5:629:16 | Before print_i64(...) | main.rs:629:5:629:13 | print_i64 | | +| main.rs:629:5:629:16 | print_i64(...) | main.rs:629:5:629:16 | After print_i64(...) | | +| main.rs:629:5:629:17 | After ExprStmt | main.rs:603:18:630:1 | After { ... } | | +| main.rs:629:5:629:17 | ExprStmt | main.rs:629:5:629:16 | Before 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:632:1:640:1 | Entry | main.rs:632:32:640:1 | { ... } | | +| main.rs:632:1:640:1 | Normal Exit | main.rs:632:1:640:1 | Exit | | +| main.rs:632:32:640:1 | After { ... } | main.rs:632:1:640:1 | Normal Exit | | +| main.rs:632:32:640:1 | { ... } | main.rs:633:5:633:23 | let ... = 0 | | +| main.rs:633:5:633:23 | After let ... = 0 | main.rs:634:5:636:6 | let ... = ... | | | 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:9:633:13 | After mut i [match] | main.rs:633:5:633:23 | After let ... = 0 | | +| main.rs:633:9:633:13 | Before mut i | main.rs:633:13:633:13 | i | | +| main.rs:633:9:633:13 | mut i | main.rs:633:9:633:13 | After mut i [match] | 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:633:22:633:22 | 0 | main.rs:633:9:633:13 | Before mut i | | +| main.rs:634:5:636:6 | After let ... = ... | main.rs:638:5:638:16 | ExprStmt | | | main.rs:634:5:636:6 | let ... = ... | main.rs:634:17:636:5 | { ... } | | +| main.rs:634:9:634:13 | After block [match] | main.rs:634:5:636:6 | After let ... = ... | | +| main.rs:634:9:634:13 | Before block | main.rs:634:9:634:13 | block | | +| main.rs:634:9:634:13 | block | main.rs:634:9:634:13 | After block [match] | match | | 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:634:17:636:5 | Entry | main.rs:634:23:636:5 | StmtList | | +| main.rs:634:17:636:5 | Normal Exit | main.rs:634:17:636:5 | Exit | | +| main.rs:634:17:636:5 | { ... } | main.rs:634:9:634:13 | Before block | | +| main.rs:634:23:636:5 | After StmtList | main.rs:634:17:636:5 | Normal Exit | | +| main.rs:634:23:636:5 | StmtList | 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:634:17:636:5 | exit { ... } (normal) | | -| main.rs:635:9:635:14 | ExprStmt | main.rs:635:9:635:9 | i | | +| main.rs:635:9:635:13 | ... = ... | main.rs:635:9:635:13 | After ... = ... | | +| main.rs:635:9:635:13 | After ... = ... | main.rs:635:9:635:14 | After ExprStmt | | +| main.rs:635:9:635:13 | Before ... = ... | main.rs:635:9:635:9 | i | | +| main.rs:635:9:635:14 | After ExprStmt | main.rs:634:23:636:5 | After StmtList | | +| main.rs:635:9:635:14 | ExprStmt | main.rs:635:9:635:13 | Before ... = ... | | | 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:638:5:638:15 | After await block | main.rs:638:5:638:16 | After ExprStmt | | +| main.rs:638:5:638:15 | Before await block | main.rs:638:5:638:9 | block | | +| main.rs:638:5:638:15 | await block | main.rs:638:5:638:15 | After await block | | +| main.rs:638:5:638:16 | After ExprStmt | main.rs:639:5:639:17 | ExprStmt | | +| main.rs:638:5:638:16 | ExprStmt | main.rs:638:5:638:15 | Before await 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:5:639:16 | After print_i64(...) | main.rs:639:5:639:17 | After ExprStmt | | +| main.rs:639:5:639:16 | Before print_i64(...) | main.rs:639:5:639:13 | print_i64 | | +| main.rs:639:5:639:16 | print_i64(...) | main.rs:639:5:639:16 | After print_i64(...) | | +| main.rs:639:5:639:17 | After ExprStmt | main.rs:632:32:640:1 | After { ... } | | +| main.rs:639:5:639:17 | ExprStmt | main.rs:639:5:639:16 | Before 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:1:658:1 | Entry | main.rs:642:8:642:14 | Before ...: bool | | +| main.rs:642:1:658:1 | Normal Exit | main.rs:642:1:658:1 | Exit | | +| main.rs:642:8:642:8 | After b [match] | main.rs:642:8:642:14 | ...: bool | | +| main.rs:642:8:642:8 | Before b | main.rs:642:8:642:8 | b | | +| main.rs:642:8:642:8 | b | main.rs:642:8:642:8 | After b [match] | match | | 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:642:8:642:14 | ...: bool | main.rs:642:8:642:14 | After ...: bool | | +| main.rs:642:8:642:14 | After ...: bool | main.rs:642:17:658:1 | { ... } | | +| main.rs:642:8:642:14 | Before ...: bool | main.rs:642:8:642:8 | Before b | | +| main.rs:642:17:658:1 | After { ... } | main.rs:642:1:658:1 | Normal Exit | | +| main.rs:642:17:658:1 | { ... } | main.rs:643:5:643:18 | let ... = 1 | | +| main.rs:643:5:643:18 | After let ... = 1 | main.rs:644:5:644:17 | ExprStmt | | | 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:9:643:13 | After mut x [match] | main.rs:643:5:643:18 | After let ... = 1 | | +| main.rs:643:9:643:13 | Before mut x | main.rs:643:13:643:13 | x | | +| main.rs:643:9:643:13 | mut x | main.rs:643:9:643:13 | After mut x [match] | 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:643:17:643:17 | 1 | main.rs:643:9:643:13 | Before mut 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:5:644:16 | After print_i64(...) | main.rs:644:5:644:17 | After ExprStmt | | +| main.rs:644:5:644:16 | Before print_i64(...) | main.rs:644:5:644:13 | print_i64 | | +| main.rs:644:5:644:16 | print_i64(...) | main.rs:644:5:644:16 | After print_i64(...) | | +| main.rs:644:5:644:17 | After ExprStmt | main.rs:645:5:645:21 | ExprStmt | | +| main.rs:644:5:644:17 | ExprStmt | main.rs:644:5:644:16 | Before 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:5:645:13 | print_i64 | main.rs:645:15:645:19 | Before ... + ... | | +| main.rs:645:5:645:20 | After print_i64(...) | main.rs:645:5:645:21 | After ExprStmt | | +| main.rs:645:5:645:20 | Before print_i64(...) | main.rs:645:5:645:13 | print_i64 | | +| main.rs:645:5:645:20 | print_i64(...) | main.rs:645:5:645:20 | After print_i64(...) | | +| main.rs:645:5:645:21 | After ExprStmt | main.rs:646:5:656:6 | let _ = ... | | +| main.rs:645:5:645:21 | ExprStmt | main.rs:645:5:645:20 | Before 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:15:645:19 | ... + ... | main.rs:645:15:645:19 | After ... + ... | | +| main.rs:645:15:645:19 | After ... + ... | main.rs:645:5:645:20 | print_i64(...) | | +| main.rs:645:15:645:19 | Before ... + ... | main.rs:645:15:645:15 | x | | | 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:646:5:656:6 | After let _ = ... | main.rs:657:5:657:17 | ExprStmt | | +| main.rs:646:5:656:6 | let _ = ... | main.rs:647:13:656:5 | if b {...} else {...} | | +| main.rs:647:9:647:9 | After _ [match] | main.rs:646:5:656:6 | After let _ = ... | | +| main.rs:647:9:647:9 | _ | main.rs:647:9:647:9 | After _ [match] | match | +| main.rs:647:13:656:5 | After if b {...} else {...} | main.rs:647:9:647:9 | _ | | +| main.rs:647:13:656:5 | if b {...} else {...} | main.rs:647:16:647:16 | b | | +| main.rs:647:16:647:16 | After b [false] | main.rs:652:12:656:5 | { ... } | | +| main.rs:647:16:647:16 | After b [true] | main.rs:648:5:652:5 | { ... } | | +| main.rs:647:16:647:16 | b | main.rs:647:16:647:16 | After b [false] | false | +| main.rs:647:16:647:16 | b | main.rs:647:16:647:16 | After b [true] | true | +| main.rs:648:5:652:5 | After { ... } | main.rs:647:13:656:5 | After if b {...} else {...} | | +| main.rs:648:5:652:5 | { ... } | 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:21 | ExprStmt | | -| main.rs:649:9:649:14 | ExprStmt | main.rs:649:9:649:9 | x | | +| main.rs:649:9:649:13 | ... = ... | main.rs:649:9:649:13 | After ... = ... | | +| main.rs:649:9:649:13 | After ... = ... | main.rs:649:9:649:14 | After ExprStmt | | +| main.rs:649:9:649:13 | Before ... = ... | main.rs:649:9:649:9 | x | | +| main.rs:649:9:649:14 | After ExprStmt | main.rs:650:9:650:21 | ExprStmt | | +| main.rs:649:9:649:14 | ExprStmt | main.rs:649:9:649:13 | Before ... = ... | | | 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:9:650:20 | After print_i64(...) | main.rs:650:9:650:21 | After ExprStmt | | +| main.rs:650:9:650:20 | Before print_i64(...) | main.rs:650:9:650:17 | print_i64 | | +| main.rs:650:9:650:20 | print_i64(...) | main.rs:650:9:650:20 | After print_i64(...) | | +| main.rs:650:9:650:21 | After ExprStmt | main.rs:651:9:651:25 | ExprStmt | | +| main.rs:650:9:650:21 | ExprStmt | main.rs:650:9:650:20 | Before 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:9:651:17 | print_i64 | main.rs:651:19:651:23 | Before ... + ... | | +| main.rs:651:9:651:24 | After print_i64(...) | main.rs:651:9:651:25 | After ExprStmt | | +| main.rs:651:9:651:24 | Before print_i64(...) | main.rs:651:9:651:17 | print_i64 | | +| main.rs:651:9:651:24 | print_i64(...) | main.rs:651:9:651:24 | After print_i64(...) | | +| main.rs:651:9:651:25 | After ExprStmt | main.rs:648:5:652:5 | After { ... } | | +| main.rs:651:9:651:25 | ExprStmt | main.rs:651:9:651:24 | Before 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:19:651:23 | ... + ... | main.rs:651:19:651:23 | After ... + ... | | +| main.rs:651:19:651:23 | After ... + ... | main.rs:651:9:651:24 | print_i64(...) | | +| main.rs:651:19:651:23 | Before ... + ... | main.rs:651:19:651:19 | x | | | 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:652:12:656:5 | After { ... } | main.rs:647:13:656:5 | After if b {...} else {...} | | +| main.rs:652:12:656:5 | { ... } | 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:21 | ExprStmt | | -| main.rs:653:9:653:14 | ExprStmt | main.rs:653:9:653:9 | x | | +| main.rs:653:9:653:13 | ... = ... | main.rs:653:9:653:13 | After ... = ... | | +| main.rs:653:9:653:13 | After ... = ... | main.rs:653:9:653:14 | After ExprStmt | | +| main.rs:653:9:653:13 | Before ... = ... | main.rs:653:9:653:9 | x | | +| main.rs:653:9:653:14 | After ExprStmt | main.rs:654:9:654:21 | ExprStmt | | +| main.rs:653:9:653:14 | ExprStmt | main.rs:653:9:653:13 | Before ... = ... | | | 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:9:654:20 | After print_i64(...) | main.rs:654:9:654:21 | After ExprStmt | | +| main.rs:654:9:654:20 | Before print_i64(...) | main.rs:654:9:654:17 | print_i64 | | +| main.rs:654:9:654:20 | print_i64(...) | main.rs:654:9:654:20 | After print_i64(...) | | +| main.rs:654:9:654:21 | After ExprStmt | main.rs:655:9:655:25 | ExprStmt | | +| main.rs:654:9:654:21 | ExprStmt | main.rs:654:9:654:20 | Before 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:9:655:17 | print_i64 | main.rs:655:19:655:23 | Before ... + ... | | +| main.rs:655:9:655:24 | After print_i64(...) | main.rs:655:9:655:25 | After ExprStmt | | +| main.rs:655:9:655:24 | Before print_i64(...) | main.rs:655:9:655:17 | print_i64 | | +| main.rs:655:9:655:24 | print_i64(...) | main.rs:655:9:655:24 | After print_i64(...) | | +| main.rs:655:9:655:25 | After ExprStmt | main.rs:652:12:656:5 | After { ... } | | +| main.rs:655:9:655:25 | ExprStmt | main.rs:655:9:655:24 | Before 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:19:655:23 | ... + ... | main.rs:655:19:655:23 | After ... + ... | | +| main.rs:655:19:655:23 | After ... + ... | main.rs:655:9:655:24 | print_i64(...) | | +| main.rs:655:19:655:23 | Before ... + ... | main.rs:655:19:655:19 | x | | | 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:5:657:16 | After print_i64(...) | main.rs:657:5:657:17 | After ExprStmt | | +| main.rs:657:5:657:16 | Before print_i64(...) | main.rs:657:5:657:13 | print_i64 | | +| main.rs:657:5:657:16 | print_i64(...) | main.rs:657:5:657:16 | After print_i64(...) | | +| main.rs:657:5:657:17 | After ExprStmt | main.rs:642:17:658:1 | After { ... } | | +| main.rs:657:5:657:17 | ExprStmt | main.rs:657:5:657:16 | Before 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:1:677:1 | Entry | main.rs:660:13:660:20 | Before ...: bool | | +| main.rs:660:1:677:1 | Normal Exit | main.rs:660:1:677:1 | Exit | | +| main.rs:660:13:660:14 | After b1 [match] | main.rs:660:13:660:20 | ...: bool | | +| main.rs:660:13:660:14 | Before b1 | main.rs:660:13:660:14 | b1 | | +| main.rs:660:13:660:14 | b1 | main.rs:660:13:660:14 | After b1 [match] | match | | 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:13:660:20 | ...: bool | main.rs:660:13:660:20 | After ...: bool | | +| main.rs:660:13:660:20 | After ...: bool | main.rs:660:23:660:30 | Before ...: bool | | +| main.rs:660:13:660:20 | Before ...: bool | main.rs:660:13:660:14 | Before b1 | | +| main.rs:660:23:660:24 | After b2 [match] | main.rs:660:23:660:30 | ...: bool | | +| main.rs:660:23:660:24 | Before b2 | main.rs:660:23:660:24 | b2 | | +| main.rs:660:23:660:24 | b2 | main.rs:660:23:660:24 | After b2 [match] | match | | 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:660:23:660:30 | ...: bool | main.rs:660:23:660:30 | After ...: bool | | +| main.rs:660:23:660:30 | After ...: bool | main.rs:660:33:677:1 | { ... } | | +| main.rs:660:23:660:30 | Before ...: bool | main.rs:660:23:660:24 | Before b2 | | +| main.rs:660:33:677:1 | After { ... } | main.rs:660:1:677:1 | Normal Exit | | +| main.rs:660:33:677:1 | { ... } | main.rs:661:5:661:14 | let ... = 1 | | +| main.rs:661:5:661:14 | After let ... = 1 | main.rs:662:5:668:6 | let _ = ... | | | main.rs:661:5:661:14 | let ... = 1 | main.rs:661:13:661:13 | 1 | | +| main.rs:661:9:661:9 | After x [match] | main.rs:661:5:661:14 | After let ... = 1 | | +| main.rs:661:9:661:9 | Before x | main.rs:661:9:661:9 | x | | +| main.rs:661:9:661:9 | x | main.rs:661:9:661:9 | After x [match] | match | | 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:661:13:661:13 | 1 | main.rs:661:9:661:9 | Before x | | +| main.rs:662:5:668:6 | After let _ = ... | main.rs:670:5:676:6 | let _ = ... | | +| main.rs:662:5:668:6 | let _ = ... | main.rs:663:13:668:5 | if b1 {...} else {...} | | +| main.rs:663:9:663:9 | After _ [match] | main.rs:662:5:668:6 | After let _ = ... | | +| main.rs:663:9:663:9 | _ | main.rs:663:9:663:9 | After _ [match] | match | +| main.rs:663:13:668:5 | After if b1 {...} else {...} | main.rs:663:9:663:9 | _ | | +| main.rs:663:13:668:5 | if b1 {...} else {...} | main.rs:663:16:663:17 | b1 | | +| main.rs:663:16:663:17 | After b1 [false] | main.rs:666:12:668:5 | { ... } | | +| main.rs:663:16:663:17 | After b1 [true] | main.rs:664:5:666:5 | { ... } | | +| main.rs:663:16:663:17 | b1 | main.rs:663:16:663:17 | After b1 [false] | false | +| main.rs:663:16:663:17 | b1 | main.rs:663:16:663:17 | After b1 [true] | true | +| main.rs:664:5:666:5 | After { ... } | main.rs:663:13:668:5 | After if b1 {...} else {...} | | +| 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:664:5:666:5 | { ... } | | -| main.rs:665:9:665:21 | ExprStmt | main.rs:665:9:665:17 | print_i64 | | +| main.rs:665:9:665:20 | After print_i64(...) | main.rs:665:9:665:21 | After ExprStmt | | +| main.rs:665:9:665:20 | Before print_i64(...) | main.rs:665:9:665:17 | print_i64 | | +| main.rs:665:9:665:20 | print_i64(...) | main.rs:665:9:665:20 | After print_i64(...) | | +| main.rs:665:9:665:21 | After ExprStmt | main.rs:664:5:666:5 | After { ... } | | +| main.rs:665:9:665:21 | ExprStmt | main.rs:665:9:665:20 | Before 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:666:12:668:5 | After { ... } | main.rs:663:13:668:5 | After if b1 {...} else {...} | | +| 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:666:12:668:5 | { ... } | | -| main.rs:667:9:667:21 | ExprStmt | main.rs:667:9:667:17 | print_i64 | | +| main.rs:667:9:667:20 | After print_i64(...) | main.rs:667:9:667:21 | After ExprStmt | | +| main.rs:667:9:667:20 | Before print_i64(...) | main.rs:667:9:667:17 | print_i64 | | +| main.rs:667:9:667:20 | print_i64(...) | main.rs:667:9:667:20 | After print_i64(...) | | +| main.rs:667:9:667:21 | After ExprStmt | main.rs:666:12:668:5 | After { ... } | | +| main.rs:667:9:667:21 | ExprStmt | main.rs:667:9:667:20 | Before 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:670:5:676:6 | After let _ = ... | main.rs:660:33:677:1 | After { ... } | | +| main.rs:670:5:676:6 | let _ = ... | main.rs:671:13:676:5 | if b2 {...} else {...} | | +| main.rs:671:9:671:9 | After _ [match] | main.rs:670:5:676:6 | After let _ = ... | | +| main.rs:671:9:671:9 | _ | main.rs:671:9:671:9 | After _ [match] | match | +| main.rs:671:13:676:5 | After if b2 {...} else {...} | main.rs:671:9:671:9 | _ | | +| main.rs:671:13:676:5 | if b2 {...} else {...} | main.rs:671:16:671:17 | b2 | | +| main.rs:671:16:671:17 | After b2 [false] | main.rs:674:12:676:5 | { ... } | | +| main.rs:671:16:671:17 | After b2 [true] | main.rs:672:5:674:5 | { ... } | | +| main.rs:671:16:671:17 | b2 | main.rs:671:16:671:17 | After b2 [false] | false | +| main.rs:671:16:671:17 | b2 | main.rs:671:16:671:17 | After b2 [true] | true | +| main.rs:672:5:674:5 | After { ... } | main.rs:671:13:676:5 | After if b2 {...} else {...} | | +| 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:672:5:674:5 | { ... } | | -| main.rs:673:9:673:21 | ExprStmt | main.rs:673:9:673:17 | print_i64 | | +| main.rs:673:9:673:20 | After print_i64(...) | main.rs:673:9:673:21 | After ExprStmt | | +| main.rs:673:9:673:20 | Before print_i64(...) | main.rs:673:9:673:17 | print_i64 | | +| main.rs:673:9:673:20 | print_i64(...) | main.rs:673:9:673:20 | After print_i64(...) | | +| main.rs:673:9:673:21 | After ExprStmt | main.rs:672:5:674:5 | After { ... } | | +| main.rs:673:9:673:21 | ExprStmt | main.rs:673:9:673:20 | Before 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:674:12:676:5 | After { ... } | main.rs:671:13:676:5 | After if b2 {...} else {...} | | +| 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:674:12:676:5 | { ... } | | -| main.rs:675:9:675:21 | ExprStmt | main.rs:675:9:675:17 | print_i64 | | +| main.rs:675:9:675:20 | After print_i64(...) | main.rs:675:9:675:21 | After ExprStmt | | +| main.rs:675:9:675:20 | Before print_i64(...) | main.rs:675:9:675:17 | print_i64 | | +| main.rs:675:9:675:20 | print_i64(...) | main.rs:675:9:675:20 | After print_i64(...) | | +| main.rs:675:9:675:21 | After ExprStmt | main.rs:674:12:676:5 | After { ... } | | +| main.rs:675:9:675:21 | ExprStmt | main.rs:675:9:675:20 | Before 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:5:686:5 | Entry | main.rs:684:15:684:23 | Before SelfParam | | +| main.rs:684:5:686:5 | Normal Exit | main.rs:684:5:686:5 | Exit | | +| main.rs:684:15:684:23 | After SelfParam | main.rs:684:33:686:5 | { ... } | | +| main.rs:684:15:684:23 | Before SelfParam | main.rs:684:20:684:23 | self | | +| main.rs:684:15:684:23 | SelfParam | main.rs:684:15:684:23 | After SelfParam | | | 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:684:33:686:5 | { ... } | main.rs:685:9:685:24 | ExprStmt | | +| main.rs:685:9:685:23 | Before return ... | main.rs:685:16:685:23 | Before self.val | | +| main.rs:685:9:685:23 | return ... | main.rs:684:5:686:5 | Normal Exit | return | +| main.rs:685:9:685:24 | ExprStmt | main.rs:685:9:685:23 | Before return ... | | | 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:685:16:685:23 | After self.val | main.rs:685:9:685:23 | return ... | | +| main.rs:685:16:685:23 | Before self.val | main.rs:685:16:685:19 | self | | +| main.rs:685:16:685:23 | self.val | main.rs:685:16:685:23 | After self.val | | +| main.rs:688:5:690:5 | Entry | main.rs:688:11:688:14 | Before SelfParam | | +| main.rs:688:5:690:5 | Normal Exit | main.rs:688:5:690:5 | Exit | | +| main.rs:688:11:688:14 | After SelfParam | main.rs:688:25:690:5 | { ... } | | +| main.rs:688:11:688:14 | Before SelfParam | main.rs:688:11:688:14 | self | | +| main.rs:688:11:688:14 | SelfParam | main.rs:688:11:688:14 | After SelfParam | | | 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:688:25:690:5 | After { ... } | main.rs:688:5:690:5 | Normal Exit | | +| main.rs:688:25:690:5 | { ... } | main.rs:689:9:689:12 | self | | +| main.rs:689:9:689:12 | self | main.rs:688:25:690:5 | After { ... } | | +| main.rs:692:5:699:5 | Entry | main.rs:692:18:692:26 | Before SelfParam | | +| main.rs:692:5:699:5 | Normal Exit | main.rs:692:5:699:5 | Exit | | +| main.rs:692:18:692:26 | After SelfParam | main.rs:692:29:699:5 | { ... } | | +| main.rs:692:18:692:26 | Before SelfParam | main.rs:692:23:692:26 | self | | +| main.rs:692:18:692:26 | SelfParam | main.rs:692:18:692:26 | After SelfParam | | | 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:692:29:699:5 | After { ... } | main.rs:692:5:699:5 | Normal Exit | | +| main.rs:692:29:699:5 | { ... } | main.rs:693:9:696:10 | let ... = ... | | +| main.rs:693:9:696:10 | After let ... = ... | main.rs:697:9:697:13 | ExprStmt | | | 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:13:693:17 | After mut f [match] | main.rs:693:9:696:10 | After let ... = ... | | +| main.rs:693:13:693:17 | Before mut f | main.rs:693:17:693:17 | f | | +| main.rs:693:13:693:17 | mut f | main.rs:693:13:693:17 | After mut f [match] | 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:21:696:9 | Entry | main.rs:693:22:693:22 | Before ... | | +| main.rs:693:21:696:9 | Normal Exit | main.rs:693:21:696:9 | Exit | | +| main.rs:693:21:696:9 | \|...\| ... | main.rs:693:13:693:17 | Before mut f | | +| main.rs:693:22:693:22 | ... | main.rs:693:22:693:22 | After ... | | +| main.rs:693:22:693:22 | After ... | main.rs:693:25:696:9 | { ... } | | +| main.rs:693:22:693:22 | After n [match] | main.rs:693:22:693:22 | ... | | +| main.rs:693:22:693:22 | Before ... | main.rs:693:22:693:22 | Before n | | +| main.rs:693:22:693:22 | Before n | main.rs:693:22:693:22 | n | | +| main.rs:693:22:693:22 | n | main.rs:693:22:693:22 | After n [match] | 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:693:25:696:9 | After { ... } | main.rs:693:21:696:9 | Normal Exit | | +| main.rs:693:25:696:9 | { ... } | main.rs:695:13:695:26 | ExprStmt | | | 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:13:695:20 | After self.val | main.rs:695:25:695:25 | n | | +| main.rs:695:13:695:20 | Before self.val | main.rs:695:13:695:16 | self | | +| main.rs:695:13:695:20 | self.val | main.rs:695:13:695:20 | After self.val | | +| main.rs:695:13:695:25 | ... += ... | main.rs:695:13:695:25 | After ... += ... | | +| main.rs:695:13:695:25 | After ... += ... | main.rs:695:13:695:26 | After ExprStmt | | +| main.rs:695:13:695:25 | Before ... += ... | main.rs:695:13:695:20 | Before self.val | | +| main.rs:695:13:695:26 | After ExprStmt | main.rs:693:25:696:9 | After { ... } | | +| main.rs:695:13:695:26 | ExprStmt | main.rs:695:13:695:25 | Before ... += ... | | | 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:9:697:12 | After f(...) | main.rs:697:9:697:13 | After ExprStmt | | +| main.rs:697:9:697:12 | Before f(...) | main.rs:697:9:697:9 | f | | +| main.rs:697:9:697:12 | f(...) | main.rs:697:9:697:12 | After f(...) | | +| main.rs:697:9:697:13 | After ExprStmt | main.rs:698:9:698:13 | ExprStmt | | +| main.rs:697:9:697:13 | ExprStmt | main.rs:697:9:697:12 | Before 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:9:698:12 | After f(...) | main.rs:698:9:698:13 | After ExprStmt | | +| main.rs:698:9:698:12 | Before f(...) | main.rs:698:9:698:9 | f | | +| main.rs:698:9:698:12 | f(...) | main.rs:698:9:698:12 | After f(...) | | +| main.rs:698:9:698:13 | After ExprStmt | main.rs:692:29:699:5 | After { ... } | | +| main.rs:698:9:698:13 | ExprStmt | main.rs:698:9:698:12 | Before 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:702:1:709:1 | Entry | main.rs:702:14:709:1 | { ... } | | +| main.rs:702:1:709:1 | Normal Exit | main.rs:702:1:709:1 | Exit | | +| main.rs:702:14:709:1 | After { ... } | main.rs:702:1:709:1 | Normal Exit | | +| main.rs:702:14:709:1 | { ... } | main.rs:703:5:703:36 | let ... = ... | | +| main.rs:703:5:703:36 | After let ... = ... | main.rs:704:5:704:26 | ExprStmt | | +| main.rs:703:5:703:36 | let ... = ... | main.rs:703:17:703:35 | Before MyStruct {...} | | +| main.rs:703:9:703:13 | After mut a [match] | main.rs:703:5:703:36 | After let ... = ... | | +| main.rs:703:9:703:13 | Before mut a | main.rs:703:13:703:13 | a | | +| main.rs:703:9:703:13 | mut a | main.rs:703:9:703:13 | After mut a [match] | 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:17:703:35 | After MyStruct {...} | main.rs:703:9:703:13 | Before mut a | | +| main.rs:703:17:703:35 | Before MyStruct {...} | main.rs:703:33:703:33 | 1 | | +| main.rs:703:17:703:35 | MyStruct {...} | main.rs:703:17:703:35 | After MyStruct {...} | | | 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:5:704:13 | print_i64 | main.rs:704:15:704:24 | Before a.my_get() | | +| main.rs:704:5:704:25 | After print_i64(...) | main.rs:704:5:704:26 | After ExprStmt | | +| main.rs:704:5:704:25 | Before print_i64(...) | main.rs:704:5:704:13 | print_i64 | | +| main.rs:704:5:704:25 | print_i64(...) | main.rs:704:5:704:25 | After print_i64(...) | | +| main.rs:704:5:704:26 | After ExprStmt | main.rs:705:5:705:14 | ExprStmt | | +| main.rs:704:5:704:26 | ExprStmt | main.rs:704:5:704:25 | Before 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:704:15:704:24 | After a.my_get() | main.rs:704:5:704:25 | print_i64(...) | | +| main.rs:704:15:704:24 | Before a.my_get() | main.rs:704:15:704:15 | a | | +| main.rs:704:15:704:24 | a.my_get() | main.rs:704:15:704:24 | After a.my_get() | | | 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:5:705:9 | After a.val | main.rs:705:13:705:13 | 5 | | +| main.rs:705:5:705:9 | Before a.val | main.rs:705:5:705:5 | a | | +| main.rs:705:5:705:9 | a.val | main.rs:705:5:705:9 | After a.val | | +| main.rs:705:5:705:13 | ... = ... | main.rs:705:5:705:13 | After ... = ... | | +| main.rs:705:5:705:13 | After ... = ... | main.rs:705:5:705:14 | After ExprStmt | | +| main.rs:705:5:705:13 | Before ... = ... | main.rs:705:5:705:9 | Before a.val | | +| main.rs:705:5:705:14 | After ExprStmt | main.rs:706:5:706:26 | ExprStmt | | +| main.rs:705:5:705:14 | ExprStmt | main.rs:705:5:705:13 | Before ... = ... | | | 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:5:706:13 | print_i64 | main.rs:706:15:706:24 | Before a.my_get() | | +| main.rs:706:5:706:25 | After print_i64(...) | main.rs:706:5:706:26 | After ExprStmt | | +| main.rs:706:5:706:25 | Before print_i64(...) | main.rs:706:5:706:13 | print_i64 | | +| main.rs:706:5:706:25 | print_i64(...) | main.rs:706:5:706:25 | After print_i64(...) | | +| main.rs:706:5:706:26 | After ExprStmt | main.rs:707:5:707:28 | ExprStmt | | +| main.rs:706:5:706:26 | ExprStmt | main.rs:706:5:706:25 | Before 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:706:15:706:24 | After a.my_get() | main.rs:706:5:706:25 | print_i64(...) | | +| main.rs:706:15:706:24 | Before a.my_get() | main.rs:706:15:706:15 | a | | +| main.rs:706:15:706:24 | a.my_get() | main.rs:706:15:706:24 | After a.my_get() | | +| main.rs:707:5:707:5 | a | main.rs:707:9:707:27 | Before MyStruct {...} | | +| main.rs:707:5:707:27 | ... = ... | main.rs:707:5:707:27 | After ... = ... | | +| main.rs:707:5:707:27 | After ... = ... | main.rs:707:5:707:28 | After ExprStmt | | +| main.rs:707:5:707:27 | Before ... = ... | main.rs:707:5:707:5 | a | | +| main.rs:707:5:707:28 | After ExprStmt | main.rs:708:5:708:26 | ExprStmt | | +| main.rs:707:5:707:28 | ExprStmt | main.rs:707:5:707:27 | Before ... = ... | | +| main.rs:707:9:707:27 | After MyStruct {...} | main.rs:707:5:707:27 | ... = ... | | +| main.rs:707:9:707:27 | Before MyStruct {...} | main.rs:707:25:707:25 | 2 | | +| main.rs:707:9:707:27 | MyStruct {...} | main.rs:707:9:707:27 | After MyStruct {...} | | | 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: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:5:708:13 | print_i64 | main.rs:708:15:708:24 | Before a.my_get() | | +| main.rs:708:5:708:25 | After print_i64(...) | main.rs:708:5:708:26 | After ExprStmt | | +| main.rs:708:5:708:25 | Before print_i64(...) | main.rs:708:5:708:13 | print_i64 | | +| main.rs:708:5:708:25 | print_i64(...) | main.rs:708:5:708:25 | After print_i64(...) | | +| main.rs:708:5:708:26 | After ExprStmt | main.rs:702:14:709:1 | After { ... } | | +| main.rs:708:5:708:26 | ExprStmt | main.rs:708:5:708:25 | Before 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:708:15:708:24 | After a.my_get() | main.rs:708:5:708:25 | print_i64(...) | | +| main.rs:708:15:708:24 | Before a.my_get() | main.rs:708:15:708:15 | a | | +| main.rs:708:15:708:24 | a.my_get() | main.rs:708:15:708:24 | After a.my_get() | | +| main.rs:711:1:718:1 | Entry | main.rs:711:13:718:1 | { ... } | | +| main.rs:711:1:718:1 | Normal Exit | main.rs:711:1:718:1 | Exit | | +| main.rs:711:13:718:1 | After { ... } | main.rs:711:1:718:1 | Normal Exit | | +| main.rs:711:13:718:1 | { ... } | main.rs:712:5:712:26 | let ... = ... | | +| main.rs:712:5:712:26 | After let ... = ... | main.rs:713:5:713:20 | ExprStmt | | +| main.rs:712:5:712:26 | let ... = ... | main.rs:712:17:712:25 | Before [...] | | +| main.rs:712:9:712:13 | After mut a [match] | main.rs:712:5:712:26 | After let ... = ... | | +| main.rs:712:9:712:13 | Before mut a | main.rs:712:13:712:13 | a | | +| main.rs:712:9:712:13 | mut a | main.rs:712:9:712:13 | After mut a [match] | 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:17:712:25 | After [...] | main.rs:712:9:712:13 | Before mut a | | +| main.rs:712:17:712:25 | Before [...] | main.rs:712:18:712:18 | 1 | | +| main.rs:712:17:712:25 | [...] | main.rs:712:17:712:25 | After [...] | | | 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:5:713:13 | print_i64 | main.rs:713:15:713:18 | Before a[0] | | +| main.rs:713:5:713:19 | After print_i64(...) | main.rs:713:5:713:20 | After ExprStmt | | +| main.rs:713:5:713:19 | Before print_i64(...) | main.rs:713:5:713:13 | print_i64 | | +| main.rs:713:5:713:19 | print_i64(...) | main.rs:713:5:713:19 | After print_i64(...) | | +| main.rs:713:5:713:20 | After ExprStmt | main.rs:714:5:714:13 | ExprStmt | | +| main.rs:713:5:713:20 | ExprStmt | main.rs:713:5:713:19 | Before 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:15:713:18 | After a[0] | main.rs:713:5:713:19 | print_i64(...) | | +| main.rs:713:15:713:18 | Before a[0] | main.rs:713:15:713:15 | a | | +| main.rs:713:15:713:18 | a[0] | main.rs:713:15:713:18 | After a[0] | | | 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:5:714:8 | After a[1] | main.rs:714:12:714:12 | 5 | | +| main.rs:714:5:714:8 | Before a[1] | main.rs:714:5:714:5 | a | | +| main.rs:714:5:714:8 | a[1] | main.rs:714:5:714:8 | After a[1] | | +| main.rs:714:5:714:12 | ... = ... | main.rs:714:5:714:12 | After ... = ... | | +| main.rs:714:5:714:12 | After ... = ... | main.rs:714:5:714:13 | After ExprStmt | | +| main.rs:714:5:714:12 | Before ... = ... | main.rs:714:5:714:8 | Before a[1] | | +| main.rs:714:5:714:13 | After ExprStmt | main.rs:715:5:715:20 | ExprStmt | | +| main.rs:714:5:714:13 | ExprStmt | main.rs:714:5:714:12 | Before ... = ... | | | 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:5:715:13 | print_i64 | main.rs:715:15:715:18 | Before a[1] | | +| main.rs:715:5:715:19 | After print_i64(...) | main.rs:715:5:715:20 | After ExprStmt | | +| main.rs:715:5:715:19 | Before print_i64(...) | main.rs:715:5:715:13 | print_i64 | | +| main.rs:715:5:715:19 | print_i64(...) | main.rs:715:5:715:19 | After print_i64(...) | | +| main.rs:715:5:715:20 | After ExprStmt | main.rs:716:5:716:18 | ExprStmt | | +| main.rs:715:5:715:20 | ExprStmt | main.rs:715:5:715:19 | Before 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:15:715:18 | After a[1] | main.rs:715:5:715:19 | print_i64(...) | | +| main.rs:715:15:715:18 | Before a[1] | main.rs:715:15:715:15 | a | | +| main.rs:715:15:715:18 | a[1] | main.rs:715:15:715:18 | After a[1] | | | 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:5:716:5 | a | main.rs:716:9:716:17 | Before [...] | | +| main.rs:716:5:716:17 | ... = ... | main.rs:716:5:716:17 | After ... = ... | | +| main.rs:716:5:716:17 | After ... = ... | main.rs:716:5:716:18 | After ExprStmt | | +| main.rs:716:5:716:17 | Before ... = ... | main.rs:716:5:716:5 | a | | +| main.rs:716:5:716:18 | After ExprStmt | main.rs:717:5:717:20 | ExprStmt | | +| main.rs:716:5:716:18 | ExprStmt | main.rs:716:5:716:17 | Before ... = ... | | +| main.rs:716:9:716:17 | After [...] | main.rs:716:5:716:17 | ... = ... | | +| main.rs:716:9:716:17 | Before [...] | main.rs:716:10:716:10 | 4 | | +| main.rs:716:9:716:17 | [...] | main.rs:716:9:716:17 | After [...] | | | 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:5:717:13 | print_i64 | main.rs:717:15:717:18 | Before a[2] | | +| main.rs:717:5:717:19 | After print_i64(...) | main.rs:717:5:717:20 | After ExprStmt | | +| main.rs:717:5:717:19 | Before print_i64(...) | main.rs:717:5:717:13 | print_i64 | | +| main.rs:717:5:717:19 | print_i64(...) | main.rs:717:5:717:19 | After print_i64(...) | | +| main.rs:717:5:717:20 | After ExprStmt | main.rs:711:13:718:1 | After { ... } | | +| main.rs:717:5:717:20 | ExprStmt | main.rs:717:5:717:19 | Before 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:15:717:18 | After a[2] | main.rs:717:5:717:19 | print_i64(...) | | +| main.rs:717:15:717:18 | Before a[2] | main.rs:717:15:717:15 | a | | +| main.rs:717:15:717:18 | a[2] | main.rs:717:15:717:18 | After a[2] | | | 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:720:1:727:1 | Entry | main.rs:720:14:727:1 | { ... } | | +| main.rs:720:1:727:1 | Normal Exit | main.rs:720:1:727:1 | Exit | | +| main.rs:720:14:727:1 | After { ... } | main.rs:720:1:727:1 | Normal Exit | | +| main.rs:720:14:727:1 | { ... } | main.rs:721:5:721:15 | let ... = 16 | | +| main.rs:721:5:721:15 | After let ... = 16 | main.rs:722:5:722:22 | ExprStmt | | | main.rs:721:5:721:15 | let ... = 16 | main.rs:721:13:721:14 | 16 | | +| main.rs:721:9:721:9 | After x [match] | main.rs:721:5:721:15 | After let ... = 16 | | +| main.rs:721:9:721:9 | Before x | main.rs:721:9:721:9 | x | | +| main.rs:721:9:721:9 | x | main.rs:721:9:721:9 | After x [match] | match | | 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:721:13:721:14 | 16 | main.rs:721:9:721:9 | Before x | | +| main.rs:722:5:722:17 | print_i64_ref | main.rs:722:19:722:20 | Before &x | | +| main.rs:722:5:722:21 | After print_i64_ref(...) | main.rs:722:5:722:22 | After ExprStmt | | +| main.rs:722:5:722:21 | Before print_i64_ref(...) | main.rs:722:5:722:17 | print_i64_ref | | +| main.rs:722:5:722:21 | print_i64_ref(...) | main.rs:722:5:722:21 | After print_i64_ref(...) | | +| main.rs:722:5:722:22 | After ExprStmt | main.rs:723:5:723:17 | ExprStmt | | +| main.rs:722:5:722:22 | ExprStmt | main.rs:722:5:722:21 | Before print_i64_ref(...) | | +| main.rs:722:19:722:20 | &x | main.rs:722:19:722:20 | After &x | | +| main.rs:722:19:722:20 | After &x | main.rs:722:5:722:21 | print_i64_ref(...) | | +| main.rs:722:19:722:20 | Before &x | main.rs:722:20:722:20 | x | | | 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:5:723:16 | After print_i64(...) | main.rs:723:5:723:17 | After ExprStmt | | +| main.rs:723:5:723:16 | Before print_i64(...) | main.rs:723:5:723:13 | print_i64 | | +| main.rs:723:5:723:16 | print_i64(...) | main.rs:723:5:723:16 | After print_i64(...) | | +| main.rs:723:5:723:17 | After ExprStmt | main.rs:725:5:725:15 | let ... = 17 | | +| main.rs:723:5:723:17 | ExprStmt | main.rs:723:5:723:16 | Before print_i64(...) | | | main.rs:723:15:723:15 | x | main.rs:723:5:723:16 | print_i64(...) | | +| main.rs:725:5:725:15 | After let ... = 17 | main.rs:726:5:726:22 | ExprStmt | | | main.rs:725:5:725:15 | let ... = 17 | main.rs:725:13:725:14 | 17 | | +| main.rs:725:9:725:9 | After z [match] | main.rs:725:5:725:15 | After let ... = 17 | | +| main.rs:725:9:725:9 | Before z | main.rs:725:9:725:9 | z | | +| main.rs:725:9:725:9 | z | main.rs:725:9:725:9 | After z [match] | match | | 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:725:13:725:14 | 17 | main.rs:725:9:725:9 | Before z | | +| main.rs:726:5:726:17 | print_i64_ref | main.rs:726:19:726:20 | Before &z | | +| main.rs:726:5:726:21 | After print_i64_ref(...) | main.rs:726:5:726:22 | After ExprStmt | | +| main.rs:726:5:726:21 | Before print_i64_ref(...) | main.rs:726:5:726:17 | print_i64_ref | | +| main.rs:726:5:726:21 | print_i64_ref(...) | main.rs:726:5:726:21 | After print_i64_ref(...) | | +| main.rs:726:5:726:22 | After ExprStmt | main.rs:720:14:727:1 | After { ... } | | +| main.rs:726:5:726:22 | ExprStmt | main.rs:726:5:726:21 | Before print_i64_ref(...) | | +| main.rs:726:19:726:20 | &z | main.rs:726:19:726:20 | After &z | | +| main.rs:726:19:726:20 | After &z | main.rs:726:5:726:21 | print_i64_ref(...) | | +| main.rs:726:19:726:20 | Before &z | main.rs:726:20:726:20 | z | | | 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:5:736:5 | Entry | main.rs:734:12:734:20 | Before SelfParam | | +| main.rs:734:5:736:5 | Normal Exit | main.rs:734:5:736:5 | Exit | | +| main.rs:734:12:734:20 | After SelfParam | main.rs:734:23:736:5 | { ... } | | +| main.rs:734:12:734:20 | Before SelfParam | main.rs:734:17:734:20 | self | | +| main.rs:734:12:734:20 | SelfParam | main.rs:734:12:734:20 | After SelfParam | | | 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:734:23:736:5 | After { ... } | main.rs:734:5:736:5 | Normal Exit | | +| main.rs:734:23:736:5 | { ... } | main.rs:735:9:735:36 | ExprStmt | | +| main.rs:735:9:735:13 | * ... | main.rs:735:9:735:13 | After * ... | | +| main.rs:735:9:735:13 | After * ... | main.rs:735:17:735:35 | Before MyStruct {...} | | +| main.rs:735:9:735:13 | Before * ... | main.rs:735:10:735:13 | self | | +| main.rs:735:9:735:35 | ... = ... | main.rs:735:9:735:35 | After ... = ... | | +| main.rs:735:9:735:35 | After ... = ... | main.rs:735:9:735:36 | After ExprStmt | | +| main.rs:735:9:735:35 | Before ... = ... | main.rs:735:9:735:13 | Before * ... | | +| main.rs:735:9:735:36 | After ExprStmt | main.rs:734:23:736:5 | After { ... } | | +| main.rs:735:9:735:36 | ExprStmt | main.rs:735:9:735:35 | Before ... = ... | | | 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:17:735:35 | After MyStruct {...} | main.rs:735:9:735:35 | ... = ... | | +| main.rs:735:17:735:35 | Before MyStruct {...} | main.rs:735:33:735:33 | 3 | | +| main.rs:735:17:735:35 | MyStruct {...} | main.rs:735:17:735:35 | After MyStruct {...} | | | 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:739:1:745:1 | Entry | main.rs:739:30:745:1 | { ... } | | +| main.rs:739:1:745:1 | Normal Exit | main.rs:739:1:745:1 | Exit | | +| main.rs:739:30:745:1 | After { ... } | main.rs:739:1:745:1 | Normal Exit | | +| main.rs:739:30:745:1 | { ... } | main.rs:740:5:740:36 | let ... = ... | | +| main.rs:740:5:740:36 | After let ... = ... | main.rs:741:5:741:12 | ExprStmt | | +| main.rs:740:5:740:36 | let ... = ... | main.rs:740:17:740:35 | Before MyStruct {...} | | +| main.rs:740:9:740:13 | After mut a [match] | main.rs:740:5:740:36 | After let ... = ... | | +| main.rs:740:9:740:13 | Before mut a | main.rs:740:13:740:13 | a | | +| main.rs:740:9:740:13 | mut a | main.rs:740:9:740:13 | After mut a [match] | 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:17:740:35 | After MyStruct {...} | main.rs:740:9:740:13 | Before mut a | | +| main.rs:740:17:740:35 | Before MyStruct {...} | main.rs:740:33:740:33 | 1 | | +| main.rs:740:17:740:35 | MyStruct {...} | main.rs:740:17:740:35 | After MyStruct {...} | | | 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:741:5:741:11 | After a.bar() | main.rs:741:5:741:12 | After ExprStmt | | +| main.rs:741:5:741:11 | Before a.bar() | main.rs:741:5:741:5 | a | | +| main.rs:741:5:741:11 | a.bar() | main.rs:741:5:741:11 | After a.bar() | | +| main.rs:741:5:741:12 | After ExprStmt | main.rs:744:5:744:21 | ExprStmt | | +| main.rs:741:5:741:12 | ExprStmt | main.rs:741:5:741:11 | Before a.bar() | | +| main.rs:744:5:744:13 | print_i64 | main.rs:744:15:744:19 | Before a.val | | +| main.rs:744:5:744:20 | After print_i64(...) | main.rs:744:5:744:21 | After ExprStmt | | +| main.rs:744:5:744:20 | Before print_i64(...) | main.rs:744:5:744:13 | print_i64 | | +| main.rs:744:5:744:20 | print_i64(...) | main.rs:744:5:744:20 | After print_i64(...) | | +| main.rs:744:5:744:21 | After ExprStmt | main.rs:739:30:745:1 | After { ... } | | +| main.rs:744:5:744:21 | ExprStmt | main.rs:744:5:744:20 | Before 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:744:15:744:19 | After a.val | main.rs:744:5:744:20 | print_i64(...) | | +| main.rs:744:15:744:19 | Before a.val | main.rs:744:15:744:15 | a | | +| main.rs:744:15:744:19 | a.val | main.rs:744:15:744:19 | After a.val | | +| main.rs:761:1:772:1 | Entry | main.rs:761:23:772:1 | { ... } | | +| main.rs:761:1:772:1 | Normal Exit | main.rs:761:1:772:1 | Exit | | +| main.rs:761:23:772:1 | After { ... } | main.rs:761:1:772:1 | Normal Exit | | +| main.rs:761:23:772:1 | { ... } | main.rs:762:5:763:26 | let ... = ... | | +| main.rs:762:5:763:26 | After let ... = ... | main.rs:764:5:764:30 | ExprStmt | | +| main.rs:762:5:763:26 | let ... = ... | main.rs:763:9:763:25 | Before MacroExpr | | +| main.rs:762:9:762:22 | After var_from_macro [match] | main.rs:762:5:763:26 | After let ... = ... | | +| main.rs:762:9:762:22 | Before var_from_macro | main.rs:762:9:762:22 | var_from_macro | | +| main.rs:762:9:762:22 | var_from_macro | main.rs:762:9:762:22 | After var_from_macro [match] | match | | 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 | After var_in_macro [match] | main.rs:763:23:763:24 | After let ... = 37 | | +| main.rs:763:9:763:21 | Before 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 | After var_in_macro [match] | 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:9:763:21 | var_in_macro | main.rs:763:23:763:24 | After { ... } | | +| main.rs:763:9:763:25 | After MacroExpr | main.rs:762:9:762:22 | Before var_from_macro | | +| main.rs:763:9:763:25 | After let_in_macro!... | main.rs:763:9:763:25 | MacroExpr | | +| main.rs:763:9:763:25 | Before MacroExpr | main.rs:763:9:763:25 | Before let_in_macro!... | | +| main.rs:763:9:763:25 | Before let_in_macro!... | main.rs:763:23:763:24 | { ... } | | +| main.rs:763:9:763:25 | MacroExpr | main.rs:763:9:763:25 | After MacroExpr | | +| main.rs:763:9:763:25 | let_in_macro!... | main.rs:763:9:763:25 | After let_in_macro!... | | +| main.rs:763:23:763:24 | 37 | main.rs:763:9:763:21 | Before var_in_macro | | +| main.rs:763:23:763:24 | After let ... = 37 | main.rs:763:9:763:21 | var_in_macro | | +| main.rs:763:23:763:24 | After { ... } | main.rs:763:9:763:25 | let_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:763:23:763:24 | { ... } | main.rs:763:23:763:24 | let ... = 37 | | | 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:5:764:29 | After print_i64(...) | main.rs:764:5:764:30 | After ExprStmt | | +| main.rs:764:5:764:29 | Before print_i64(...) | main.rs:764:5:764:13 | print_i64 | | +| main.rs:764:5:764:29 | print_i64(...) | main.rs:764:5:764:29 | After print_i64(...) | | +| main.rs:764:5:764:30 | After ExprStmt | main.rs:765:5:765:26 | let ... = 33 | | +| main.rs:764:5:764:30 | ExprStmt | main.rs:764:5:764:29 | Before 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 | After let ... = 33 | main.rs:770:5:770:44 | ExprStmt | | | main.rs:765:5:765:26 | let ... = 33 | main.rs:765:24:765:25 | 33 | | +| main.rs:765:9:765:20 | After var_in_macro [match] | main.rs:765:5:765:26 | After let ... = 33 | | +| main.rs:765:9:765:20 | Before var_in_macro | main.rs:765:9:765:20 | var_in_macro | | +| main.rs:765:9:765:20 | var_in_macro | main.rs:765:9:765:20 | After var_in_macro [match] | match | | 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:765:24:765:25 | 33 | main.rs:765:9:765:20 | Before var_in_macro | | +| main.rs:770:5:770:13 | print_i64 | main.rs:770:15:770:42 | Before MacroExpr | | +| main.rs:770:5:770:43 | After print_i64(...) | main.rs:770:5:770:44 | After ExprStmt | | +| main.rs:770:5:770:43 | Before print_i64(...) | main.rs:770:5:770:13 | print_i64 | | +| main.rs:770:5:770:43 | print_i64(...) | main.rs:770:5:770:43 | After print_i64(...) | | +| main.rs:770:5:770:44 | After ExprStmt | main.rs:771:5:771:28 | ExprStmt | | +| main.rs:770:5:770:44 | ExprStmt | main.rs:770:5:770:43 | Before print_i64(...) | | +| main.rs:770:15:770:28 | 0 | main.rs:770:15:770:28 | Before var_in_macro | | +| main.rs:770:15:770:28 | After let ... = 0 | main.rs:770:30:770:41 | var_in_macro | | +| main.rs:770:15:770:28 | After var_in_macro [match] | main.rs:770:15:770:28 | After let ... = 0 | | +| main.rs:770:15:770:28 | Before var_in_macro | 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 | After var_in_macro [match] | match | | 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:770:15:770:42 | After MacroExpr | main.rs:770:5:770:43 | print_i64(...) | | +| main.rs:770:15:770:42 | After let_in_macro2!... | main.rs:770:15:770:42 | MacroExpr | | +| main.rs:770:15:770:42 | Before MacroExpr | main.rs:770:15:770:42 | Before let_in_macro2!... | | +| main.rs:770:15:770:42 | Before let_in_macro2!... | main.rs:770:30:770:41 | { ... } | | +| main.rs:770:15:770:42 | MacroExpr | main.rs:770:15:770:42 | After MacroExpr | | +| main.rs:770:15:770:42 | let_in_macro2!... | main.rs:770:15:770:42 | After let_in_macro2!... | | +| main.rs:770:30:770:41 | After { ... } | main.rs:770:15:770:42 | let_in_macro2!... | | +| main.rs:770:30:770:41 | var_in_macro | main.rs:770:30:770:41 | After { ... } | | +| main.rs:770:30:770:41 | { ... } | main.rs:770:15:770:28 | let ... = 0 | | | 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:5:771:27 | After print_i64(...) | main.rs:771:5:771:28 | After ExprStmt | | +| main.rs:771:5:771:27 | Before print_i64(...) | main.rs:771:5:771:13 | print_i64 | | +| main.rs:771:5:771:27 | print_i64(...) | main.rs:771:5:771:27 | After print_i64(...) | | +| main.rs:771:5:771:28 | After ExprStmt | main.rs:761:23:772:1 | After { ... } | | +| main.rs:771:5:771:28 | ExprStmt | main.rs:771:5:771:27 | Before 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:774:1:778:1 | Entry | main.rs:774:30:778:1 | { ... } | | +| main.rs:774:1:778:1 | Normal Exit | main.rs:774:1:778:1 | Exit | | +| main.rs:774:30:778:1 | After { ... } | main.rs:774:1:778:1 | Normal Exit | | +| main.rs:774:30:778:1 | { ... } | main.rs:775:5:775:10 | let ... | | +| main.rs:775:5:775:10 | After let ... | main.rs:776:5:776:10 | ExprStmt | | +| main.rs:775:5:775:10 | let ... | main.rs:775:9:775:9 | Before x | | +| main.rs:775:9:775:9 | After x [match] | main.rs:775:5:775:10 | After let ... | | +| main.rs:775:9:775:9 | Before x | main.rs:775:9:775:9 | x | | +| main.rs:775:9:775:9 | x | main.rs:775:9:775:9 | After x [match] | match | | 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:5:776:9 | ... = ... | main.rs:776:5:776:9 | After ... = ... | | +| main.rs:776:5:776:9 | After ... = ... | main.rs:776:5:776:10 | After ExprStmt | | +| main.rs:776:5:776:9 | Before ... = ... | main.rs:776:5:776:5 | x | | +| main.rs:776:5:776:10 | After ExprStmt | main.rs:777:5:777:17 | ExprStmt | | +| main.rs:776:5:776:10 | ExprStmt | main.rs:776:5:776:9 | Before ... = ... | | | 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:5:777:16 | After print_i64(...) | main.rs:777:5:777:17 | After ExprStmt | | +| main.rs:777:5:777:16 | Before print_i64(...) | main.rs:777:5:777:13 | print_i64 | | +| main.rs:777:5:777:16 | print_i64(...) | main.rs:777:5:777:16 | After print_i64(...) | | +| main.rs:777:5:777:17 | After ExprStmt | main.rs:774:30:778:1 | After { ... } | | +| main.rs:777:5:777:17 | ExprStmt | main.rs:777:5:777:16 | Before 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:780:1:790:1 | Entry | main.rs:780:18:790:1 | { ... } | | +| main.rs:780:1:790:1 | Normal Exit | main.rs:780:1:790:1 | Exit | | +| main.rs:780:18:790:1 | After { ... } | main.rs:780:1:790:1 | Normal Exit | | +| main.rs:780:18:790:1 | { ... } | main.rs:781:5:781:20 | let ... = 100 | | +| main.rs:781:5:781:20 | After let ... = 100 | main.rs:782:5:787:6 | let ... = ... | | | 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:9:781:13 | After mut x [match] | main.rs:781:5:781:20 | After let ... = 100 | | +| main.rs:781:9:781:13 | Before mut x | main.rs:781:13:781:13 | x | | +| main.rs:781:9:781:13 | mut x | main.rs:781:9:781:13 | After mut x [match] | 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:781:17:781:19 | 100 | main.rs:781:9:781:13 | Before mut x | | +| main.rs:782:5:787:6 | After let ... = ... | main.rs:788:5:788:14 | ExprStmt | | | 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:9:782:15 | After mut cap [match] | main.rs:782:5:787:6 | After let ... = ... | | +| main.rs:782:9:782:15 | Before mut cap | main.rs:782:13:782:15 | cap | | +| main.rs:782:9:782:15 | mut cap | main.rs:782:9:782:15 | After mut cap [match] | 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:19:787:5 | Entry | main.rs:782:20:782:26 | Before ...: bool | | +| main.rs:782:19:787:5 | Normal Exit | main.rs:782:19:787:5 | Exit | | +| main.rs:782:19:787:5 | \|...\| ... | main.rs:782:9:782:15 | Before mut cap | | +| main.rs:782:20:782:20 | After b [match] | main.rs:782:20:782:26 | ...: bool | | +| main.rs:782:20:782:20 | Before b | main.rs:782:20:782:20 | b | | +| main.rs:782:20:782:20 | b | main.rs:782:20:782:20 | After b [match] | match | | 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:782:20:782:26 | ...: bool | main.rs:782:20:782:26 | After ...: bool | | +| main.rs:782:20:782:26 | After ...: bool | main.rs:782:29:787:5 | { ... } | | +| main.rs:782:20:782:26 | Before ...: bool | main.rs:782:20:782:20 | Before b | | +| main.rs:782:29:787:5 | After { ... } | main.rs:782:19:787:5 | Normal Exit | | +| main.rs:782:29:787:5 | { ... } | main.rs:783:9:786:10 | let _ = ... | | +| main.rs:783:9:786:10 | After let _ = ... | main.rs:782:29:787:5 | After { ... } | | +| main.rs:783:9:786:10 | let _ = ... | main.rs:784:17:786:9 | if b {...} | | +| main.rs:784:13:784:13 | After _ [match] | main.rs:783:9:786:10 | After let _ = ... | | +| main.rs:784:13:784:13 | _ | main.rs:784:13:784:13 | After _ [match] | match | +| main.rs:784:17:786:9 | After if b {...} | main.rs:784:13:784:13 | _ | | +| main.rs:784:17:786:9 | if b {...} | main.rs:784:20:784:20 | b | | +| main.rs:784:20:784:20 | After b [false] | main.rs:784:17:786:9 | After if b {...} | | +| main.rs:784:20:784:20 | After b [true] | main.rs:784:22:786:9 | { ... } | | +| main.rs:784:20:784:20 | b | main.rs:784:20:784:20 | After b [false] | false | +| main.rs:784:20:784:20 | b | main.rs:784:20:784:20 | After b [true] | true | +| main.rs:784:22:786:9 | After { ... } | main.rs:784:17:786:9 | After if b {...} | | +| 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:784:22:786:9 | { ... } | | -| main.rs:785:13:785:20 | ExprStmt | main.rs:785:13:785:13 | x | | +| main.rs:785:13:785:19 | ... = ... | main.rs:785:13:785:19 | After ... = ... | | +| main.rs:785:13:785:19 | After ... = ... | main.rs:785:13:785:20 | After ExprStmt | | +| main.rs:785:13:785:19 | Before ... = ... | main.rs:785:13:785:13 | x | | +| main.rs:785:13:785:20 | After ExprStmt | main.rs:784:22:786:9 | After { ... } | | +| main.rs:785:13:785:20 | ExprStmt | main.rs:785:13:785:19 | Before ... = ... | | | 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:5:788:13 | After cap(...) | main.rs:788:5:788:14 | After ExprStmt | | +| main.rs:788:5:788:13 | Before cap(...) | main.rs:788:5:788:7 | cap | | +| main.rs:788:5:788:13 | cap(...) | main.rs:788:5:788:13 | After cap(...) | | +| main.rs:788:5:788:14 | After ExprStmt | main.rs:789:5:789:17 | ExprStmt | | +| main.rs:788:5:788:14 | ExprStmt | main.rs:788:5:788:13 | Before 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:5:789:16 | After print_i64(...) | main.rs:789:5:789:17 | After ExprStmt | | +| main.rs:789:5:789:16 | Before print_i64(...) | main.rs:789:5:789:13 | print_i64 | | +| main.rs:789:5:789:16 | print_i64(...) | main.rs:789:5:789:16 | After print_i64(...) | | +| main.rs:789:5:789:17 | After ExprStmt | main.rs:780:18:790:1 | After { ... } | | +| main.rs:789:5:789:17 | ExprStmt | main.rs:789:5:789:16 | Before 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:793:5:808:5 | Entry | main.rs:794:34:808:5 | { ... } | | +| main.rs:793:5:808:5 | Normal Exit | main.rs:793:5:808:5 | Exit | | +| main.rs:794:34:808:5 | After { ... } | main.rs:793:5:808:5 | Normal Exit | | +| main.rs:794:34:808:5 | { ... } | main.rs:795:9:795:25 | let ... = ... | | +| main.rs:795:9:795:25 | After let ... = ... | main.rs:796:9:803:10 | let ... = ... | | +| main.rs:795:9:795:25 | let ... = ... | main.rs:795:17:795:24 | Before Some(...) | | +| main.rs:795:13:795:13 | After x [match] | main.rs:795:9:795:25 | After let ... = ... | | +| main.rs:795:13:795:13 | Before x | main.rs:795:13:795:13 | x | | +| main.rs:795:13:795:13 | x | main.rs:795:13:795:13 | After x [match] | match | | 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:17:795:24 | After Some(...) | main.rs:795:13:795:13 | Before x | | +| main.rs:795:17:795:24 | Before Some(...) | main.rs:795:17:795:20 | Some | | +| main.rs:795:17:795:24 | Some(...) | main.rs:795:17:795:24 | After Some(...) | | | 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:9:803:10 | After let ... = ... | main.rs:804:9:807:9 | match y { ... } | | +| main.rs:796:9:803:10 | let ... = ... | main.rs:797:13:803:9 | match x { ... } | | +| main.rs:796:13:796:13 | After y [match] | main.rs:796:9:803:10 | After let ... = ... | | +| main.rs:796:13:796:13 | Before y | main.rs:796:13:796:13 | y | | +| main.rs:796:13:796:13 | y | main.rs:796:13:796:13 | After y [match] | match | | 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:13:803:9 | After match x { ... } | main.rs:796:13:796:13 | Before y | | +| main.rs:797:13:803:9 | match x { ... } | main.rs:797:19:797:19 | x | | | 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:13:798:19 | After Some(...) [match] | main.rs:798:24:800:13 | { ... } | | +| main.rs:798:13:798:19 | After Some(...) [no-match] | main.rs:801:13:801:16 | Before None | | +| main.rs:798:13:798:19 | Some(...) | main.rs:798:13:798:19 | After Some(...) [no-match] | no-match | +| main.rs:798:13:798:19 | Some(...) | main.rs:798:13:798:19 | [pattern-start] Some(...) | match | +| main.rs:798:13:798:19 | [pattern-start] Some(...) | main.rs:798:18:798:18 | Before y | | +| main.rs:798:18:798:18 | After y [match] | main.rs:798:13:798:19 | After Some(...) [match] | match | +| main.rs:798:18:798:18 | Before y | main.rs:798:18:798:18 | y | | +| main.rs:798:18:798:18 | y | main.rs:798:18:798:18 | After y [match] | 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:798:24:800:13 | After { ... } | main.rs:797:13:803:9 | After match x { ... } | | +| main.rs:798:24:800:13 | { ... } | main.rs:799:17:799:20 | None | | +| main.rs:799:17:799:20 | None | main.rs:798:24:800:13 | After { ... } | | +| main.rs:801:13:801:16 | After None [match] | main.rs:802:17:802:20 | None | | +| main.rs:801:13:801:16 | Before None | main.rs:801:13:801:16 | None | | +| main.rs:801:13:801:16 | None | main.rs:801:13:801:16 | After None [match] | match | | 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:802:17:802:20 | None | main.rs:797:13:803:9 | After match x { ... } | | +| main.rs:804:9:807:9 | After match y { ... } | main.rs:794:34:808:5 | After { ... } | | +| main.rs:804:9:807:9 | match y { ... } | main.rs:804:15:804:15 | y | | +| main.rs:804:15:804:15 | y | main.rs:805:13:805:16 | Before N0ne | | +| main.rs:805:13:805:16 | After N0ne [match] | main.rs:806:17:806:20 | N0ne | | +| main.rs:805:13:805:16 | Before N0ne | main.rs:805:13:805:16 | N0ne | | +| main.rs:805:13:805:16 | N0ne | main.rs:805:13:805:16 | After N0ne [match] | match | | 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:806:17:806:20 | N0ne | main.rs:804:9:807:9 | After match y { ... } | | +| main.rs:810:5:817:5 | Entry | main.rs:811:31:817:5 | { ... } | | +| main.rs:810:5:817:5 | Normal Exit | main.rs:810:5:817:5 | Exit | | +| main.rs:811:31:817:5 | After { ... } | main.rs:810:5:817:5 | Normal Exit | | +| main.rs:811:31:817:5 | { ... } | main.rs:812:9:813:17 | let ... = test | | +| main.rs:812:9:813:17 | After let ... = test | main.rs:814:9:815:25 | let ... = ... | | | main.rs:812:9:813:17 | let ... = test | main.rs:813:13:813:16 | test | | +| main.rs:812:13:812:22 | After test_alias [match] | main.rs:812:9:813:17 | After let ... = test | | +| main.rs:812:13:812:22 | Before test_alias | main.rs:812:13:812:22 | test_alias | | +| main.rs:812:13:812:22 | test_alias | main.rs:812:13:812:22 | After test_alias [match] | match | | 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:813:13:813:16 | test | main.rs:812:13:812:22 | Before test_alias | | +| main.rs:814:9:815:25 | After let ... = ... | main.rs:816:9:816:12 | test | | +| main.rs:814:9:815:25 | let ... = ... | main.rs:815:13:815:24 | Before test_alias(...) | | +| main.rs:814:13:814:16 | After test [match] | main.rs:814:9:815:25 | After let ... = ... | | +| main.rs:814:13:814:16 | Before test | main.rs:814:13:814:16 | test | | +| main.rs:814:13:814:16 | test | main.rs:814:13:814:16 | After test [match] | match | | 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:815:13:815:24 | After test_alias(...) | main.rs:814:13:814:16 | Before test | | +| main.rs:815:13:815:24 | Before test_alias(...) | main.rs:815:13:815:22 | test_alias | | +| main.rs:815:13:815:24 | test_alias(...) | main.rs:815:13:815:24 | After test_alias(...) | | +| main.rs:816:9:816:12 | test | main.rs:811:31:817:5 | After { ... } | | +| main.rs:821:5:834:5 | Entry | main.rs:822:16:834:5 | { ... } | | +| main.rs:821:5:834:5 | Normal Exit | main.rs:821:5:834:5 | Exit | | +| main.rs:822:16:834:5 | After { ... } | main.rs:821:5:834:5 | Normal Exit | | +| main.rs:822:16:834:5 | { ... } | main.rs:823:9:823:24 | let ... = ... | | +| main.rs:823:9:823:24 | After let ... = ... | main.rs:824:9:828:10 | ExprStmt | | +| main.rs:823:9:823:24 | let ... = ... | main.rs:823:17:823:23 | Before Some(...) | | +| main.rs:823:13:823:13 | After x [match] | main.rs:823:9:823:24 | After let ... = ... | | +| main.rs:823:13:823:13 | Before x | main.rs:823:13:823:13 | x | | +| main.rs:823:13:823:13 | x | main.rs:823:13:823:13 | After x [match] | match | | 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:17:823:23 | After Some(...) | main.rs:823:13:823:13 | Before x | | +| main.rs:823:17:823:23 | Before Some(...) | main.rs:823:17:823:20 | Some | | +| main.rs:823:17:823:23 | Some(...) | main.rs:823:17:823:23 | After Some(...) | | | 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:9:828:9 | After match x { ... } | main.rs:824:9:828:10 | After ExprStmt | | +| main.rs:824:9:828:9 | match x { ... } | main.rs:824:15:824:15 | x | | +| main.rs:824:9:828:10 | After ExprStmt | main.rs:829:9:833:10 | ExprStmt | | +| main.rs:824:9:828:10 | ExprStmt | main.rs:824:9:828:9 | match 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:13:825:19 | After Some(...) [match] | main.rs:826:20:826:20 | x | | +| main.rs:825:13:825:19 | After Some(...) [no-match] | main.rs:827:13:827:13 | _ | | +| main.rs:825:13:825:19 | Some(...) | main.rs:825:13:825:19 | After Some(...) [no-match] | no-match | +| main.rs:825:13:825:19 | Some(...) | main.rs:825:13:825:19 | [pattern-start] Some(...) | match | +| main.rs:825:13:825:19 | [pattern-start] Some(...) | main.rs:825:18:825:18 | Before x | | +| main.rs:825:18:825:18 | After x [match] | main.rs:825:13:825:19 | After Some(...) [match] | match | +| main.rs:825:18:825:18 | Before x | main.rs:825:18:825:18 | x | | +| main.rs:825:18:825:18 | x | main.rs:825:18:825:18 | After x [match] | 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:826:20:826:20 | x | main.rs:824:9:828:9 | After match x { ... } | | +| main.rs:827:13:827:13 | After _ [match] | main.rs:827:18:827:18 | 0 | | +| main.rs:827:13:827:13 | _ | main.rs:827:13:827:13 | After _ [match] | match | +| main.rs:827:18:827:18 | 0 | main.rs:824:9:828:9 | After match x { ... } | | +| main.rs:829:9:833:9 | After match x { ... } | main.rs:829:9:833:10 | After ExprStmt | | +| main.rs:829:9:833:9 | match x { ... } | main.rs:829:15:829:15 | x | | +| main.rs:829:9:833:10 | After ExprStmt | main.rs:822:16:834:5 | After { ... } | | +| main.rs:829:9:833:10 | ExprStmt | main.rs:829:9:833:9 | match 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:13:830:19 | After Some(...) [match] | main.rs:831:17:831:17 | z | | +| main.rs:830:13:830:19 | After Some(...) [no-match] | main.rs:832:13:832:13 | _ | | +| main.rs:830:13:830:19 | Some(...) | main.rs:830:13:830:19 | After Some(...) [no-match] | no-match | +| main.rs:830:13:830:19 | Some(...) | main.rs:830:13:830:19 | [pattern-start] Some(...) | match | +| main.rs:830:13:830:19 | [pattern-start] Some(...) | main.rs:830:18:830:18 | Before z | | +| main.rs:830:18:830:18 | After z [match] | main.rs:830:13:830:19 | After Some(...) [match] | match | +| main.rs:830:18:830:18 | After z [no-match] | main.rs:830:13:830:19 | After Some(...) [no-match] | no-match | +| main.rs:830:18:830:18 | Before z | main.rs:830:18:830:18 | z | | +| main.rs:830:18:830:18 | z | main.rs:830:18:830:18 | After z [match] | match | +| main.rs:830:18:830:18 | z | main.rs:830:18:830:18 | After z [no-match] | 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:831:17:831:17 | z | main.rs:829:9:833:9 | After match x { ... } | | +| main.rs:832:13:832:13 | After _ [match] | main.rs:832:18:832:18 | 0 | | +| main.rs:832:13:832:13 | _ | main.rs:832:13:832:13 | After _ [match] | match | +| main.rs:832:18:832:18 | 0 | main.rs:829:9:833:9 | After match x { ... } | | +| main.rs:837:1:847:1 | Entry | main.rs:837:27:847:1 | { ... } | | +| main.rs:837:1:847:1 | Normal Exit | main.rs:837:1:847:1 | Exit | | +| main.rs:837:27:847:1 | After { ... } | main.rs:837:1:847:1 | Normal Exit | | +| main.rs:837:27:847:1 | { ... } | main.rs:838:5:838:14 | let ... = 1 | | +| main.rs:838:5:838:14 | After let ... = 1 | main.rs:839:5:846:5 | if ... {...} else {...} | | | main.rs:838:5:838:14 | let ... = 1 | main.rs:838:13:838:13 | 1 | | +| main.rs:838:9:838:9 | After x [match] | main.rs:838:5:838:14 | After let ... = 1 | | +| main.rs:838:9:838:9 | Before x | main.rs:838:9:838:9 | x | | +| main.rs:838:9:838:9 | x | main.rs:838:9:838:9 | After x [match] | match | | 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:838:13:838:13 | 1 | main.rs:838:9:838:9 | Before x | | +| main.rs:839:5:846:5 | After if ... {...} else {...} | main.rs:837:27:847:1 | After { ... } | | +| main.rs:839:5:846:5 | if ... {...} else {...} | main.rs:839:8:842:5 | { ... } | | +| main.rs:839:8:842:5 | After { ... } [false] | main.rs:844:12:846:5 | { ... } | | +| main.rs:839:8:842:5 | After { ... } [true] | main.rs:842:7:844:5 | { ... } | | +| main.rs:839:8:842:5 | { ... } | main.rs:840:9:840:18 | let ... = 1 | | +| main.rs:840:9:840:18 | After let ... = 1 | main.rs:841:9:841:13 | Before ... > ... | | | main.rs:840:9:840:18 | let ... = 1 | main.rs:840:17:840:17 | 1 | | +| main.rs:840:13:840:13 | After x [match] | main.rs:840:9:840:18 | After let ... = 1 | | +| main.rs:840:13:840:13 | Before x | main.rs:840:13:840:13 | x | | +| main.rs:840:13:840:13 | x | main.rs:840:13:840:13 | After x [match] | match | | 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:840:17:840:17 | 1 | main.rs:840:13:840:13 | Before 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:9:841:13 | ... > ... | main.rs:841:9:841:13 | After ... > ... [false] | false | +| main.rs:841:9:841:13 | ... > ... | main.rs:841:9:841:13 | After ... > ... [true] | true | +| main.rs:841:9:841:13 | After ... > ... [false] | main.rs:839:8:842:5 | After { ... } [false] | false | +| main.rs:841:9:841:13 | After ... > ... [true] | main.rs:839:8:842:5 | After { ... } [true] | true | +| main.rs:841:9:841:13 | Before ... > ... | main.rs:841:9:841:9 | x | | | 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:842:7:844:5 | After { ... } | main.rs:839:5:846:5 | After if ... {...} else {...} | | +| 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:842:7:844:5 | { ... } | | -| main.rs:843:9:843:21 | ExprStmt | main.rs:843:9:843:17 | print_i64 | | +| main.rs:843:9:843:20 | After print_i64(...) | main.rs:843:9:843:21 | After ExprStmt | | +| main.rs:843:9:843:20 | Before print_i64(...) | main.rs:843:9:843:17 | print_i64 | | +| main.rs:843:9:843:20 | print_i64(...) | main.rs:843:9:843:20 | After print_i64(...) | | +| main.rs:843:9:843:21 | After ExprStmt | main.rs:842:7:844:5 | After { ... } | | +| main.rs:843:9:843:21 | ExprStmt | main.rs:843:9:843:20 | Before 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:844:12:846:5 | After { ... } | main.rs:839:5:846:5 | After if ... {...} else {...} | | +| 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:844:12:846:5 | { ... } | | -| main.rs:845:9:845:21 | ExprStmt | main.rs:845:9:845:17 | print_i64 | | +| main.rs:845:9:845:20 | After print_i64(...) | main.rs:845:9:845:21 | After ExprStmt | | +| main.rs:845:9:845:20 | Before print_i64(...) | main.rs:845:9:845:17 | print_i64 | | +| main.rs:845:9:845:20 | print_i64(...) | main.rs:845:9:845:20 | After print_i64(...) | | +| main.rs:845:9:845:21 | After ExprStmt | main.rs:844:12:846:5 | After { ... } | | +| main.rs:845:9:845:21 | ExprStmt | main.rs:845:9:845:20 | Before 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:849:1:896:1 | Entry | main.rs:849:11:896:1 | { ... } | | +| main.rs:849:1:896:1 | Normal Exit | main.rs:849:1:896:1 | Exit | | +| main.rs:849:11:896:1 | After { ... } | main.rs:849:1:896:1 | Normal Exit | | +| main.rs:849:11:896:1 | { ... } | main.rs:850:5:850:25 | ExprStmt | | | 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:850:5:850:24 | After immutable_variable(...) | main.rs:850:5:850:25 | After ExprStmt | | +| main.rs:850:5:850:24 | Before immutable_variable(...) | main.rs:850:5:850:22 | immutable_variable | | +| main.rs:850:5:850:24 | immutable_variable(...) | main.rs:850:5:850:24 | After immutable_variable(...) | | +| main.rs:850:5:850:25 | After ExprStmt | main.rs:851:5:851:23 | ExprStmt | | +| main.rs:850:5:850:25 | ExprStmt | main.rs:850:5:850:24 | Before 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:851:5:851:22 | After mutable_variable(...) | main.rs:851:5:851:23 | After ExprStmt | | +| main.rs:851:5:851:22 | Before mutable_variable(...) | main.rs:851:5:851:20 | mutable_variable | | +| main.rs:851:5:851:22 | mutable_variable(...) | main.rs:851:5:851:22 | After mutable_variable(...) | | +| main.rs:851:5:851:23 | After ExprStmt | main.rs:852:5:852:40 | ExprStmt | | +| main.rs:851:5:851:23 | ExprStmt | main.rs:851:5:851:22 | Before 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:852:5:852:39 | After mutable_variable_immutable_borrow(...) | main.rs:852:5:852:40 | After ExprStmt | | +| main.rs:852:5:852:39 | Before mutable_variable_immutable_borrow(...) | 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 | After mutable_variable_immutable_borrow(...) | | +| main.rs:852:5:852:40 | After ExprStmt | main.rs:853:5:853:23 | ExprStmt | | +| main.rs:852:5:852:40 | ExprStmt | main.rs:852:5:852:39 | Before 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:853:5:853:22 | After variable_shadow1(...) | main.rs:853:5:853:23 | After ExprStmt | | +| main.rs:853:5:853:22 | Before variable_shadow1(...) | main.rs:853:5:853:20 | variable_shadow1 | | +| main.rs:853:5:853:22 | variable_shadow1(...) | main.rs:853:5:853:22 | After variable_shadow1(...) | | +| main.rs:853:5:853:23 | After ExprStmt | main.rs:854:5:854:23 | ExprStmt | | +| main.rs:853:5:853:23 | ExprStmt | main.rs:853:5:853:22 | Before 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:854:5:854:22 | After variable_shadow2(...) | main.rs:854:5:854:23 | After ExprStmt | | +| main.rs:854:5:854:22 | Before variable_shadow2(...) | main.rs:854:5:854:20 | variable_shadow2 | | +| main.rs:854:5:854:22 | variable_shadow2(...) | main.rs:854:5:854:22 | After variable_shadow2(...) | | +| main.rs:854:5:854:23 | After ExprStmt | main.rs:855:5:855:19 | ExprStmt | | +| main.rs:854:5:854:23 | ExprStmt | main.rs:854:5:854:22 | Before 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:855:5:855:18 | After let_pattern1(...) | main.rs:855:5:855:19 | After ExprStmt | | +| main.rs:855:5:855:18 | Before let_pattern1(...) | main.rs:855:5:855:16 | let_pattern1 | | +| main.rs:855:5:855:18 | let_pattern1(...) | main.rs:855:5:855:18 | After let_pattern1(...) | | +| main.rs:855:5:855:19 | After ExprStmt | main.rs:856:5:856:19 | ExprStmt | | +| main.rs:855:5:855:19 | ExprStmt | main.rs:855:5:855:18 | Before 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:856:5:856:18 | After let_pattern2(...) | main.rs:856:5:856:19 | After ExprStmt | | +| main.rs:856:5:856:18 | Before let_pattern2(...) | main.rs:856:5:856:16 | let_pattern2 | | +| main.rs:856:5:856:18 | let_pattern2(...) | main.rs:856:5:856:18 | After let_pattern2(...) | | +| main.rs:856:5:856:19 | After ExprStmt | main.rs:857:5:857:19 | ExprStmt | | +| main.rs:856:5:856:19 | ExprStmt | main.rs:856:5:856:18 | Before 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:857:5:857:18 | After let_pattern3(...) | main.rs:857:5:857:19 | After ExprStmt | | +| main.rs:857:5:857:18 | Before let_pattern3(...) | main.rs:857:5:857:16 | let_pattern3 | | +| main.rs:857:5:857:18 | let_pattern3(...) | main.rs:857:5:857:18 | After let_pattern3(...) | | +| main.rs:857:5:857:19 | After ExprStmt | main.rs:858:5:858:19 | ExprStmt | | +| main.rs:857:5:857:19 | ExprStmt | main.rs:857:5:857:18 | Before 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:858:5:858:18 | After let_pattern4(...) | main.rs:858:5:858:19 | After ExprStmt | | +| main.rs:858:5:858:18 | Before let_pattern4(...) | main.rs:858:5:858:16 | let_pattern4 | | +| main.rs:858:5:858:18 | let_pattern4(...) | main.rs:858:5:858:18 | After let_pattern4(...) | | +| main.rs:858:5:858:19 | After ExprStmt | main.rs:859:5:859:19 | ExprStmt | | +| main.rs:858:5:858:19 | ExprStmt | main.rs:858:5:858:18 | Before 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:859:5:859:18 | After let_pattern5(...) | main.rs:859:5:859:19 | After ExprStmt | | +| main.rs:859:5:859:18 | Before let_pattern5(...) | main.rs:859:5:859:16 | let_pattern5 | | +| main.rs:859:5:859:18 | let_pattern5(...) | main.rs:859:5:859:18 | After let_pattern5(...) | | +| main.rs:859:5:859:19 | After ExprStmt | main.rs:860:5:860:19 | ExprStmt | | +| main.rs:859:5:859:19 | ExprStmt | main.rs:859:5:859:18 | Before 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:860:5:860:18 | After let_pattern6(...) | main.rs:860:5:860:19 | After ExprStmt | | +| main.rs:860:5:860:18 | Before let_pattern6(...) | main.rs:860:5:860:16 | let_pattern6 | | +| main.rs:860:5:860:18 | let_pattern6(...) | main.rs:860:5:860:18 | After let_pattern6(...) | | +| main.rs:860:5:860:19 | After ExprStmt | main.rs:861:5:861:21 | ExprStmt | | +| main.rs:860:5:860:19 | ExprStmt | main.rs:860:5:860:18 | Before 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:861:5:861:20 | After match_pattern1(...) | main.rs:861:5:861:21 | After ExprStmt | | +| main.rs:861:5:861:20 | Before match_pattern1(...) | main.rs:861:5:861:18 | match_pattern1 | | +| main.rs:861:5:861:20 | match_pattern1(...) | main.rs:861:5:861:20 | After match_pattern1(...) | | +| main.rs:861:5:861:21 | After ExprStmt | main.rs:862:5:862:21 | ExprStmt | | +| main.rs:861:5:861:21 | ExprStmt | main.rs:861:5:861:20 | Before 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:862:5:862:20 | After match_pattern2(...) | main.rs:862:5:862:21 | After ExprStmt | | +| main.rs:862:5:862:20 | Before match_pattern2(...) | main.rs:862:5:862:18 | match_pattern2 | | +| main.rs:862:5:862:20 | match_pattern2(...) | main.rs:862:5:862:20 | After match_pattern2(...) | | +| main.rs:862:5:862:21 | After ExprStmt | main.rs:863:5:863:21 | ExprStmt | | +| main.rs:862:5:862:21 | ExprStmt | main.rs:862:5:862:20 | Before 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:863:5:863:20 | After match_pattern3(...) | main.rs:863:5:863:21 | After ExprStmt | | +| main.rs:863:5:863:20 | Before match_pattern3(...) | main.rs:863:5:863:18 | match_pattern3 | | +| main.rs:863:5:863:20 | match_pattern3(...) | main.rs:863:5:863:20 | After match_pattern3(...) | | +| main.rs:863:5:863:21 | After ExprStmt | main.rs:864:5:864:21 | ExprStmt | | +| main.rs:863:5:863:21 | ExprStmt | main.rs:863:5:863:20 | Before 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:864:5:864:20 | After match_pattern4(...) | main.rs:864:5:864:21 | After ExprStmt | | +| main.rs:864:5:864:20 | Before match_pattern4(...) | main.rs:864:5:864:18 | match_pattern4 | | +| main.rs:864:5:864:20 | match_pattern4(...) | main.rs:864:5:864:20 | After match_pattern4(...) | | +| main.rs:864:5:864:21 | After ExprStmt | main.rs:865:5:865:21 | ExprStmt | | +| main.rs:864:5:864:21 | ExprStmt | main.rs:864:5:864:20 | Before 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:865:5:865:20 | After match_pattern5(...) | main.rs:865:5:865:21 | After ExprStmt | | +| main.rs:865:5:865:20 | Before match_pattern5(...) | main.rs:865:5:865:18 | match_pattern5 | | +| main.rs:865:5:865:20 | match_pattern5(...) | main.rs:865:5:865:20 | After match_pattern5(...) | | +| main.rs:865:5:865:21 | After ExprStmt | main.rs:866:5:866:21 | ExprStmt | | +| main.rs:865:5:865:21 | ExprStmt | main.rs:865:5:865:20 | Before 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:866:5:866:20 | After match_pattern6(...) | main.rs:866:5:866:21 | After ExprStmt | | +| main.rs:866:5:866:20 | Before match_pattern6(...) | main.rs:866:5:866:18 | match_pattern6 | | +| main.rs:866:5:866:20 | match_pattern6(...) | main.rs:866:5:866:20 | After match_pattern6(...) | | +| main.rs:866:5:866:21 | After ExprStmt | main.rs:867:5:867:21 | ExprStmt | | +| main.rs:866:5:866:21 | ExprStmt | main.rs:866:5:866:20 | Before 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:867:5:867:20 | After match_pattern7(...) | main.rs:867:5:867:21 | After ExprStmt | | +| main.rs:867:5:867:20 | Before match_pattern7(...) | main.rs:867:5:867:18 | match_pattern7 | | +| main.rs:867:5:867:20 | match_pattern7(...) | main.rs:867:5:867:20 | After match_pattern7(...) | | +| main.rs:867:5:867:21 | After ExprStmt | main.rs:868:5:868:21 | ExprStmt | | +| main.rs:867:5:867:21 | ExprStmt | main.rs:867:5:867:20 | Before 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:868:5:868:20 | After match_pattern8(...) | main.rs:868:5:868:21 | After ExprStmt | | +| main.rs:868:5:868:20 | Before match_pattern8(...) | main.rs:868:5:868:18 | match_pattern8 | | +| main.rs:868:5:868:20 | match_pattern8(...) | main.rs:868:5:868:20 | After match_pattern8(...) | | +| main.rs:868:5:868:21 | After ExprStmt | main.rs:869:5:869:21 | ExprStmt | | +| main.rs:868:5:868:21 | ExprStmt | main.rs:868:5:868:20 | Before 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:869:5:869:20 | After match_pattern9(...) | main.rs:869:5:869:21 | After ExprStmt | | +| main.rs:869:5:869:20 | Before match_pattern9(...) | main.rs:869:5:869:18 | match_pattern9 | | +| main.rs:869:5:869:20 | match_pattern9(...) | main.rs:869:5:869:20 | After match_pattern9(...) | | +| main.rs:869:5:869:21 | After ExprStmt | main.rs:870:5:870:22 | ExprStmt | | +| main.rs:869:5:869:21 | ExprStmt | main.rs:869:5:869:20 | Before 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:870:5:870:21 | After match_pattern10(...) | main.rs:870:5:870:22 | After ExprStmt | | +| main.rs:870:5:870:21 | Before match_pattern10(...) | main.rs:870:5:870:19 | match_pattern10 | | +| main.rs:870:5:870:21 | match_pattern10(...) | main.rs:870:5:870:21 | After match_pattern10(...) | | +| main.rs:870:5:870:22 | After ExprStmt | main.rs:871:5:871:22 | ExprStmt | | +| main.rs:870:5:870:22 | ExprStmt | main.rs:870:5:870:21 | Before 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:871:5:871:21 | After match_pattern11(...) | main.rs:871:5:871:22 | After ExprStmt | | +| main.rs:871:5:871:21 | Before match_pattern11(...) | main.rs:871:5:871:19 | match_pattern11 | | +| main.rs:871:5:871:21 | match_pattern11(...) | main.rs:871:5:871:21 | After match_pattern11(...) | | +| main.rs:871:5:871:22 | After ExprStmt | main.rs:872:5:872:22 | ExprStmt | | +| main.rs:871:5:871:22 | ExprStmt | main.rs:871:5:871:21 | Before 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:872:5:872:21 | After match_pattern12(...) | main.rs:872:5:872:22 | After ExprStmt | | +| main.rs:872:5:872:21 | Before match_pattern12(...) | main.rs:872:5:872:19 | match_pattern12 | | +| main.rs:872:5:872:21 | match_pattern12(...) | main.rs:872:5:872:21 | After match_pattern12(...) | | +| main.rs:872:5:872:22 | After ExprStmt | main.rs:873:5:873:22 | ExprStmt | | +| main.rs:872:5:872:22 | ExprStmt | main.rs:872:5:872:21 | Before 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:873:5:873:21 | After match_pattern13(...) | main.rs:873:5:873:22 | After ExprStmt | | +| main.rs:873:5:873:21 | Before match_pattern13(...) | main.rs:873:5:873:19 | match_pattern13 | | +| main.rs:873:5:873:21 | match_pattern13(...) | main.rs:873:5:873:21 | After match_pattern13(...) | | +| main.rs:873:5:873:22 | After ExprStmt | main.rs:874:5:874:22 | ExprStmt | | +| main.rs:873:5:873:22 | ExprStmt | main.rs:873:5:873:21 | Before 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:874:5:874:21 | After match_pattern14(...) | main.rs:874:5:874:22 | After ExprStmt | | +| main.rs:874:5:874:21 | Before match_pattern14(...) | main.rs:874:5:874:19 | match_pattern14 | | +| main.rs:874:5:874:21 | match_pattern14(...) | main.rs:874:5:874:21 | After match_pattern14(...) | | +| main.rs:874:5:874:22 | After ExprStmt | main.rs:875:5:875:22 | ExprStmt | | +| main.rs:874:5:874:22 | ExprStmt | main.rs:874:5:874:21 | Before 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:875:5:875:21 | After match_pattern15(...) | main.rs:875:5:875:22 | After ExprStmt | | +| main.rs:875:5:875:21 | Before match_pattern15(...) | main.rs:875:5:875:19 | match_pattern15 | | +| main.rs:875:5:875:21 | match_pattern15(...) | main.rs:875:5:875:21 | After match_pattern15(...) | | +| main.rs:875:5:875:22 | After ExprStmt | main.rs:876:5:876:22 | ExprStmt | | +| main.rs:875:5:875:22 | ExprStmt | main.rs:875:5:875:21 | Before 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:876:5:876:21 | After match_pattern16(...) | main.rs:876:5:876:22 | After ExprStmt | | +| main.rs:876:5:876:21 | Before match_pattern16(...) | main.rs:876:5:876:19 | match_pattern16 | | +| main.rs:876:5:876:21 | match_pattern16(...) | main.rs:876:5:876:21 | After match_pattern16(...) | | +| main.rs:876:5:876:22 | After ExprStmt | main.rs:877:5:877:36 | ExprStmt | | +| main.rs:876:5:876:22 | ExprStmt | main.rs:876:5:876:21 | Before 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:5:877:35 | After param_pattern1(...) | main.rs:877:5:877:36 | After ExprStmt | | +| main.rs:877:5:877:35 | Before param_pattern1(...) | main.rs:877:5:877:18 | param_pattern1 | | +| main.rs:877:5:877:35 | param_pattern1(...) | main.rs:877:5:877:35 | After param_pattern1(...) | | +| main.rs:877:5:877:36 | After ExprStmt | main.rs:878:5:878:37 | ExprStmt | | +| main.rs:877:5:877:36 | ExprStmt | main.rs:877:5:877:35 | Before param_pattern1(...) | | +| main.rs:877:20:877:22 | "a" | main.rs:877:25:877:34 | Before TupleExpr | | +| main.rs:877:25:877:34 | After TupleExpr | main.rs:877:5:877:35 | param_pattern1(...) | | +| main.rs:877:25:877:34 | Before TupleExpr | main.rs:877:26:877:28 | "b" | | +| main.rs:877:25:877:34 | TupleExpr | main.rs:877:25:877:34 | After TupleExpr | | | 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:5:878:18 | param_pattern2 | main.rs:878:20:878:35 | Before ...::Left(...) | | +| main.rs:878:5:878:36 | After param_pattern2(...) | main.rs:878:5:878:37 | After ExprStmt | | +| main.rs:878:5:878:36 | Before param_pattern2(...) | main.rs:878:5:878:18 | param_pattern2 | | +| main.rs:878:5:878:36 | param_pattern2(...) | main.rs:878:5:878:36 | After param_pattern2(...) | | +| main.rs:878:5:878:37 | After ExprStmt | main.rs:879:5:879:26 | ExprStmt | | +| main.rs:878:5:878:37 | ExprStmt | main.rs:878:5:878:36 | Before 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:20:878:35 | ...::Left(...) | main.rs:878:20:878:35 | After ...::Left(...) | | +| main.rs:878:20:878:35 | After ...::Left(...) | main.rs:878:5:878:36 | param_pattern2(...) | | +| main.rs:878:20:878:35 | Before ...::Left(...) | main.rs:878:20:878:31 | ...::Left | | | 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:879:5:879:25 | After destruct_assignment(...) | main.rs:879:5:879:26 | After ExprStmt | | +| main.rs:879:5:879:25 | Before destruct_assignment(...) | main.rs:879:5:879:23 | destruct_assignment | | +| main.rs:879:5:879:25 | destruct_assignment(...) | main.rs:879:5:879:25 | After destruct_assignment(...) | | +| main.rs:879:5:879:26 | After ExprStmt | main.rs:880:5:880:23 | ExprStmt | | +| main.rs:879:5:879:26 | ExprStmt | main.rs:879:5:879:25 | Before 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:880:5:880:22 | After closure_variable(...) | main.rs:880:5:880:23 | After ExprStmt | | +| main.rs:880:5:880:22 | Before closure_variable(...) | main.rs:880:5:880:20 | closure_variable | | +| main.rs:880:5:880:22 | closure_variable(...) | main.rs:880:5:880:22 | After closure_variable(...) | | +| main.rs:880:5:880:23 | After ExprStmt | main.rs:881:5:881:22 | ExprStmt | | +| main.rs:880:5:880:23 | ExprStmt | main.rs:880:5:880:22 | Before 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:881:5:881:21 | After nested_function(...) | main.rs:881:5:881:22 | After ExprStmt | | +| main.rs:881:5:881:21 | Before nested_function(...) | main.rs:881:5:881:19 | nested_function | | +| main.rs:881:5:881:21 | nested_function(...) | main.rs:881:5:881:21 | After nested_function(...) | | +| main.rs:881:5:881:22 | After ExprStmt | main.rs:882:5:882:19 | ExprStmt | | +| main.rs:881:5:881:22 | ExprStmt | main.rs:881:5:881:21 | Before 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:882:5:882:18 | After for_variable(...) | main.rs:882:5:882:19 | After ExprStmt | | +| main.rs:882:5:882:18 | Before for_variable(...) | main.rs:882:5:882:16 | for_variable | | +| main.rs:882:5:882:18 | for_variable(...) | main.rs:882:5:882:18 | After for_variable(...) | | +| main.rs:882:5:882:19 | After ExprStmt | main.rs:883:5:883:17 | ExprStmt | | +| main.rs:882:5:882:19 | ExprStmt | main.rs:882:5:882:18 | Before 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:883:5:883:16 | After add_assign(...) | main.rs:883:5:883:17 | After ExprStmt | | +| main.rs:883:5:883:16 | Before add_assign(...) | main.rs:883:5:883:14 | add_assign | | +| main.rs:883:5:883:16 | add_assign(...) | main.rs:883:5:883:16 | After add_assign(...) | | +| main.rs:883:5:883:17 | After ExprStmt | main.rs:884:5:884:13 | ExprStmt | | +| main.rs:883:5:883:17 | ExprStmt | main.rs:883:5:883:16 | Before 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:884:5:884:12 | After mutate(...) | main.rs:884:5:884:13 | After ExprStmt | | +| main.rs:884:5:884:12 | Before mutate(...) | main.rs:884:5:884:10 | mutate | | +| main.rs:884:5:884:12 | mutate(...) | main.rs:884:5:884:12 | After mutate(...) | | +| main.rs:884:5:884:13 | After ExprStmt | main.rs:885:5:885:17 | ExprStmt | | +| main.rs:884:5:884:13 | ExprStmt | main.rs:884:5:884:12 | Before 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:885:5:885:16 | After mutate_arg(...) | main.rs:885:5:885:17 | After ExprStmt | | +| main.rs:885:5:885:16 | Before mutate_arg(...) | main.rs:885:5:885:14 | mutate_arg | | +| main.rs:885:5:885:16 | mutate_arg(...) | main.rs:885:5:885:16 | After mutate_arg(...) | | +| main.rs:885:5:885:17 | After ExprStmt | main.rs:886:5:886:12 | ExprStmt | | +| main.rs:885:5:885:17 | ExprStmt | main.rs:885:5:885:16 | Before 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:886:5:886:11 | After alias(...) | main.rs:886:5:886:12 | After ExprStmt | | +| main.rs:886:5:886:11 | Before alias(...) | main.rs:886:5:886:9 | alias | | +| main.rs:886:5:886:11 | alias(...) | main.rs:886:5:886:11 | After alias(...) | | +| main.rs:886:5:886:12 | After ExprStmt | main.rs:887:5:887:18 | ExprStmt | | +| main.rs:886:5:886:12 | ExprStmt | main.rs:886:5:886:11 | Before 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:887:5:887:17 | After capture_mut(...) | main.rs:887:5:887:18 | After ExprStmt | | +| main.rs:887:5:887:17 | Before capture_mut(...) | main.rs:887:5:887:15 | capture_mut | | +| main.rs:887:5:887:17 | capture_mut(...) | main.rs:887:5:887:17 | After capture_mut(...) | | +| main.rs:887:5:887:18 | After ExprStmt | main.rs:888:5:888:20 | ExprStmt | | +| main.rs:887:5:887:18 | ExprStmt | main.rs:887:5:887:17 | Before 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:888:5:888:19 | After capture_immut(...) | main.rs:888:5:888:20 | After ExprStmt | | +| main.rs:888:5:888:19 | Before capture_immut(...) | main.rs:888:5:888:17 | capture_immut | | +| main.rs:888:5:888:19 | capture_immut(...) | main.rs:888:5:888:19 | After capture_immut(...) | | +| main.rs:888:5:888:20 | After ExprStmt | main.rs:889:5:889:26 | ExprStmt | | +| main.rs:888:5:888:20 | ExprStmt | main.rs:888:5:888:19 | Before 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:889:5:889:25 | After async_block_capture(...) | main.rs:889:5:889:26 | After ExprStmt | | +| main.rs:889:5:889:25 | Before async_block_capture(...) | main.rs:889:5:889:23 | async_block_capture | | +| main.rs:889:5:889:25 | async_block_capture(...) | main.rs:889:5:889:25 | After async_block_capture(...) | | +| main.rs:889:5:889:26 | After ExprStmt | main.rs:890:5:890:14 | ExprStmt | | +| main.rs:889:5:889:26 | ExprStmt | main.rs:889:5:889:25 | Before 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:890:5:890:13 | After structs(...) | main.rs:890:5:890:14 | After ExprStmt | | +| main.rs:890:5:890:13 | Before structs(...) | main.rs:890:5:890:11 | structs | | +| main.rs:890:5:890:13 | structs(...) | main.rs:890:5:890:13 | After structs(...) | | +| main.rs:890:5:890:14 | After ExprStmt | main.rs:891:5:891:14 | ExprStmt | | +| main.rs:890:5:890:14 | ExprStmt | main.rs:890:5:890:13 | Before 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:891:5:891:13 | After ref_arg(...) | main.rs:891:5:891:14 | After ExprStmt | | +| main.rs:891:5:891:13 | Before ref_arg(...) | main.rs:891:5:891:11 | ref_arg | | +| main.rs:891:5:891:13 | ref_arg(...) | main.rs:891:5:891:13 | After ref_arg(...) | | +| main.rs:891:5:891:14 | After ExprStmt | main.rs:892:5:892:30 | ExprStmt | | +| main.rs:891:5:891:14 | ExprStmt | main.rs:891:5:891:13 | Before 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:892:5:892:29 | After ref_methodcall_receiver(...) | main.rs:892:5:892:30 | After ExprStmt | | +| main.rs:892:5:892:29 | Before ref_methodcall_receiver(...) | main.rs:892:5:892:27 | ref_methodcall_receiver | | +| main.rs:892:5:892:29 | ref_methodcall_receiver(...) | main.rs:892:5:892:29 | After ref_methodcall_receiver(...) | | +| main.rs:892:5:892:30 | After ExprStmt | main.rs:893:5:893:23 | ExprStmt | | +| main.rs:892:5:892:30 | ExprStmt | main.rs:892:5:892:29 | Before 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:893:5:893:22 | After macro_invocation(...) | main.rs:893:5:893:23 | After ExprStmt | | +| main.rs:893:5:893:22 | Before macro_invocation(...) | main.rs:893:5:893:20 | macro_invocation | | +| main.rs:893:5:893:22 | macro_invocation(...) | main.rs:893:5:893:22 | After macro_invocation(...) | | +| main.rs:893:5:893:23 | After ExprStmt | main.rs:894:5:894:18 | ExprStmt | | +| main.rs:893:5:893:23 | ExprStmt | main.rs:893:5:893:22 | Before 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:894:5:894:17 | After capture_phi(...) | main.rs:894:5:894:18 | After ExprStmt | | +| main.rs:894:5:894:17 | Before capture_phi(...) | main.rs:894:5:894:15 | capture_phi | | +| main.rs:894:5:894:17 | capture_phi(...) | main.rs:894:5:894:17 | After capture_phi(...) | | +| main.rs:894:5:894:18 | After ExprStmt | main.rs:895:5:895:27 | ExprStmt | | +| main.rs:894:5:894:18 | ExprStmt | main.rs:894:5:894:17 | Before 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 | | +| main.rs:895:5:895:26 | After let_in_block_in_cond(...) | main.rs:895:5:895:27 | After ExprStmt | | +| main.rs:895:5:895:26 | Before let_in_block_in_cond(...) | 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 | After let_in_block_in_cond(...) | | +| main.rs:895:5:895:27 | After ExprStmt | main.rs:849:11:896:1 | After { ... } | | +| main.rs:895:5:895:27 | ExprStmt | main.rs:895:5:895:26 | Before let_in_block_in_cond(...) | | breakTarget | 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 a5583df8be4d..fda7c2d6ae83 100644 --- a/rust/ql/test/library-tests/variables/Ssa.expected +++ b/rust/ql/test/library-tests/variables/Ssa.expected @@ -60,7 +60,7 @@ definition | 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:10:263:57 | 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 | @@ -70,19 +70,19 @@ definition | 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:9:275:44 | 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:14:287:51 | 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:35:309:82 | 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 | @@ -281,11 +281,11 @@ read | 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:275:9:275:44 | SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:276:16:276:17 | a7 | +| main.rs:275:9:275:44 | 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:287:14:287:51 | 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 | @@ -504,10 +504,10 @@ firstRead | 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 | 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:287:14:287:51 | 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 | @@ -640,7 +640,7 @@ adjacentReads | 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:275:9:275:44 | 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 | @@ -685,23 +685,23 @@ phi | 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:10:263:57 | 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:263:10:263:57 | SSA phi(a5) | main.rs:263:9:263:83 | a5 | main.rs:263:29:263:30 | a5 | +| main.rs:263:10:263:57 | 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:275:9:275:44 | SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:275:22:275:23 | a7 | +| main.rs:275:9:275:44 | SSA phi(a7) | main.rs:275:9:275:44 | a7 | main.rs:275:42:275:43 | a7 | +| main.rs:287:14:287:51 | SSA phi(a11) | main.rs:287:14:287:51 | a11 | main.rs:287:27:287:29 | a11 | +| main.rs:287:14:287:51 | 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:35:309:82 | 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:309:35:309:82 | SSA phi(a13) | main.rs:309:9:309:109 | a13 | main.rs:309:54:309:56 | a13 | +| main.rs:309:35:309:82 | 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 | @@ -709,15 +709,15 @@ phi | 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:11 | SSA phi read(s) | main.rs:113:9:113:9 | s | +| main.rs:115:5:118:5 | 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:11 | SSA phi read(s) | main.rs:113:9:113:9 | s | main.rs:116:11:116:11 | s | +| main.rs:115:5:118:5 | 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: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:115:5:118:5 | SSA phi read(s) | main.rs:113:9:113:9 | s | +| main.rs:115:5:118:5 | 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 @@ -729,23 +729,23 @@ ultimateDef | 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:263:10:263:57 | SSA phi(a5) | main.rs:263:29:263:30 | a5 | +| main.rs:263:10:263:57 | 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:275:9:275:44 | SSA phi(a7) | main.rs:275:22:275:23 | a7 | +| main.rs:275:9:275:44 | SSA phi(a7) | main.rs:275:42:275:43 | a7 | +| main.rs:287:14:287:51 | SSA phi(a11) | main.rs:287:27:287:29 | a11 | +| main.rs:287:14:287:51 | 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:309:35:309:82 | SSA phi(a13) | main.rs:309:54:309:56 | a13 | +| main.rs:309:35:309:82 | 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 | diff --git a/rust/ql/test/query-tests/diagnostics/CfgConsistencyCounts.expected b/rust/ql/test/query-tests/diagnostics/CfgConsistencyCounts.expected index 7056936908c0..39714d0ff79f 100644 --- a/rust/ql/test/query-tests/diagnostics/CfgConsistencyCounts.expected +++ b/rust/ql/test/query-tests/diagnostics/CfgConsistencyCounts.expected @@ -1,14 +1 @@ -| CFG scope lacks initial AST node | 0 | -| Dead end | 0 | | Missing CFG child | 0 | -| Multiple successors of the same type | 0 | -| Multiple toStrings | 0 | -| Non-PostOrderTree Expr node | 0 | -| Non-unique list order | 0 | -| Non-unique set representation | 0 | -| Non-unique split kind | 0 | -| Simple and normal successors | 0 | -| Splitting invariant 2 | 0 | -| Splitting invariant 3 | 0 | -| Splitting invariant 4 | 0 | -| Splitting invariant 5 | 0 | diff --git a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected index 77c923e92808..0b8e0d627268 100644 --- a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected +++ b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected @@ -6,8 +6,7 @@ | unreachable.rs:134:13:134:20 | MacroExpr | This code is never reached. | | unreachable.rs:143:13:143:20 | MacroExpr | This code is never reached. | | unreachable.rs:166:9:166:23 | ExprStmt | This code is never reached. | -| unreachable.rs:171:9:171:17 | MacroExpr | This code is never reached. | -| unreachable.rs:177:9:177:26 | MacroExpr | This code is never reached. | +| unreachable.rs:172:9:172:23 | ExprStmt | This code is never reached. | | unreachable.rs:206:9:206:23 | ExprStmt | This code is never reached. | | unreachable.rs:231:13:231:27 | ExprStmt | This code is never reached. | | unreachable.rs:241:13:241:27 | ExprStmt | This code is never reached. | diff --git a/rust/ql/test/query-tests/unusedentities/unreachable.rs b/rust/ql/test/query-tests/unusedentities/unreachable.rs index f55459a0e6e7..2cf605fcc52c 100644 --- a/rust/ql/test/query-tests/unusedentities/unreachable.rs +++ b/rust/ql/test/query-tests/unusedentities/unreachable.rs @@ -168,13 +168,13 @@ pub fn unreachable_bail() -> Result { if cond() { do_something(); - bail_1!(); // $ SPURIOUS: Alert[rust/dead-code] - do_something(); // $ MISSING: Alert[rust/dead-code] + bail_1!(); + do_something(); // $ Alert[rust/dead-code] } if cond() { do_something(); - bail_2!("message"); // $ SPURIOUS: Alert[rust/dead-code] + bail_2!("message"); } do_something(); diff --git a/rust/ql/test/utils/Cfg.ql b/rust/ql/test/utils/Cfg.ql index ee9a967553d1..606a2987ee4e 100644 --- a/rust/ql/test/utils/Cfg.ql +++ b/rust/ql/test/utils/Cfg.ql @@ -6,7 +6,7 @@ class MyRelevantNode extends CfgNode { MyRelevantNode() { toBeTested(this.getScope()) } } -import codeql.rust.controlflow.internal.ControlFlowGraphImpl::TestOutput +import ControlFlow::TestOutput query predicate breakTarget(BreakExpr be, Expr target) { target = be.getTarget() }