diff --git a/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll b/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll index 06295e3d88d4..38ce9e7e03db 100644 --- a/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll +++ b/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll @@ -3,6 +3,8 @@ private import codeql.controlflow.Cfg as CfgShared private import codeql.Locations module Completion { + import codeql.controlflow.SuccessorType + private newtype TCompletion = TSimpleCompletion() or TBooleanCompletion(boolean b) { b in [false, true] } or @@ -25,7 +27,7 @@ module Completion { override predicate isValidFor(AstNode e) { not any(Completion c).isValidForSpecific(e) } - override NormalSuccessor getAMatchingSuccessorType() { any() } + override DirectSuccessor getAMatchingSuccessorType() { any() } } class BooleanCompletion extends NormalCompletion, TBooleanCompletion { @@ -49,34 +51,6 @@ module Completion { override ReturnSuccessor getAMatchingSuccessorType() { any() } } - - cached - private newtype TSuccessorType = - TNormalSuccessor() or - TBooleanSuccessor(boolean b) { b in [false, true] } or - TReturnSuccessor() - - class SuccessorType extends TSuccessorType { - string toString() { none() } - } - - class NormalSuccessor extends SuccessorType, TNormalSuccessor { - override string toString() { result = "successor" } - } - - class BooleanSuccessor extends SuccessorType, TBooleanSuccessor { - boolean value; - - BooleanSuccessor() { this = TBooleanSuccessor(value) } - - override string toString() { result = value.toString() } - - boolean getValue() { result = value } - } - - class ReturnSuccessor extends SuccessorType, TReturnSuccessor { - override string toString() { result = "return" } - } } module CfgScope { @@ -127,14 +101,8 @@ private module Implementation implements CfgShared::InputSig { last(scope.(CompositeAction), e, c) } - predicate successorTypeIsSimple(SuccessorType t) { t instanceof NormalSuccessor } - - predicate successorTypeIsCondition(SuccessorType t) { t instanceof BooleanSuccessor } - SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - predicate isAbnormalExitType(SuccessorType t) { none() } - int idOfAstNode(AstNode node) { none() } int idOfCfgScope(CfgScope scope) { none() } diff --git a/csharp/ql/lib/semmle/code/csharp/Caching.qll b/csharp/ql/lib/semmle/code/csharp/Caching.qll index 6a58edef63ff..4e34f5504dc9 100644 --- a/csharp/ql/lib/semmle/code/csharp/Caching.qll +++ b/csharp/ql/lib/semmle/code/csharp/Caching.qll @@ -10,7 +10,6 @@ module Stages { cached module ControlFlowStage { private import semmle.code.csharp.controlflow.internal.Splitting - private import semmle.code.csharp.controlflow.internal.SuccessorType private import semmle.code.csharp.controlflow.Guards as Guards cached @@ -20,8 +19,6 @@ module Stages { private predicate forceCachingInSameStageRev() { exists(Split s) or - exists(SuccessorType st) - or exists(ControlFlow::Node n) or Guards::Internal::isCustomNullCheck(_, _, _, _) diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll index 508ba0e5e87d..ab2d9e0eef74 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll @@ -6,9 +6,7 @@ private import semmle.code.csharp.commons.StructuralComparison as StructuralComp pragma[noinline] private predicate isConstantCondition0(ControlFlow::Node cfn, boolean b) { - exists( - cfn.getASuccessorByType(any(ControlFlow::SuccessorTypes::BooleanSuccessor t | t.getValue() = b)) - ) and + exists(cfn.getASuccessorByType(any(ControlFlow::BooleanSuccessor t | t.getValue() = b))) and strictcount(ControlFlow::SuccessorType t | exists(cfn.getASuccessorByType(t))) = 1 } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll index 9e548838adec..afc9cb5f3da1 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll @@ -3,7 +3,7 @@ */ import csharp -private import ControlFlow::SuccessorTypes +private import ControlFlow private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as CfgImpl private import CfgImpl::BasicBlocks as BasicBlocksImpl diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 5649f43b8818..e0ec9cb9e0ad 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -5,7 +5,6 @@ private import semmle.code.csharp.ExprOrStmtParent private import semmle.code.csharp.commons.Compilation private import ControlFlow private import ControlFlow::BasicBlocks -private import SuccessorTypes private import semmle.code.csharp.Caching private import internal.ControlFlowGraphImpl as Impl diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 2334d240935f..4b9d636824cc 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -6,7 +6,6 @@ import csharp module ControlFlow { private import semmle.code.csharp.controlflow.BasicBlocks as BBs import semmle.code.csharp.controlflow.internal.SuccessorType - private import SuccessorTypes private import internal.ControlFlowGraphImpl as Impl private import internal.Splitting as Splitting diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 313fabc02356..c24dbd3d559a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -3,7 +3,7 @@ */ import csharp -private import ControlFlow::SuccessorTypes +private import ControlFlow private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.commons.ComparisonTest private import semmle.code.csharp.commons.StructuralComparison as SC @@ -1424,6 +1424,7 @@ module Internal { cached predicate isGuard(Expr e, AbstractValue val) { + Stages::ControlFlowStage::forceCachingInSameStage() and ( e.getType() instanceof BoolType and not e instanceof BoolLiteral and diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll index 6fed45cdf84d..157278d4a919 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll @@ -26,7 +26,6 @@ private import semmle.code.csharp.frameworks.System private import ControlFlowGraphImpl private import NonReturning private import SuccessorType -private import SuccessorTypes private newtype TCompletion = TSimpleCompletion() or @@ -575,7 +574,7 @@ abstract private class NonNestedNormalCompletion extends NormalCompletion { } /** A simple (normal) completion. */ class SimpleCompletion extends NonNestedNormalCompletion, TSimpleCompletion { - override NormalSuccessor getAMatchingSuccessorType() { any() } + override DirectSuccessor getAMatchingSuccessorType() { any() } override string toString() { result = "normal" } } @@ -859,7 +858,7 @@ class GotoCompletion extends Completion { /** Gets the label of the `goto` completion. */ string getLabel() { result = label } - override GotoSuccessor getAMatchingSuccessorType() { result.getLabel() = label } + override GotoSuccessor getAMatchingSuccessorType() { any() } override string toString() { // `NestedCompletion` defines `toString()` for the other case @@ -882,7 +881,7 @@ class ThrowCompletion extends Completion { /** Gets the type of the exception being thrown. */ ExceptionClass getExceptionClass() { result = ec } - override ExceptionSuccessor getAMatchingSuccessorType() { result.getExceptionClass() = ec } + override ExceptionSuccessor getAMatchingSuccessorType() { any() } override string toString() { // `NestedCompletion` defines `toString()` for the other case diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 74cb070635b2..5f62d6d21df1 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -79,23 +79,10 @@ private module CfgInput implements CfgShared::InputSig { Impl::scopeLast(scope, last, c) } - class SuccessorType = ST::SuccessorType; + private class SuccessorType = ST::SuccessorType; SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - predicate successorTypeIsSimple(SuccessorType t) { - t instanceof ST::SuccessorTypes::NormalSuccessor - } - - predicate successorTypeIsCondition(SuccessorType t) { - t instanceof ST::SuccessorTypes::ConditionalSuccessor - } - - predicate isAbnormalExitType(SuccessorType t) { - t instanceof ST::SuccessorTypes::ExceptionSuccessor or - t instanceof ST::SuccessorTypes::ExitSuccessor - } - int idOfAstNode(AstNode node) { result = node.getId() } int idOfCfgScope(CfgScope node) { result = idOfAstNode(node) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll index 08debc21c0d0..931adf9d8637 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll @@ -119,7 +119,7 @@ class ConditionBlock extends PreBasicBlock { } pragma[nomagic] - predicate controls(PreBasicBlock controlled, Cfg::SuccessorTypes::ConditionalSuccessor s) { + predicate controls(PreBasicBlock controlled, Cfg::ConditionalSuccessor s) { exists(PreBasicBlock succ, ConditionalCompletion c | this.immediatelyControls(succ, c) | succ.dominates(controlled) and s = c.getAMatchingSuccessorType() diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll index 6507bbbe04bf..dfd4a42b98ec 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll @@ -80,6 +80,8 @@ module PreSsa { } module SsaInput implements SsaImplCommon::InputSig { + private import semmle.code.csharp.Caching + class BasicBlock extends PreBasicBlocks::PreBasicBlock { ControlFlowNode getNode(int i) { result = this.getElement(i) } } @@ -130,6 +132,7 @@ module PreSsa { } predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) { + Stages::ControlFlowStage::forceCachingInSameStage() and exists(AssignableDefinition def | definitionAt(def, bb, i, v) and if def.getTargetAccess().isRefArgument() then certain = false else certain = true diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll index b6efdfcf1eac..05ad19c53234 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -470,8 +470,11 @@ module FinallySplitting { * then the `finally` block must end with a `return` as well (provided that * the `finally` block exits normally). */ - class FinallySplitType extends Cfg::SuccessorType { - FinallySplitType() { not this instanceof Cfg::SuccessorTypes::ConditionalSuccessor } + class FinallySplitType instanceof Cfg::SuccessorType { + FinallySplitType() { not this instanceof Cfg::ConditionalSuccessor } + + /** Gets a textual representation of this successor type. */ + string toString() { result = super.toString() } /** Holds if this split type matches entry into a `finally` block with completion `c`. */ predicate isSplitForEntryCompletion(Completion c) { @@ -479,7 +482,7 @@ module FinallySplitting { then // If the entry into the `finally` block completes with any normal completion, // it simply means normal execution after the `finally` block - this instanceof Cfg::SuccessorTypes::NormalSuccessor + this instanceof Cfg::DirectSuccessor else this = c.getAMatchingSuccessorType() } } @@ -533,7 +536,7 @@ module FinallySplitting { int getNestLevel() { result = nestLevel } override string toString() { - if type instanceof Cfg::SuccessorTypes::NormalSuccessor + if type instanceof Cfg::DirectSuccessor then result = "" else if nestLevel > 0 @@ -617,14 +620,14 @@ module FinallySplitting { or not c instanceof NormalCompletion or - type instanceof Cfg::SuccessorTypes::NormalSuccessor + type instanceof Cfg::DirectSuccessor ) else ( // Finally block can exit with completion `c` inherited from try/catch // block: must match this split inherited = true and type = c.getAMatchingSuccessorType() and - not type instanceof Cfg::SuccessorTypes::NormalSuccessor + not type instanceof Cfg::DirectSuccessor ) ) or @@ -657,7 +660,7 @@ module FinallySplitting { exists(FinallySplit outer | outer.getNestLevel() = super.getNestLevel() - 1 and outer.(FinallySplitImpl).exit(pred, c, inherited) and - super.getType() instanceof Cfg::SuccessorTypes::NormalSuccessor and + super.getType() instanceof Cfg::DirectSuccessor and inherited = true ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll index d6ea2161bbb7..c0dae26b30e0 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll @@ -4,329 +4,4 @@ * Provides different types of control flow successor types. */ -import csharp -private import Completion -private import semmle.code.csharp.Caching - -cached -private newtype TSuccessorType = - TSuccessorSuccessor() { Stages::ControlFlowStage::forceCachingInSameStage() } or - TBooleanSuccessor(boolean b) { b = true or b = false } or - TNullnessSuccessor(boolean isNull) { isNull = true or isNull = false } or - TMatchingSuccessor(boolean isMatch) { isMatch = true or isMatch = false } or - TEmptinessSuccessor(boolean isEmpty) { isEmpty = true or isEmpty = false } or - TReturnSuccessor() or - TBreakSuccessor() or - TContinueSuccessor() or - TGotoSuccessor(string label) { label = any(GotoStmt gs).getLabel() } or - TExceptionSuccessor(ExceptionClass ec) { exists(ThrowCompletion c | c.getExceptionClass() = ec) } or - TExitSuccessor() - -/** The type of a control flow successor. */ -class SuccessorType extends TSuccessorType { - /** Gets a textual representation of successor type. */ - string toString() { none() } -} - -/** Provides different types of control flow successor types. */ -module SuccessorTypes { - /** A normal control flow successor. */ - class NormalSuccessor extends SuccessorType, TSuccessorSuccessor { - override string toString() { result = "successor" } - } - - /** - * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`), - * a nullness successor (`NullnessSuccessor`), a matching successor (`MatchingSuccessor`), - * or an emptiness successor (`EmptinessSuccessor`). - */ - abstract class ConditionalSuccessor extends SuccessorType { - /** Gets the Boolean value of this successor. */ - abstract boolean getValue(); - } - - /** - * A Boolean control flow successor. - * - * For example, this program fragment: - * - * ```csharp - * if (x < 0) - * return 0; - * else - * return 1; - * ``` - * - * has a control flow graph containing Boolean successors: - * - * ``` - * if - * | - * x < 0 - * / \ - * / \ - * / \ - * true false - * | \ - * return 0 return 1 - * ``` - */ - class BooleanSuccessor extends ConditionalSuccessor, TBooleanSuccessor { - override boolean getValue() { this = TBooleanSuccessor(result) } - - override string toString() { result = this.getValue().toString() } - } - - /** - * A nullness control flow successor. - * - * For example, this program fragment: - * - * ```csharp - * int? M(string s) => s?.Length; - * ``` - * - * has a control flow graph containing nullness successors: - * - * ``` - * enter M - * | - * s - * / \ - * / \ - * / \ - * null non-null - * \ | - * \ Length - * \ / - * \ / - * exit M - * ``` - */ - class NullnessSuccessor extends ConditionalSuccessor, TNullnessSuccessor { - /** Holds if this is a `null` successor. */ - predicate isNull() { this = TNullnessSuccessor(true) } - - override boolean getValue() { this = TNullnessSuccessor(result) } - - override string toString() { if this.isNull() then result = "null" else result = "non-null" } - } - - /** - * A matching control flow successor. - * - * For example, this program fragment: - * - * ```csharp - * switch (x) { - * case 0 : - * return 0; - * default : - * return 1; - * } - * ``` - * - * has a control flow graph containing matching successors: - * - * ``` - * switch - * | - * x - * | - * case 0 - * / \ - * / \ - * / \ - * match no-match - * | \ - * return 0 default - * | - * return 1 - * ``` - */ - class MatchingSuccessor extends ConditionalSuccessor, TMatchingSuccessor { - /** Holds if this is a match successor. */ - predicate isMatch() { this = TMatchingSuccessor(true) } - - override boolean getValue() { this = TMatchingSuccessor(result) } - - override string toString() { if this.isMatch() then result = "match" else result = "no-match" } - } - - /** - * An emptiness control flow successor. - * - * For example, this program fragment: - * - * ```csharp - * foreach (var arg in args) - * { - * yield return arg; - * } - * yield return ""; - * ``` - * - * has a control flow graph containing emptiness successors: - * - * ``` - * args - * | - * foreach------<------- - * / \ \ - * / \ | - * / \ | - * / \ | - * empty non-empty | - * | \ | - * yield return "" \ | - * var arg | - * | | - * yield return arg | - * \_________/ - * ``` - */ - class EmptinessSuccessor extends ConditionalSuccessor, TEmptinessSuccessor { - /** Holds if this is an empty successor. */ - predicate isEmpty() { this = TEmptinessSuccessor(true) } - - override boolean getValue() { this = TEmptinessSuccessor(result) } - - override string toString() { if this.isEmpty() then result = "empty" else result = "non-empty" } - } - - /** - * A `return` control flow successor. - * - * Example: - * - * ```csharp - * void M() - * { - * return; - * } - * ``` - * - * The callable exit node of `M` is a `return` successor of the `return;` - * statement. - */ - class ReturnSuccessor extends SuccessorType, TReturnSuccessor { - override string toString() { result = "return" } - } - - /** - * A `break` control flow successor. - * - * Example: - * - * ```csharp - * int M(int x) - * { - * while (true) - * { - * if (x++ > 10) - * break; - * } - * return x; - * } - * ``` - * - * The node `return x;` is a `break` successor of the node `break;`. - */ - class BreakSuccessor extends SuccessorType, TBreakSuccessor { - override string toString() { result = "break" } - } - - /** - * A `continue` control flow successor. - * - * Example: - * - * ```csharp - * int M(int x) - * { - * while (true) { - * if (x++ < 10) - * continue; - * } - * return x; - * } - * ``` - * - * The node `while (true) { ... }` is a `continue` successor of the node - * `continue;`. - */ - class ContinueSuccessor extends SuccessorType, TContinueSuccessor { - override string toString() { result = "continue" } - } - - /** - * A `goto` control flow successor. - * - * Example: - * - * ```csharp - * int M(int x) - * { - * while (true) - * { - * if (x++ > 10) - * goto Return; - * } - * Return: return x; - * } - * ``` - * - * The node `Return: return x` is a `goto label` successor of the node - * `goto Return;`. - */ - class GotoSuccessor extends SuccessorType, TGotoSuccessor { - /** Gets the `goto` label. */ - string getLabel() { this = TGotoSuccessor(result) } - - override string toString() { result = "goto(" + this.getLabel() + ")" } - } - - /** - * An exceptional control flow successor. - * - * Example: - * - * ```csharp - * int M(string s) - * { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The callable exit node of `M` is an exceptional successor (of type - * `ArgumentNullException`) of the node `throw new ArgumentNullException(nameof(s));`. - */ - class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor { - /** Gets the type of exception. */ - ExceptionClass getExceptionClass() { this = TExceptionSuccessor(result) } - - override string toString() { result = "exception(" + this.getExceptionClass().getName() + ")" } - } - - /** - * An exit control flow successor. - * - * Example: - * - * ```csharp - * int M(string s) - * { - * if (s == null) - * System.Environment.Exit(0); - * return s.Length; - * } - * ``` - * - * The callable exit node of `M` is an exit successor of the node on line 4. - */ - class ExitSuccessor extends SuccessorType, TExitSuccessor { - override string toString() { result = "exit" } - } -} +import codeql.controlflow.SuccessorType diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 7e8ed0aadc04..b83407c43a9f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -151,9 +151,7 @@ private predicate exprImpliesSsaDef( * If the returned element takes the `s` branch, then `def` is guaranteed to be * `null` if `nv.isNull()` holds, and non-`null` otherwise. */ -private ControlFlowElement getANullCheck( - Ssa::Definition def, SuccessorTypes::ConditionalSuccessor s, NullValue nv -) { +private ControlFlowElement getANullCheck(Ssa::Definition def, ConditionalSuccessor s, NullValue nv) { exists(Expr e, G::AbstractValue v | v.branch(result, s, e) | exprImpliesSsaDef(e, v, def, nv)) } @@ -294,7 +292,7 @@ private predicate defNullImpliesStep( bb2 = phi.getBasicBlock() ) ) and - not exists(SuccessorTypes::ConditionalSuccessor s, NullValue nv | + not exists(ConditionalSuccessor s, NullValue nv | bb1.getLastNode() = getANullCheck(def1, s, nv).getAControlFlowNode() | bb2 = bb1.getASuccessorByType(s) and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll index ec1b5a0188e8..27bfc161c8fb 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -27,7 +27,7 @@ module BaseSsa { private predicate implicitEntryDef( Callable c, ControlFlow::BasicBlocks::EntryBlock bb, SsaInput::SourceVariable v ) { - exists(ControlFlow::ControlFlow::BasicBlocks::EntryBlock entry | + exists(ControlFlow::BasicBlocks::EntryBlock entry | c = entry.getCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index ff2bf7092515..44ae5b46476c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -2591,9 +2591,7 @@ class NodeRegion instanceof ControlFlow::BasicBlock { * Holds if the nodes in `nr` are unreachable when the call context is `call`. */ predicate isUnreachableInCall(NodeRegion nr, DataFlowCall call) { - exists( - ExplicitParameterNode paramNode, Guard guard, ControlFlow::SuccessorTypes::BooleanSuccessor bs - | + exists(ExplicitParameterNode paramNode, Guard guard, ControlFlow::BooleanSuccessor bs | viableConstantBooleanParamArg(paramNode, bs.getValue().booleanNot(), call) and paramNode.getSsaDefinition().getARead() = guard and guard.controlsBlock(nr, bs, _) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index d1490c849163..96777409e978 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -825,8 +825,8 @@ private module Cached { } cached - predicate implicitEntryDefinition(ControlFlow::ControlFlow::BasicBlock bb, Ssa::SourceVariable v) { - exists(ControlFlow::ControlFlow::BasicBlocks::EntryBlock entry, Callable c | + predicate implicitEntryDefinition(ControlFlow::BasicBlock bb, Ssa::SourceVariable v) { + exists(ControlFlow::BasicBlocks::EntryBlock entry, Callable c | c = entry.getCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below @@ -1052,7 +1052,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu * from `bb1` to `bb2`. */ predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { - exists(ControlFlow::SuccessorTypes::ConditionalSuccessor s | + exists(ControlFlow::ConditionalSuccessor s | this.getAControlFlowNode() = bb1.getLastNode() and bb2 = bb1.getASuccessorByType(s) and s.getValue() = branch @@ -1071,7 +1071,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, GuardValue branch) { - exists(ConditionBlock conditionBlock, ControlFlow::SuccessorTypes::ConditionalSuccessor s | + exists(ConditionBlock conditionBlock, ControlFlow::ConditionalSuccessor s | guard.getAControlFlowNode() = conditionBlock.getLastNode() and s.getValue() = branch and conditionBlock.edgeDominates(bb, s) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll index ee345780654d..f2b46e4ebac1 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll @@ -74,7 +74,7 @@ class ReverseDnsSource extends Source { pragma[noinline] private predicate conditionControlsCall0( - SensitiveExecutionMethodCall call, Expr e, ControlFlow::SuccessorTypes::BooleanSuccessor s + SensitiveExecutionMethodCall call, Expr e, ControlFlow::BooleanSuccessor s ) { forex(BasicBlock bb | bb = call.getAControlFlowNode().getBasicBlock() | e.controlsBlock(bb, s, _)) } @@ -82,9 +82,7 @@ private predicate conditionControlsCall0( private predicate conditionControlsCall( SensitiveExecutionMethodCall call, SensitiveExecutionMethod def, Expr e, boolean cond ) { - exists(ControlFlow::SuccessorTypes::BooleanSuccessor s | cond = s.getValue() | - conditionControlsCall0(call, e, s) - ) and + exists(ControlFlow::BooleanSuccessor s | cond = s.getValue() | conditionControlsCall0(call, e, s)) and def = call.getTarget().getUnboundDeclaration() } diff --git a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql index 5ec702f77e04..eb71239e0fc0 100644 --- a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql +++ b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql @@ -89,7 +89,7 @@ class ConstantNullnessCondition extends ConstantCondition { ConstantNullnessCondition() { forex(ControlFlow::Node cfn | cfn = this.getAControlFlowNode() | - exists(ControlFlow::SuccessorTypes::NullnessSuccessor t, ControlFlow::Node s | + exists(ControlFlow::NullnessSuccessor t, ControlFlow::Node s | s = cfn.getASuccessorByType(t) | b = t.getValue() and @@ -112,7 +112,7 @@ class ConstantMatchingCondition extends ConstantCondition { ConstantMatchingCondition() { forex(ControlFlow::Node cfn | cfn = this.getAControlFlowNode() | - exists(ControlFlow::SuccessorTypes::MatchingSuccessor t | exists(cfn.getASuccessorByType(t)) | + exists(ControlFlow::MatchingSuccessor t | exists(cfn.getASuccessorByType(t)) | b = t.getValue() ) and strictcount(ControlFlow::SuccessorType t | exists(cfn.getASuccessorByType(t))) = 1 diff --git a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql index 5258d6a4cd2a..c350c8f37554 100644 --- a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql +++ b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql @@ -21,10 +21,10 @@ predicate loginMethod(Method m, ControlFlow::SuccessorType flowFrom) { or m = any(SystemWebSecurityFormsAuthenticationClass c).getAuthenticateMethod() ) and - flowFrom.(ControlFlow::SuccessorTypes::BooleanSuccessor).getValue() = true + flowFrom.(ControlFlow::BooleanSuccessor).getValue() = true or m = any(SystemWebSecurityFormsAuthenticationClass c).getSignOutMethod() and - flowFrom instanceof ControlFlow::SuccessorTypes::NormalSuccessor + flowFrom instanceof ControlFlow::DirectSuccessor } /** The `System.Web.SessionState.HttpSessionState` class. */ diff --git a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected index 7d1d5bf5af2c..0189d522a6cd 100644 --- a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected +++ b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected @@ -81,7 +81,7 @@ | Discards.cs:25:22:25:22 | String _ | Discards.cs:25:22:25:22 | String _ | | Finally.cs:7:13:7:17 | Int32 i = ... | Finally.cs:7:13:7:17 | Int32 i = ... | | Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | ... = ... | -| Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | [finally: exception(Exception)] ... = ... | +| Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | [finally: exception] ... = ... | | Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:23 | Object o = ... | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:18:8:23 | Int32 i1 | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:23:12:31 | String s1 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 6177eb7e3350..4f78a6f8303e 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -435,33 +435,32 @@ | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 5 | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:11:13:11:37 | call to method WriteLine | 7 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | 1 | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 5 | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 5 | | Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | exit M1 (normal) | 5 | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:23:13:23:37 | call to method WriteLine | 7 | | Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | 1 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | 1 | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | 1 | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | 5 | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true | 2 | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | 6 | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | 2 | | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:34:21:34:24 | true | 6 | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | 9 | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:38:17:38:44 | [finally: exception] throw ...; | 5 | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:42:9:43:9 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | 5 | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) | 5 | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:58:13:58:37 | call to method WriteLine | 7 | | Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | 1 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 1 | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | 1 | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | 5 | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true | 2 | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | 6 | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | 2 | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | 5 | | Finally.cs:66:9:67:9 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | 5 | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | 4 | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 5 | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:77:9:100:9 | while (...) ... | 6 | | Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | 1 | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | 1 | @@ -482,12 +481,12 @@ | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | 1 | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | 1 | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | 1 | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | 4 | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | 4 | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | 4 | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | 4 | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:23 | [finally: break] ...-- | 4 | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | 4 | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | 4 | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:23 | [finally: continue] ...-- | 4 | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | 4 | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | 4 | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:23 | [finally: return] ...-- | 4 | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:23 | ...-- | 4 | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:107:17:107:21 | access to field Field | 7 | @@ -500,75 +499,55 @@ | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | access to field Field | 3 | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | 1 | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | 2 | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | 8 | +| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | 1 | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | 1 | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | 7 | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | 7 | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:19:114:35 | [finally: exception] ... == ... | 7 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | ... == ... | 7 | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | 1 | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | 1 | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | 1 | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | 1 | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... | 1 | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | 1 | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | 1 | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | 1 | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | 1 | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | 1 | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... | 1 | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | 1 | | Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | call to method WriteLine | 4 | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | 4 | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | 4 | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | 4 | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | 4 | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | 6 | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | 6 | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | 6 | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception] ... > ... | 6 | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:32 | [finally: return] ... > ... | 6 | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | ... > ... | 6 | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | call to method WriteLine | 3 | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | 3 | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | 3 | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | 3 | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | 3 | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | 3 | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | exit M6 | 12 | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:137:13:137:36 | call to method WriteLine | 7 | | Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 | 2 | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | 4 | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | 4 | | Finally.cs:140:9:143:9 | {...} | Finally.cs:141:13:141:44 | throw ...; | 4 | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:151:17:151:28 | ... == ... | 8 | | Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | 1 | | Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | 1 | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | 1 | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | 7 | +| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | 1 | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | 1 | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | 6 | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:158:21:158:31 | [finally: exception] access to property Length | 6 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:31 | access to property Length | 6 | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | 2 | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | 2 | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | 2 | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | 1 | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | 1 | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... | 2 | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | 1 | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | 1 | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | 2 | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | 2 | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | 2 | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | 2 | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | 1 | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | 1 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | 1 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | 1 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | 1 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | 1 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | 1 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | 1 | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | 5 | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | 5 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | 5 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | 5 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | 5 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | 5 | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | 6 | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | 6 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | 5 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | 5 | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | 6 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | 6 | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | 5 | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | 5 | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | 5 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:167:17:167:37 | call to method WriteLine | 5 | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 5 | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 5 | @@ -577,89 +556,66 @@ | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | 1 | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | 1 | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | 1 | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | 6 | +| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | 1 | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | 1 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | 5 | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | 5 | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | 5 | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | 2 | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | 1 | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | 1 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | 1 | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | 1 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | 3 | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | 3 | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | 3 | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | 2 | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | 2 | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | 3 | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; | 2 | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:17:199:18 | access to parameter b1 | 6 | | Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | 1 | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | 1 | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | 6 | +| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | 1 | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | 1 | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | 5 | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | 5 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | 5 | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | 4 | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | 4 | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | 4 | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | 1 | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | 1 | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | 1 | +| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | 1 | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | 1 | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | 1 | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | 3 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | 3 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | 3 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | 3 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | 3 | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | 3 | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | 3 | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | 3 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | 3 | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | 2 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | 2 | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | 2 | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | 2 | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; | 2 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | 2 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 9 | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | 4 | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | 4 | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | 4 | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:220:13:220:36 | call to method WriteLine | 7 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:224:13:224:38 | call to method WriteLine | 5 | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | exit M11 | 9 | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:239:21:239:22 | access to parameter b1 | 8 | | Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | 1 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | 1 | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | 6 | +| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | 1 | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | 1 | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | 5 | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | 5 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | 5 | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | 5 | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | 5 | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | 5 | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | 1 | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | 1 | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | 1 | +| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | 1 | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | 1 | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | 1 | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | 4 | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | 4 | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | 4 | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | 4 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | 7 | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | 4 | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | 4 | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | 5 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 (normal) | 8 | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:267:13:267:34 | call to method WriteLine | 7 | | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | 1 | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 10 | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 10 | | Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | exit M13 (normal) | 10 | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 5 | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:29:8:32 | access to parameter args | 3 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index a59100474ea6..b4a4cbb6a157 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -1341,11 +1341,9 @@ conditionBlock | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | false | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | false | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | false | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | false | | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:62:9:64:9 | {...} | true | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | true | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | true | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:66:9:67:9 | {...} | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 (abnormal) | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:78:9:100:9 | {...} | true | @@ -1363,12 +1361,12 @@ conditionBlock | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | true | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break] {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue] {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return] {...} | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} | true | | Finally.cs:78:9:100:9 | {...} | Finally.cs:82:21:82:27 | return ...; | true | @@ -1385,17 +1383,17 @@ conditionBlock | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true | | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | false | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break] {...} | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | false | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return] {...} | true | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | {...} | false | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | true | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true | +| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return] {...} | false | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | true | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | false | @@ -1407,15 +1405,15 @@ conditionBlock | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | false | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | false | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | false | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | true | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | {...} | false | | Finally.cs:84:21:84:29 | continue; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | true | | Finally.cs:84:21:84:29 | continue; | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true | +| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true | | Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue] {...} | false | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | true | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:89:13:99:13 | {...} | false | @@ -1423,17 +1421,17 @@ conditionBlock | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | false | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | false | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | true | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | {...} | false | | Finally.cs:86:21:86:26 | break; | Finally.cs:93:25:93:46 | [finally: break] throw ...; | true | | Finally.cs:86:21:86:26 | break; | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true | -| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true | +| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true | | Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break] {...} | false | | Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; | true | | Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | true | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | true | | Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | {...} | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:108:17:108:23 | return ...; | true | | Finally.cs:107:33:107:33 | 0 | Finally.cs:109:13:110:49 | if (...) ... | false | @@ -1442,20 +1440,15 @@ conditionBlock | Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:113:9:118:9 | {...} | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: return] !... | true | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false] !... | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: return] !... | true | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true] !... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | ...; | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: return] ...; | true | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | true | | Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | if (...) ... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | ...; | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: return] ...; | true | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [false, finally: return] !... | true | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... | false | @@ -1463,228 +1456,149 @@ conditionBlock | Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; | true | | Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | | Finally.cs:109:33:109:33 | 1 | Finally.cs:113:9:118:9 | {...} | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true | | Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false] !... | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | true | | Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true] !... | false | | Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | ...; | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | true | | Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | if (...) ... | false | | Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | false | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | false | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | false | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:115:17:115:41 | [finally: exception] ...; | false | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... | true | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... | false | | Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; | false | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (abnormal) | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (normal) | false | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception] {...} | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | {...} | false | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | 1 | false | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception] 1 | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | throw ...; | false | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | "1" | false | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception] "1" | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | false | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | false | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | false | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | false | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception] {...} | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | {...} | false | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | true | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | true | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | catch {...} | false | | Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; | true | | Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" | true | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | true | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | true | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | true | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:41:159:43 | [finally: exception] "1" | true | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | true | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | true | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | true | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | true | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | true | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | true | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | true | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | false | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | false | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception] {...} | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | {...} | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | throw ...; | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | false | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception] {...} | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | {...} | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | false | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | false | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | false | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | true | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | false | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception] ...; | true | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | true | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | true | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} | false | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | false | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | false | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; | true | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | true | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | true | | Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | {...} | false | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true | | Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | false | | Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | false | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | | Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; | false | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; | true | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | true | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception] {...} | true | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | {...} | false | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | true | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | true | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | throw ...; | false | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | false | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | false | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | true | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | false | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | true | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception] {...} | true | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | {...} | false | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} | false | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | true | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | true | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | true | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | true | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} | false | | Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; | true | | Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | true | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | true | | Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} | false | | Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} | false | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | true | @@ -2751,91 +2665,62 @@ conditionFlow | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | false | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | false | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | false | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | false | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | true | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | false | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" | true | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:162:13:164:13 | {...} | true | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | {...} | true | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} | false | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; | false | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} | false | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | true | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql index 25de07e9d5b5..61c801819246 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql @@ -4,8 +4,7 @@ import ControlFlow query predicate conditionBlock( BasicBlocks::ConditionBlock cb, BasicBlock controlled, boolean testIsTrue ) { - cb.edgeDominates(controlled, - any(SuccessorTypes::ConditionalSuccessor s | testIsTrue = s.getValue())) + cb.edgeDominates(controlled, any(ConditionalSuccessor s | testIsTrue = s.getValue())) } ControlFlow::Node successor(ControlFlow::Node node, boolean kind) { diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index f0a0c6459cbb..bc5082c4c18e 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -1067,11 +1067,11 @@ dominance | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | -| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | -| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | -| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | -| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | -| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | +| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | +| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | +| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | +| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | +| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; | | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | @@ -1741,18 +1741,18 @@ dominance | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} | | Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; | -| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | +| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception] {...} | | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | | Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:15:13:15:41 | [finally: exception] ...; | | Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; | -| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | +| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) | | Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" | -| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | +| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:15:31:15:39 | [finally: exception] "Finally" | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine | -| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | +| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} | | Finally.cs:20:5:52:5 | {...} | Finally.cs:21:9:51:9 | try {...} ... | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} | @@ -1767,7 +1767,6 @@ dominance | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true | | Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:27:9:29:9 | {...} | | Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | -| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:31:9:40:9 | {...} | @@ -1776,24 +1775,21 @@ dominance | Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true | | Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | -| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | -| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | -| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | -| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception] {...} | +| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | +| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception] throw ...; | +| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | | Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | -| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:50:13:50:41 | [finally: exception] ...; | | Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:50:13:50:41 | [finally: return] ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; | +| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | | Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" | -| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | -| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | +| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:50:31:50:39 | [finally: exception] "Finally" | | Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:50:31:50:39 | [finally: return] "Finally" | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine | -| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | +| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | | Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} | | Finally.cs:55:5:72:5 | {...} | Finally.cs:56:9:71:9 | try {...} ... | @@ -1809,26 +1805,22 @@ dominance | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true | | Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:62:9:64:9 | {...} | | Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | -| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:65:48:65:51 | [exception: Exception] null | | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | | Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | | Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | -| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:70:13:70:41 | [finally: exception] ...; | | Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:70:13:70:41 | [finally: return] ...; | | Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; | +| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | | Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" | -| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | -| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | +| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:70:31:70:39 | [finally: exception] "Finally" | | Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:70:31:70:39 | [finally: return] "Finally" | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine | -| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | +| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | | Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} | | Finally.cs:75:5:101:5 | {...} | Finally.cs:76:9:76:19 | ... ...; | @@ -1894,36 +1886,36 @@ dominance | Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:92:25:92:30 | [finally: continue] ... == ... | | Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:92:25:92:30 | [finally: return] ... == ... | | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | -| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; | -| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally(1): exception] ...; | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:24 | [finally: break] ...; | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:24 | [finally: continue] ...; | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:24 | [finally: return] ...; | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | -| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | -| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | +| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | +| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:23 | [finally: break] ...-- | -| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | +| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue] ...-- | -| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | +| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:23 | [finally: return] ...-- | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | | Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i | -| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | -| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | +| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | -| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | -| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} | | Finally.cs:104:5:119:5 | {...} | Finally.cs:105:9:118:9 | try {...} ... | @@ -1931,10 +1923,9 @@ dominance | Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... | | Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} | | Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | @@ -1946,107 +1937,67 @@ dominance | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | | Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | -| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | -| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | +| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception] this access | | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:114:19:114:23 | [finally: return] this access | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:30 | [finally: exception] access to property Length | +| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:19:114:23 | [finally: exception] access to field Field | | Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:30 | [finally: return] access to property Length | | Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:19:114:23 | [finally: return] access to field Field | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field | -| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | -| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | -| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | +| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:35:114:35 | [finally: exception] 0 | | Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:35:114:35 | [finally: return] 0 | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... | -| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | -| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | -| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | +| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:35 | [finally: exception] ... == ... | | Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:35 | [finally: return] ... == ... | | Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:35:115:39 | [finally: exception] this access | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:35:115:39 | [finally: return] this access | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | +| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:35:115:39 | [finally: exception] access to field Field | | Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | | Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:35:115:39 | [finally: return] access to field Field | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | | Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception] this access | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:21 | [finally: return] this access | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:28 | [finally: exception] access to property Length | +| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:17:116:21 | [finally: exception] access to field Field | | Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:28 | [finally: return] access to property Length | | Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:17:116:21 | [finally: return] access to field Field | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length | | Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field | -| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | -| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | -| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | +| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:32:116:32 | [finally: exception] 0 | | Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:32:116:32 | [finally: return] 0 | | Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... | -| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | -| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | -| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | +| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:32 | [finally: exception] ... > ... | | Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:32 | [finally: return] ... > ... | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:35:117:35 | [finally: exception] 1 | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:35:117:35 | [finally: return] 1 | | Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine | -| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | -| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | +| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | | Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} | | Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 | @@ -2064,16 +2015,16 @@ dominance | Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} | | Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; | -| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | +| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception] {...} | | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | | Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:41:141:42 | [finally: exception] "" | | Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" | -| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | +| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | | Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException | -| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | +| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} | | Finally.cs:148:5:170:5 | {...} | Finally.cs:149:9:169:9 | try {...} ... | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:150:9:153:9 | {...} | @@ -2083,102 +2034,70 @@ dominance | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | -| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | | Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | -| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | +| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception] {...} | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} | -| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | -| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | +| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | | Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... | -| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | -| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | +| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args | -| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | -| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | +| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception] access to property Length | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | +| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | +| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [exception: Exception] "1" | | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | +| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | +| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | | Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | +| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | +| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:43 | [finally: exception] ...; | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | | Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args | -| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | -| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | -| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | -| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | +| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | +| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception] 0 | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 | -| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | -| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | +| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element | -| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | -| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | +| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:41 | [finally: exception] access to array element | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:166:13:168:13 | [finally: exception] {...} | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} | -| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | -| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | +| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:167:17:167:38 | [finally: exception] ...; | | Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; | | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | -| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | -| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | +| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:167:35:167:36 | [finally: exception] "" | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | -| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | -| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | +| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | @@ -2198,50 +2117,35 @@ dominance | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} | | Finally.cs:196:5:214:5 | {...} | Finally.cs:197:9:212:9 | try {...} ... | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:198:9:200:9 | {...} | @@ -2249,85 +2153,49 @@ dominance | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | -| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | | Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | -| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception] {...} | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} | -| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | | Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... | -| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | -| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | +| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | -| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | +| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | +| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | +| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | -| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | -| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | +| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:26:211:28 | [finally: exception] "0" | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:16 | [finally: exception] this access | | Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | -| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | -| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | +| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | | Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | @@ -2361,77 +2229,48 @@ dominance | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | -| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | | Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | -| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception] {...} | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} | -| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | | Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... | -| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | -| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | +| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | -| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally(1): exception] ...; | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:55 | [finally: exception] ...; | | Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; | | Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" | -| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | +| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | +| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | +| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | +| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | +| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | +| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | | Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:258:13:258:47 | [finally: exception] ...; | | Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; | +| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; | | Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" | -| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | -| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | +| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine | -| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | +| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) | | Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine | @@ -2439,28 +2278,28 @@ dominance | Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} | | Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; | -| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | +| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception] {...} | | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | | Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" | | Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:271:13:271:35 | [finally: exception] ...; | | Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; | -| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | +| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception] ...; | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; | | Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | -| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | +| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:271:31:271:33 | [finally: exception] "3" | | Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine | -| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | -| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | +| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | +| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception] 3 | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 | | Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:13:272:18 | ... = ... | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | +| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:13:272:18 | [finally: exception] ... = ... | +| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | -| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | +| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | -| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | +| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:18 | [finally: exception] ... + ... | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | @@ -5445,11 +5284,11 @@ postDominance | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:31:9:34:9 | {...} | -| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | -| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | -| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | -| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | +| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | +| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | +| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | +| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:9:40:11 | End: | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:38 | ...; | @@ -6094,7 +5933,7 @@ postDominance | Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | exit Finally (normal) | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | {...} | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | call to constructor Object | -| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | +| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | | Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:15:13:15:40 | call to method WriteLine | | Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | enter M1 | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:8:5:17:5 | {...} | @@ -6103,12 +5942,13 @@ postDominance | Finally.cs:11:13:11:38 | ...; | Finally.cs:10:9:12:9 | {...} | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:38 | ...; | | Finally.cs:14:9:16:9 | {...} | Finally.cs:11:13:11:37 | call to method WriteLine | -| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | +| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:15:31:15:39 | [finally: exception] "Finally" | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:31:15:39 | "Finally" | | Finally.cs:15:13:15:41 | ...; | Finally.cs:14:9:16:9 | {...} | -| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | +| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:14:9:16:9 | [finally: exception] {...} | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:41 | ...; | -| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | +| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:41 | [finally: exception] ...; | +| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:50:13:50:40 | call to method WriteLine | | Finally.cs:20:5:52:5 | {...} | Finally.cs:19:10:19:11 | enter M2 | @@ -6125,28 +5965,24 @@ postDominance | Finally.cs:33:13:35:13 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:33:13:35:13 | {...} | | Finally.cs:34:21:34:24 | true | Finally.cs:34:17:34:32 | if (...) ... | -| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | -| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | -| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | +| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | +| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | +| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:37:13:39:13 | [finally: exception] {...} | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | | Finally.cs:42:9:43:9 | {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | -| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:28:13:28:18 | throw ...; | | Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:24:13:24:19 | return ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | -| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | +| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception] "Finally" | | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: return] "Finally" | | Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:31:50:39 | "Finally" | | Finally.cs:50:13:50:41 | ...; | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | -| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | +| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} | | Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:49:9:51:9 | [finally: return] {...} | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:41 | ...; | -| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | -| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | +| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:41 | [finally: exception] ...; | | Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:41 | [finally: return] ...; | +| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:70:13:70:40 | call to method WriteLine | | Finally.cs:55:5:72:5 | {...} | Finally.cs:54:10:54:11 | enter M3 | @@ -6164,20 +6000,16 @@ postDominance | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:65:48:65:51 | [exception: Exception] null | | Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | | Finally.cs:66:9:67:9 | {...} | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | -| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:63:13:63:18 | throw ...; | | Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:59:13:59:19 | return ...; | | Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | -| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | +| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception] "Finally" | | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: return] "Finally" | | Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:31:70:39 | "Finally" | | Finally.cs:70:13:70:41 | ...; | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | -| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | +| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:69:9:71:9 | [finally: exception] {...} | | Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:69:9:71:9 | [finally: return] {...} | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:41 | ...; | -| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | -| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | +| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:41 | [finally: exception] ...; | | Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:41 | [finally: return] ...; | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:20 | ... > ... | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:97:21:97:23 | [finally: break] ...-- | @@ -6235,29 +6067,29 @@ postDominance | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:92:25:92:30 | [finally: continue] ... == ... | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:92:25:92:30 | [finally: return] ... == ... | | Finally.cs:96:17:98:17 | {...} | Finally.cs:92:25:92:30 | ... == ... | -| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | -| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | +| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally(1): exception] ...; | +| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:24 | [finally: break] ...; | -| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | +| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue] ...; | -| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | +| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:24 | [finally: return] ...; | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:24 | ...; | | Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:21 | access to local variable i | -| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | -| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | +| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | -| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | -| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | +| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | | Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | | Finally.cs:97:21:97:24 | ...; | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:17:116:32 | ... > ... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:17:116:32 | [finally: return] ... > ... | @@ -6277,52 +6109,33 @@ postDominance | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:21 | access to field Field | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:33:109:33 | 1 | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:33 | ... == ... | -| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | -| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | -| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | +| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception] {...} | | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:113:9:118:9 | [finally: return] {...} | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | +| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:23 | [finally: exception] this access | +| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | | Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:23 | [finally: return] this access | | Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | this access | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:13:115:41 | if (...) ... | -| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | -| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:19:114:23 | [finally: exception] access to field Field | | Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:19:114:23 | [finally: return] access to field Field | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:23 | access to field Field | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:35:114:35 | 0 | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:35:114:35 | [finally: exception] 0 | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:35:114:35 | [finally: return] 0 | | Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:30 | access to property Length | -| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | -| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | -| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | +| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:30 | [finally: exception] access to property Length | | Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:30 | [finally: return] access to property Length | -| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | -| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception] access to field Field | | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: return] access to field Field | | Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:35:115:39 | access to field Field | | Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:35:115:39 | [finally: exception] this access | +| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:35:115:39 | [finally: return] this access | | Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:17:115:41 | [finally: return] ...; | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | this access | @@ -6331,40 +6144,26 @@ postDominance | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:40 | call to method WriteLine | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | +| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:21 | [finally: exception] this access | +| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | | Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:21 | [finally: return] this access | | Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | this access | | Finally.cs:116:17:116:21 | this access | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | -| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | -| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | +| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:17:116:21 | [finally: exception] access to field Field | | Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:17:116:21 | [finally: return] access to field Field | | Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:21 | access to field Field | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:32:116:32 | 0 | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:116:32:116:32 | [finally: exception] 0 | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:116:32:116:32 | [finally: return] 0 | | Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:28 | access to property Length | -| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | -| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | -| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | +| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:28 | [finally: exception] access to property Length | | Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:28 | [finally: return] access to property Length | -| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | -| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | -| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | +| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception] 1 | | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: return] 1 | | Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:35:117:35 | 1 | | Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | exit M6 (normal) | | Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:125:17:125:40 | Double temp = ... | @@ -6384,12 +6183,12 @@ postDominance | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:31:137:35 | "Try" | | Finally.cs:137:13:137:37 | ...; | Finally.cs:136:9:138:9 | {...} | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:37 | ...; | -| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | +| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | | Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:19:141:43 | object creation of type ArgumentException | -| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | +| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:41:141:42 | [finally: exception] "" | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" | | Finally.cs:141:41:141:42 | "" | Finally.cs:140:9:143:9 | {...} | -| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | +| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:140:9:143:9 | [finally: exception] {...} | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:158:21:158:36 | ... == ... | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:163:17:163:42 | call to method WriteLine | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:167:17:167:37 | call to method WriteLine | @@ -6400,28 +6199,20 @@ postDominance | Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:13:152:50 | if (...) ... | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:25:151:28 | null | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:20 | access to parameter args | -| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:152:17:152:50 | throw ...; | | Finally.cs:155:9:169:9 | {...} | Finally.cs:151:17:151:28 | ... == ... | -| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | +| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception] {...} | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:155:9:169:9 | {...} | -| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | -| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | +| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | | Finally.cs:157:13:160:13 | {...} | Finally.cs:156:13:168:13 | try {...} ... | -| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | +| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception] {...} | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:157:13:160:13 | {...} | -| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | -| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | +| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:17:159:45 | if (...) ... | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:24 | access to parameter args | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception] "1" | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:41:159:43 | "1" | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:27:159:44 | object creation of type Exception | @@ -6429,55 +6220,38 @@ postDominance | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | +| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | +| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | +| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [exception: Exception] "1" | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | | Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | -| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | -| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | +| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | +| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | +| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception] access to array element | | Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:35:163:41 | access to array element | | Finally.cs:163:17:163:43 | ...; | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | -| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | -| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | +| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:162:13:164:13 | [finally: exception] {...} | +| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception] ...; | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:17:163:43 | ...; | -| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | -| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | +| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:40:163:40 | [finally: exception] 0 | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:40:163:40 | 0 | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:38 | access to parameter args | -| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | -| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | -| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | -| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | +| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | +| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | | Finally.cs:166:13:168:13 | {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | -| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | +| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception] "" | | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:35:167:36 | "" | | Finally.cs:167:17:167:38 | ...; | Finally.cs:166:13:168:13 | {...} | -| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | +| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:166:13:168:13 | [finally: exception] {...} | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:38 | ...; | -| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | -| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | +| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:38 | [finally: exception] ...; | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | enter ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | {...} | @@ -6498,95 +6272,60 @@ postDominance | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:179:9:181:9 | {...} | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:13:180:43 | if (...) ... | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:180:17:180:18 | access to parameter b1 | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | -| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | +| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:213:9:213:24 | ... = ... | | Finally.cs:196:5:214:5 | {...} | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:196:5:214:5 | {...} | | Finally.cs:198:9:200:9 | {...} | Finally.cs:197:9:212:9 | try {...} ... | | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:198:9:200:9 | {...} | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:13:199:43 | if (...) ... | -| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:199:21:199:43 | throw ...; | | Finally.cs:202:9:212:9 | {...} | Finally.cs:199:17:199:18 | access to parameter b1 | -| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | -| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception] {...} | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | -| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | +| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | | Finally.cs:204:13:206:13 | {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | -| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception] {...} | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:204:13:206:13 | {...} | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:17:205:47 | if (...) ... | -| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | | Finally.cs:208:13:210:13 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | -| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception] {...} | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:17:209:47 | if (...) ... | -| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:29 | ...; | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:26:211:28 | "0" | -| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | -| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | +| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:211:26:211:28 | [finally: exception] "0" | | Finally.cs:211:13:211:29 | ...; | Finally.cs:209:21:209:22 | access to parameter b3 | | Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:16 | this access | -| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | -| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | +| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:16 | [finally: exception] this access | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:25 | ...; | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:22:213:24 | "1" | | Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:28 | ... = ... | @@ -6611,6 +6350,7 @@ postDominance | Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:27:230:32 | "Done" | | Finally.cs:230:9:230:34 | ...; | Finally.cs:228:13:228:40 | call to method WriteLine | | Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:34 | ...; | +| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | | Finally.cs:233:10:233:12 | exit M12 (normal) | Finally.cs:260:9:260:33 | call to method WriteLine | | Finally.cs:234:5:261:5 | {...} | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:234:5:261:5 | {...} | @@ -6619,68 +6359,42 @@ postDominance | Finally.cs:238:13:241:13 | {...} | Finally.cs:237:13:253:13 | try {...} ... | | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:238:13:241:13 | {...} | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:17:240:43 | if (...) ... | -| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:240:21:240:43 | throw ...; | | Finally.cs:243:13:253:13 | {...} | Finally.cs:239:21:239:22 | access to parameter b1 | -| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | -| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception] {...} | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | -| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | +| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | | Finally.cs:245:17:248:17 | {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | -| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception] {...} | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:245:17:248:17 | {...} | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:21:247:47 | if (...) ... | -| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | | Finally.cs:250:17:252:17 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | -| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | +| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | +| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | +| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:39:251:53 | "Inner finally" | | Finally.cs:251:21:251:55 | ...; | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:55 | ...; | -| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | -| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception] ...; | +| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | +| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception] ...; | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:31:254:43 | "Mid finally" | | Finally.cs:254:13:254:45 | ...; | Finally.cs:251:21:251:54 | call to method WriteLine | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:45 | ...; | | Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | -| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | -| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | +| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:31:258:45 | "Outer finally" | | Finally.cs:258:13:258:47 | ...; | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | -| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:257:9:259:9 | [finally: exception] {...} | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:47 | ...; | -| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | -| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception] ...; | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:27:260:32 | "Done" | | Finally.cs:260:9:260:34 | ...; | Finally.cs:258:13:258:46 | call to method WriteLine | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | +| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:272:13:272:18 | [finally: exception] ... = ... | | Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:272:13:272:18 | ... = ... | | Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | enter M13 | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:264:5:274:5 | {...} | @@ -6689,22 +6403,22 @@ postDominance | Finally.cs:267:13:267:35 | ...; | Finally.cs:266:9:268:9 | {...} | | Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:35 | ...; | | Finally.cs:270:9:273:9 | {...} | Finally.cs:267:13:267:34 | call to method WriteLine | -| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | +| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:271:31:271:33 | [finally: exception] "3" | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:31:271:33 | "3" | | Finally.cs:271:13:271:35 | ...; | Finally.cs:270:9:273:9 | {...} | -| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | +| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:270:9:273:9 | [finally: exception] {...} | | Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:35 | ...; | -| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | -| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | +| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:35 | [finally: exception] ...; | +| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:13:272:19 | [finally: exception] ...; | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:19 | ...; | | Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:18:272:18 | 3 | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:18 | ... + ... | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | +| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:18:272:18 | [finally: exception] 3 | +| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:272:13:272:18 | [finally: exception] ... + ... | | Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine | -| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | +| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:13 | access to parameter i | -| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | +| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | enter Foreach | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | {...} | @@ -10543,14 +10257,13 @@ blockDominance | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | +| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | [finally: exception] {...} | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | {...} | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:14:9:16:9 | [finally: exception] {...} | | Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (abnormal) | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (normal) | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:24:13:24:19 | return ...; | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | @@ -10561,11 +10274,10 @@ blockDominance | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:34:27:34:32 | throw ...; | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:49:9:51:9 | [finally: exception] {...} | | Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:27:9:29:9 | {...} | @@ -10574,6 +10286,7 @@ blockDominance | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} | | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:27:9:29:9 | {...} | | Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} | @@ -10588,9 +10301,9 @@ blockDominance | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | | Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (abnormal) | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (normal) | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:59:13:59:19 | return ...; | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | @@ -10599,31 +10312,27 @@ blockDominance | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | +| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | [finally: exception] {...} | | Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:62:9:64:9 | {...} | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | +| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} | | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:62:9:64:9 | {...} | | Finally.cs:62:9:64:9 | {...} | Finally.cs:62:9:64:9 | {...} | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | | Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 (abnormal) | @@ -10644,12 +10353,12 @@ blockDominance | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | {...} | | Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | @@ -10674,12 +10383,12 @@ blockDominance | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} | | Finally.cs:78:9:100:9 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) | @@ -10698,18 +10407,18 @@ blockDominance | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | {...} | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | @@ -10722,16 +10431,16 @@ blockDominance | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | {...} | | Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | | Finally.cs:84:21:84:29 | continue; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | | Finally.cs:84:21:84:29 | continue; | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue] {...} | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | @@ -10740,19 +10449,19 @@ blockDominance | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | {...} | | Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | | Finally.cs:86:21:86:26 | break; | Finally.cs:93:25:93:46 | [finally: break] throw ...; | | Finally.cs:86:21:86:26 | break; | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break] {...} | | Finally.cs:89:13:99:13 | {...} | Finally.cs:89:13:99:13 | {...} | | Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; | | Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | | Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | {...} | | Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:93:25:93:46 | [finally: break] throw ...; | | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | @@ -10760,22 +10469,22 @@ blockDominance | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; | | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | -| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | -| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:96:17:98:17 | {...} | Finally.cs:96:17:98:17 | {...} | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | enter M5 | @@ -10790,33 +10499,22 @@ blockDominance | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:109:33:109:33 | 1 | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception] {...} | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception] !... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception] !... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | | Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 (abnormal) | @@ -10830,27 +10528,16 @@ blockDominance | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:107:33:107:33 | 0 | Finally.cs:103:10:103:11 | exit M5 (normal) | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 | @@ -10861,20 +10548,15 @@ blockDominance | Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:107:33:107:33 | 0 | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [false, finally: return] !... | @@ -10888,118 +10570,75 @@ blockDominance | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 | | Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:109:33:109:33 | 1 | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | | Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | exit M5 (abnormal) | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:113:9:118:9 | [finally: exception] {...} | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [false, finally: exception] !... | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [true, finally: exception] !... | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:115:17:115:41 | [finally: exception] ...; | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; | | Finally.cs:113:9:118:9 | {...} | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | | Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | exit M7 (abnormal) | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | +| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | [finally: exception] {...} | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | {...} | | Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 (abnormal) | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:140:9:143:9 | [finally: exception] {...} | | Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 | @@ -11007,80 +10646,54 @@ blockDominance | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (normal) | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception] {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception] "1" | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception] {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | catch {...} | | Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | | Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | exit M8 (abnormal) | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception] "1" | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception] {...} | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | exit M8 (abnormal) | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:155:9:169:9 | [finally: exception] {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:159:41:159:43 | [finally: exception] "1" | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 (normal) | | Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} | | Finally.cs:155:9:169:9 | {...} | Finally.cs:158:36:158:36 | 1 | @@ -11095,44 +10708,30 @@ blockDominance | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 | | Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:41:159:43 | [finally: exception] "1" | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:41:159:43 | [finally: exception] "1" | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} | | Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB | @@ -11144,55 +10743,34 @@ blockDominance | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | exit M9 (normal) | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | @@ -11201,186 +10779,119 @@ blockDominance | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception] {...} | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception] {...} | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception] {...} | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception] ...; | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:202:9:212:9 | [finally: exception] {...} | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | | Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | | Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:222:9:225:9 | catch {...} | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:227:9:229:9 | {...} | @@ -11388,83 +10899,61 @@ blockDominance | Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception] {...} | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception] {...} | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} | | Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception] {...} | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:243:13:253:13 | [finally: exception] {...} | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; | | Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | +| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | [finally: exception] {...} | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | {...} | | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:270:9:273:9 | [finally: exception] {...} | | Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | enter M1 | @@ -14617,12 +14106,11 @@ postBlockDominance | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:14:9:16:9 | [finally: exception] {...} | | Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | enter M1 | | Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 | | Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | enter M2 | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:24:13:24:19 | return ...; | @@ -14645,9 +14133,9 @@ postBlockDominance | Finally.cs:42:9:43:9 | {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | | Finally.cs:42:9:43:9 | {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | | Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 | | Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | enter M3 | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:59:13:59:19 | return ...; | @@ -14668,7 +14156,7 @@ postBlockDominance | Finally.cs:66:9:67:9 | {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | | Finally.cs:66:9:67:9 | {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | | Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 | | Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | @@ -14707,14 +14195,14 @@ postBlockDominance | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:86:21:86:26 | break; | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:84:21:84:29 | continue; | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:82:21:82:27 | return ...; | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:96:17:98:17 | {...} | Finally.cs:89:13:99:13 | {...} | @@ -14755,32 +14243,23 @@ postBlockDominance | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:113:9:118:9 | [finally: exception] {...} | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:13:110:49 | if (...) ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:28 | access to property Length | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:33:109:33 | 1 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:41 | [finally: exception] ...; | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | @@ -14795,14 +14274,12 @@ postBlockDominance | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:41 | ...; | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:37 | [finally: exception] ...; | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 | | Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 (abnormal) | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:140:9:143:9 | [finally: exception] {...} | | Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 | | Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | @@ -14821,41 +14298,32 @@ postBlockDominance | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:165:13:168:13 | catch {...} | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:155:9:169:9 | [finally: exception] {...} | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | enter M8 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:36:158:36 | [finally: exception] 1 | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:41:159:43 | [finally: exception] "1" | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:41:159:43 | "1" | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:159:41:159:43 | "1" | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} | | Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB | @@ -14876,71 +14344,54 @@ postBlockDominance | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | enter M9 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:202:9:212:9 | [finally: exception] {...} | | Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} | | Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:202:9:212:9 | {...} | | Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | enter M10 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:202:9:212:9 | {...} | | Finally.cs:211:13:211:29 | ...; | Finally.cs:208:13:210:13 | {...} | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | catch {...} | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | enter M11 | @@ -14948,35 +14399,29 @@ postBlockDominance | Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:243:13:253:13 | [finally: exception] {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:243:13:253:13 | {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | enter M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:243:13:253:13 | {...} | | Finally.cs:257:9:259:9 | {...} | Finally.cs:250:17:252:17 | {...} | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 | | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:270:9:273:9 | [finally: exception] {...} | | Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | enter M13 | | Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index fd87b8db0584..2c2e977ae126 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -1146,10 +1146,10 @@ nodeEnclosing | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | @@ -1899,14 +1899,14 @@ nodeEnclosing | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:11:13:11:38 | ...; | Finally.cs:7:10:7:11 | M1 | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:13:15:41 | ...; | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:7:10:7:11 | M1 | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 | | Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 | | Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 | @@ -1931,27 +1931,23 @@ nodeEnclosing | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:19:10:19:11 | M2 | | Finally.cs:34:21:34:24 | true | Finally.cs:19:10:19:11 | M2 | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:19:10:19:11 | M2 | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:41 | ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:19:10:19:11 | M2 | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 | | Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 | @@ -1976,21 +1972,17 @@ nodeEnclosing | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:54:10:54:11 | M3 | | Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:41 | ...; | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:54:10:54:11 | M3 | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 | | Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 | @@ -2058,37 +2050,37 @@ nodeEnclosing | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:24 | ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | M5 | @@ -2112,115 +2104,71 @@ nodeEnclosing | Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:35:114:35 | 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | this access | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:32:116:32 | 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:35:117:35 | 1 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 | | Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | M6 | @@ -2243,14 +2191,14 @@ nodeEnclosing | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:133:10:133:11 | M7 | | Finally.cs:137:13:137:37 | ...; | Finally.cs:133:10:133:11 | M7 | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:133:10:133:11 | M7 | | Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:41:141:42 | "" | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:133:10:133:11 | M7 | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 | | Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 | | Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | M8 | @@ -2264,108 +2212,74 @@ nodeEnclosing | Finally.cs:151:25:151:28 | null | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:157:13:160:13 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:17:163:43 | ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:40:163:40 | 0 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:166:13:168:13 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:17:167:38 | ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:35:167:36 | "" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | @@ -2393,51 +2307,35 @@ nodeEnclosing | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 | @@ -2449,84 +2347,48 @@ nodeEnclosing | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:204:13:206:13 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:16 | this access | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:26:211:28 | "0" | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:12 | this access | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | M10 | @@ -2565,78 +2427,47 @@ nodeEnclosing | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:245:17:248:17 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:233:10:233:12 | M12 | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:21:251:55 | ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:13:254:45 | ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:13:258:47 | ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:233:10:233:12 | M12 | @@ -2650,24 +2481,24 @@ nodeEnclosing | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:267:13:267:35 | ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:267:31:267:33 | "1" | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | M13 | | Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:13:271:35 | ...; | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:31:271:33 | "3" | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:18 | ... + ... | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:19 | ...; | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:18:272:18 | 3 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:263:10:263:12 | M13 | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | Foreach | @@ -5296,11 +5127,10 @@ blockEnclosing | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | Finally | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | M1 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 | | Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | M2 | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 | @@ -5311,9 +5141,9 @@ blockEnclosing | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 | | Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | M3 | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | M3 | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | M3 | @@ -5322,7 +5152,7 @@ blockEnclosing | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:54:10:54:11 | M3 | | Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 | | Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | M4 | @@ -5343,12 +5173,12 @@ blockEnclosing | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 | @@ -5363,38 +5193,27 @@ blockEnclosing | Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 | | Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | M7 | | Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:133:10:133:11 | M7 | | Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 | | Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 | @@ -5402,34 +5221,25 @@ blockEnclosing | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | @@ -5441,86 +5251,63 @@ blockEnclosing | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | M11 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | M12 | | Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | M13 | | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | M13 | | Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | M1 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 1664d77538a6..8726e77130bb 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -372,7 +372,7 @@ | Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | | | Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:32 | ... ? ... : ... | | | Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:32 | ... ? ... : ... | | -| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception(AssertFailedException) | +| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception | | Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:18:9:18:36 | ...; | | | Assert.cs:17:9:17:25 | ...; | Assert.cs:17:23:17:23 | access to local variable s | | | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | non-null | @@ -392,7 +392,7 @@ | Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | | | Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:32 | ... ? ... : ... | | | Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:32 | ... ? ... : ... | | -| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception(AssertFailedException) | +| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception | | Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | | | Assert.cs:24:9:24:28 | ...; | Assert.cs:24:26:24:26 | access to local variable s | | | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | null | @@ -412,7 +412,7 @@ | Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | | | Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:32 | ... ? ... : ... | | | Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:32 | ... ? ... : ... | | -| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception(AssertFailedException) | +| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception | | Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:32:9:32:36 | ...; | | | Assert.cs:31:9:31:33 | ...; | Assert.cs:31:23:31:23 | access to local variable s | | | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:28:31:31 | null | | @@ -434,7 +434,7 @@ | Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | | | Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:32 | ... ? ... : ... | | | Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:32 | ... ? ... : ... | | -| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception(AssertFailedException) | +| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception | | Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:39:9:39:36 | ...; | | | Assert.cs:38:9:38:33 | ...; | Assert.cs:38:23:38:23 | access to local variable s | | | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:28:38:31 | null | | @@ -456,7 +456,7 @@ | Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | | | Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:32 | ... ? ... : ... | | | Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:32 | ... ? ... : ... | | -| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception(AssertFailedException) | +| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception | | Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:46:9:46:36 | ...; | | | Assert.cs:45:9:45:34 | ...; | Assert.cs:45:24:45:24 | access to local variable s | | | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:29:45:32 | null | | @@ -478,7 +478,7 @@ | Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | | | Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:32 | ... ? ... : ... | | | Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:32 | ... ? ... : ... | | -| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception(AssertFailedException) | +| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception | | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:53:9:53:36 | ...; | | | Assert.cs:52:9:52:34 | ...; | Assert.cs:52:24:52:24 | access to local variable s | | | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:29:52:32 | null | | @@ -502,7 +502,7 @@ | Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | | | Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | | | Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | | -| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception(AssertFailedException) | +| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:60:9:60:36 | ...; | | | Assert.cs:59:9:59:38 | [b (line 56): false] ...; | Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | | | Assert.cs:59:9:59:38 | [b (line 56): true] ...; | Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | | @@ -535,7 +535,7 @@ | Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | | | Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | | | Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | | -| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception(AssertFailedException) | +| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:67:9:67:36 | ...; | | | Assert.cs:66:9:66:39 | [b (line 63): false] ...; | Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | | | Assert.cs:66:9:66:39 | [b (line 63): true] ...; | Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | | @@ -568,7 +568,7 @@ | Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | | | Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | | | Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | | -| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception(AssertFailedException) | +| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:74:9:74:36 | ...; | | | Assert.cs:73:9:73:38 | [b (line 70): false] ...; | Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | | | Assert.cs:73:9:73:38 | [b (line 70): true] ...; | Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | | @@ -601,7 +601,7 @@ | Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | | | Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | | | Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | | -| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception(AssertFailedException) | +| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:81:9:81:36 | ...; | | | Assert.cs:80:9:80:39 | [b (line 77): false] ...; | Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | | | Assert.cs:80:9:80:39 | [b (line 77): true] ...; | Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | | @@ -666,8 +666,8 @@ | Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | | | Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:92:9:92:36 | [b (line 84): false] ...; | | | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:92:9:92:36 | [b (line 84): true] ...; | | | Assert.cs:91:9:91:25 | [b (line 84): false] ...; | Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | | @@ -694,8 +694,8 @@ | Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | | | Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:96:9:96:36 | [b (line 84): false] ...; | | | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:96:9:96:36 | [b (line 84): true] ...; | | | Assert.cs:95:9:95:28 | [b (line 84): false] ...; | Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | | @@ -722,8 +722,8 @@ | Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | | | Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:100:9:100:36 | [b (line 84): false] ...; | | | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:100:9:100:36 | [b (line 84): true] ...; | | | Assert.cs:99:9:99:33 | [b (line 84): false] ...; | Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | | @@ -754,8 +754,8 @@ | Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | | | Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:104:9:104:36 | [b (line 84): false] ...; | | | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:104:9:104:36 | [b (line 84): true] ...; | | | Assert.cs:103:9:103:33 | [b (line 84): false] ...; | Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | | @@ -786,8 +786,8 @@ | Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | | | Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:108:9:108:36 | [b (line 84): false] ...; | | | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:108:9:108:36 | [b (line 84): true] ...; | | | Assert.cs:107:9:107:34 | [b (line 84): false] ...; | Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | | @@ -818,8 +818,8 @@ | Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | | | Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:112:9:112:36 | [b (line 84): false] ...; | | | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:112:9:112:36 | [b (line 84): true] ...; | | | Assert.cs:111:9:111:34 | [b (line 84): false] ...; | Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | | @@ -850,8 +850,8 @@ | Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | | | Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | | | Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:116:9:116:36 | [b (line 84): true] ...; | | | Assert.cs:115:9:115:38 | [b (line 84): false] ...; | Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | | | Assert.cs:115:9:115:38 | [b (line 84): true] ...; | Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | | @@ -877,7 +877,7 @@ | Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | | Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | | | Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:120:9:120:36 | [b (line 84): true] ...; | | | Assert.cs:119:9:119:40 | [b (line 84): true] ...; | Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | | | Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | Assert.cs:119:29:119:32 | [b (line 84): true] null | | @@ -897,7 +897,7 @@ | Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | | Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | | | Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:124:9:124:36 | [b (line 84): true] ...; | | | Assert.cs:123:9:123:38 | [b (line 84): true] ...; | Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | | | Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | Assert.cs:123:28:123:31 | [b (line 84): true] null | | @@ -916,7 +916,7 @@ | Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | | Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | | | Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | | -| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) | +| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:128:9:128:36 | ...; | | | Assert.cs:127:9:127:40 | [b (line 84): true] ...; | Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | | | Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | Assert.cs:127:29:127:32 | [b (line 84): true] null | | @@ -938,8 +938,8 @@ | Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 | | | Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | exit M13 | | | Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:36 | ...; | | -| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception(Exception) | -| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception(Exception) | +| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception | +| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception | | Assert.cs:140:9:140:35 | [assertion success] call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | | | Assert.cs:140:9:140:35 | this access | Assert.cs:140:25:140:26 | access to parameter b1 | | | Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | this access | | @@ -1159,11 +1159,11 @@ | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} | | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | | -| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | goto(End) | -| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | | -| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto(End) | -| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | | -| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | | +| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | goto | +| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | | +| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto | +| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | | +| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; | | | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | @@ -1708,7 +1708,7 @@ | ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:21:5:24:5 | {...} | | | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:20:10:20:11 | exit M3 | | | ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:26 | ...; | | -| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | exception(ArgumentException), exception(Exception) | +| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | exception | | ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:21:22:24 | true | | | ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | | | ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:27:5:30:5 | {...} | | @@ -1728,8 +1728,8 @@ | ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:40:9:51:9 | try {...} ... | | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:41:9:43:9 | {...} | | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:31 | ...; | | -| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | exception(ArgumentException) | -| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | exception(Exception) | +| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | exception | +| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | exception | | ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:25:42:29 | false | | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | | | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | match | @@ -1743,12 +1743,12 @@ | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:55:5:58:5 | {...} | | | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:54:10:54:11 | exit M7 | | | ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:56:9:56:23 | ...; | | -| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | exception(Exception) | +| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | exception | | ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | | | ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:61:5:64:5 | {...} | | | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:60:10:60:11 | exit M8 | | | ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:62:9:62:23 | ...; | | -| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | exception(Exception) | +| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | exception | | ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | | | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:67:5:70:5 | {...} | | | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | | @@ -1757,7 +1757,7 @@ | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:13:68:13 | access to parameter b | | | ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false | | ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true | -| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | exception(Exception) | +| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | exception | | ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | | | ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:73:5:78:5 | {...} | | | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways | | @@ -1765,19 +1765,19 @@ | ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:74:13:74:13 | access to parameter b | | | ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | | ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:77:41:77:43 | "b" | false | -| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception(Exception) | +| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception | | ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | | -| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception(ArgumentException) | +| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception | | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | | | ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | | | ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:81:5:83:5 | {...} | | | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | | | ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:15:82:29 | object creation of type Exception | | -| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | exception(Exception) | +| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | exception | | ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | | | ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:41:85:55 | object creation of type Exception | | | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | | -| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | exception(Exception) | +| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | exception | | ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | | | ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:88:5:90:5 | {...} | | | ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:87:10:87:13 | exit Exit | | @@ -1813,7 +1813,7 @@ | ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | | | ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | | | ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:37 | ... / ... | | -| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | exception(ArgumentException) | +| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | exception | | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | | | ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | | | ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:116:5:118:5 | {...} | | @@ -1830,26 +1830,26 @@ | ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | | | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | | | ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:29 | ...; | | -| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception(AssertFailedException) | +| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception | | ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:23:122:27 | false | | | ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | false | | ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | | | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | | | ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:27 | ...; | | -| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | exception(AssertFailedException) | +| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | exception | | ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | | | ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | this access | | | ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | | | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | | | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | | -| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception(AssertFailedException) | +| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception | | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | true | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | false | | ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | | | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | | | ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:26 | ...; | | -| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception(AssertFailedException) | +| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception | | ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:21:136:24 | true | | | ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | this access | | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true | @@ -1859,11 +1859,11 @@ | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:142:13:142:13 | access to parameter b | | | ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | true | | ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | false | -| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception(ArgumentException) | +| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception | | ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:41:143:41 | access to parameter e | | | ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:42 | call to method Throw | | | ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | | -| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception(Exception) | +| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception | | ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:43:145:43 | access to parameter e | | | ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:44 | call to method Capture | | | Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:6:5:8:5 | {...} | | @@ -1912,18 +1912,18 @@ | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} | | | Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; | | -| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | exception(Exception) | +| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception] {...} | exception | | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | | | Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" | | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine | | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:15:13:15:41 | [finally: exception] ...; | | | Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; | | -| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | exception(Exception) | +| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | exception | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) | | | Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" | | -| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | | +| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:15:31:15:39 | [finally: exception] "Finally" | | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine | | -| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | | +| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} | | | Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 | | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 | | @@ -1931,7 +1931,7 @@ | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} | | | Finally.cs:22:9:25:9 | {...} | Finally.cs:23:13:23:38 | ...; | | | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:24:13:24:19 | return ...; | | -| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | exception(Exception) | +| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | exception | | Finally.cs:23:13:23:38 | ...; | Finally.cs:23:31:23:36 | "Try2" | | | Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:37 | call to method WriteLine | | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:49:9:51:9 | [finally: return] {...} | return | @@ -1940,7 +1940,7 @@ | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true | | | Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:27:9:29:9 | {...} | true | | Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | | -| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | exception(IOException) | +| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} | exception | | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | match | | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | no-match | | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:31:9:40:9 | {...} | | @@ -1949,28 +1949,24 @@ | Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... | | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true | | | Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | exception(ArgumentException) | -| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | | -| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | | -| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception] {...} | exception | +| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | | +| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} | exception | +| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception] throw ...; | | +| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | | | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | match | | Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} | | -| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | | -| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:50:13:50:41 | [finally: exception] ...; | | | Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:50:13:50:41 | [finally: return] ...; | | | Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; | | -| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception(Exception) | -| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception(IOException) | +| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception | | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | return | | Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | | | Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" | | -| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | | -| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | | +| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:50:31:50:39 | [finally: exception] "Finally" | | | Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:50:31:50:39 | [finally: return] "Finally" | | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine | | -| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | | +| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | | | Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} | | | Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 | | @@ -1979,7 +1975,7 @@ | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:57:9:60:9 | {...} | | | Finally.cs:57:9:60:9 | {...} | Finally.cs:58:13:58:38 | ...; | | | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:59:13:59:19 | return ...; | | -| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | exception(Exception) | +| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | exception | | Finally.cs:58:13:58:38 | ...; | Finally.cs:58:31:58:36 | "Try3" | | | Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:37 | call to method WriteLine | | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:69:9:71:9 | [finally: return] {...} | return | @@ -1988,30 +1984,26 @@ | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true | | | Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:62:9:64:9 | {...} | true | | Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | | -| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | exception(IOException) | +| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception] {...} | exception | | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | match | | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | | | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | | | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:65:48:65:51 | [exception: Exception] null | | | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | exception(Exception) | +| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception] {...} | exception | | Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | | | Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} | | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | | -| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:70:13:70:41 | [finally: exception] ...; | | | Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:70:13:70:41 | [finally: return] ...; | | | Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; | | -| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception(Exception) | -| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception(IOException) | +| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception | | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | return | | Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | | | Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" | | -| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | | -| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | | +| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:70:31:70:39 | [finally: exception] "Finally" | | | Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:70:31:70:39 | [finally: return] "Finally" | | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine | | -| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | | +| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | | | Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} | | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 | | @@ -2078,49 +2070,49 @@ | Finally.cs:92:30:92:30 | [finally: break] 3 | Finally.cs:92:25:92:30 | [finally: break] ... == ... | | | Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:92:25:92:30 | [finally: continue] ... == ... | | | Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:92:25:92:30 | [finally: return] ... == ... | | -| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | exception | +| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | exception | +| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | exception | +| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | exception | | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; | | -| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | exception | | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | | -| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | exception | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | -| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | exception | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | exception | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally(1): exception] ...; | | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:24 | [finally: break] ...; | | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:24 | [finally: continue] ...; | | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:24 | [finally: return] ...; | | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | | -| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | | -| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | | +| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | | +| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | | | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:23 | [finally: break] ...-- | | -| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | | +| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | | | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue] ...-- | | -| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | | +| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | | | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:23 | [finally: return] ...-- | | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | | | Finally.cs:97:21:97:23 | ...-- | Finally.cs:77:16:77:16 | access to local variable i | | -| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) | -| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) | +| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | +| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | | Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | break | -| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) | +| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | | Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:77:16:77:16 | access to local variable i | continue | -| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) | +| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | | Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | return | | Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i | | -| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | | -| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | | +| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | | +| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | | | Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | | -| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | | +| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | | | Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | | -| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | | +| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | | | Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} | | | Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 | | @@ -2130,147 +2122,97 @@ | Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... | | | Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access | | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length | | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | | Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field | | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) | +| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | true | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:113:9:118:9 | [finally: return] {...} | return | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | this access | | | Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:28 | access to property Length | | -| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) | +| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | | Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | access to field Field | | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) | +| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | exception(OutOfMemoryException) | +| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | | -| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | | +| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | | | Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | | -| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | | -| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | | -| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | | +| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception] this access | | | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:114:19:114:23 | [finally: return] this access | | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access | | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | false | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | false | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | false | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | false | | Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true | | Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | | +| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:30 | [finally: exception] access to property Length | | +| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:19:114:23 | [finally: exception] access to field Field | | | Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:30 | [finally: return] access to property Length | | | Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:19:114:23 | [finally: return] access to field Field | | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length | | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field | | -| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | | -| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | | -| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | | +| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:35:114:35 | [finally: exception] 0 | | | Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:35:114:35 | [finally: return] 0 | | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 | | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | true | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | false | | Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... | | -| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | | -| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | | -| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | | +| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:35 | [finally: exception] ... == ... | | | Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:35 | [finally: return] ... == ... | | -| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | | -| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | | -| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | | +| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | | | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | | Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:116:13:117:37 | if (...) ... | | | Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access | | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:35:115:39 | [finally: exception] this access | | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:35:115:39 | [finally: return] this access | | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | | +| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | | +| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:35:115:39 | [finally: exception] access to field Field | | | Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | | | Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:35:115:39 | [finally: return] access to field Field | | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | | | Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field | | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception] this access | | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:21 | [finally: return] this access | | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access | | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | | +| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:28 | [finally: exception] access to property Length | | +| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:17:116:21 | [finally: exception] access to field Field | | | Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:28 | [finally: return] access to property Length | | | Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:17:116:21 | [finally: return] access to field Field | | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length | | | Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field | | -| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | | -| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | | -| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | | +| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:32:116:32 | [finally: exception] 0 | | | Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:32:116:32 | [finally: return] 0 | | | Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 | | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(Exception) | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(NullReferenceException) | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(OutOfMemoryException) | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | return | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true | | Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... | | -| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | | -| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | | -| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | | +| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:32 | [finally: exception] ... > ... | | | Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:32 | [finally: return] ... > ... | | -| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(Exception) | -| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(NullReferenceException) | -| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(OutOfMemoryException) | +| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception | | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | return | | Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 | | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:35:117:35 | [finally: exception] 1 | | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:35:117:35 | [finally: return] 1 | | | Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine | | -| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | | -| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | | +| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | | | Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | | | Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} | | | Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 | | @@ -2288,18 +2230,18 @@ | Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... | | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} | | | Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; | | -| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | exception(Exception) | +| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception] {...} | exception | | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | | | Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" | | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine | | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:41:141:42 | [finally: exception] "" | | | Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" | | -| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception(ArgumentException) | -| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception(ArgumentException) | -| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | | +| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception | +| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception | +| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | | | Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException | | -| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | | +| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} | | | Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 | | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 | | @@ -2311,129 +2253,89 @@ | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... | | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | exception(ArgumentNullException) | +| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception] {...} | exception | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} | exception | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | | | Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | | -| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | | -| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | | +| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception] {...} | | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} | | -| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | | -| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | | +| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | | | Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... | | -| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | | -| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | | +| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args | | -| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | | -| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | | +| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception] access to property Length | | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length | | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:36:158:36 | [finally: exception] 1 | | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | exception | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 | | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) | +| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception | +| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | exception | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" | true | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... | | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception | +| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | | -| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) | +| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | | | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | match | | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | match | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | match | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | match | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | match | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | match | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | match | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | match | | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | | | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | | | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | | | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | | +| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | | +| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | | | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [exception: Exception] "1" | | | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | | +| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | | +| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:162:13:164:13 | {...} | true | | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | {...} | true | | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false | | Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | | | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | | +| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | | +| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:43 | [finally: exception] ...; | | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | | -| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) | -| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) | +| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | | Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | | | Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args | | -| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | | -| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | | -| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | | -| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | | +| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | | +| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception] 0 | | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 | | -| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | | -| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | | +| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element | | -| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | | -| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | | +| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:41 | [finally: exception] access to array element | | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:166:13:168:13 | [finally: exception] {...} | | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} | | -| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | | -| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | | +| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:167:17:167:38 | [finally: exception] ...; | | | Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; | | -| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) | -| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) | +| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | | | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | -| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | | -| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | | +| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:167:35:167:36 | [finally: exception] "" | | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | | -| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | | -| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | | +| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | | @@ -2455,64 +2357,45 @@ | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false | -| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | exception(ExceptionA) | +| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | exception | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | | -| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | exception(Exception) | +| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | exception | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | | | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | | | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | | | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionA) | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | -| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true | +| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | | -| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception(Exception) | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(Exception) | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(Exception) | -| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) | +| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception | +| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | match | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | match | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | | | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | | | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | -| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionC) | -| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionC) | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | +| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; | | | Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} | | | Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 | | | Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:195:10:195:12 | exit M10 | | @@ -2522,102 +2405,59 @@ | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | +| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception] {...} | exception | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | | -| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} | exception | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | | | Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | | -| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | | -| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | | +| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception] {...} | | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} | | -| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | | -| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | | +| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | | | Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... | | -| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | | -| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | | +| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} | false | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | exception | +| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | exception | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | exception | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | exception | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | | -| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | | +| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | | +| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | | +| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; | false | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | | +| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; | | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | -| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | | -| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | | +| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:26:211:28 | [finally: exception] "0" | | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | -| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) | -| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionA) | +| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:16 | [finally: exception] this access | | | Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | | -| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | | -| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | | +| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | | | Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | | @@ -2627,7 +2467,7 @@ | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | | | Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:219:9:221:9 | {...} | | | Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:37 | ...; | | -| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | exception(Exception) | +| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | exception | | Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:227:9:229:9 | {...} | | | Finally.cs:220:13:220:37 | ...; | Finally.cs:220:31:220:35 | "Try" | | | Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:36 | call to method WriteLine | | @@ -2654,88 +2494,55 @@ | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | +| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception] {...} | exception | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | | -| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} | exception | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | | | Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | | -| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | | -| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | | +| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception] {...} | | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} | | -| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | | -| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | | +| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | | | Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... | | -| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | | -| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | | +| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} | false | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | exception(Exception) | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | exception | +| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | exception | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | exception | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | exception(Exception) | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | | -| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | exception | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally(1): exception] ...; | | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:55 | [finally: exception] ...; | | | Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | | -| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) | +| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception | +| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception | +| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; | | | Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | | +| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | | +| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | | +| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | | -| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) | +| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | | +| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | | +| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | | +| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | | | Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" | | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine | | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:258:13:258:47 | [finally: exception] ...; | | | Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; | | -| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception(Exception) | -| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception(ExceptionA) | +| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; | | | Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" | | -| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | | -| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | | +| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine | | -| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | | +| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) | | | Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" | | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine | | @@ -2745,28 +2552,28 @@ | Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... | | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} | | | Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; | | -| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | exception(Exception) | +| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception] {...} | exception | | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | | | Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" | | | Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine | | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:271:13:271:35 | [finally: exception] ...; | | | Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; | | -| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | | +| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception] ...; | | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; | | | Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | | -| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | | +| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:271:31:271:33 | [finally: exception] "3" | | | Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine | | -| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | | -| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | | +| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | | +| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception] 3 | | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 | | | Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:13:272:18 | ... = ... | | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) | | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | exception(Exception) | +| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:13:272:18 | [finally: exception] ... = ... | | +| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | exception | | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | -| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | | +| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | | -| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | | +| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:18 | [finally: exception] ... + ... | | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | | @@ -3159,7 +2966,7 @@ | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | | | LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:34:50:34 | access to local variable x | | | LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | | -| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:9:50:13 | Label: | goto(Label) | +| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:9:50:13 | Label: | goto | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:56:5:65:5 | {...} | | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:57:9:57:48 | ... ...; | | @@ -3261,27 +3068,27 @@ | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | -| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | exception | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | throw ... | | | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | | | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | | | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | | | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | | | MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:33:7:36 | null | | -| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | exception | | MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:27:7:37 | throw ...; | | | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | | | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | | | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | | | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | | | MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:53:7:56 | null | | -| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | exception | | MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:47:7:57 | throw ...; | | | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:29:8:32 | null | | | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:16:8:16 | exit M | | | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | exit M | | -| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | @@ -3347,7 +3154,7 @@ | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | | -| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | @@ -3359,12 +3166,12 @@ | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | | | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:22:36:25 | null | | -| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | exception | | MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:16:36:26 | throw ...; | | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:14:37:28 | {...} | | | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:9:37:10 | exit M2 | | | MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:22:37:25 | null | | -| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | @@ -3377,29 +3184,29 @@ | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | | -| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | | -| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | exception | | MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:42:13:52 | throw ...; | | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | | | MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:27:16:30 | null | | | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | -| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | | -| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | | | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | | | MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:19:20:22 | null | | -| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | exception | | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:13:20:23 | throw ...; | | -| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | exception(NullReferenceException) | +| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | exception | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | | MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | | @@ -3772,7 +3579,7 @@ | PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | true | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [false] ... is ... | no-match | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [true] ... is ... | match | -| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | exception(ArgumentNullException) | +| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | exception | | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | | | PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:17:10:17:11 | exit M3 (normal) | | @@ -3867,12 +3674,12 @@ | Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | | | Switch.cs:16:18:16:18 | 0 | Switch.cs:17:23:17:37 | object creation of type Exception | match | | Switch.cs:16:18:16:18 | 0 | Switch.cs:18:13:18:22 | case ...: | no-match | -| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception(Exception) | +| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception | | Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | | | Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | | | Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | goto default; | match | | Switch.cs:18:18:18:21 | null | Switch.cs:20:13:20:23 | case ...: | no-match | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | default: | goto(default) | +| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | default: | goto | | Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | | | Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | match | | Switch.cs:20:18:20:22 | Int32 i | Switch.cs:24:13:24:56 | case ...: | no-match | @@ -3882,7 +3689,7 @@ | Switch.cs:21:21:21:29 | ... == ... | Switch.cs:23:27:23:27 | 0 | false | | Switch.cs:21:26:21:29 | null | Switch.cs:21:21:21:29 | ... == ... | | | Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | -| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | case ...: | goto(0) | +| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | case ...: | goto | | Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | | | Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | | | Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:32 | access to local variable s | match | @@ -3905,16 +3712,16 @@ | Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | | | Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | call to method Throw | match | | Switch.cs:27:18:27:25 | Double d | Switch.cs:30:13:30:20 | default: | no-match | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception(Exception) | +| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception | | Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | return ...; | | | Switch.cs:29:17:29:23 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | | Switch.cs:30:13:30:20 | default: | Switch.cs:31:17:31:27 | goto ...; | | -| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | goto(Label) | +| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | goto | | Switch.cs:35:10:35:11 | enter M3 | Switch.cs:36:5:42:5 | {...} | | | Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:35:10:35:11 | exit M3 | | | Switch.cs:36:5:42:5 | {...} | Switch.cs:37:9:41:9 | switch (...) {...} | | | Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | call to method Throw | | -| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | exception(Exception) | +| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | exception | | Switch.cs:44:10:44:11 | enter M4 | Switch.cs:45:5:53:5 | {...} | | | Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 | | | Switch.cs:45:5:53:5 | {...} | Switch.cs:46:9:52:9 | switch (...) {...} | | @@ -4013,7 +3820,7 @@ | Switch.cs:108:17:108:17 | 1 | Switch.cs:108:16:108:17 | -... | | | Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:34:111:48 | object creation of type Exception | | | Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:17:111:21 | exit Throw | | -| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | exception(Exception) | +| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | exception | | Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | | | Switch.cs:113:9:113:11 | enter M10 | Switch.cs:114:5:121:5 | {...} | | | Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 | | @@ -4126,7 +3933,7 @@ | Switch.cs:156:28:156:31 | true | Switch.cs:156:41:156:45 | false | no-match | | Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | | | Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:38 | ... => ... | | -| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | exception(InvalidOperationException) | +| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | exception | | Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | match | | Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | | | Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:52 | ... => ... | | @@ -4361,7 +4168,7 @@ | cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:43:27:43:27 | 2 | | | cflow.cs:42:17:42:39 | ...; | cflow.cs:42:35:42:37 | "1" | | | cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:38 | call to method WriteLine | | -| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | case ...: | goto(2) | +| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | case ...: | goto | | cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | goto case ...; | | | cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | | | cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | match | @@ -4369,7 +4176,7 @@ | cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:46:27:46:27 | 1 | | | cflow.cs:45:17:45:39 | ...; | cflow.cs:45:35:45:37 | "2" | | | cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:38 | call to method WriteLine | | -| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | case ...: | goto(1) | +| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | case ...: | goto | | cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | | | cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | | | cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | match | @@ -4407,7 +4214,7 @@ | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [false] !... | true | | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [true] !... | false | | cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:33 | ... == ... | | -| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | exception(NullReferenceException) | +| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | exception | | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | | | cflow.cs:65:17:65:22 | break; | cflow.cs:67:16:67:16 | access to parameter a | break | | cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | exit Switch (normal) | return | @@ -4462,7 +4269,7 @@ | cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:94:9:94:29 | ...; | false | | cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:23:92:26 | null | | | cflow.cs:92:23:92:26 | null | cflow.cs:92:13:92:27 | call to method Equals | | -| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | exception(ArgumentNullException) | +| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | exception | | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | | | cflow.cs:93:45:93:47 | "s" | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | | | cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:96:9:97:55 | if (...) ... | | @@ -4777,7 +4584,7 @@ | cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | true | | cflow.cs:201:9:205:9 | {...} | cflow.cs:202:13:204:13 | {...} | | | cflow.cs:202:13:204:13 | {...} | cflow.cs:203:23:203:37 | object creation of type Exception | | -| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | exception(Exception) | +| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | exception | | cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | | | cflow.cs:208:10:208:11 | enter Do | cflow.cs:209:5:222:5 | {...} | | | cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | | @@ -4873,7 +4680,7 @@ | cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:31:244:41 | goto ...; | true | | cflow.cs:244:13:244:28 | ... > ... | cflow.cs:246:9:258:9 | switch (...) {...} | false | | cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:28 | ... > ... | | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto(Label) | +| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto | | cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:21 | this access | | | cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:28 | access to property Length | | | cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | access to field Field | | @@ -4883,7 +4690,7 @@ | cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | | | cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | goto default; | match | | cflow.cs:248:18:248:18 | 0 | cflow.cs:250:13:250:19 | case ...: | no-match | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | default: | goto(default) | +| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | default: | goto | | cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | | | cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | match | | cflow.cs:250:18:250:18 | 1 | cflow.cs:253:13:253:19 | case ...: | no-match | @@ -4894,7 +4701,7 @@ | cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | | | cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | goto ...; | match | | cflow.cs:253:18:253:18 | 2 | cflow.cs:255:13:255:20 | default: | no-match | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto(Label) | +| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto | | cflow.cs:255:13:255:20 | default: | cflow.cs:256:17:256:37 | ...; | | | cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:257:17:257:22 | break; | | | cflow.cs:256:17:256:37 | ...; | cflow.cs:256:35:256:35 | 0 | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index 7c5a64b7155e..81c154386797 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -508,65 +508,45 @@ booleanNode | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | b1 (line 176): true | | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | b1 (line 176): true | | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | b1 (line 176): false | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true | | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | b1 (line 176): false | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | b1 (line 176): true | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | b1 (line 176): true | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | b1 (line 176): true | | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | b1 (line 176): false | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true | | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | b1 (line 176): false | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | b1 (line 176): true | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | b1 (line 176): true | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | b1 (line 176): true | | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | b1 (line 176): false | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | b1 (line 176): true | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | b1 (line 176): true | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | b1 (line 176): true | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | b1 (line 176): false | | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | b2 (line 176): true | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): false | | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b1 (line 176): false | | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b1 (line 176): false | | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b1 (line 176): false | | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b1 (line 176): false | | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true | | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | b1 (line 176): false | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true | | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | b1 (line 176): false | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | b1 (line 176): true | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | b1 (line 176): true | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | b1 (line 176): true | | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | b1 (line 176): false | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | b1 (line 176): true | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | b1 (line 176): true | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | b1 (line 176): true | | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | b (line 55): false | | LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | b (line 55): true | | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | b (line 55): false | @@ -614,41 +594,33 @@ finallyNode | BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:58:9:70:9 | try {...} ... | | BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:58:9:70:9 | try {...} ... | | BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:58:9:70:9 | try {...} ... | -| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | -| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | -| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | -| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | -| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:9:9:16:9 | try {...} ... | -| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:9:9:16:9 | try {...} ... | -| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:9:9:16:9 | try {...} ... | -| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:9:9:16:9 | try {...} ... | -| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:32:13:39:13 | try {...} ... | -| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:32:13:39:13 | try {...} ... | -| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:32:13:39:13 | try {...} ... | -| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:32:13:39:13 | try {...} ... | -| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:21:9:51:9 | try {...} ... | +| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | +| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | +| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | +| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | +| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:32:13:39:13 | try {...} ... | +| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:32:13:39:13 | try {...} ... | +| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:32:13:39:13 | try {...} ... | +| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:32:13:39:13 | try {...} ... | +| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:21:9:51:9 | try {...} ... | | Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... | +| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... | | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:21:9:51:9 | try {...} ... | +| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:21:9:51:9 | try {...} ... | | Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:21:9:51:9 | try {...} ... | +| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:21:9:51:9 | try {...} ... | | Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:21:9:51:9 | try {...} ... | -| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:56:9:71:9 | try {...} ... | | Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... | | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:56:9:71:9 | try {...} ... | | Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:56:9:71:9 | try {...} ... | -| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:56:9:71:9 | try {...} ... | | Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:56:9:71:9 | try {...} ... | | Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:79:13:99:13 | try {...} ... | | Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:79:13:99:13 | try {...} ... | @@ -677,351 +649,190 @@ finallyNode | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... | | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... | | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... | | Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:105:9:118:9 | try {...} ... | | Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:105:9:118:9 | try {...} ... | -| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:135:9:143:9 | try {...} ... | -| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:135:9:143:9 | try {...} ... | -| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:135:9:143:9 | try {...} ... | -| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:135:9:143:9 | try {...} ... | -| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:149:9:169:9 | try {...} ... | -| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... | -| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | -| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:197:9:212:9 | try {...} ... | -| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | -| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... | -| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:265:9:273:9 | try {...} ... | -| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:135:9:143:9 | try {...} ... | +| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:135:9:143:9 | try {...} ... | +| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:135:9:143:9 | try {...} ... | +| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:135:9:143:9 | try {...} ... | +| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:235:9:259:9 | try {...} ... | +| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... | +| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:235:9:259:9 | try {...} ... | +| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... | +| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:265:9:273:9 | try {...} ... | | cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:268:9:276:9 | try {...} ... | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql index fb937bfbd9f7..3f4ed835fc24 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql @@ -12,7 +12,7 @@ class MyFinallySplitControlFlowNode extends ElementNode { exists(Splitting::FinallySplitting::FinallySplitType type | type = this.getASplit().(FinallySplit).getType() | - not type instanceof SuccessorTypes::NormalSuccessor + not type instanceof DirectSuccessor ) } diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index b8a976a78a6a..2c4b9de438ea 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -45,9 +45,9 @@ | patterns.cs:110:25:110:25 | 0 | patterns.cs:110:22:110:26 | (..., ...) | semmle.label | successor | | patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:14:111:14 | 1 | semmle.label | match | -| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) | +| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | | patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:111:23:111:23 | 0 | semmle.label | match | -| patterns.cs:111:13:111:17 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) | +| patterns.cs:111:13:111:17 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | | patterns.cs:111:13:111:26 | ... => ... | patterns.cs:108:24:112:9 | ... switch { ... } | semmle.label | successor | | patterns.cs:111:14:111:14 | 1 | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:111:14:111:14 | 1 | patterns.cs:111:16:111:16 | 0 | semmle.label | match | @@ -89,9 +89,9 @@ | patterns.cs:118:32:118:33 | access to local variable x2 | patterns.cs:118:28:118:34 | (..., ...) | semmle.label | successor | | patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:14:119:19 | Int32 x2 | semmle.label | match | -| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) | +| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | | patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:119:34:119:34 | 0 | semmle.label | match | -| patterns.cs:119:13:119:28 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) | +| patterns.cs:119:13:119:28 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | | patterns.cs:119:13:119:38 | ... => ... | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor | | patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:22:119:27 | Int32 y2 | semmle.label | match | @@ -148,7 +148,7 @@ | patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [match] { ... } | semmle.label | match | | patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:130:23:130:23 | 2 | patterns.cs:130:13:130:23 | ... => ... | semmle.label | successor | -| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(InvalidOperationException) | +| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | | patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:27:131:27 | 3 | semmle.label | match | | patterns.cs:131:13:131:27 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | | patterns.cs:131:18:131:18 | Int32 x | patterns.cs:131:21:131:21 | _ | semmle.label | successor | @@ -162,9 +162,9 @@ | patterns.cs:136:17:143:13 | ... switch { ... } | patterns.cs:136:13:143:13 | ... = ... | semmle.label | successor | | patterns.cs:138:17:138:17 | 1 | patterns.cs:138:28:138:50 | object creation of type ArgumentException | semmle.label | match | | patterns.cs:138:17:138:17 | 1 | patterns.cs:139:17:139:17 | 2 | semmle.label | no-match | -| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | semmle.label | exception(ArgumentException) | +| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | semmle.label | exception | | patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:138:22:138:50 | throw ... | semmle.label | successor | -| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | semmle.label | exception(Exception) | +| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | semmle.label | exception | | patterns.cs:139:17:139:17 | 2 | patterns.cs:139:22:139:22 | 3 | semmle.label | match | | patterns.cs:139:17:139:17 | 2 | patterns.cs:140:17:140:24 | Object y | semmle.label | no-match | | patterns.cs:139:17:139:22 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | @@ -187,16 +187,16 @@ | patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:31:142:32 | 10 | semmle.label | match | | patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:142:41:142:41 | 6 | semmle.label | match | -| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception(InvalidOperationException) | -| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception(InvalidOperationException) | +| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception | +| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception | | patterns.cs:142:17:142:41 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | | patterns.cs:142:26:142:34 | [match] { ... } | patterns.cs:142:17:142:36 | [match] { ... } | semmle.label | match | | patterns.cs:142:26:142:34 | [no-match] { ... } | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [match] { ... } | semmle.label | match | | patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [no-match] { ... } | semmle.label | no-match | | patterns.cs:142:41:142:41 | 6 | patterns.cs:142:17:142:41 | ... => ... | semmle.label | successor | -| patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(ArgumentException) | -| patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(Exception) | +| patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | +| patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | | patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:145:41:145:42 | [exception: Exception] InvalidOperationException ex | semmle.label | match | | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | patterns.cs:145:41:145:42 | [exception: InvalidOperationException] InvalidOperationException ex | semmle.label | match | | patterns.cs:145:41:145:42 | [exception: Exception] InvalidOperationException ex | patterns.cs:146:9:148:9 | {...} | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected index 8d0e2b8261db..7fa4581f5aae 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected @@ -35,7 +35,7 @@ | Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) | | Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) | | Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | -| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | +| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | | Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | | Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | | Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected index 272db29e6f4f..02e4624488ea 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected @@ -35,7 +35,7 @@ | Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | ... = ... | | Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:7:25:7:25 | b | | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | -| Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | +| Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:9:25:30 | call to method Out | | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:25:9:25:30 | call to method Out | | Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | ... = ... | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected index 3dfc82d27ad0..4a2158c6736a 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected @@ -15,7 +15,7 @@ | Capture.cs:212:30:212:35 | exited | Capture.cs:212:30:212:71 | SSA def(exited) | Capture.cs:212:30:212:71 | EventHandler exited = ... | | Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | ... = ... | | Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | -| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | +| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... | | Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:29:25:29 | Consistency c | | Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | ... = ... | | Consistency.cs:44:11:44:11 | s | Consistency.cs:44:11:44:11 | SSA def(s) | Consistency.cs:44:11:44:11 | S s | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected index 9daa4269711c..cc6a0e595465 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected @@ -35,7 +35,7 @@ | Capture.cs:212:30:212:35 | exited | Capture.cs:212:30:212:71 | SSA def(exited) | Capture.cs:213:29:213:34 | access to local variable exited | | Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:11:17:11:17 | access to parameter b | | Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i | -| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i | +| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i | | Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:26:13:26:13 | access to local variable c | | Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:27:13:27:13 | access to local variable c | | Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:26:13:26:19 | access to field Field | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected index d0e6b073f01a..1219abdfe452 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected @@ -35,7 +35,7 @@ | Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | SSA def(j) | | Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:7:25:7:25 | SSA param(b) | | Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | SSA def(i) | -| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | +| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | | Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:29:25:29 | SSA def(c) | | Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | | Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | SSA def(c) | diff --git a/csharp/ql/test/library-tests/goto/Goto1.expected b/csharp/ql/test/library-tests/goto/Goto1.expected index e6c124726a3d..0baaf5ef723a 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.expected +++ b/csharp/ql/test/library-tests/goto/Goto1.expected @@ -7,7 +7,7 @@ | goto.cs:5:5:20:5 | {...} | goto.cs:6:9:8:9 | {...} | semmle.label | successor | | goto.cs:6:9:8:9 | {...} | goto.cs:7:13:7:14 | s1: | semmle.label | successor | | goto.cs:7:13:7:14 | s1: | goto.cs:7:17:7:24 | goto ...; | semmle.label | successor | -| goto.cs:7:17:7:24 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto(s2) | +| goto.cs:7:17:7:24 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto | | goto.cs:9:9:9:10 | s2: | goto.cs:9:13:9:27 | ... ...; | semmle.label | successor | | goto.cs:9:13:9:27 | ... ...; | goto.cs:9:24:9:26 | "5" | semmle.label | successor | | goto.cs:9:20:9:26 | String s = ... | goto.cs:10:9:18:9 | switch (...) {...} | semmle.label | successor | @@ -18,24 +18,24 @@ | goto.cs:12:18:12:21 | null | goto.cs:12:24:12:25 | s3: | semmle.label | match | | goto.cs:12:18:12:21 | null | goto.cs:13:13:13:21 | case ...: | semmle.label | no-match | | goto.cs:12:24:12:25 | s3: | goto.cs:12:38:12:40 | "1" | semmle.label | successor | -| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | case ...: | semmle.label | goto(1) | +| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | case ...: | semmle.label | goto | | goto.cs:12:38:12:40 | "1" | goto.cs:12:28:12:41 | goto case ...; | semmle.label | successor | | goto.cs:13:13:13:21 | case ...: | goto.cs:13:18:13:20 | "1" | semmle.label | successor | | goto.cs:13:18:13:20 | "1" | goto.cs:13:23:13:24 | s4: | semmle.label | match | | goto.cs:13:18:13:20 | "1" | goto.cs:14:13:14:21 | case ...: | semmle.label | no-match | | goto.cs:13:23:13:24 | s4: | goto.cs:13:37:13:39 | "2" | semmle.label | successor | -| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | case ...: | semmle.label | goto(2) | +| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | case ...: | semmle.label | goto | | goto.cs:13:37:13:39 | "2" | goto.cs:13:27:13:40 | goto case ...; | semmle.label | successor | | goto.cs:14:13:14:21 | case ...: | goto.cs:14:18:14:20 | "2" | semmle.label | successor | | goto.cs:14:18:14:20 | "2" | goto.cs:14:23:14:24 | s5: | semmle.label | match | | goto.cs:14:18:14:20 | "2" | goto.cs:15:13:15:21 | case ...: | semmle.label | no-match | | goto.cs:14:23:14:24 | s5: | goto.cs:14:27:14:34 | goto ...; | semmle.label | successor | -| goto.cs:14:27:14:34 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto(s2) | +| goto.cs:14:27:14:34 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto | | goto.cs:15:13:15:21 | case ...: | goto.cs:15:18:15:20 | "3" | semmle.label | successor | | goto.cs:15:18:15:20 | "3" | goto.cs:15:23:15:24 | s6: | semmle.label | match | | goto.cs:15:18:15:20 | "3" | goto.cs:16:13:16:21 | case ...: | semmle.label | no-match | | goto.cs:15:23:15:24 | s6: | goto.cs:15:27:15:39 | goto default; | semmle.label | successor | -| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | default: | semmle.label | goto(default) | +| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | default: | semmle.label | goto | | goto.cs:16:13:16:21 | case ...: | goto.cs:16:18:16:20 | "4" | semmle.label | successor | | goto.cs:16:18:16:20 | "4" | goto.cs:16:23:16:24 | s7: | semmle.label | match | | goto.cs:16:18:16:20 | "4" | goto.cs:17:13:17:20 | default: | semmle.label | no-match | @@ -43,7 +43,7 @@ | goto.cs:16:27:16:32 | break; | goto.cs:19:9:19:10 | s9: | semmle.label | break | | goto.cs:17:13:17:20 | default: | goto.cs:17:22:17:23 | s8: | semmle.label | successor | | goto.cs:17:22:17:23 | s8: | goto.cs:17:36:17:39 | null | semmle.label | successor | -| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | case ...: | semmle.label | goto(null) | +| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | case ...: | semmle.label | goto | | goto.cs:17:36:17:39 | null | goto.cs:17:26:17:40 | goto case ...; | semmle.label | successor | | goto.cs:19:9:19:10 | s9: | goto.cs:19:12:19:12 | ; | semmle.label | successor | | goto.cs:19:12:19:12 | ; | goto.cs:4:17:4:20 | exit Main (normal) | semmle.label | successor | diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index e974f711ec45..14416c5a97a9 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -7,10 +7,9 @@ module; import java import Dominance private import codeql.controlflow.BasicBlock as BB +private import codeql.controlflow.SuccessorType private module Input implements BB::InputSig { - import SuccessorType - /** Hold if `t` represents a conditional successor type. */ predicate successorTypeIsCondition(SuccessorType t) { none() } @@ -34,7 +33,7 @@ private module Input implements BB::InputSig { result = getASpecificSuccessor(node, t) or node.getASuccessor() = result and - t instanceof NormalSuccessor and + t instanceof DirectSuccessor and not result = getASpecificSuccessor(node, _) } @@ -96,7 +95,7 @@ class BasicBlock extends BbImpl::BasicBlock { predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) } /** Gets an immediate successor of this basic block of a given type, if any. */ - BasicBlock getASuccessor(Input::SuccessorType t) { result = super.getASuccessor(t) } + BasicBlock getASuccessor(SuccessorType t) { result = super.getASuccessor(t) } /** * DEPRECATED: Use `getASuccessor` instead. diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index a3cffbae459c..aea017927bd6 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -143,7 +143,6 @@ private module GuardsInput implements SharedGuards::InputSig { private import java as J private import semmle.code.java.dataflow.internal.BaseSSA private import semmle.code.java.dataflow.NullGuards as NullGuards - import SuccessorType class ControlFlowNode = J::ControlFlowNode; diff --git a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll deleted file mode 100644 index feabc47552f3..000000000000 --- a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Provides different types of control flow successor types. - */ -overlay[local?] -module; - -import java -private import codeql.util.Boolean - -private newtype TSuccessorType = - TNormalSuccessor() or - TBooleanSuccessor(Boolean branch) or - TExceptionSuccessor() - -/** The type of a control flow successor. */ -class SuccessorType extends TSuccessorType { - /** Gets a textual representation of successor type. */ - string toString() { result = "SuccessorType" } -} - -/** A normal control flow successor. */ -class NormalSuccessor extends SuccessorType, TNormalSuccessor { } - -/** - * An exceptional control flow successor. - * - * This marks control flow edges that are taken when an exception is thrown. - */ -class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor { } - -/** - * A conditional control flow successor. - * - * This currently only includes boolean successors (`BooleanSuccessor`). - */ -class ConditionalSuccessor extends SuccessorType, TBooleanSuccessor { - /** Gets the Boolean value of this successor. */ - boolean getValue() { this = TBooleanSuccessor(result) } -} - -/** - * A Boolean control flow successor. - * - * For example, this program fragment: - * - * ```java - * if (x < 0) - * return 0; - * else - * return 1; - * ``` - * - * has a control flow graph containing Boolean successors: - * - * ``` - * if - * | - * x < 0 - * / \ - * / \ - * / \ - * true false - * | \ - * return 0 return 1 - * ``` - */ -class BooleanSuccessor = ConditionalSuccessor; - -/** - * A nullness control flow successor. This is currently unused for Java. - */ -class NullnessSuccessor extends ConditionalSuccessor { - NullnessSuccessor() { none() } -} diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index 24766016cbb6..4e0588d5d4a1 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -28,7 +28,7 @@ private module Input implements InputSig { exists(CfgNodes::ExprCfgNode n | arg.argumentOf(call, _) and n = call.asCall() and - arg.asExpr().getASuccessor(any(SuccessorTypes::ConditionalSuccessor c)).getASuccessor*() = n and + arg.asExpr().getASuccessor(any(ConditionalSuccessor c)).getASuccessor*() = n and n.getASplit() instanceof Split::ConditionalCompletionSplit ) } diff --git a/ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll b/ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll index 932533711984..f2fa532d58f1 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/BasicBlocks.qll @@ -8,7 +8,6 @@ private import codeql.ruby.ast.internal.TreeSitter private import codeql.ruby.controlflow.ControlFlowGraph private import internal.ControlFlowGraphImpl as CfgImpl private import CfgNodes -private import SuccessorTypes private import CfgImpl::BasicBlocks as BasicBlocksImpl /** diff --git a/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll b/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll index 1d3632ba1c07..8a7abea30904 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/ControlFlowGraph.qll @@ -2,9 +2,9 @@ overlay[local] module; +import codeql.controlflow.SuccessorType private import codeql.ruby.AST private import codeql.ruby.controlflow.BasicBlocks -private import SuccessorTypes private import internal.ControlFlowGraphImpl as CfgImpl private import internal.Splitting as Splitting private import internal.Completion @@ -59,241 +59,6 @@ class CfgNode extends CfgImpl::Node { BasicBlock getBasicBlock() { result.getANode() = this } } -/** The type of a control flow successor. */ -class SuccessorType extends CfgImpl::TSuccessorType { - /** Gets a textual representation of successor type. */ - string toString() { none() } -} - -/** Provides different types of control flow successor types. */ -module SuccessorTypes { - /** A normal control flow successor. */ - class NormalSuccessor extends SuccessorType, CfgImpl::TSuccessorSuccessor { - final override string toString() { result = "successor" } - } - - /** - * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`) - * or a matching successor (`MatchingSuccessor`) - */ - class ConditionalSuccessor extends SuccessorType { - boolean value; - - ConditionalSuccessor() { - this = CfgImpl::TBooleanSuccessor(value) or - this = CfgImpl::TMatchingSuccessor(value) - } - - /** Gets the Boolean value of this successor. */ - final boolean getValue() { result = value } - - override string toString() { result = this.getValue().toString() } - } - - /** - * A Boolean control flow successor. - * - * For example, in - * - * ```rb - * if x >= 0 - * puts "positive" - * else - * puts "negative" - * end - * ``` - * - * `x >= 0` has both a `true` successor and a `false` successor. - */ - class BooleanSuccessor extends ConditionalSuccessor, CfgImpl::TBooleanSuccessor { } - - /** - * A matching control flow successor. - * - * For example, this program fragment: - * - * ```rb - * case x - * when 1 then puts "one" - * else puts "not one" - * end - * ``` - * - * has a control flow graph containing matching successors: - * - * ``` - * x - * | - * 1 - * / \ - * / \ - * / \ - * / \ - * match non-match - * | | - * puts "one" puts "not one" - * ``` - */ - class MatchingSuccessor extends ConditionalSuccessor, CfgImpl::TMatchingSuccessor { - override string toString() { if value = true then result = "match" else result = "no-match" } - } - - /** - * A `return` control flow successor. - * - * Example: - * - * ```rb - * def sum(x,y) - * return x + y - * end - * ``` - * - * The exit node of `sum` is a `return` successor of the `return x + y` - * statement. - */ - class ReturnSuccessor extends SuccessorType, CfgImpl::TReturnSuccessor { - final override string toString() { result = "return" } - } - - /** - * A `break` control flow successor. - * - * Example: - * - * ```rb - * def m - * while x >= 0 - * x -= 1 - * if num > 100 - * break - * end - * end - * puts "done" - * end - * ``` - * - * The node `puts "done"` is `break` successor of the node `break`. - */ - class BreakSuccessor extends SuccessorType, CfgImpl::TBreakSuccessor { - final override string toString() { result = "break" } - } - - /** - * A `next` control flow successor. - * - * Example: - * - * ```rb - * def m - * while x >= 0 - * x -= 1 - * if num > 100 - * next - * end - * end - * puts "done" - * end - * ``` - * - * The node `x >= 0` is `next` successor of the node `next`. - */ - class NextSuccessor extends SuccessorType, CfgImpl::TNextSuccessor { - final override string toString() { result = "next" } - } - - /** - * A `redo` control flow successor. - * - * Example: - * - * Example: - * - * ```rb - * def m - * while x >= 0 - * x -= 1 - * if num > 100 - * redo - * end - * end - * puts "done" - * end - * ``` - * - * The node `x -= 1` is `redo` successor of the node `redo`. - */ - class RedoSuccessor extends SuccessorType, CfgImpl::TRedoSuccessor { - final override string toString() { result = "redo" } - } - - /** - * A `retry` control flow successor. - * - * Example: - * - * Example: - * - * ```rb - * def m - * begin - * puts "Retry" - * raise - * rescue - * retry - * end - * end - * ``` - * - * The node `puts "Retry"` is `retry` successor of the node `retry`. - */ - class RetrySuccessor extends SuccessorType, CfgImpl::TRetrySuccessor { - final override string toString() { result = "retry" } - } - - /** - * An exceptional control flow successor. - * - * Example: - * - * ```rb - * def m x - * if x > 2 - * raise "x > 2" - * end - * puts "x <= 2" - * end - * ``` - * - * The exit node of `m` is an exceptional successor of the node - * `raise "x > 2"`. - */ - class RaiseSuccessor extends SuccessorType, CfgImpl::TRaiseSuccessor { - final override string toString() { result = "raise" } - } - - /** - * An exit control flow successor. - * - * Example: - * - * ```rb - * def m x - * if x > 2 - * exit 1 - * end - * puts "x <= 2" - * end - * ``` - * - * The exit node of `m` is an exit successor of the node - * `exit 1`. - */ - class ExitSuccessor extends SuccessorType, CfgImpl::TExitSuccessor { - final override string toString() { result = "exit" } - } -} - class Split = Splitting::Split; /** Provides different kinds of control flow graph splittings. */ diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll index b8edf83c20df..bcfe8f98d437 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll @@ -12,7 +12,6 @@ private import codeql.ruby.ast.internal.Control private import codeql.ruby.controlflow.ControlFlowGraph private import ControlFlowGraphImpl as CfgImpl private import NonReturning -private import SuccessorTypes private newtype TCompletion = TSimpleCompletion() or @@ -267,7 +266,7 @@ abstract private class NonNestedNormalCompletion extends NormalCompletion { } /** A simple (normal) completion. */ class SimpleCompletion extends NonNestedNormalCompletion, TSimpleCompletion { - override NormalSuccessor getAMatchingSuccessorType() { any() } + override DirectSuccessor getAMatchingSuccessorType() { any() } override string toString() { result = "simple" } } @@ -377,7 +376,7 @@ class NextCompletion extends Completion { this = TNestedCompletion(_, TNextCompletion(), _) } - override NextSuccessor getAMatchingSuccessorType() { any() } + override ContinueSuccessor getAMatchingSuccessorType() { any() } override string toString() { // `NestedCompletion` defines `toString()` for the other case @@ -431,7 +430,7 @@ class RaiseCompletion extends Completion { this = TNestedCompletion(_, TRaiseCompletion(), _) } - override RaiseSuccessor getAMatchingSuccessorType() { any() } + override ExceptionSuccessor getAMatchingSuccessorType() { any() } override string toString() { // `NestedCompletion` defines `toString()` for the other case diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll index d0d418a839f6..f564633bb00f 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/ControlFlowGraphImpl.qll @@ -46,23 +46,10 @@ private module CfgInput implements CfgShared::InputSig { scope.(Impl::CfgScopeImpl).exit(last, c) } - class SuccessorType = Cfg::SuccessorType; + private class SuccessorType = Cfg::SuccessorType; SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - predicate successorTypeIsSimple(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::NormalSuccessor - } - - predicate successorTypeIsCondition(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::ConditionalSuccessor - } - - predicate isAbnormalExitType(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::RaiseSuccessor or - t instanceof Cfg::SuccessorTypes::ExitSuccessor - } - private predicate id(Ruby::AstNode node1, Ruby::AstNode node2) { node1 = node2 } private predicate idOf(Ruby::AstNode node, int id) = equivalenceRelation(id/2)(node, id) @@ -1528,21 +1515,3 @@ CfgScope getCfgScope(AstNode n) { pragma[only_bind_into](result) = getCfgScopeImpl(n0) ) } - -cached -private module Cached { - cached - newtype TSuccessorType = - TSuccessorSuccessor() or - TBooleanSuccessor(boolean b) { b in [false, true] } or - TMatchingSuccessor(boolean isMatch) { isMatch in [false, true] } or - TReturnSuccessor() or - TBreakSuccessor() or - TNextSuccessor() or - TRedoSuccessor() or - TRetrySuccessor() or - TRaiseSuccessor() or // TODO: Add exception type? - TExitSuccessor() -} - -import Cached diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/Guards.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/Guards.qll index a60102e017c6..387fb03dc9a8 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/Guards.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/Guards.qll @@ -6,7 +6,7 @@ private import codeql.ruby.CFG /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ pragma[nomagic] predicate guardControlsBlock(CfgNodes::AstCfgNode guard, BasicBlock bb, boolean branch) { - exists(ConditionBlock conditionBlock, SuccessorTypes::ConditionalSuccessor s | + exists(ConditionBlock conditionBlock, ConditionalSuccessor s | guard = conditionBlock.getLastNode() and s.getValue() = branch and conditionBlock.edgeDominates(bb, s) diff --git a/ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll b/ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll index 146d5927479d..6a8092922171 100644 --- a/ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll +++ b/ruby/ql/lib/codeql/ruby/controlflow/internal/Splitting.qll @@ -8,7 +8,6 @@ private import codeql.ruby.AST as Ast private import Completion as Comp private import Comp private import ControlFlowGraphImpl -private import SuccessorTypes private import codeql.ruby.controlflow.ControlFlowGraph cached @@ -123,16 +122,19 @@ module EnsureSplitting { * the `ensure` block must end with a `return` as well (provided that * the `ensure` block executes normally). */ - class EnsureSplitType extends SuccessorType { + class EnsureSplitType instanceof SuccessorType { EnsureSplitType() { not this instanceof ConditionalSuccessor } + /** Gets a textual representation of this successor type. */ + string toString() { result = super.toString() } + /** Holds if this split type matches entry into an `ensure` block with completion `c`. */ predicate isSplitForEntryCompletion(Completion c) { if c instanceof NormalCompletion then // If the entry into the `ensure` block completes with any normal completion, // it simply means normal execution after the `ensure` block - this instanceof NormalSuccessor + this instanceof DirectSuccessor else this = c.getAMatchingSuccessorType() } } @@ -195,7 +197,7 @@ module EnsureSplitting { int getNestLevel() { result = nestLevel } override string toString() { - if type instanceof NormalSuccessor + if type instanceof DirectSuccessor then result = "" else if nestLevel > 0 @@ -271,14 +273,14 @@ module EnsureSplitting { or not c instanceof NormalCompletion or - type instanceof NormalSuccessor + type instanceof DirectSuccessor ) else ( // `ensure` block can exit with inherited completion `c`, which must // match this split inherited = true and type = c.getAMatchingSuccessorType() and - not type instanceof NormalSuccessor + not type instanceof DirectSuccessor ) ) or @@ -308,7 +310,7 @@ module EnsureSplitting { exists(EnsureSplitImpl outer | outer.(EnsureSplit).getNestLevel() = super.getNestLevel() - 1 and outer.exit(pred, c, inherited) and - super.getType() instanceof NormalSuccessor and + super.getType() instanceof DirectSuccessor and inherited = true ) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 59fe0238c7ff..d605c57d63bd 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -153,7 +153,7 @@ module LocalFlow { exprTo = nodeTo.asExpr() and n.getReturningNode().getAstNode() instanceof BreakStmt and exprTo.getAstNode() instanceof Loop and - nodeTo.asExpr().getAPredecessor(any(SuccessorTypes::BreakSuccessor s)) = n.getReturningNode() + nodeTo.asExpr().getAPredecessor(any(BreakSuccessor s)) = n.getReturningNode() ) or nodeFrom.asExpr() = nodeTo.(ReturningStatementNode).getReturningNode().getReturnedValueNode() @@ -161,7 +161,7 @@ module LocalFlow { nodeTo.asExpr() = any(CfgNodes::ExprNodes::ForExprCfgNode for | exists(SuccessorType s | - not s instanceof SuccessorTypes::BreakSuccessor and + not s instanceof BreakSuccessor and exists(for.getAPredecessor(s)) ) and nodeFrom.asExpr() = for.getValue() @@ -2394,8 +2394,7 @@ module TypeInference { | m = resolveConstantReadAccess(pattern.getExpr()) and cb.getLastNode() = pattern and - cb.edgeDominates(read.getBasicBlock(), - any(SuccessorTypes::MatchingSuccessor match | match.getValue() = true)) and + cb.edgeDominates(read.getBasicBlock(), any(MatchingSuccessor match | match.getValue() = true)) and caseRead = def.getARead() and read = def.getARead() and case.getValue() = caseRead diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll index fd1619b1c634..d54a0f95ba8c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll @@ -498,7 +498,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu predicate hasValueBranchEdge( SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue branch ) { - exists(Cfg::SuccessorTypes::ConditionalSuccessor s | + exists(Cfg::ConditionalSuccessor s | this.getBasicBlock() = bb1 and bb2 = bb1.getASuccessor(s) and s.getValue() = branch diff --git a/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.expected b/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.expected index cafb6267eb9b..35b18b7132b0 100644 --- a/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.expected +++ b/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.expected @@ -6,10 +6,10 @@ dominates | break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:3:5:5:7 | if ... | | break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:3:8:3:8 | x | | break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:4:7:4:11 | break | -| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | +| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | | break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:8:3:10:5 | if ... | -| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:8:6:8:13 | [ensure: raise] self | -| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:9:5:9:23 | [ensure: raise] self | +| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:8:6:8:13 | [ensure: exception] self | +| break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:9:5:9:23 | [ensure: exception] self | | break_ensure.rb:1:1:11:3 | enter m1 | break_ensure.rb:9:5:9:23 | self | | break_ensure.rb:1:1:11:3 | exit m1 | break_ensure.rb:1:1:11:3 | exit m1 | | break_ensure.rb:1:1:56:4 | enter break_ensure.rb | break_ensure.rb:1:1:56:4 | enter break_ensure.rb | @@ -22,22 +22,22 @@ dominates | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:3:5:5:7 | if ... | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:3:8:3:8 | x | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:4:7:4:11 | break | -| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | +| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:3:10:5 | if ... | -| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:6:8:13 | [ensure: raise] self | -| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:9:5:9:23 | [ensure: raise] self | +| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:6:8:13 | [ensure: exception] self | +| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:9:5:9:23 | [ensure: exception] self | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:9:5:9:23 | self | | break_ensure.rb:3:5:5:7 | if ... | break_ensure.rb:3:5:5:7 | if ... | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:5:5:7 | if ... | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:8:3:8 | x | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:4:7:4:11 | break | | break_ensure.rb:4:7:4:11 | break | break_ensure.rb:4:7:4:11 | break | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:8:3:10:5 | if ... | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:8:6:8:13 | [ensure: raise] self | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:9:5:9:23 | [ensure: raise] self | -| break_ensure.rb:9:5:9:23 | [ensure: raise] self | break_ensure.rb:9:5:9:23 | [ensure: raise] self | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:8:6:8:13 | [ensure: exception] self | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:9:5:9:23 | [ensure: exception] self | +| break_ensure.rb:9:5:9:23 | [ensure: exception] self | break_ensure.rb:9:5:9:23 | [ensure: exception] self | | break_ensure.rb:9:5:9:23 | self | break_ensure.rb:9:5:9:23 | self | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:13:1:25:3 | enter m2 | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:14:3:24:5 | while ... | @@ -46,11 +46,11 @@ dominates | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | -| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | +| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:7:22:9 | if ... | -| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:14:3:24:5 | while ... | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:14:3:24:5 | while ... | @@ -59,11 +59,11 @@ dominates | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | if ... | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:16:7:18:9 | if ... | break_ensure.rb:16:7:18:9 | if ... | | break_ensure.rb:16:7:18:9 | if ... | break_ensure.rb:20:7:22:9 | if ... | @@ -72,42 +72,42 @@ dominates | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | -| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | +| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:7:22:9 | if ... | -| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:21:9:21:20 | [ensure: break] self | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:20:7:22:9 | if ... | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:20:10:20:10 | [ensure: raise] y | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:20:10:20:10 | [ensure: exception] y | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:21:9:21:20 | [ensure: break] self | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:21:9:21:20 | [ensure: raise] self | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:21:9:21:20 | [ensure: exception] self | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:21:9:21:20 | self | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:27:1:42:3 | exit m3 | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:27:1:42:3 | exit m3 (normal) | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:29:5:31:7 | if ... | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:30:7:30:12 | return | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:5:39:7 | while ... | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | [ensure: raise] y | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | [ensure: exception] y | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | [ensure: return] y | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | y | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:9:37:11 | if ... | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:12:35:12 | [ensure: raise] x | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:12:35:12 | [ensure: exception] x | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:12:35:12 | x | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | [ensure: raise] break | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | [ensure: exception] break | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | [ensure: return] break | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | break | | break_ensure.rb:27:1:42:3 | exit m3 | break_ensure.rb:27:1:42:3 | exit m3 | @@ -124,14 +124,14 @@ dominates | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:36:11:36:15 | [ensure: return] break | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:33:5:39:7 | while ... | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:33:11:33:11 | [ensure: raise] y | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:12:35:12 | [ensure: raise] x | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:36:11:36:15 | [ensure: raise] break | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:33:11:33:11 | [ensure: exception] y | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:12:35:12 | [ensure: exception] x | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:36:11:36:15 | [ensure: exception] break | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:33:11:33:11 | [ensure: return] y | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | @@ -142,19 +142,19 @@ dominates | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:9:37:11 | if ... | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:12:35:12 | x | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:36:11:36:15 | break | -| break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | +| break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:35:9:37:11 | if ... | break_ensure.rb:35:9:37:11 | if ... | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:12:35:12 | [ensure: raise] x | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:36:11:36:15 | [ensure: raise] break | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:12:35:12 | [ensure: exception] x | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:36:11:36:15 | [ensure: exception] break | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:36:11:36:15 | [ensure: return] break | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:9:37:11 | if ... | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:12:35:12 | x | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:36:11:36:15 | break | -| break_ensure.rb:36:11:36:15 | [ensure: raise] break | break_ensure.rb:36:11:36:15 | [ensure: raise] break | +| break_ensure.rb:36:11:36:15 | [ensure: exception] break | break_ensure.rb:36:11:36:15 | [ensure: exception] break | | break_ensure.rb:36:11:36:15 | [ensure: return] break | break_ensure.rb:36:11:36:15 | [ensure: return] break | | break_ensure.rb:36:11:36:15 | break | break_ensure.rb:36:11:36:15 | break | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:44:1:56:3 | enter m4 | @@ -163,41 +163,41 @@ dominates | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:45:3:55:5 | while ... | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:45:3:55:5 | while ... | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:45:9:45:9 | x | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:51:7:53:9 | if ... | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:52:15:52:16 | 10 | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | break_ensure.rb:48:9:48:16 | self | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:51:7:53:9 | if ... | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | break_ensure.rb:52:15:52:16 | 10 | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | case.rb:1:1:6:3 | enter if_in_case | case.rb:1:1:6:3 | enter if_in_case | | case.rb:1:1:6:3 | enter if_in_case | case.rb:2:3:5:5 | case ... | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:5:3:42 | [match] when ... | @@ -2047,7 +2047,7 @@ dominates | raise.rb:68:1:77:3 | enter m7 | raise.rb:71:3:72:18 | elsif ... | | raise.rb:68:1:77:3 | enter m7 | raise.rb:71:9:71:9 | x | | raise.rb:68:1:77:3 | enter m7 | raise.rb:72:13:72:17 | x < 0 | -| raise.rb:68:1:77:3 | enter m7 | raise.rb:76:3:76:15 | [ensure: raise] self | +| raise.rb:68:1:77:3 | enter m7 | raise.rb:76:3:76:15 | [ensure: exception] self | | raise.rb:68:1:77:3 | enter m7 | raise.rb:76:3:76:15 | self | | raise.rb:68:1:77:3 | exit m7 | raise.rb:68:1:77:3 | exit m7 | | raise.rb:68:1:77:3 | exit m7 (normal) | raise.rb:68:1:77:3 | exit m7 (normal) | @@ -2060,7 +2060,7 @@ dominates | raise.rb:71:9:71:9 | x | raise.rb:72:13:72:17 | x < 0 | | raise.rb:71:9:71:9 | x | raise.rb:76:3:76:15 | self | | raise.rb:72:13:72:17 | x < 0 | raise.rb:72:13:72:17 | x < 0 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:76:3:76:15 | [ensure: raise] self | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:76:3:76:15 | [ensure: exception] self | | raise.rb:76:3:76:15 | self | raise.rb:76:3:76:15 | self | | raise.rb:79:1:92:3 | enter m8 | raise.rb:79:1:92:3 | enter m8 | | raise.rb:79:1:92:3 | enter m8 | raise.rb:79:1:92:3 | exit m8 | @@ -2069,7 +2069,7 @@ dominates | raise.rb:79:1:92:3 | enter m8 | raise.rb:84:5:85:20 | elsif ... | | raise.rb:79:1:92:3 | enter m8 | raise.rb:84:11:84:11 | x | | raise.rb:79:1:92:3 | enter m8 | raise.rb:85:15:85:19 | x < 0 | -| raise.rb:79:1:92:3 | enter m8 | raise.rb:89:5:89:17 | [ensure: raise] self | +| raise.rb:79:1:92:3 | enter m8 | raise.rb:89:5:89:17 | [ensure: exception] self | | raise.rb:79:1:92:3 | enter m8 | raise.rb:89:5:89:17 | self | | raise.rb:79:1:92:3 | exit m8 | raise.rb:79:1:92:3 | exit m8 | | raise.rb:79:1:92:3 | exit m8 (normal) | raise.rb:79:1:92:3 | exit m8 (normal) | @@ -2082,7 +2082,7 @@ dominates | raise.rb:84:11:84:11 | x | raise.rb:85:15:85:19 | x < 0 | | raise.rb:84:11:84:11 | x | raise.rb:89:5:89:17 | self | | raise.rb:85:15:85:19 | x < 0 | raise.rb:85:15:85:19 | x < 0 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:89:5:89:17 | [ensure: raise] self | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:89:5:89:17 | [ensure: exception] self | | raise.rb:89:5:89:17 | self | raise.rb:89:5:89:17 | self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:94:1:119:3 | enter m9 | | raise.rb:94:1:119:3 | enter m9 | raise.rb:94:1:119:3 | exit m9 | @@ -2093,29 +2093,29 @@ dominates | raise.rb:94:1:119:3 | enter m9 | raise.rb:99:5:100:20 | elsif ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:99:11:99:11 | x | | raise.rb:94:1:119:3 | enter m9 | raise.rb:100:15:100:19 | x < 0 | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:104:5:104:23 | [ensure: raise] self | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:104:5:104:23 | [ensure: exception] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:104:5:104:23 | self | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:106:7:108:9 | [ensure: raise] if ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:106:7:108:9 | [ensure: exception] if ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:106:7:108:9 | if ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:106:10:106:11 | [ensure: raise] b1 | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:106:10:106:11 | [ensure: exception] b1 | | raise.rb:94:1:119:3 | enter m9 | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:94:1:119:3 | enter m9 | raise.rb:106:10:106:11 | b1 | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:107:9:107:26 | [ensure: raise] self | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:107:9:107:26 | [ensure: exception] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:107:9:107:26 | [ensure: return] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:107:9:107:26 | self | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:109:5:110:25 | ensure ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:115:3:115:22 | [ensure: raise] self | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:115:3:115:22 | [ensure: exception] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:115:3:115:22 | self | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:116:3:118:5 | [ensure: raise] if ... | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:116:3:118:5 | [ensure: exception] if ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:116:3:118:5 | [ensure: return] if ... | | raise.rb:94:1:119:3 | enter m9 | raise.rb:116:3:118:5 | if ... | -| raise.rb:94:1:119:3 | enter m9 | raise.rb:117:5:117:22 | [ensure: raise] self | +| raise.rb:94:1:119:3 | enter m9 | raise.rb:117:5:117:22 | [ensure: exception] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:117:5:117:22 | [ensure: return] self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:117:5:117:22 | self | | raise.rb:94:1:119:3 | exit m9 | raise.rb:94:1:119:3 | exit m9 | @@ -2127,21 +2127,21 @@ dominates | raise.rb:97:8:97:8 | x | raise.rb:99:5:100:20 | elsif ... | | raise.rb:97:8:97:8 | x | raise.rb:99:11:99:11 | x | | raise.rb:97:8:97:8 | x | raise.rb:100:15:100:19 | x < 0 | -| raise.rb:97:8:97:8 | x | raise.rb:104:5:104:23 | [ensure: raise] self | +| raise.rb:97:8:97:8 | x | raise.rb:104:5:104:23 | [ensure: exception] self | | raise.rb:97:8:97:8 | x | raise.rb:104:5:104:23 | self | -| raise.rb:97:8:97:8 | x | raise.rb:106:7:108:9 | [ensure: raise] if ... | +| raise.rb:97:8:97:8 | x | raise.rb:106:7:108:9 | [ensure: exception] if ... | | raise.rb:97:8:97:8 | x | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:97:8:97:8 | x | raise.rb:106:7:108:9 | if ... | -| raise.rb:97:8:97:8 | x | raise.rb:106:10:106:11 | [ensure: raise] b1 | +| raise.rb:97:8:97:8 | x | raise.rb:106:10:106:11 | [ensure: exception] b1 | | raise.rb:97:8:97:8 | x | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:97:8:97:8 | x | raise.rb:106:10:106:11 | b1 | -| raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | [ensure: raise] self | +| raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | [ensure: exception] self | | raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | [ensure: return] self | | raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | self | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | ensure ... | | raise.rb:97:8:97:8 | x | raise.rb:115:3:115:22 | self | @@ -2155,7 +2155,7 @@ dominates | raise.rb:99:5:100:20 | elsif ... | raise.rb:106:7:108:9 | if ... | | raise.rb:99:5:100:20 | elsif ... | raise.rb:106:10:106:11 | b1 | | raise.rb:99:5:100:20 | elsif ... | raise.rb:107:9:107:26 | self | -| raise.rb:99:5:100:20 | elsif ... | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | +| raise.rb:99:5:100:20 | elsif ... | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | | raise.rb:99:5:100:20 | elsif ... | raise.rb:109:5:110:25 | ensure ... | | raise.rb:99:5:100:20 | elsif ... | raise.rb:115:3:115:22 | self | | raise.rb:99:5:100:20 | elsif ... | raise.rb:116:3:118:5 | if ... | @@ -2171,8 +2171,8 @@ dominates | raise.rb:99:11:99:11 | x | raise.rb:106:10:106:11 | b1 | | raise.rb:99:11:99:11 | x | raise.rb:107:9:107:26 | [ensure: return] self | | raise.rb:99:11:99:11 | x | raise.rb:107:9:107:26 | self | -| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | ensure ... | | raise.rb:99:11:99:11 | x | raise.rb:115:3:115:22 | self | @@ -2184,27 +2184,27 @@ dominates | raise.rb:100:15:100:19 | x < 0 | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:100:15:100:19 | x < 0 | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:100:15:100:19 | x < 0 | raise.rb:107:9:107:26 | [ensure: return] self | -| raise.rb:100:15:100:19 | x < 0 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:100:15:100:19 | x < 0 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:100:15:100:19 | x < 0 | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:100:15:100:19 | x < 0 | raise.rb:116:3:118:5 | [ensure: return] if ... | | raise.rb:100:15:100:19 | x < 0 | raise.rb:117:5:117:22 | [ensure: return] self | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:104:5:104:23 | [ensure: raise] self | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:106:7:108:9 | [ensure: raise] if ... | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:106:10:106:11 | [ensure: raise] b1 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:107:9:107:26 | [ensure: raise] self | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:104:5:104:23 | [ensure: exception] self | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:106:7:108:9 | [ensure: exception] if ... | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:106:10:106:11 | [ensure: exception] b1 | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:107:9:107:26 | [ensure: exception] self | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | | raise.rb:104:5:104:23 | self | raise.rb:104:5:104:23 | self | | raise.rb:104:5:104:23 | self | raise.rb:106:7:108:9 | if ... | | raise.rb:104:5:104:23 | self | raise.rb:106:10:106:11 | b1 | | raise.rb:104:5:104:23 | self | raise.rb:107:9:107:26 | self | -| raise.rb:104:5:104:23 | self | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | +| raise.rb:104:5:104:23 | self | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | | raise.rb:104:5:104:23 | self | raise.rb:109:5:110:25 | ensure ... | | raise.rb:104:5:104:23 | self | raise.rb:115:3:115:22 | self | | raise.rb:104:5:104:23 | self | raise.rb:116:3:118:5 | if ... | | raise.rb:104:5:104:23 | self | raise.rb:117:5:117:22 | self | -| raise.rb:106:7:108:9 | [ensure: raise] if ... | raise.rb:106:7:108:9 | [ensure: raise] if ... | -| raise.rb:106:7:108:9 | [ensure: raise] if ... | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | +| raise.rb:106:7:108:9 | [ensure: exception] if ... | raise.rb:106:7:108:9 | [ensure: exception] if ... | +| raise.rb:106:7:108:9 | [ensure: exception] if ... | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:116:3:118:5 | [ensure: return] if ... | @@ -2214,36 +2214,36 @@ dominates | raise.rb:106:7:108:9 | if ... | raise.rb:115:3:115:22 | self | | raise.rb:106:7:108:9 | if ... | raise.rb:116:3:118:5 | if ... | | raise.rb:106:7:108:9 | if ... | raise.rb:117:5:117:22 | self | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:7:108:9 | [ensure: raise] if ... | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:10:106:11 | [ensure: raise] b1 | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:107:9:107:26 | [ensure: raise] self | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:7:108:9 | [ensure: exception] if ... | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:10:106:11 | [ensure: exception] b1 | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:107:9:107:26 | [ensure: exception] self | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:107:9:107:26 | [ensure: return] self | -| raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:116:3:118:5 | [ensure: return] if ... | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:117:5:117:22 | [ensure: return] self | | raise.rb:106:10:106:11 | b1 | raise.rb:106:7:108:9 | if ... | | raise.rb:106:10:106:11 | b1 | raise.rb:106:10:106:11 | b1 | | raise.rb:106:10:106:11 | b1 | raise.rb:107:9:107:26 | self | -| raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | +| raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | | raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | ensure ... | | raise.rb:106:10:106:11 | b1 | raise.rb:115:3:115:22 | self | | raise.rb:106:10:106:11 | b1 | raise.rb:116:3:118:5 | if ... | | raise.rb:106:10:106:11 | b1 | raise.rb:117:5:117:22 | self | -| raise.rb:107:9:107:26 | [ensure: raise] self | raise.rb:107:9:107:26 | [ensure: raise] self | -| raise.rb:107:9:107:26 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | +| raise.rb:107:9:107:26 | [ensure: exception] self | raise.rb:107:9:107:26 | [ensure: exception] self | +| raise.rb:107:9:107:26 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | | raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:107:9:107:26 | [ensure: return] self | -| raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:107:9:107:26 | self | raise.rb:107:9:107:26 | self | -| raise.rb:107:9:107:26 | self | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: raise] ensure ... | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:107:9:107:26 | self | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: exception] ensure ... | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:116:3:118:5 | [ensure: return] if ... | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:117:5:117:22 | [ensure: return] self | @@ -2251,16 +2251,16 @@ dominates | raise.rb:109:5:110:25 | ensure ... | raise.rb:115:3:115:22 | self | | raise.rb:109:5:110:25 | ensure ... | raise.rb:116:3:118:5 | if ... | | raise.rb:109:5:110:25 | ensure ... | raise.rb:117:5:117:22 | self | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:115:3:115:22 | [ensure: raise] self | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:116:3:118:5 | [ensure: raise] if ... | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:117:5:117:22 | [ensure: raise] self | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:115:3:115:22 | [ensure: exception] self | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:116:3:118:5 | [ensure: exception] if ... | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:117:5:117:22 | [ensure: exception] self | | raise.rb:115:3:115:22 | self | raise.rb:115:3:115:22 | self | | raise.rb:115:3:115:22 | self | raise.rb:116:3:118:5 | if ... | | raise.rb:115:3:115:22 | self | raise.rb:117:5:117:22 | self | -| raise.rb:116:3:118:5 | [ensure: raise] if ... | raise.rb:116:3:118:5 | [ensure: raise] if ... | +| raise.rb:116:3:118:5 | [ensure: exception] if ... | raise.rb:116:3:118:5 | [ensure: exception] if ... | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:116:3:118:5 | [ensure: return] if ... | | raise.rb:116:3:118:5 | if ... | raise.rb:116:3:118:5 | if ... | -| raise.rb:117:5:117:22 | [ensure: raise] self | raise.rb:117:5:117:22 | [ensure: raise] self | +| raise.rb:117:5:117:22 | [ensure: exception] self | raise.rb:117:5:117:22 | [ensure: exception] self | | raise.rb:117:5:117:22 | [ensure: return] self | raise.rb:117:5:117:22 | [ensure: return] self | | raise.rb:117:5:117:22 | self | raise.rb:117:5:117:22 | self | | raise.rb:121:1:126:3 | enter m10 | raise.rb:121:1:126:3 | enter m10 | @@ -2277,7 +2277,7 @@ dominates | raise.rb:128:1:140:3 | enter m11 | raise.rb:133:3:133:19 | rescue ... | | raise.rb:128:1:140:3 | enter m11 | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:128:1:140:3 | enter m11 | raise.rb:135:5:135:21 | self | -| raise.rb:128:1:140:3 | enter m11 | raise.rb:137:5:137:17 | [ensure: raise] self | +| raise.rb:128:1:140:3 | enter m11 | raise.rb:137:5:137:17 | [ensure: exception] self | | raise.rb:128:1:140:3 | enter m11 | raise.rb:137:5:137:17 | self | | raise.rb:128:1:140:3 | exit m11 | raise.rb:128:1:140:3 | exit m11 | | raise.rb:130:5:132:7 | if ... | raise.rb:130:5:132:7 | if ... | @@ -2285,13 +2285,13 @@ dominates | raise.rb:131:7:131:22 | self | raise.rb:133:3:133:19 | rescue ... | | raise.rb:131:7:131:22 | self | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:131:7:131:22 | self | raise.rb:135:5:135:21 | self | -| raise.rb:131:7:131:22 | self | raise.rb:137:5:137:17 | [ensure: raise] self | +| raise.rb:131:7:131:22 | self | raise.rb:137:5:137:17 | [ensure: exception] self | | raise.rb:133:3:133:19 | rescue ... | raise.rb:133:3:133:19 | rescue ... | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:135:5:135:21 | self | -| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: raise] self | +| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: exception] self | | raise.rb:135:5:135:21 | self | raise.rb:135:5:135:21 | self | -| raise.rb:137:5:137:17 | [ensure: raise] self | raise.rb:137:5:137:17 | [ensure: raise] self | +| raise.rb:137:5:137:17 | [ensure: exception] self | raise.rb:137:5:137:17 | [ensure: exception] self | | raise.rb:137:5:137:17 | self | raise.rb:137:5:137:17 | self | | raise.rb:142:1:148:3 | enter m12 | raise.rb:142:1:148:3 | enter m12 | | raise.rb:142:1:148:3 | enter m12 | raise.rb:142:1:148:3 | exit m12 (normal) | @@ -2362,7 +2362,7 @@ postDominance | break_ensure.rb:3:5:5:7 | if ... | break_ensure.rb:3:5:5:7 | if ... | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:8:3:8 | x | | break_ensure.rb:4:7:4:11 | break | break_ensure.rb:4:7:4:11 | break | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:1:1:11:3 | enter m1 | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:2:3:6:5 | while ... | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:2:9:2:9 | x | @@ -2371,8 +2371,8 @@ postDominance | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:4:7:4:11 | break | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:8:3:10:5 | if ... | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:9:5:9:23 | self | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:8:6:8:13 | [ensure: raise] self | -| break_ensure.rb:9:5:9:23 | [ensure: raise] self | break_ensure.rb:9:5:9:23 | [ensure: raise] self | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:8:6:8:13 | [ensure: exception] self | +| break_ensure.rb:9:5:9:23 | [ensure: exception] self | break_ensure.rb:9:5:9:23 | [ensure: exception] self | | break_ensure.rb:9:5:9:23 | self | break_ensure.rb:9:5:9:23 | self | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:13:1:25:3 | enter m2 | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:13:1:25:3 | enter m2 | @@ -2382,11 +2382,11 @@ postDominance | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | -| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | +| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | if ... | -| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:13:1:25:3 | enter m2 | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:14:9:14:9 | x | @@ -2399,15 +2399,15 @@ postDominance | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:17:9:17:13 | break | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:20:10:20:10 | [ensure: raise] y | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:20:10:20:10 | [ensure: exception] y | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:16:7:18:9 | if ... | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:20:7:22:9 | if ... | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:21:9:21:20 | self | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:21:9:21:20 | [ensure: break] self | break_ensure.rb:21:9:21:20 | [ensure: break] self | -| break_ensure.rb:21:9:21:20 | [ensure: raise] self | break_ensure.rb:21:9:21:20 | [ensure: raise] self | +| break_ensure.rb:21:9:21:20 | [ensure: exception] self | break_ensure.rb:21:9:21:20 | [ensure: exception] self | | break_ensure.rb:21:9:21:20 | self | break_ensure.rb:21:9:21:20 | self | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:27:1:42:3 | exit m3 | break_ensure.rb:27:1:42:3 | exit m3 | @@ -2427,7 +2427,7 @@ postDominance | break_ensure.rb:27:1:42:3 | exit m3 (normal) | break_ensure.rb:36:11:36:15 | break | | break_ensure.rb:29:5:31:7 | if ... | break_ensure.rb:29:5:31:7 | if ... | | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:30:7:30:12 | return | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:30:7:30:12 | return | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:33:11:33:11 | [ensure: return] y | @@ -2440,20 +2440,20 @@ postDominance | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:35:9:37:11 | if ... | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:35:12:35:12 | x | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:36:11:36:15 | break | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:33:11:33:11 | [ensure: raise] y | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:33:11:33:11 | [ensure: exception] y | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:30:7:30:12 | return | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:33:11:33:11 | [ensure: return] y | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:29:5:31:7 | if ... | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:33:11:33:11 | y | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:9:37:11 | if ... | -| break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | +| break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | | break_ensure.rb:35:9:37:11 | if ... | break_ensure.rb:35:9:37:11 | if ... | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:12:35:12 | [ensure: raise] x | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:12:35:12 | [ensure: exception] x | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:12:35:12 | x | -| break_ensure.rb:36:11:36:15 | [ensure: raise] break | break_ensure.rb:36:11:36:15 | [ensure: raise] break | +| break_ensure.rb:36:11:36:15 | [ensure: exception] break | break_ensure.rb:36:11:36:15 | [ensure: exception] break | | break_ensure.rb:36:11:36:15 | [ensure: return] break | break_ensure.rb:36:11:36:15 | [ensure: return] break | | break_ensure.rb:36:11:36:15 | break | break_ensure.rb:36:11:36:15 | break | | break_ensure.rb:44:1:56:3 | enter m4 | break_ensure.rb:44:1:56:3 | enter m4 | @@ -2463,23 +2463,23 @@ postDominance | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:44:1:56:3 | enter m4 | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:45:9:45:9 | x | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | if ... | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:47:7:49:9 | if ... | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:48:9:48:16 | self | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | +| break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | | break_ensure.rb:51:7:53:9 | if ... | break_ensure.rb:51:7:53:9 | if ... | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:48:9:48:16 | self | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:48:9:48:16 | self | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:52:15:52:16 | 10 | break_ensure.rb:52:15:52:16 | 10 | -| break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | +| break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | | case.rb:1:1:6:3 | enter if_in_case | case.rb:1:1:6:3 | enter if_in_case | | case.rb:1:1:99:4 | enter case.rb | case.rb:1:1:99:4 | enter case.rb | | case.rb:2:3:5:5 | case ... | case.rb:1:1:6:3 | enter if_in_case | @@ -3959,7 +3959,7 @@ postDominance | raise.rb:71:9:71:9 | x | raise.rb:68:1:77:3 | enter m7 | | raise.rb:71:9:71:9 | x | raise.rb:71:9:71:9 | x | | raise.rb:72:13:72:17 | x < 0 | raise.rb:72:13:72:17 | x < 0 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:76:3:76:15 | [ensure: raise] self | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:76:3:76:15 | [ensure: exception] self | | raise.rb:76:3:76:15 | self | raise.rb:71:3:72:18 | elsif ... | | raise.rb:76:3:76:15 | self | raise.rb:76:3:76:15 | self | | raise.rb:79:1:92:3 | enter m8 | raise.rb:79:1:92:3 | enter m8 | @@ -3975,7 +3975,7 @@ postDominance | raise.rb:84:11:84:11 | x | raise.rb:79:1:92:3 | enter m8 | | raise.rb:84:11:84:11 | x | raise.rb:84:11:84:11 | x | | raise.rb:85:15:85:19 | x < 0 | raise.rb:85:15:85:19 | x < 0 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:89:5:89:17 | [ensure: raise] self | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:89:5:89:17 | [ensure: exception] self | | raise.rb:89:5:89:17 | self | raise.rb:84:5:85:20 | elsif ... | | raise.rb:89:5:89:17 | self | raise.rb:89:5:89:17 | self | | raise.rb:94:1:119:3 | enter m9 | raise.rb:94:1:119:3 | enter m9 | @@ -4005,10 +4005,10 @@ postDominance | raise.rb:99:11:99:11 | x | raise.rb:97:8:97:8 | x | | raise.rb:99:11:99:11 | x | raise.rb:99:11:99:11 | x | | raise.rb:100:15:100:19 | x < 0 | raise.rb:100:15:100:19 | x < 0 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:104:5:104:23 | [ensure: raise] self | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:104:5:104:23 | [ensure: exception] self | | raise.rb:104:5:104:23 | self | raise.rb:99:5:100:20 | elsif ... | | raise.rb:104:5:104:23 | self | raise.rb:104:5:104:23 | self | -| raise.rb:106:7:108:9 | [ensure: raise] if ... | raise.rb:106:7:108:9 | [ensure: raise] if ... | +| raise.rb:106:7:108:9 | [ensure: exception] if ... | raise.rb:106:7:108:9 | [ensure: exception] if ... | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:100:15:100:19 | x < 0 | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:106:10:106:11 | [ensure: return] b1 | @@ -4016,19 +4016,19 @@ postDominance | raise.rb:106:7:108:9 | if ... | raise.rb:104:5:104:23 | self | | raise.rb:106:7:108:9 | if ... | raise.rb:106:7:108:9 | if ... | | raise.rb:106:7:108:9 | if ... | raise.rb:106:10:106:11 | b1 | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:10:106:11 | [ensure: raise] b1 | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:10:106:11 | [ensure: exception] b1 | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:100:15:100:19 | x < 0 | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:106:10:106:11 | b1 | raise.rb:99:5:100:20 | elsif ... | | raise.rb:106:10:106:11 | b1 | raise.rb:104:5:104:23 | self | | raise.rb:106:10:106:11 | b1 | raise.rb:106:10:106:11 | b1 | -| raise.rb:107:9:107:26 | [ensure: raise] self | raise.rb:107:9:107:26 | [ensure: raise] self | +| raise.rb:107:9:107:26 | [ensure: exception] self | raise.rb:107:9:107:26 | [ensure: exception] self | | raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:107:9:107:26 | [ensure: return] self | | raise.rb:107:9:107:26 | self | raise.rb:107:9:107:26 | self | -| raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: raise] ensure ... | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | -| raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | +| raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: exception] ensure ... | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | +| raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:100:15:100:19 | x < 0 | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:106:10:106:11 | [ensure: return] b1 | @@ -4038,14 +4038,14 @@ postDominance | raise.rb:109:5:110:25 | ensure ... | raise.rb:106:7:108:9 | if ... | | raise.rb:109:5:110:25 | ensure ... | raise.rb:106:10:106:11 | b1 | | raise.rb:109:5:110:25 | ensure ... | raise.rb:109:5:110:25 | ensure ... | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:115:3:115:22 | [ensure: raise] self | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:115:3:115:22 | [ensure: exception] self | | raise.rb:115:3:115:22 | self | raise.rb:99:5:100:20 | elsif ... | | raise.rb:115:3:115:22 | self | raise.rb:104:5:104:23 | self | | raise.rb:115:3:115:22 | self | raise.rb:106:7:108:9 | if ... | | raise.rb:115:3:115:22 | self | raise.rb:106:10:106:11 | b1 | | raise.rb:115:3:115:22 | self | raise.rb:109:5:110:25 | ensure ... | | raise.rb:115:3:115:22 | self | raise.rb:115:3:115:22 | self | -| raise.rb:116:3:118:5 | [ensure: raise] if ... | raise.rb:116:3:118:5 | [ensure: raise] if ... | +| raise.rb:116:3:118:5 | [ensure: exception] if ... | raise.rb:116:3:118:5 | [ensure: exception] if ... | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:100:15:100:19 | x < 0 | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:106:10:106:11 | [ensure: return] b1 | @@ -4058,7 +4058,7 @@ postDominance | raise.rb:116:3:118:5 | if ... | raise.rb:109:5:110:25 | ensure ... | | raise.rb:116:3:118:5 | if ... | raise.rb:115:3:115:22 | self | | raise.rb:116:3:118:5 | if ... | raise.rb:116:3:118:5 | if ... | -| raise.rb:117:5:117:22 | [ensure: raise] self | raise.rb:117:5:117:22 | [ensure: raise] self | +| raise.rb:117:5:117:22 | [ensure: exception] self | raise.rb:117:5:117:22 | [ensure: exception] self | | raise.rb:117:5:117:22 | [ensure: return] self | raise.rb:117:5:117:22 | [ensure: return] self | | raise.rb:117:5:117:22 | self | raise.rb:117:5:117:22 | self | | raise.rb:121:1:126:3 | enter m10 | raise.rb:121:1:126:3 | enter m10 | @@ -4074,7 +4074,7 @@ postDominance | raise.rb:134:10:134:19 | ExceptionB | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:135:5:135:21 | self | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:135:5:135:21 | self | raise.rb:135:5:135:21 | self | -| raise.rb:137:5:137:17 | [ensure: raise] self | raise.rb:137:5:137:17 | [ensure: raise] self | +| raise.rb:137:5:137:17 | [ensure: exception] self | raise.rb:137:5:137:17 | [ensure: exception] self | | raise.rb:137:5:137:17 | self | raise.rb:128:1:140:3 | enter m11 | | raise.rb:137:5:137:17 | self | raise.rb:130:5:132:7 | if ... | | raise.rb:137:5:137:17 | self | raise.rb:131:7:131:22 | self | @@ -4131,10 +4131,10 @@ immediateDominator | break_ensure.rb:3:5:5:7 | if ... | break_ensure.rb:3:8:3:8 | x | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:2:9:2:9 | x | | break_ensure.rb:4:7:4:11 | break | break_ensure.rb:3:8:3:8 | x | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:8:6:8:13 | [ensure: raise] self | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:8:6:8:13 | [ensure: exception] self | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:2:3:6:5 | while ... | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:2:9:2:9 | x | -| break_ensure.rb:9:5:9:23 | [ensure: raise] self | break_ensure.rb:8:6:8:13 | [ensure: raise] self | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:2:9:2:9 | x | +| break_ensure.rb:9:5:9:23 | [ensure: exception] self | break_ensure.rb:8:6:8:13 | [ensure: exception] self | | break_ensure.rb:9:5:9:23 | self | break_ensure.rb:2:3:6:5 | while ... | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:14:9:14:9 | x | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:13:1:25:3 | enter m2 | @@ -4142,29 +4142,29 @@ immediateDominator | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:14:9:14:9 | x | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:17:9:17:13 | break | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:16:7:18:9 | if ... | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:16:10:16:10 | x | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:16:10:16:10 | x | | break_ensure.rb:21:9:21:20 | [ensure: break] self | break_ensure.rb:17:9:17:13 | break | -| break_ensure.rb:21:9:21:20 | [ensure: raise] self | break_ensure.rb:20:10:20:10 | [ensure: raise] y | +| break_ensure.rb:21:9:21:20 | [ensure: exception] self | break_ensure.rb:20:10:20:10 | [ensure: exception] y | | break_ensure.rb:21:9:21:20 | self | break_ensure.rb:16:7:18:9 | if ... | | break_ensure.rb:27:1:42:3 | exit m3 | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:27:1:42:3 | exit m3 (normal) | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:29:5:31:7 | if ... | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:27:1:42:3 | enter m3 | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:33:11:33:11 | [ensure: raise] y | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:33:11:33:11 | [ensure: exception] y | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:33:11:33:11 | [ensure: return] y | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:33:11:33:11 | y | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:27:1:42:3 | enter m3 | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:27:1:42:3 | enter m3 | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:30:7:30:12 | return | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:29:5:31:7 | if ... | -| break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | break_ensure.rb:35:12:35:12 | [ensure: raise] x | +| break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | break_ensure.rb:35:12:35:12 | [ensure: exception] x | | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:35:9:37:11 | if ... | break_ensure.rb:35:12:35:12 | x | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:33:11:33:11 | [ensure: raise] y | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:33:11:33:11 | [ensure: exception] y | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:33:11:33:11 | [ensure: return] y | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:33:11:33:11 | y | -| break_ensure.rb:36:11:36:15 | [ensure: raise] break | break_ensure.rb:35:12:35:12 | [ensure: raise] x | +| break_ensure.rb:36:11:36:15 | [ensure: exception] break | break_ensure.rb:35:12:35:12 | [ensure: exception] x | | break_ensure.rb:36:11:36:15 | [ensure: return] break | break_ensure.rb:35:12:35:12 | [ensure: return] x | | break_ensure.rb:36:11:36:15 | break | break_ensure.rb:35:12:35:12 | x | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:45:9:45:9 | x | @@ -4172,11 +4172,11 @@ immediateDominator | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:45:9:45:9 | x | | break_ensure.rb:48:9:48:16 | self | break_ensure.rb:47:10:47:10 | x | -| break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | break_ensure.rb:51:7:53:9 | if ... | break_ensure.rb:47:7:49:9 | if ... | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:47:10:47:10 | x | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:47:10:47:10 | x | | break_ensure.rb:52:15:52:16 | 10 | break_ensure.rb:47:7:49:9 | if ... | -| break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | break_ensure.rb:51:10:51:10 | [ensure: raise] x | +| break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | break_ensure.rb:51:10:51:10 | [ensure: exception] x | | case.rb:2:3:5:5 | case ... | case.rb:1:1:6:3 | enter if_in_case | | case.rb:3:5:3:42 | [match] when ... | case.rb:1:1:6:3 | enter if_in_case | | case.rb:3:5:3:42 | [no-match] when ... | case.rb:1:1:6:3 | enter if_in_case | @@ -4470,7 +4470,7 @@ immediateDominator | raise.rb:71:3:72:18 | elsif ... | raise.rb:71:9:71:9 | x | | raise.rb:71:9:71:9 | x | raise.rb:68:1:77:3 | enter m7 | | raise.rb:72:13:72:17 | x < 0 | raise.rb:71:9:71:9 | x | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:68:1:77:3 | enter m7 | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:68:1:77:3 | enter m7 | | raise.rb:76:3:76:15 | self | raise.rb:71:3:72:18 | elsif ... | | raise.rb:79:1:92:3 | exit m8 | raise.rb:79:1:92:3 | enter m8 | | raise.rb:79:1:92:3 | exit m8 (normal) | raise.rb:84:11:84:11 | x | @@ -4478,7 +4478,7 @@ immediateDominator | raise.rb:84:5:85:20 | elsif ... | raise.rb:84:11:84:11 | x | | raise.rb:84:11:84:11 | x | raise.rb:79:1:92:3 | enter m8 | | raise.rb:85:15:85:19 | x < 0 | raise.rb:84:11:84:11 | x | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:79:1:92:3 | enter m8 | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:79:1:92:3 | enter m8 | | raise.rb:89:5:89:17 | self | raise.rb:84:5:85:20 | elsif ... | | raise.rb:94:1:119:3 | exit m9 | raise.rb:94:1:119:3 | enter m9 | | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:94:1:119:3 | enter m9 | @@ -4488,29 +4488,29 @@ immediateDominator | raise.rb:99:5:100:20 | elsif ... | raise.rb:99:11:99:11 | x | | raise.rb:99:11:99:11 | x | raise.rb:97:8:97:8 | x | | raise.rb:100:15:100:19 | x < 0 | raise.rb:99:11:99:11 | x | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:97:8:97:8 | x | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:97:8:97:8 | x | | raise.rb:104:5:104:23 | self | raise.rb:99:5:100:20 | elsif ... | -| raise.rb:106:7:108:9 | [ensure: raise] if ... | raise.rb:106:10:106:11 | [ensure: raise] b1 | +| raise.rb:106:7:108:9 | [ensure: exception] if ... | raise.rb:106:10:106:11 | [ensure: exception] b1 | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:106:7:108:9 | if ... | raise.rb:106:10:106:11 | b1 | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:104:5:104:23 | [ensure: raise] self | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:104:5:104:23 | [ensure: exception] self | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:100:15:100:19 | x < 0 | | raise.rb:106:10:106:11 | b1 | raise.rb:104:5:104:23 | self | -| raise.rb:107:9:107:26 | [ensure: raise] self | raise.rb:106:10:106:11 | [ensure: raise] b1 | +| raise.rb:107:9:107:26 | [ensure: exception] self | raise.rb:106:10:106:11 | [ensure: exception] b1 | | raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:106:10:106:11 | [ensure: return] b1 | | raise.rb:107:9:107:26 | self | raise.rb:106:10:106:11 | b1 | -| raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | raise.rb:107:9:107:26 | self | -| raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | raise.rb:107:9:107:26 | [ensure: raise] self | -| raise.rb:109:5:110:25 | [ensure: raise] ensure ... | raise.rb:106:7:108:9 | [ensure: raise] if ... | -| raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | raise.rb:107:9:107:26 | [ensure: return] self | +| raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | raise.rb:107:9:107:26 | self | +| raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | raise.rb:107:9:107:26 | [ensure: exception] self | +| raise.rb:109:5:110:25 | [ensure: exception] ensure ... | raise.rb:106:7:108:9 | [ensure: exception] if ... | +| raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | raise.rb:107:9:107:26 | [ensure: return] self | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:106:7:108:9 | [ensure: return] if ... | | raise.rb:109:5:110:25 | ensure ... | raise.rb:106:7:108:9 | if ... | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:94:1:119:3 | enter m9 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:94:1:119:3 | enter m9 | | raise.rb:115:3:115:22 | self | raise.rb:109:5:110:25 | ensure ... | -| raise.rb:116:3:118:5 | [ensure: raise] if ... | raise.rb:115:3:115:22 | [ensure: raise] self | +| raise.rb:116:3:118:5 | [ensure: exception] if ... | raise.rb:115:3:115:22 | [ensure: exception] self | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:116:3:118:5 | if ... | raise.rb:115:3:115:22 | self | -| raise.rb:117:5:117:22 | [ensure: raise] self | raise.rb:115:3:115:22 | [ensure: raise] self | +| raise.rb:117:5:117:22 | [ensure: exception] self | raise.rb:115:3:115:22 | [ensure: exception] self | | raise.rb:117:5:117:22 | [ensure: return] self | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | raise.rb:117:5:117:22 | self | raise.rb:115:3:115:22 | self | | raise.rb:121:1:126:3 | exit m10 | raise.rb:121:1:126:3 | enter m10 | @@ -4522,7 +4522,7 @@ immediateDominator | raise.rb:133:3:133:19 | rescue ... | raise.rb:131:7:131:22 | self | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:131:7:131:22 | self | | raise.rb:135:5:135:21 | self | raise.rb:134:10:134:19 | ExceptionB | -| raise.rb:137:5:137:17 | [ensure: raise] self | raise.rb:134:10:134:19 | ExceptionB | +| raise.rb:137:5:137:17 | [ensure: exception] self | raise.rb:134:10:134:19 | ExceptionB | | raise.rb:137:5:137:17 | self | raise.rb:128:1:140:3 | enter m11 | | raise.rb:142:1:148:3 | exit m12 (normal) | raise.rb:142:1:148:3 | enter m12 | | raise.rb:143:3:145:5 | if ... | raise.rb:142:1:148:3 | enter m12 | @@ -4550,16 +4550,16 @@ controls | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:4:7:4:11 | break | true | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:5:5:7 | if ... | false | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:4:7:4:11 | break | true | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:9:5:9:23 | [ensure: raise] self | true | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:9:5:9:23 | [ensure: exception] self | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:16:7:18:9 | if ... | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:16:10:16:10 | x | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:17:9:17:13 | break | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | true | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | true | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | if ... | true | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:10:20:10 | [ensure: raise] y | true | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:10:20:10 | [ensure: exception] y | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: break] self | true | -| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: raise] self | true | +| break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | [ensure: exception] self | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:21:9:21:20 | self | true | | break_ensure.rb:16:7:18:9 | if ... | break_ensure.rb:21:9:21:20 | self | true | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:16:7:18:9 | if ... | false | @@ -4569,7 +4569,7 @@ controls | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | [ensure: break] self | true | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:21:9:21:20 | self | false | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:21:9:21:20 | [ensure: break] self | true | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:21:9:21:20 | [ensure: raise] self | true | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:21:9:21:20 | [ensure: exception] self | true | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:29:5:31:7 | if ... | false | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:30:7:30:12 | return | true | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | true | @@ -4582,17 +4582,17 @@ controls | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:35:12:35:12 | x | false | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | [ensure: return] break | true | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:36:11:36:15 | break | false | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | true | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:12:35:12 | [ensure: raise] x | true | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:36:11:36:15 | [ensure: raise] break | true | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | true | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:12:35:12 | [ensure: exception] x | true | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:36:11:36:15 | [ensure: exception] break | true | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | true | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:12:35:12 | [ensure: return] x | true | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:36:11:36:15 | [ensure: return] break | true | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:9:37:11 | if ... | true | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:12:35:12 | x | true | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:36:11:36:15 | break | true | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | false | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:36:11:36:15 | [ensure: raise] break | true | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | false | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:36:11:36:15 | [ensure: exception] break | true | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | false | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:36:11:36:15 | [ensure: return] break | true | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:9:37:11 | if ... | false | @@ -4600,19 +4600,19 @@ controls | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:47:7:49:9 | if ... | true | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:47:10:47:10 | x | true | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:48:9:48:16 | self | true | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | true | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | true | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | if ... | true | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | true | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | true | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | 10 | true | -| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | true | +| break_ensure.rb:45:9:45:9 | x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | true | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:51:7:53:9 | if ... | false | | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:52:15:52:16 | 10 | true | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:7:49:9 | if ... | false | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:48:9:48:16 | self | true | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:7:53:9 | if ... | false | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:52:15:52:16 | 10 | false | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | false | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | true | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | false | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | true | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:5:3:42 | [match] when ... | match | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:5:3:42 | [no-match] when ... | no-match | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:18:3:41 | if ... | match | @@ -5726,8 +5726,8 @@ controls | raise.rb:97:8:97:8 | x | raise.rb:106:10:106:11 | b1 | false | | raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | [ensure: return] self | false | | raise.rb:97:8:97:8 | x | raise.rb:107:9:107:26 | self | false | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | false | -| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | false | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | false | +| raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | false | | raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | [ensure: return] ensure ... | false | | raise.rb:97:8:97:8 | x | raise.rb:109:5:110:25 | ensure ... | false | | raise.rb:97:8:97:8 | x | raise.rb:115:3:115:22 | self | false | @@ -5744,8 +5744,8 @@ controls | raise.rb:99:11:99:11 | x | raise.rb:106:10:106:11 | b1 | false | | raise.rb:99:11:99:11 | x | raise.rb:107:9:107:26 | [ensure: return] self | true | | raise.rb:99:11:99:11 | x | raise.rb:107:9:107:26 | self | false | -| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | false | -| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | true | +| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | false | +| raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | true | | raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | [ensure: return] ensure ... | true | | raise.rb:99:11:99:11 | x | raise.rb:109:5:110:25 | ensure ... | false | | raise.rb:99:11:99:11 | x | raise.rb:115:3:115:22 | self | false | @@ -5753,27 +5753,27 @@ controls | raise.rb:99:11:99:11 | x | raise.rb:116:3:118:5 | if ... | false | | raise.rb:99:11:99:11 | x | raise.rb:117:5:117:22 | [ensure: return] self | true | | raise.rb:99:11:99:11 | x | raise.rb:117:5:117:22 | self | false | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:7:108:9 | [ensure: raise] if ... | false | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:107:9:107:26 | [ensure: raise] self | true | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | true | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | false | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:7:108:9 | [ensure: exception] if ... | false | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:107:9:107:26 | [ensure: exception] self | true | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | true | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:7:108:9 | [ensure: return] if ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:107:9:107:26 | [ensure: return] self | true | -| raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | true | +| raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | true | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:109:5:110:25 | [ensure: return] ensure ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:116:3:118:5 | [ensure: return] if ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:117:5:117:22 | [ensure: return] self | false | | raise.rb:106:10:106:11 | b1 | raise.rb:106:7:108:9 | if ... | false | | raise.rb:106:10:106:11 | b1 | raise.rb:107:9:107:26 | self | true | -| raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | true | +| raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | true | | raise.rb:106:10:106:11 | b1 | raise.rb:109:5:110:25 | ensure ... | false | | raise.rb:106:10:106:11 | b1 | raise.rb:115:3:115:22 | self | false | | raise.rb:106:10:106:11 | b1 | raise.rb:116:3:118:5 | if ... | false | | raise.rb:106:10:106:11 | b1 | raise.rb:117:5:117:22 | self | false | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:116:3:118:5 | [ensure: return] if ... | false | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:117:5:117:22 | [ensure: return] self | true | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:116:3:118:5 | [ensure: raise] if ... | false | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:117:5:117:22 | [ensure: raise] self | true | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:116:3:118:5 | [ensure: exception] if ... | false | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:117:5:117:22 | [ensure: exception] self | true | | raise.rb:115:3:115:22 | self | raise.rb:116:3:118:5 | if ... | false | | raise.rb:115:3:115:22 | self | raise.rb:117:5:117:22 | self | true | | raise.rb:121:1:126:3 | enter m10 | raise.rb:121:14:121:30 | self | false | @@ -5785,11 +5785,11 @@ controls | raise.rb:128:1:140:3 | enter m11 | raise.rb:133:3:133:19 | rescue ... | true | | raise.rb:128:1:140:3 | enter m11 | raise.rb:134:10:134:19 | ExceptionB | true | | raise.rb:128:1:140:3 | enter m11 | raise.rb:135:5:135:21 | self | true | -| raise.rb:128:1:140:3 | enter m11 | raise.rb:137:5:137:17 | [ensure: raise] self | true | +| raise.rb:128:1:140:3 | enter m11 | raise.rb:137:5:137:17 | [ensure: exception] self | true | | raise.rb:131:7:131:22 | self | raise.rb:133:3:133:19 | rescue ... | match | | raise.rb:131:7:131:22 | self | raise.rb:134:10:134:19 | ExceptionB | no-match | | raise.rb:131:7:131:22 | self | raise.rb:135:5:135:21 | self | no-match | -| raise.rb:131:7:131:22 | self | raise.rb:137:5:137:17 | [ensure: raise] self | no-match | +| raise.rb:131:7:131:22 | self | raise.rb:137:5:137:17 | [ensure: exception] self | no-match | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:135:5:135:21 | self | match | | raise.rb:142:1:148:3 | enter m12 | raise.rb:143:3:145:5 | if ... | false | | raise.rb:142:1:148:3 | enter m12 | raise.rb:144:5:144:12 | self | true | @@ -5810,34 +5810,34 @@ successor | break_ensure.rb:2:3:6:5 | while ... | break_ensure.rb:9:5:9:23 | self | true | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:2:3:6:5 | while ... | false | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:3:8:3:8 | x | true | -| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:6:8:13 | [ensure: raise] self | raise | -| break_ensure.rb:3:8:3:8 | x | break_ensure.rb:2:3:6:5 | while ... | raise | +| break_ensure.rb:2:9:2:9 | x | break_ensure.rb:8:6:8:13 | [ensure: exception] self | exception | +| break_ensure.rb:3:8:3:8 | x | break_ensure.rb:2:3:6:5 | while ... | exception | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:5:5:7 | if ... | false | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:4:7:4:11 | break | true | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | false | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:9:5:9:23 | [ensure: raise] self | true | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | false | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:9:5:9:23 | [ensure: exception] self | true | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:14:3:24:5 | while ... | false | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:16:10:16:10 | x | true | | break_ensure.rb:16:7:18:9 | if ... | break_ensure.rb:20:7:22:9 | if ... | false | | break_ensure.rb:16:7:18:9 | if ... | break_ensure.rb:21:9:21:20 | self | true | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:16:7:18:9 | if ... | false | | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:17:9:17:13 | break | true | -| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:10:20:10 | [ensure: raise] y | raise | +| break_ensure.rb:16:10:16:10 | x | break_ensure.rb:20:10:20:10 | [ensure: exception] y | exception | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | false | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:21:9:21:20 | [ensure: break] self | true | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | false | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:21:9:21:20 | [ensure: raise] self | true | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | false | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:21:9:21:20 | [ensure: exception] self | true | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:29:5:31:7 | if ... | false | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:30:7:30:12 | return | true | -| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | [ensure: raise] y | raise | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | false | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:12:35:12 | [ensure: raise] x | true | +| break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:33:11:33:11 | [ensure: exception] y | exception | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | false | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:12:35:12 | [ensure: exception] x | true | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | false | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:12:35:12 | [ensure: return] x | true | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:33:5:39:7 | while ... | false | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:12:35:12 | x | true | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | false | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:36:11:36:15 | [ensure: raise] break | true | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | false | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:36:11:36:15 | [ensure: exception] break | true | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | false | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:36:11:36:15 | [ensure: return] break | true | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:9:37:11 | if ... | false | @@ -5848,9 +5848,9 @@ successor | break_ensure.rb:47:7:49:9 | if ... | break_ensure.rb:52:15:52:16 | 10 | true | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:7:49:9 | if ... | false | | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:48:9:48:16 | self | true | -| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:10:51:10 | [ensure: raise] x | raise | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | false | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | true | +| break_ensure.rb:47:10:47:10 | x | break_ensure.rb:51:10:51:10 | [ensure: exception] x | exception | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | false | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | true | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:5:3:42 | [match] when ... | match | | case.rb:1:1:6:3 | enter if_in_case | case.rb:3:5:3:42 | [no-match] when ... | no-match | | case.rb:3:5:3:42 | [match] when ... | case.rb:3:21:3:22 | self | match | @@ -5873,9 +5873,9 @@ successor | case.rb:15:5:15:28 | in ... then ... | case.rb:15:17:15:17 | x | match | | case.rb:15:17:15:17 | x | case.rb:15:28:15:28 | 7 | false | | case.rb:15:17:15:17 | x | case.rb:16:10:16:10 | 8 | true | -| case.rb:20:1:24:3 | enter case_match_no_match | case.rb:20:1:24:3 | exit case_match_no_match (abnormal) | raise | +| case.rb:20:1:24:3 | enter case_match_no_match | case.rb:20:1:24:3 | exit case_match_no_match (abnormal) | exception | | case.rb:20:1:24:3 | enter case_match_no_match | case.rb:21:3:23:5 | case ... | match | -| case.rb:26:1:30:3 | enter case_match_raise | case.rb:26:1:30:3 | exit case_match_raise (abnormal) | raise | +| case.rb:26:1:30:3 | enter case_match_raise | case.rb:26:1:30:3 | exit case_match_raise (abnormal) | exception | | case.rb:26:1:30:3 | enter case_match_raise | case.rb:27:3:29:5 | case ... | match | | case.rb:32:1:39:3 | enter case_match_array | case.rb:33:3:38:5 | case ... | match | | case.rb:32:1:39:3 | enter case_match_array | case.rb:35:5:35:11 | in ... then ... | no-match | @@ -5889,9 +5889,9 @@ successor | case.rb:36:5:36:13 | in ... then ... | case.rb:36:9:36:9 | x | true | | case.rb:36:5:36:13 | in ... then ... | case.rb:37:5:37:27 | in ... then ... | no-match | | case.rb:36:9:36:9 | x | case.rb:33:3:38:5 | case ... | match | -| case.rb:37:5:37:27 | in ... then ... | case.rb:32:1:39:3 | exit case_match_array (abnormal) | raise | +| case.rb:37:5:37:27 | in ... then ... | case.rb:32:1:39:3 | exit case_match_array (abnormal) | exception | | case.rb:37:5:37:27 | in ... then ... | case.rb:37:8:37:26 | [ ..., * ] | match | -| case.rb:37:8:37:26 | [ ..., * ] | case.rb:32:1:39:3 | exit case_match_array (abnormal) | raise | +| case.rb:37:8:37:26 | [ ..., * ] | case.rb:32:1:39:3 | exit case_match_array (abnormal) | exception | | case.rb:37:8:37:26 | [ ..., * ] | case.rb:37:12:37:12 | a | false | | case.rb:37:8:37:26 | [ ..., * ] | case.rb:37:12:37:12 | a | match | | case.rb:37:8:37:26 | [ ..., * ] | case.rb:37:12:37:12 | a | true | @@ -5899,13 +5899,13 @@ successor | case.rb:37:15:37:15 | b | case.rb:37:19:37:19 | c | match | | case.rb:37:19:37:19 | c | case.rb:37:25:37:25 | e | match | | case.rb:37:25:37:25 | e | case.rb:33:3:38:5 | case ... | match | -| case.rb:41:1:45:3 | enter case_match_find | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:41:1:45:3 | enter case_match_find | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:41:1:45:3 | enter case_match_find | case.rb:43:10:43:10 | x | false | | case.rb:41:1:45:3 | enter case_match_find | case.rb:43:10:43:10 | x | match | | case.rb:41:1:45:3 | enter case_match_find | case.rb:43:10:43:10 | x | true | -| case.rb:43:10:43:10 | x | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:43:10:43:10 | x | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:43:10:43:10 | x | case.rb:43:16:43:16 | 2 | match | -| case.rb:43:16:43:16 | 2 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:43:16:43:16 | 2 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:43:16:43:16 | 2 | case.rb:43:20:43:20 | y | match | | case.rb:47:1:53:3 | enter case_match_hash | case.rb:49:8:49:34 | { ..., ** } | match | | case.rb:47:1:53:3 | enter case_match_hash | case.rb:50:5:50:25 | in ... then ... | no-match | @@ -5924,9 +5924,9 @@ successor | case.rb:50:8:50:24 | { ..., ** } | case.rb:51:5:51:17 | in ... then ... | no-match | | case.rb:50:16:50:16 | 1 | case.rb:48:3:52:5 | case ... | match | | case.rb:50:16:50:16 | 1 | case.rb:51:5:51:17 | in ... then ... | no-match | -| case.rb:51:5:51:17 | in ... then ... | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | raise | +| case.rb:51:5:51:17 | in ... then ... | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | exception | | case.rb:51:5:51:17 | in ... then ... | case.rb:51:8:51:16 | { ..., ** } | match | -| case.rb:51:8:51:16 | { ..., ** } | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | raise | +| case.rb:51:8:51:16 | { ..., ** } | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | exception | | case.rb:51:8:51:16 | { ..., ** } | case.rb:48:3:52:5 | case ... | false | | case.rb:51:8:51:16 | { ..., ** } | case.rb:48:3:52:5 | case ... | match | | case.rb:51:8:51:16 | { ..., ** } | case.rb:48:3:52:5 | case ... | true | @@ -5997,12 +5997,12 @@ successor | case.rb:91:13:91:14 | "" | case.rb:91:18:91:19 | [ ..., * ] | no-match | | case.rb:91:18:91:19 | [ ..., * ] | case.rb:72:3:92:5 | case ... | match | | case.rb:91:18:91:19 | [ ..., * ] | case.rb:91:23:91:24 | { ..., ** } | no-match | -| case.rb:91:23:91:24 | { ..., ** } | case.rb:69:1:93:3 | exit case_match_various (abnormal) | raise | +| case.rb:91:23:91:24 | { ..., ** } | case.rb:69:1:93:3 | exit case_match_various (abnormal) | exception | | case.rb:91:23:91:24 | { ..., ** } | case.rb:72:3:92:5 | case ... | false | | case.rb:91:23:91:24 | { ..., ** } | case.rb:72:3:92:5 | case ... | match | | case.rb:91:23:91:24 | { ..., ** } | case.rb:72:3:92:5 | case ... | true | | case.rb:95:1:99:3 | enter case_match_guard_no_else | case.rb:97:13:97:13 | x | match | -| case.rb:97:13:97:13 | x | case.rb:95:1:99:3 | exit case_match_guard_no_else (abnormal) | raise | +| case.rb:97:13:97:13 | x | case.rb:95:1:99:3 | exit case_match_guard_no_else (abnormal) | exception | | case.rb:97:13:97:13 | x | case.rb:97:25:97:25 | 6 | true | | cfg.html.erb:5:16:31:12 | enter cfg.html.erb | cfg.html.erb:19:19:19:32 | self | true | | cfg.html.erb:5:16:31:12 | enter cfg.html.erb | cfg.html.erb:21:19:21:32 | self | false | @@ -6158,7 +6158,7 @@ successor | raise.rb:7:1:12:3 | enter m1 | raise.rb:9:5:9:17 | self | true | | raise.rb:14:1:23:3 | enter m2 | raise.rb:16:5:18:7 | if ... | false | | raise.rb:14:1:23:3 | enter m2 | raise.rb:17:7:17:22 | self | true | -| raise.rb:17:7:17:22 | self | raise.rb:14:1:23:3 | exit m2 (abnormal) | raise | +| raise.rb:17:7:17:22 | self | raise.rb:14:1:23:3 | exit m2 (abnormal) | exception | | raise.rb:17:7:17:22 | self | raise.rb:20:5:20:18 | self | match | | raise.rb:25:1:34:3 | enter m3 | raise.rb:27:5:29:7 | if ... | false | | raise.rb:25:1:34:3 | enter m3 | raise.rb:28:7:28:22 | self | true | @@ -6170,36 +6170,36 @@ successor | raise.rb:57:1:66:3 | enter m6 | raise.rb:60:7:60:22 | self | true | | raise.rb:60:7:60:22 | self | raise.rb:62:22:62:31 | ExceptionB | no-match | | raise.rb:60:7:60:22 | self | raise.rb:62:36:62:36 | e | match | -| raise.rb:62:22:62:31 | ExceptionB | raise.rb:57:1:66:3 | exit m6 (abnormal) | raise | +| raise.rb:62:22:62:31 | ExceptionB | raise.rb:57:1:66:3 | exit m6 (abnormal) | exception | | raise.rb:62:22:62:31 | ExceptionB | raise.rb:62:36:62:36 | e | match | | raise.rb:68:1:77:3 | enter m7 | raise.rb:70:5:70:17 | self | true | | raise.rb:68:1:77:3 | enter m7 | raise.rb:71:9:71:9 | x | false | -| raise.rb:68:1:77:3 | enter m7 | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:68:1:77:3 | enter m7 | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:71:9:71:9 | x | raise.rb:71:3:72:18 | elsif ... | false | | raise.rb:71:9:71:9 | x | raise.rb:72:13:72:17 | x < 0 | true | -| raise.rb:71:9:71:9 | x | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:71:9:71:9 | x | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:79:1:92:3 | enter m8 | raise.rb:83:7:83:19 | self | true | | raise.rb:79:1:92:3 | enter m8 | raise.rb:84:11:84:11 | x | false | -| raise.rb:79:1:92:3 | enter m8 | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:79:1:92:3 | enter m8 | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:84:11:84:11 | x | raise.rb:84:5:85:20 | elsif ... | false | | raise.rb:84:11:84:11 | x | raise.rb:85:15:85:19 | x < 0 | true | -| raise.rb:84:11:84:11 | x | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:84:11:84:11 | x | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:97:8:97:8 | x | raise.rb:98:7:98:19 | self | true | | raise.rb:97:8:97:8 | x | raise.rb:99:11:99:11 | x | false | -| raise.rb:97:8:97:8 | x | raise.rb:104:5:104:23 | [ensure: raise] self | raise | +| raise.rb:97:8:97:8 | x | raise.rb:104:5:104:23 | [ensure: exception] self | exception | | raise.rb:99:11:99:11 | x | raise.rb:99:5:100:20 | elsif ... | false | | raise.rb:99:11:99:11 | x | raise.rb:100:15:100:19 | x < 0 | true | -| raise.rb:99:11:99:11 | x | raise.rb:104:5:104:23 | [ensure: raise] self | raise | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:7:108:9 | [ensure: raise] if ... | false | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:107:9:107:26 | [ensure: raise] self | true | +| raise.rb:99:11:99:11 | x | raise.rb:104:5:104:23 | [ensure: exception] self | exception | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:7:108:9 | [ensure: exception] if ... | false | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:107:9:107:26 | [ensure: exception] self | true | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:7:108:9 | [ensure: return] if ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:107:9:107:26 | [ensure: return] self | true | | raise.rb:106:10:106:11 | b1 | raise.rb:106:7:108:9 | if ... | false | | raise.rb:106:10:106:11 | b1 | raise.rb:107:9:107:26 | self | true | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:116:3:118:5 | [ensure: return] if ... | false | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:117:5:117:22 | [ensure: return] self | true | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:116:3:118:5 | [ensure: raise] if ... | false | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:117:5:117:22 | [ensure: raise] self | true | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:116:3:118:5 | [ensure: exception] if ... | false | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:117:5:117:22 | [ensure: exception] self | true | | raise.rb:115:3:115:22 | self | raise.rb:116:3:118:5 | if ... | false | | raise.rb:115:3:115:22 | self | raise.rb:117:5:117:22 | self | true | | raise.rb:121:1:126:3 | enter m10 | raise.rb:121:14:121:30 | self | false | @@ -6211,7 +6211,7 @@ successor | raise.rb:131:7:131:22 | self | raise.rb:133:3:133:19 | rescue ... | match | | raise.rb:131:7:131:22 | self | raise.rb:134:10:134:19 | ExceptionB | no-match | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:135:5:135:21 | self | match | -| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: raise] self | raise | +| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: exception] self | exception | | raise.rb:142:1:148:3 | enter m12 | raise.rb:143:3:145:5 | if ... | false | | raise.rb:142:1:148:3 | enter m12 | raise.rb:144:5:144:12 | self | true | | raise.rb:155:16:155:50 | enter { ... } | raise.rb:155:25:155:32 | self | true | @@ -6221,60 +6221,60 @@ successor | raise.rb:172:1:182:3 | enter m16 | raise.rb:174:8:174:23 | [true] ... \|\| ... | true | | raise.rb:172:1:182:3 | enter m16 | raise.rb:174:14:174:15 | b2 | false | | raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:177:14:177:14 | 2 | false | -| raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | raise | +| raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | exception | | raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:175:14:175:14 | 1 | true | -| raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | raise | +| raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | exception | | raise.rb:174:14:174:15 | b2 | raise.rb:174:8:174:23 | [false] ... \|\| ... | false | | raise.rb:174:14:174:15 | b2 | raise.rb:174:8:174:23 | [true] ... \|\| ... | true | -| raise.rb:174:14:174:15 | b2 | raise.rb:179:10:179:19 | ExceptionA | raise | -| raise.rb:179:10:179:19 | ExceptionA | raise.rb:172:1:182:3 | exit m16 (abnormal) | raise | +| raise.rb:174:14:174:15 | b2 | raise.rb:179:10:179:19 | ExceptionA | exception | +| raise.rb:179:10:179:19 | ExceptionA | raise.rb:172:1:182:3 | exit m16 (abnormal) | exception | | raise.rb:179:10:179:19 | ExceptionA | raise.rb:180:12:180:12 | 3 | match | joinBlockPredecessor -| break_ensure.rb:1:1:11:3 | exit m1 | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | 1 | +| break_ensure.rb:1:1:11:3 | exit m1 | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | 1 | | break_ensure.rb:1:1:11:3 | exit m1 | break_ensure.rb:8:3:10:5 | if ... | 0 | | break_ensure.rb:2:3:6:5 | while ... | break_ensure.rb:2:9:2:9 | x | 0 | | break_ensure.rb:2:3:6:5 | while ... | break_ensure.rb:3:8:3:8 | x | 1 | | break_ensure.rb:2:3:6:5 | while ... | break_ensure.rb:4:7:4:11 | break | 2 | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:1:1:11:3 | enter m1 | 0 | | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:3:5:5:7 | if ... | 1 | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:8:6:8:13 | [ensure: raise] self | 0 | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:9:5:9:23 | [ensure: raise] self | 1 | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:8:6:8:13 | [ensure: exception] self | 0 | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:9:5:9:23 | [ensure: exception] self | 1 | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:2:3:6:5 | while ... | 0 | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:9:5:9:23 | self | 1 | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:14:9:14:9 | x | 0 | | break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | 1 | -| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | 2 | +| break_ensure.rb:14:3:24:5 | while ... | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | 2 | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:13:1:25:3 | enter m2 | 0 | | break_ensure.rb:14:9:14:9 | x | break_ensure.rb:20:7:22:9 | if ... | 1 | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:17:9:17:13 | break | 0 | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:21:9:21:20 | [ensure: break] self | 1 | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:20:10:20:10 | [ensure: raise] y | 0 | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:21:9:21:20 | [ensure: raise] self | 1 | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:20:10:20:10 | [ensure: exception] y | 0 | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:21:9:21:20 | [ensure: exception] self | 1 | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:16:7:18:9 | if ... | 0 | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:21:9:21:20 | self | 1 | -| break_ensure.rb:27:1:42:3 | exit m3 | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | 0 | +| break_ensure.rb:27:1:42:3 | exit m3 | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | 0 | | break_ensure.rb:27:1:42:3 | exit m3 (normal) | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | 1 | | break_ensure.rb:27:1:42:3 | exit m3 (normal) | break_ensure.rb:33:5:39:7 | while ... | 0 | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:33:11:33:11 | [ensure: raise] y | 0 | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:36:11:36:15 | [ensure: raise] break | 1 | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:33:11:33:11 | [ensure: exception] y | 0 | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:36:11:36:15 | [ensure: exception] break | 1 | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:33:11:33:11 | [ensure: return] y | 0 | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:36:11:36:15 | [ensure: return] break | 1 | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:33:11:33:11 | y | 0 | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:36:11:36:15 | break | 1 | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:27:1:42:3 | enter m3 | 0 | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | 1 | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:27:1:42:3 | enter m3 | 0 | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | 1 | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:30:7:30:12 | return | 0 | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | 1 | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:29:5:31:7 | if ... | 0 | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:35:9:37:11 | if ... | 1 | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:45:9:45:9 | x | 0 | -| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | 1 | +| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | 1 | | break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | 10 | 2 | -| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | 3 | +| break_ensure.rb:45:3:55:5 | while ... | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | 3 | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:44:1:56:3 | enter m4 | 0 | | break_ensure.rb:45:9:45:9 | x | break_ensure.rb:51:7:53:9 | if ... | 1 | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:47:10:47:10 | x | 0 | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:48:9:48:16 | self | 1 | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:47:10:47:10 | x | 0 | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:48:9:48:16 | self | 1 | | case.rb:2:3:5:5 | case ... | case.rb:3:18:3:41 | if ... | 0 | | case.rb:2:3:5:5 | case ... | case.rb:4:5:4:24 | [no-match] when ... | 1 | | case.rb:2:3:5:5 | case ... | case.rb:4:17:4:24 | self | 2 | @@ -6468,48 +6468,48 @@ joinBlockPredecessor | raise.rb:62:36:62:36 | e | raise.rb:62:22:62:31 | ExceptionB | 1 | | raise.rb:65:3:65:15 | self | raise.rb:59:5:61:7 | if ... | 0 | | raise.rb:65:3:65:15 | self | raise.rb:62:36:62:36 | e | 1 | -| raise.rb:68:1:77:3 | exit m7 | raise.rb:76:3:76:15 | [ensure: raise] self | 0 | +| raise.rb:68:1:77:3 | exit m7 | raise.rb:76:3:76:15 | [ensure: exception] self | 0 | | raise.rb:68:1:77:3 | exit m7 (normal) | raise.rb:72:13:72:17 | x < 0 | 0 | | raise.rb:68:1:77:3 | exit m7 (normal) | raise.rb:76:3:76:15 | self | 1 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:68:1:77:3 | enter m7 | 0 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:70:5:70:17 | self | 1 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:71:3:72:18 | elsif ... | 2 | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:71:9:71:9 | x | 3 | -| raise.rb:79:1:92:3 | exit m8 | raise.rb:89:5:89:17 | [ensure: raise] self | 0 | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:68:1:77:3 | enter m7 | 0 | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:70:5:70:17 | self | 1 | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:71:3:72:18 | elsif ... | 2 | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:71:9:71:9 | x | 3 | +| raise.rb:79:1:92:3 | exit m8 | raise.rb:89:5:89:17 | [ensure: exception] self | 0 | | raise.rb:79:1:92:3 | exit m8 (normal) | raise.rb:85:15:85:19 | x < 0 | 0 | | raise.rb:79:1:92:3 | exit m8 (normal) | raise.rb:89:5:89:17 | self | 1 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:79:1:92:3 | enter m8 | 0 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:83:7:83:19 | self | 1 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:84:5:85:20 | elsif ... | 2 | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:84:11:84:11 | x | 3 | -| raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:116:3:118:5 | [ensure: raise] if ... | 0 | -| raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:117:5:117:22 | [ensure: raise] self | 2 | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:79:1:92:3 | enter m8 | 0 | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:83:7:83:19 | self | 1 | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:84:5:85:20 | elsif ... | 2 | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:84:11:84:11 | x | 3 | +| raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:116:3:118:5 | [ensure: exception] if ... | 0 | +| raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:117:5:117:22 | [ensure: exception] self | 2 | | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:117:5:117:22 | [ensure: return] self | 3 | | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise.rb:117:5:117:22 | self | 1 | | raise.rb:94:1:119:3 | exit m9 (normal) | raise.rb:116:3:118:5 | [ensure: return] if ... | 1 | | raise.rb:94:1:119:3 | exit m9 (normal) | raise.rb:116:3:118:5 | if ... | 0 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:97:8:97:8 | x | 0 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:98:7:98:19 | self | 1 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:99:5:100:20 | elsif ... | 2 | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:99:11:99:11 | x | 3 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:94:1:119:3 | enter m9 | 0 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:100:15:100:19 | x < 0 | 1 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:104:5:104:23 | [ensure: raise] self | 3 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:104:5:104:23 | self | 2 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:106:7:108:9 | [ensure: raise] if ... | 5 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:106:7:108:9 | [ensure: return] if ... | 6 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:106:7:108:9 | if ... | 4 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:107:9:107:26 | [ensure: raise] self | 8 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:107:9:107:26 | [ensure: return] self | 9 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:107:9:107:26 | self | 7 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | 11 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | 13 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | 12 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | 14 | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:109:5:110:25 | ensure ... | 10 | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:97:8:97:8 | x | 0 | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:98:7:98:19 | self | 1 | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:99:5:100:20 | elsif ... | 2 | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:99:11:99:11 | x | 3 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:94:1:119:3 | enter m9 | 0 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:100:15:100:19 | x < 0 | 1 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:104:5:104:23 | [ensure: exception] self | 3 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:104:5:104:23 | self | 2 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:106:7:108:9 | [ensure: exception] if ... | 5 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:106:7:108:9 | [ensure: return] if ... | 6 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:106:7:108:9 | if ... | 4 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:107:9:107:26 | [ensure: exception] self | 8 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:107:9:107:26 | [ensure: return] self | 9 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:107:9:107:26 | self | 7 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | 11 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | 13 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | 12 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | 14 | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:109:5:110:25 | ensure ... | 10 | | raise.rb:121:1:126:3 | exit m10 | raise.rb:121:14:121:30 | self | 0 | | raise.rb:121:1:126:3 | exit m10 | raise.rb:125:3:125:51 | self | 1 | -| raise.rb:128:1:140:3 | exit m11 | raise.rb:137:5:137:17 | [ensure: raise] self | 1 | +| raise.rb:128:1:140:3 | exit m11 | raise.rb:137:5:137:17 | [ensure: exception] self | 1 | | raise.rb:128:1:140:3 | exit m11 | raise.rb:137:5:137:17 | self | 0 | | raise.rb:137:5:137:17 | self | raise.rb:130:5:132:7 | if ... | 0 | | raise.rb:137:5:137:17 | self | raise.rb:133:3:133:19 | rescue ... | 1 | diff --git a/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.ql b/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.ql index e7879fa600ae..67977e0381d9 100644 --- a/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.ql +++ b/ruby/ql/test/library-tests/controlflow/graph/BasicBlocks.ql @@ -10,7 +10,7 @@ query predicate immediateDominator(BasicBlock bb1, BasicBlock bb2) { bb1.getImmediateDominator() = bb2 } -query predicate controls(ConditionBlock bb1, BasicBlock bb2, SuccessorTypes::ConditionalSuccessor t) { +query predicate controls(ConditionBlock bb1, BasicBlock bb2, ConditionalSuccessor t) { bb1.edgeDominates(bb2, t) } diff --git a/ruby/ql/test/library-tests/controlflow/graph/Cfg.expected b/ruby/ql/test/library-tests/controlflow/graph/Cfg.expected index 243e107906ab..583ca5d46a80 100644 --- a/ruby/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/ruby/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -9,37 +9,37 @@ | break_ensure.rb:2:9:2:9 | x | break_ensure.rb:2:13:2:13 | 0 | | | break_ensure.rb:2:9:2:13 | ... < ... | break_ensure.rb:2:3:6:5 | while ... | false | | break_ensure.rb:2:9:2:13 | ... < ... | break_ensure.rb:3:8:3:8 | x | true | -| break_ensure.rb:2:9:2:13 | ... < ... | break_ensure.rb:8:6:8:13 | [ensure: raise] self | raise | +| break_ensure.rb:2:9:2:13 | ... < ... | break_ensure.rb:8:6:8:13 | [ensure: exception] self | exception | | break_ensure.rb:2:13:2:13 | 0 | break_ensure.rb:2:9:2:13 | ... < ... | | | break_ensure.rb:2:14:6:5 | do ... | break_ensure.rb:2:9:2:9 | x | | | break_ensure.rb:3:5:5:7 | if ... | break_ensure.rb:2:14:6:5 | do ... | | | break_ensure.rb:3:8:3:8 | x | break_ensure.rb:3:12:3:12 | 0 | | -| break_ensure.rb:3:8:3:12 | ... > ... | break_ensure.rb:2:3:6:5 | while ... | raise | +| break_ensure.rb:3:8:3:12 | ... > ... | break_ensure.rb:2:3:6:5 | while ... | exception | | break_ensure.rb:3:8:3:12 | ... > ... | break_ensure.rb:3:5:5:7 | if ... | false | | break_ensure.rb:3:8:3:12 | ... > ... | break_ensure.rb:4:7:4:11 | break | true | | break_ensure.rb:3:12:3:12 | 0 | break_ensure.rb:3:8:3:12 | ... > ... | | | break_ensure.rb:4:7:4:11 | break | break_ensure.rb:2:3:6:5 | while ... | break | -| break_ensure.rb:7:1:10:5 | [ensure: raise] ensure ... | break_ensure.rb:1:1:11:3 | exit m1 (abnormal) | raise | +| break_ensure.rb:7:1:10:5 | [ensure: exception] ensure ... | break_ensure.rb:1:1:11:3 | exit m1 (abnormal) | exception | | break_ensure.rb:7:1:10:5 | ensure ... | break_ensure.rb:1:1:11:3 | exit m1 (normal) | | -| break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | break_ensure.rb:7:1:10:5 | [ensure: raise] ensure ... | | +| break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | break_ensure.rb:7:1:10:5 | [ensure: exception] ensure ... | | | break_ensure.rb:8:3:10:5 | if ... | break_ensure.rb:7:1:10:5 | ensure ... | | -| break_ensure.rb:8:6:8:13 | [ensure: raise] call to elements | break_ensure.rb:8:6:8:18 | [ensure: raise] call to nil? | | -| break_ensure.rb:8:6:8:13 | [ensure: raise] self | break_ensure.rb:8:6:8:13 | [ensure: raise] call to elements | | +| break_ensure.rb:8:6:8:13 | [ensure: exception] call to elements | break_ensure.rb:8:6:8:18 | [ensure: exception] call to nil? | | +| break_ensure.rb:8:6:8:13 | [ensure: exception] self | break_ensure.rb:8:6:8:13 | [ensure: exception] call to elements | | | break_ensure.rb:8:6:8:13 | call to elements | break_ensure.rb:8:6:8:18 | call to nil? | | | break_ensure.rb:8:6:8:13 | self | break_ensure.rb:8:6:8:13 | call to elements | | -| break_ensure.rb:8:6:8:18 | [ensure: raise] call to nil? | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | false | -| break_ensure.rb:8:6:8:18 | [ensure: raise] call to nil? | break_ensure.rb:9:5:9:23 | [ensure: raise] self | true | +| break_ensure.rb:8:6:8:18 | [ensure: exception] call to nil? | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | false | +| break_ensure.rb:8:6:8:18 | [ensure: exception] call to nil? | break_ensure.rb:9:5:9:23 | [ensure: exception] self | true | | break_ensure.rb:8:6:8:18 | call to nil? | break_ensure.rb:8:3:10:5 | if ... | false | | break_ensure.rb:8:6:8:18 | call to nil? | break_ensure.rb:9:5:9:23 | self | true | -| break_ensure.rb:8:20:9:23 | [ensure: raise] then ... | break_ensure.rb:8:3:10:5 | [ensure: raise] if ... | | +| break_ensure.rb:8:20:9:23 | [ensure: exception] then ... | break_ensure.rb:8:3:10:5 | [ensure: exception] if ... | | | break_ensure.rb:8:20:9:23 | then ... | break_ensure.rb:8:3:10:5 | if ... | | -| break_ensure.rb:9:5:9:23 | [ensure: raise] call to puts | break_ensure.rb:8:20:9:23 | [ensure: raise] then ... | | -| break_ensure.rb:9:5:9:23 | [ensure: raise] self | break_ensure.rb:9:11:9:22 | [ensure: raise] elements nil | | +| break_ensure.rb:9:5:9:23 | [ensure: exception] call to puts | break_ensure.rb:8:20:9:23 | [ensure: exception] then ... | | +| break_ensure.rb:9:5:9:23 | [ensure: exception] self | break_ensure.rb:9:11:9:22 | [ensure: exception] elements nil | | | break_ensure.rb:9:5:9:23 | call to puts | break_ensure.rb:8:20:9:23 | then ... | | | break_ensure.rb:9:5:9:23 | self | break_ensure.rb:9:11:9:22 | elements nil | | | break_ensure.rb:9:10:9:23 | "elements nil" | break_ensure.rb:9:5:9:23 | call to puts | | -| break_ensure.rb:9:10:9:23 | [ensure: raise] "elements nil" | break_ensure.rb:9:5:9:23 | [ensure: raise] call to puts | | -| break_ensure.rb:9:11:9:22 | [ensure: raise] elements nil | break_ensure.rb:9:10:9:23 | [ensure: raise] "elements nil" | | +| break_ensure.rb:9:10:9:23 | [ensure: exception] "elements nil" | break_ensure.rb:9:5:9:23 | [ensure: exception] call to puts | | +| break_ensure.rb:9:11:9:22 | [ensure: exception] elements nil | break_ensure.rb:9:10:9:23 | [ensure: exception] "elements nil" | | | break_ensure.rb:9:11:9:22 | elements nil | break_ensure.rb:9:10:9:23 | "elements nil" | | | break_ensure.rb:13:1:25:3 | enter m2 | break_ensure.rb:13:8:13:8 | x | | | break_ensure.rb:13:1:25:3 | exit m2 (normal) | break_ensure.rb:13:1:25:3 | exit m2 | | @@ -56,38 +56,38 @@ | break_ensure.rb:16:10:16:10 | x | break_ensure.rb:16:14:16:14 | 0 | | | break_ensure.rb:16:10:16:14 | ... > ... | break_ensure.rb:16:7:18:9 | if ... | false | | break_ensure.rb:16:10:16:14 | ... > ... | break_ensure.rb:17:9:17:13 | break | true | -| break_ensure.rb:16:10:16:14 | ... > ... | break_ensure.rb:20:10:20:10 | [ensure: raise] y | raise | +| break_ensure.rb:16:10:16:14 | ... > ... | break_ensure.rb:20:10:20:10 | [ensure: exception] y | exception | | break_ensure.rb:16:14:16:14 | 0 | break_ensure.rb:16:10:16:14 | ... > ... | | | break_ensure.rb:17:9:17:13 | break | break_ensure.rb:20:10:20:10 | [ensure: break] y | break | | break_ensure.rb:19:5:22:9 | [ensure: break] ensure ... | break_ensure.rb:14:3:24:5 | while ... | break | -| break_ensure.rb:19:5:22:9 | [ensure: raise] ensure ... | break_ensure.rb:14:3:24:5 | while ... | raise | +| break_ensure.rb:19:5:22:9 | [ensure: exception] ensure ... | break_ensure.rb:14:3:24:5 | while ... | exception | | break_ensure.rb:19:5:22:9 | ensure ... | break_ensure.rb:14:14:24:5 | do ... | | | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | break_ensure.rb:19:5:22:9 | [ensure: break] ensure ... | | -| break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | break_ensure.rb:19:5:22:9 | [ensure: raise] ensure ... | | +| break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | break_ensure.rb:19:5:22:9 | [ensure: exception] ensure ... | | | break_ensure.rb:20:7:22:9 | if ... | break_ensure.rb:19:5:22:9 | ensure ... | | | break_ensure.rb:20:10:20:10 | [ensure: break] y | break_ensure.rb:20:10:20:15 | [ensure: break] call to nil? | | -| break_ensure.rb:20:10:20:10 | [ensure: raise] y | break_ensure.rb:20:10:20:15 | [ensure: raise] call to nil? | | +| break_ensure.rb:20:10:20:10 | [ensure: exception] y | break_ensure.rb:20:10:20:15 | [ensure: exception] call to nil? | | | break_ensure.rb:20:10:20:10 | y | break_ensure.rb:20:10:20:15 | call to nil? | | | break_ensure.rb:20:10:20:15 | [ensure: break] call to nil? | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | false | | break_ensure.rb:20:10:20:15 | [ensure: break] call to nil? | break_ensure.rb:21:9:21:20 | [ensure: break] self | true | -| break_ensure.rb:20:10:20:15 | [ensure: raise] call to nil? | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | false | -| break_ensure.rb:20:10:20:15 | [ensure: raise] call to nil? | break_ensure.rb:21:9:21:20 | [ensure: raise] self | true | +| break_ensure.rb:20:10:20:15 | [ensure: exception] call to nil? | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | false | +| break_ensure.rb:20:10:20:15 | [ensure: exception] call to nil? | break_ensure.rb:21:9:21:20 | [ensure: exception] self | true | | break_ensure.rb:20:10:20:15 | call to nil? | break_ensure.rb:20:7:22:9 | if ... | false | | break_ensure.rb:20:10:20:15 | call to nil? | break_ensure.rb:21:9:21:20 | self | true | | break_ensure.rb:20:17:21:20 | [ensure: break] then ... | break_ensure.rb:20:7:22:9 | [ensure: break] if ... | | -| break_ensure.rb:20:17:21:20 | [ensure: raise] then ... | break_ensure.rb:20:7:22:9 | [ensure: raise] if ... | | +| break_ensure.rb:20:17:21:20 | [ensure: exception] then ... | break_ensure.rb:20:7:22:9 | [ensure: exception] if ... | | | break_ensure.rb:20:17:21:20 | then ... | break_ensure.rb:20:7:22:9 | if ... | | | break_ensure.rb:21:9:21:20 | [ensure: break] call to puts | break_ensure.rb:20:17:21:20 | [ensure: break] then ... | | | break_ensure.rb:21:9:21:20 | [ensure: break] self | break_ensure.rb:21:15:21:19 | [ensure: break] y nil | | -| break_ensure.rb:21:9:21:20 | [ensure: raise] call to puts | break_ensure.rb:20:17:21:20 | [ensure: raise] then ... | | -| break_ensure.rb:21:9:21:20 | [ensure: raise] self | break_ensure.rb:21:15:21:19 | [ensure: raise] y nil | | +| break_ensure.rb:21:9:21:20 | [ensure: exception] call to puts | break_ensure.rb:20:17:21:20 | [ensure: exception] then ... | | +| break_ensure.rb:21:9:21:20 | [ensure: exception] self | break_ensure.rb:21:15:21:19 | [ensure: exception] y nil | | | break_ensure.rb:21:9:21:20 | call to puts | break_ensure.rb:20:17:21:20 | then ... | | | break_ensure.rb:21:9:21:20 | self | break_ensure.rb:21:15:21:19 | y nil | | | break_ensure.rb:21:14:21:20 | "y nil" | break_ensure.rb:21:9:21:20 | call to puts | | | break_ensure.rb:21:14:21:20 | [ensure: break] "y nil" | break_ensure.rb:21:9:21:20 | [ensure: break] call to puts | | -| break_ensure.rb:21:14:21:20 | [ensure: raise] "y nil" | break_ensure.rb:21:9:21:20 | [ensure: raise] call to puts | | +| break_ensure.rb:21:14:21:20 | [ensure: exception] "y nil" | break_ensure.rb:21:9:21:20 | [ensure: exception] call to puts | | | break_ensure.rb:21:15:21:19 | [ensure: break] y nil | break_ensure.rb:21:14:21:20 | [ensure: break] "y nil" | | -| break_ensure.rb:21:15:21:19 | [ensure: raise] y nil | break_ensure.rb:21:14:21:20 | [ensure: raise] "y nil" | | +| break_ensure.rb:21:15:21:19 | [ensure: exception] y nil | break_ensure.rb:21:14:21:20 | [ensure: exception] "y nil" | | | break_ensure.rb:21:15:21:19 | y nil | break_ensure.rb:21:14:21:20 | "y nil" | | | break_ensure.rb:27:1:42:3 | enter m3 | break_ensure.rb:27:8:27:8 | x | | | break_ensure.rb:27:1:42:3 | exit m3 (abnormal) | break_ensure.rb:27:1:42:3 | exit m3 | | @@ -99,45 +99,45 @@ | break_ensure.rb:29:8:29:8 | x | break_ensure.rb:29:8:29:13 | call to nil? | | | break_ensure.rb:29:8:29:13 | call to nil? | break_ensure.rb:29:5:31:7 | if ... | false | | break_ensure.rb:29:8:29:13 | call to nil? | break_ensure.rb:30:7:30:12 | return | true | -| break_ensure.rb:29:8:29:13 | call to nil? | break_ensure.rb:33:11:33:11 | [ensure: raise] y | raise | +| break_ensure.rb:29:8:29:13 | call to nil? | break_ensure.rb:33:11:33:11 | [ensure: exception] y | exception | | break_ensure.rb:30:7:30:12 | return | break_ensure.rb:33:11:33:11 | [ensure: return] y | return | -| break_ensure.rb:32:3:39:7 | [ensure: raise] ensure ... | break_ensure.rb:27:1:42:3 | exit m3 (abnormal) | raise | +| break_ensure.rb:32:3:39:7 | [ensure: exception] ensure ... | break_ensure.rb:27:1:42:3 | exit m3 (abnormal) | exception | | break_ensure.rb:32:3:39:7 | [ensure: return] ensure ... | break_ensure.rb:27:1:42:3 | exit m3 (normal) | return | | break_ensure.rb:32:3:39:7 | ensure ... | break_ensure.rb:41:3:41:13 | self | | -| break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break_ensure.rb:32:3:39:7 | [ensure: raise] ensure ... | | +| break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break_ensure.rb:32:3:39:7 | [ensure: exception] ensure ... | | | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break_ensure.rb:32:3:39:7 | [ensure: return] ensure ... | | | break_ensure.rb:33:5:39:7 | while ... | break_ensure.rb:32:3:39:7 | ensure ... | | -| break_ensure.rb:33:11:33:11 | [ensure: raise] y | break_ensure.rb:33:15:33:15 | [ensure: raise] 0 | | +| break_ensure.rb:33:11:33:11 | [ensure: exception] y | break_ensure.rb:33:15:33:15 | [ensure: exception] 0 | | | break_ensure.rb:33:11:33:11 | [ensure: return] y | break_ensure.rb:33:15:33:15 | [ensure: return] 0 | | | break_ensure.rb:33:11:33:11 | y | break_ensure.rb:33:15:33:15 | 0 | | | break_ensure.rb:33:11:33:15 | ... < ... | break_ensure.rb:33:5:39:7 | while ... | false | | break_ensure.rb:33:11:33:15 | ... < ... | break_ensure.rb:35:12:35:12 | x | true | -| break_ensure.rb:33:11:33:15 | [ensure: raise] ... < ... | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | false | -| break_ensure.rb:33:11:33:15 | [ensure: raise] ... < ... | break_ensure.rb:35:12:35:12 | [ensure: raise] x | true | +| break_ensure.rb:33:11:33:15 | [ensure: exception] ... < ... | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | false | +| break_ensure.rb:33:11:33:15 | [ensure: exception] ... < ... | break_ensure.rb:35:12:35:12 | [ensure: exception] x | true | | break_ensure.rb:33:11:33:15 | [ensure: return] ... < ... | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | false | | break_ensure.rb:33:11:33:15 | [ensure: return] ... < ... | break_ensure.rb:35:12:35:12 | [ensure: return] x | true | | break_ensure.rb:33:15:33:15 | 0 | break_ensure.rb:33:11:33:15 | ... < ... | | -| break_ensure.rb:33:15:33:15 | [ensure: raise] 0 | break_ensure.rb:33:11:33:15 | [ensure: raise] ... < ... | | +| break_ensure.rb:33:15:33:15 | [ensure: exception] 0 | break_ensure.rb:33:11:33:15 | [ensure: exception] ... < ... | | | break_ensure.rb:33:15:33:15 | [ensure: return] 0 | break_ensure.rb:33:11:33:15 | [ensure: return] ... < ... | | -| break_ensure.rb:33:16:39:7 | [ensure: raise] do ... | break_ensure.rb:33:11:33:11 | [ensure: raise] y | | +| break_ensure.rb:33:16:39:7 | [ensure: exception] do ... | break_ensure.rb:33:11:33:11 | [ensure: exception] y | | | break_ensure.rb:33:16:39:7 | [ensure: return] do ... | break_ensure.rb:33:11:33:11 | [ensure: return] y | | | break_ensure.rb:33:16:39:7 | do ... | break_ensure.rb:33:11:33:11 | y | | -| break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | break_ensure.rb:33:16:39:7 | [ensure: raise] do ... | | +| break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | break_ensure.rb:33:16:39:7 | [ensure: exception] do ... | | | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | break_ensure.rb:33:16:39:7 | [ensure: return] do ... | | | break_ensure.rb:35:9:37:11 | if ... | break_ensure.rb:33:16:39:7 | do ... | | -| break_ensure.rb:35:12:35:12 | [ensure: raise] x | break_ensure.rb:35:16:35:16 | [ensure: raise] 0 | | +| break_ensure.rb:35:12:35:12 | [ensure: exception] x | break_ensure.rb:35:16:35:16 | [ensure: exception] 0 | | | break_ensure.rb:35:12:35:12 | [ensure: return] x | break_ensure.rb:35:16:35:16 | [ensure: return] 0 | | | break_ensure.rb:35:12:35:12 | x | break_ensure.rb:35:16:35:16 | 0 | | | break_ensure.rb:35:12:35:16 | ... > ... | break_ensure.rb:35:9:37:11 | if ... | false | | break_ensure.rb:35:12:35:16 | ... > ... | break_ensure.rb:36:11:36:15 | break | true | -| break_ensure.rb:35:12:35:16 | [ensure: raise] ... > ... | break_ensure.rb:35:9:37:11 | [ensure: raise] if ... | false | -| break_ensure.rb:35:12:35:16 | [ensure: raise] ... > ... | break_ensure.rb:36:11:36:15 | [ensure: raise] break | true | +| break_ensure.rb:35:12:35:16 | [ensure: exception] ... > ... | break_ensure.rb:35:9:37:11 | [ensure: exception] if ... | false | +| break_ensure.rb:35:12:35:16 | [ensure: exception] ... > ... | break_ensure.rb:36:11:36:15 | [ensure: exception] break | true | | break_ensure.rb:35:12:35:16 | [ensure: return] ... > ... | break_ensure.rb:35:9:37:11 | [ensure: return] if ... | false | | break_ensure.rb:35:12:35:16 | [ensure: return] ... > ... | break_ensure.rb:36:11:36:15 | [ensure: return] break | true | | break_ensure.rb:35:16:35:16 | 0 | break_ensure.rb:35:12:35:16 | ... > ... | | -| break_ensure.rb:35:16:35:16 | [ensure: raise] 0 | break_ensure.rb:35:12:35:16 | [ensure: raise] ... > ... | | +| break_ensure.rb:35:16:35:16 | [ensure: exception] 0 | break_ensure.rb:35:12:35:16 | [ensure: exception] ... > ... | | | break_ensure.rb:35:16:35:16 | [ensure: return] 0 | break_ensure.rb:35:12:35:16 | [ensure: return] ... > ... | | -| break_ensure.rb:36:11:36:15 | [ensure: raise] break | break_ensure.rb:33:5:39:7 | [ensure: raise] while ... | break | +| break_ensure.rb:36:11:36:15 | [ensure: exception] break | break_ensure.rb:33:5:39:7 | [ensure: exception] while ... | break | | break_ensure.rb:36:11:36:15 | [ensure: return] break | break_ensure.rb:33:5:39:7 | [ensure: return] while ... | break | | break_ensure.rb:36:11:36:15 | break | break_ensure.rb:33:5:39:7 | while ... | break | | break_ensure.rb:41:3:41:13 | call to puts | break_ensure.rb:27:1:42:3 | exit m3 (normal) | | @@ -158,27 +158,27 @@ | break_ensure.rb:47:10:47:10 | x | break_ensure.rb:47:14:47:14 | 1 | | | break_ensure.rb:47:10:47:14 | ... > ... | break_ensure.rb:47:7:49:9 | if ... | false | | break_ensure.rb:47:10:47:14 | ... > ... | break_ensure.rb:48:9:48:16 | self | true | -| break_ensure.rb:47:10:47:14 | ... > ... | break_ensure.rb:51:10:51:10 | [ensure: raise] x | raise | +| break_ensure.rb:47:10:47:14 | ... > ... | break_ensure.rb:51:10:51:10 | [ensure: exception] x | exception | | break_ensure.rb:47:14:47:14 | 1 | break_ensure.rb:47:10:47:14 | ... > ... | | -| break_ensure.rb:48:9:48:16 | call to raise | break_ensure.rb:51:10:51:10 | [ensure: raise] x | raise | +| break_ensure.rb:48:9:48:16 | call to raise | break_ensure.rb:51:10:51:10 | [ensure: exception] x | exception | | break_ensure.rb:48:9:48:16 | self | break_ensure.rb:48:15:48:16 | "" | | | break_ensure.rb:48:15:48:16 | "" | break_ensure.rb:48:9:48:16 | call to raise | | -| break_ensure.rb:50:5:53:9 | [ensure: raise] ensure ... | break_ensure.rb:45:3:55:5 | while ... | raise | +| break_ensure.rb:50:5:53:9 | [ensure: exception] ensure ... | break_ensure.rb:45:3:55:5 | while ... | exception | | break_ensure.rb:50:5:53:9 | ensure ... | break_ensure.rb:45:14:55:5 | do ... | | -| break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | break_ensure.rb:50:5:53:9 | [ensure: raise] ensure ... | | +| break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | break_ensure.rb:50:5:53:9 | [ensure: exception] ensure ... | | | break_ensure.rb:51:7:53:9 | if ... | break_ensure.rb:50:5:53:9 | ensure ... | | -| break_ensure.rb:51:10:51:10 | [ensure: raise] x | break_ensure.rb:51:14:51:14 | [ensure: raise] 0 | | +| break_ensure.rb:51:10:51:10 | [ensure: exception] x | break_ensure.rb:51:14:51:14 | [ensure: exception] 0 | | | break_ensure.rb:51:10:51:10 | x | break_ensure.rb:51:14:51:14 | 0 | | | break_ensure.rb:51:10:51:14 | ... > ... | break_ensure.rb:51:7:53:9 | if ... | false | | break_ensure.rb:51:10:51:14 | ... > ... | break_ensure.rb:52:15:52:16 | 10 | true | -| break_ensure.rb:51:10:51:14 | [ensure: raise] ... > ... | break_ensure.rb:51:7:53:9 | [ensure: raise] if ... | false | -| break_ensure.rb:51:10:51:14 | [ensure: raise] ... > ... | break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | true | +| break_ensure.rb:51:10:51:14 | [ensure: exception] ... > ... | break_ensure.rb:51:7:53:9 | [ensure: exception] if ... | false | +| break_ensure.rb:51:10:51:14 | [ensure: exception] ... > ... | break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | true | | break_ensure.rb:51:14:51:14 | 0 | break_ensure.rb:51:10:51:14 | ... > ... | | -| break_ensure.rb:51:14:51:14 | [ensure: raise] 0 | break_ensure.rb:51:10:51:14 | [ensure: raise] ... > ... | | -| break_ensure.rb:52:9:52:16 | [ensure: raise] break | break_ensure.rb:45:3:55:5 | while ... | break | +| break_ensure.rb:51:14:51:14 | [ensure: exception] 0 | break_ensure.rb:51:10:51:14 | [ensure: exception] ... > ... | | +| break_ensure.rb:52:9:52:16 | [ensure: exception] break | break_ensure.rb:45:3:55:5 | while ... | break | | break_ensure.rb:52:9:52:16 | break | break_ensure.rb:45:3:55:5 | while ... | break | | break_ensure.rb:52:15:52:16 | 10 | break_ensure.rb:52:9:52:16 | break | | -| break_ensure.rb:52:15:52:16 | [ensure: raise] 10 | break_ensure.rb:52:9:52:16 | [ensure: raise] break | | +| break_ensure.rb:52:15:52:16 | [ensure: exception] 10 | break_ensure.rb:52:9:52:16 | [ensure: exception] break | | | case.rb:1:1:6:3 | enter if_in_case | case.rb:2:8:2:9 | self | | | case.rb:1:1:6:3 | exit if_in_case (normal) | case.rb:1:1:6:3 | exit if_in_case | | | case.rb:1:1:6:3 | if_in_case | case.rb:8:1:18:3 | case_match | | @@ -256,7 +256,7 @@ | case.rb:21:3:23:5 | case ... | case.rb:20:1:24:3 | exit case_match_no_match (normal) | | | case.rb:21:8:21:12 | value | case.rb:22:5:22:8 | in ... then ... | | | case.rb:22:5:22:8 | in ... then ... | case.rb:22:8:22:8 | 1 | | -| case.rb:22:8:22:8 | 1 | case.rb:20:1:24:3 | exit case_match_no_match (abnormal) | raise | +| case.rb:22:8:22:8 | 1 | case.rb:20:1:24:3 | exit case_match_no_match (abnormal) | exception | | case.rb:22:8:22:8 | 1 | case.rb:21:3:23:5 | case ... | match | | case.rb:26:1:30:3 | case_match_raise | case.rb:32:1:39:3 | case_match_array | | | case.rb:26:1:30:3 | enter case_match_raise | case.rb:26:22:26:26 | value | | @@ -266,12 +266,12 @@ | case.rb:27:3:29:5 | case ... | case.rb:26:1:30:3 | exit case_match_raise (normal) | | | case.rb:27:8:27:12 | value | case.rb:28:4:28:28 | in ... then ... | | | case.rb:28:4:28:28 | in ... then ... | case.rb:28:7:28:28 | -> { ... } | | -| case.rb:28:7:28:28 | -> { ... } | case.rb:26:1:30:3 | exit case_match_raise (abnormal) | raise | +| case.rb:28:7:28:28 | -> { ... } | case.rb:26:1:30:3 | exit case_match_raise (abnormal) | exception | | case.rb:28:7:28:28 | -> { ... } | case.rb:27:3:29:5 | case ... | match | | case.rb:28:7:28:28 | enter -> { ... } | case.rb:28:10:28:10 | x | | | case.rb:28:7:28:28 | exit -> { ... } (abnormal) | case.rb:28:7:28:28 | exit -> { ... } | | | case.rb:28:10:28:10 | x | case.rb:28:14:28:25 | self | | -| case.rb:28:14:28:25 | call to raise | case.rb:28:7:28:28 | exit -> { ... } (abnormal) | raise | +| case.rb:28:14:28:25 | call to raise | case.rb:28:7:28:28 | exit -> { ... } (abnormal) | exception | | case.rb:28:14:28:25 | self | case.rb:28:21:28:24 | oops | | | case.rb:28:20:28:25 | "oops" | case.rb:28:14:28:25 | call to raise | | | case.rb:28:21:28:24 | oops | case.rb:28:20:28:25 | "oops" | | @@ -294,9 +294,9 @@ | case.rb:36:8:36:12 | [ ..., * ] | case.rb:37:5:37:27 | in ... then ... | no-match | | case.rb:36:9:36:9 | x | case.rb:33:3:38:5 | case ... | match | | case.rb:37:5:37:27 | in ... then ... | case.rb:37:8:37:10 | Bar | | -| case.rb:37:8:37:10 | Bar | case.rb:32:1:39:3 | exit case_match_array (abnormal) | raise | +| case.rb:37:8:37:10 | Bar | case.rb:32:1:39:3 | exit case_match_array (abnormal) | exception | | case.rb:37:8:37:10 | Bar | case.rb:37:8:37:26 | [ ..., * ] | match | -| case.rb:37:8:37:26 | [ ..., * ] | case.rb:32:1:39:3 | exit case_match_array (abnormal) | raise | +| case.rb:37:8:37:26 | [ ..., * ] | case.rb:32:1:39:3 | exit case_match_array (abnormal) | exception | | case.rb:37:8:37:26 | [ ..., * ] | case.rb:37:12:37:12 | a | false, match, true | | case.rb:37:12:37:12 | a | case.rb:37:15:37:15 | b | match | | case.rb:37:15:37:15 | b | case.rb:37:19:37:19 | c | match | @@ -311,12 +311,12 @@ | case.rb:42:3:44:5 | case ... | case.rb:41:1:45:3 | exit case_match_find (normal) | | | case.rb:42:8:42:12 | value | case.rb:43:5:43:22 | in ... then ... | | | case.rb:43:5:43:22 | in ... then ... | case.rb:43:8:43:21 | [ *,...,* ] | | -| case.rb:43:8:43:21 | [ *,...,* ] | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:43:8:43:21 | [ *,...,* ] | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:43:8:43:21 | [ *,...,* ] | case.rb:43:10:43:10 | x | false, match, true | | case.rb:43:10:43:10 | x | case.rb:43:13:43:13 | 1 | | -| case.rb:43:13:43:13 | 1 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:43:13:43:13 | 1 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:43:13:43:13 | 1 | case.rb:43:16:43:16 | 2 | match | -| case.rb:43:16:43:16 | 2 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | raise | +| case.rb:43:16:43:16 | 2 | case.rb:41:1:45:3 | exit case_match_find (abnormal) | exception | | case.rb:43:16:43:16 | 2 | case.rb:43:20:43:20 | y | match | | case.rb:43:20:43:20 | y | case.rb:42:3:44:5 | case ... | | | case.rb:47:1:53:3 | case_match_hash | case.rb:55:1:61:3 | case_match_variable | | @@ -344,9 +344,9 @@ | case.rb:50:16:50:16 | 1 | case.rb:48:3:52:5 | case ... | match | | case.rb:50:16:50:16 | 1 | case.rb:51:5:51:17 | in ... then ... | no-match | | case.rb:51:5:51:17 | in ... then ... | case.rb:51:8:51:10 | Bar | | -| case.rb:51:8:51:10 | Bar | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | raise | +| case.rb:51:8:51:10 | Bar | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | exception | | case.rb:51:8:51:10 | Bar | case.rb:51:8:51:16 | { ..., ** } | match | -| case.rb:51:8:51:16 | { ..., ** } | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | raise | +| case.rb:51:8:51:16 | { ..., ** } | case.rb:47:1:53:3 | exit case_match_hash (abnormal) | exception | | case.rb:51:8:51:16 | { ..., ** } | case.rb:48:3:52:5 | case ... | false, match, true | | case.rb:55:1:61:3 | case_match_variable | case.rb:63:1:67:3 | case_match_underscore | | | case.rb:55:1:61:3 | enter case_match_variable | case.rb:55:25:55:29 | value | | @@ -500,7 +500,7 @@ | case.rb:91:13:91:14 | "" | case.rb:91:18:91:19 | [ ..., * ] | no-match | | case.rb:91:18:91:19 | [ ..., * ] | case.rb:72:3:92:5 | case ... | match | | case.rb:91:18:91:19 | [ ..., * ] | case.rb:91:23:91:24 | { ..., ** } | no-match | -| case.rb:91:23:91:24 | { ..., ** } | case.rb:69:1:93:3 | exit case_match_various (abnormal) | raise | +| case.rb:91:23:91:24 | { ..., ** } | case.rb:69:1:93:3 | exit case_match_various (abnormal) | exception | | case.rb:91:23:91:24 | { ..., ** } | case.rb:72:3:92:5 | case ... | false, match, true | | case.rb:95:1:99:3 | case_match_guard_no_else | case.rb:1:1:99:4 | exit case.rb (normal) | | | case.rb:95:1:99:3 | enter case_match_guard_no_else | case.rb:95:30:95:34 | value | | @@ -512,7 +512,7 @@ | case.rb:97:5:97:25 | in ... then ... | case.rb:97:8:97:8 | x | | | case.rb:97:8:97:8 | x | case.rb:97:13:97:13 | x | match | | case.rb:97:13:97:13 | x | case.rb:97:18:97:18 | 5 | | -| case.rb:97:13:97:18 | ... == ... | case.rb:95:1:99:3 | exit case_match_guard_no_else (abnormal) | raise | +| case.rb:97:13:97:18 | ... == ... | case.rb:95:1:99:3 | exit case_match_guard_no_else (abnormal) | exception | | case.rb:97:13:97:18 | ... == ... | case.rb:97:25:97:25 | 6 | true | | case.rb:97:18:97:18 | 5 | case.rb:97:13:97:18 | ... == ... | | | case.rb:97:20:97:25 | then ... | case.rb:96:3:98:5 | case ... | | @@ -870,7 +870,7 @@ | cfg.rb:91:6:91:10 | ... > ... | cfg.rb:91:3:91:24 | if ... | false | | cfg.rb:91:6:91:10 | ... > ... | cfg.rb:91:17:91:20 | next | true | | cfg.rb:91:10:91:10 | 3 | cfg.rb:91:6:91:10 | ... > ... | | -| cfg.rb:91:17:91:20 | next | cfg.rb:90:1:93:3 | exit { ... } (normal) | next | +| cfg.rb:91:17:91:20 | next | cfg.rb:90:1:93:3 | exit { ... } (normal) | continue | | cfg.rb:92:3:92:8 | call to puts | cfg.rb:90:1:93:3 | exit { ... } (normal) | | | cfg.rb:92:3:92:8 | self | cfg.rb:92:8:92:8 | x | | | cfg.rb:92:8:92:8 | x | cfg.rb:92:3:92:8 | call to puts | | @@ -1024,7 +1024,7 @@ | cfg.rb:134:1:134:23 | EmptyModule | cfg.rb:136:1:136:1 | 1 | | | cfg.rb:136:1:136:1 | 1 | cfg.rb:136:3:136:3 | 0 | | | cfg.rb:136:1:136:3 | ... / ... | cfg.rb:136:1:136:29 | ... rescue ... | | -| cfg.rb:136:1:136:3 | ... / ... | cfg.rb:136:12:136:29 | self | raise | +| cfg.rb:136:1:136:3 | ... / ... | cfg.rb:136:12:136:29 | self | exception | | cfg.rb:136:1:136:29 | ... rescue ... | cfg.rb:138:17:138:23 | __synth__2 | | | cfg.rb:136:3:136:3 | 0 | cfg.rb:136:1:136:3 | ... / ... | | | cfg.rb:136:12:136:29 | call to puts | cfg.rb:136:1:136:29 | ... rescue ... | | @@ -1828,7 +1828,7 @@ | loops.rb:14:11:14:16 | ... > ... | loops.rb:15:7:15:10 | next | true | | loops.rb:14:11:14:16 | ... > ... | loops.rb:16:11:16:11 | x | false | | loops.rb:14:15:14:16 | 50 | loops.rb:14:11:14:16 | ... > ... | | -| loops.rb:15:7:15:10 | next | loops.rb:9:9:9:9 | x | next | +| loops.rb:15:7:15:10 | next | loops.rb:9:9:9:9 | x | continue | | loops.rb:16:5:17:10 | elsif ... | loops.rb:14:5:17:10 | elsif ... | | | loops.rb:16:11:16:11 | x | loops.rb:16:15:16:16 | 10 | | | loops.rb:16:11:16:16 | ... > ... | loops.rb:16:5:17:10 | elsif ... | false | @@ -1886,7 +1886,7 @@ | raise.rb:8:6:8:10 | ... > ... | raise.rb:8:3:10:5 | if ... | false | | raise.rb:8:6:8:10 | ... > ... | raise.rb:9:5:9:17 | self | true | | raise.rb:8:10:8:10 | 2 | raise.rb:8:6:8:10 | ... > ... | | -| raise.rb:9:5:9:17 | call to raise | raise.rb:7:1:12:3 | exit m1 (abnormal) | raise | +| raise.rb:9:5:9:17 | call to raise | raise.rb:7:1:12:3 | exit m1 (abnormal) | exception | | raise.rb:9:5:9:17 | self | raise.rb:9:12:9:16 | x > 2 | | | raise.rb:9:11:9:17 | "x > 2" | raise.rb:9:5:9:17 | call to raise | | | raise.rb:9:12:9:16 | x > 2 | raise.rb:9:11:9:17 | "x > 2" | | @@ -1902,11 +1902,11 @@ | raise.rb:16:5:18:7 | if ... | raise.rb:22:3:22:15 | self | | | raise.rb:16:8:16:8 | b | raise.rb:16:5:18:7 | if ... | false | | raise.rb:16:8:16:8 | b | raise.rb:17:7:17:22 | self | true | -| raise.rb:17:7:17:22 | call to raise | raise.rb:19:10:19:19 | ExceptionA | raise | +| raise.rb:17:7:17:22 | call to raise | raise.rb:19:10:19:19 | ExceptionA | exception | | raise.rb:17:7:17:22 | self | raise.rb:17:13:17:22 | ExceptionA | | | raise.rb:17:13:17:22 | ExceptionA | raise.rb:17:7:17:22 | call to raise | | | raise.rb:19:3:20:18 | rescue ... | raise.rb:22:3:22:15 | self | | -| raise.rb:19:10:19:19 | ExceptionA | raise.rb:14:1:23:3 | exit m2 (abnormal) | raise | +| raise.rb:19:10:19:19 | ExceptionA | raise.rb:14:1:23:3 | exit m2 (abnormal) | exception | | raise.rb:19:10:19:19 | ExceptionA | raise.rb:20:5:20:18 | self | match | | raise.rb:19:20:20:18 | then ... | raise.rb:19:3:20:18 | rescue ... | | | raise.rb:20:5:20:18 | call to puts | raise.rb:19:20:20:18 | then ... | | @@ -1924,7 +1924,7 @@ | raise.rb:27:5:29:7 | if ... | raise.rb:33:3:33:15 | self | | | raise.rb:27:8:27:8 | b | raise.rb:27:5:29:7 | if ... | false | | raise.rb:27:8:27:8 | b | raise.rb:28:7:28:22 | self | true | -| raise.rb:28:7:28:22 | call to raise | raise.rb:31:5:31:18 | self | raise | +| raise.rb:28:7:28:22 | call to raise | raise.rb:31:5:31:18 | self | exception | | raise.rb:28:7:28:22 | self | raise.rb:28:13:28:22 | ExceptionA | | | raise.rb:28:13:28:22 | ExceptionA | raise.rb:28:7:28:22 | call to raise | | | raise.rb:30:3:31:18 | rescue ... | raise.rb:33:3:33:15 | self | | @@ -1944,7 +1944,7 @@ | raise.rb:38:5:40:7 | if ... | raise.rb:44:3:44:15 | self | | | raise.rb:38:8:38:8 | b | raise.rb:38:5:40:7 | if ... | false | | raise.rb:38:8:38:8 | b | raise.rb:39:7:39:22 | self | true | -| raise.rb:39:7:39:22 | call to raise | raise.rb:41:13:41:13 | e | raise | +| raise.rb:39:7:39:22 | call to raise | raise.rb:41:13:41:13 | e | exception | | raise.rb:39:7:39:22 | self | raise.rb:39:13:39:22 | ExceptionA | | | raise.rb:39:13:39:22 | ExceptionA | raise.rb:39:7:39:22 | call to raise | | | raise.rb:41:3:42:22 | rescue ... | raise.rb:44:3:44:15 | self | | @@ -1965,7 +1965,7 @@ | raise.rb:49:5:51:7 | if ... | raise.rb:54:3:54:15 | self | | | raise.rb:49:8:49:8 | b | raise.rb:49:5:51:7 | if ... | false | | raise.rb:49:8:49:8 | b | raise.rb:50:7:50:22 | self | true | -| raise.rb:50:7:50:22 | call to raise | raise.rb:52:13:52:13 | e | raise | +| raise.rb:50:7:50:22 | call to raise | raise.rb:52:13:52:13 | e | exception | | raise.rb:50:7:50:22 | self | raise.rb:50:13:50:22 | ExceptionA | | | raise.rb:50:13:50:22 | ExceptionA | raise.rb:50:7:50:22 | call to raise | | | raise.rb:52:3:52:13 | rescue ... | raise.rb:54:3:54:15 | self | | @@ -1982,13 +1982,13 @@ | raise.rb:59:5:61:7 | if ... | raise.rb:65:3:65:15 | self | | | raise.rb:59:8:59:8 | b | raise.rb:59:5:61:7 | if ... | false | | raise.rb:59:8:59:8 | b | raise.rb:60:7:60:22 | self | true | -| raise.rb:60:7:60:22 | call to raise | raise.rb:62:10:62:19 | ExceptionA | raise | +| raise.rb:60:7:60:22 | call to raise | raise.rb:62:10:62:19 | ExceptionA | exception | | raise.rb:60:7:60:22 | self | raise.rb:60:13:60:22 | ExceptionA | | | raise.rb:60:13:60:22 | ExceptionA | raise.rb:60:7:60:22 | call to raise | | | raise.rb:62:3:63:22 | rescue ... | raise.rb:65:3:65:15 | self | | | raise.rb:62:10:62:19 | ExceptionA | raise.rb:62:22:62:31 | ExceptionB | no-match | | raise.rb:62:10:62:19 | ExceptionA | raise.rb:62:36:62:36 | e | match | -| raise.rb:62:22:62:31 | ExceptionB | raise.rb:57:1:66:3 | exit m6 (abnormal) | raise | +| raise.rb:62:22:62:31 | ExceptionB | raise.rb:57:1:66:3 | exit m6 (abnormal) | exception | | raise.rb:62:22:62:31 | ExceptionB | raise.rb:62:36:62:36 | e | match | | raise.rb:62:36:62:36 | e | raise.rb:63:5:63:22 | self | | | raise.rb:62:37:63:22 | then ... | raise.rb:62:3:63:22 | rescue ... | | @@ -2009,9 +2009,9 @@ | raise.rb:69:6:69:6 | x | raise.rb:69:10:69:10 | 2 | | | raise.rb:69:6:69:10 | ... > ... | raise.rb:70:5:70:17 | self | true | | raise.rb:69:6:69:10 | ... > ... | raise.rb:71:9:71:9 | x | false | -| raise.rb:69:6:69:10 | ... > ... | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:69:6:69:10 | ... > ... | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:69:10:69:10 | 2 | raise.rb:69:6:69:10 | ... > ... | | -| raise.rb:70:5:70:17 | call to raise | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:70:5:70:17 | call to raise | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:70:5:70:17 | self | raise.rb:70:12:70:16 | x > 2 | | | raise.rb:70:11:70:17 | "x > 2" | raise.rb:70:5:70:17 | call to raise | | | raise.rb:70:12:70:16 | x > 2 | raise.rb:70:11:70:17 | "x > 2" | | @@ -2019,29 +2019,29 @@ | raise.rb:71:9:71:9 | x | raise.rb:71:13:71:13 | 0 | | | raise.rb:71:9:71:13 | ... < ... | raise.rb:71:3:72:18 | elsif ... | false | | raise.rb:71:9:71:13 | ... < ... | raise.rb:72:13:72:17 | x < 0 | true | -| raise.rb:71:9:71:13 | ... < ... | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:71:9:71:13 | ... < ... | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:71:13:71:13 | 0 | raise.rb:71:9:71:13 | ... < ... | | | raise.rb:72:5:72:18 | return | raise.rb:76:3:76:15 | [ensure: return] self | return | | raise.rb:72:12:72:18 | "x < 0" | raise.rb:72:5:72:18 | return | | | raise.rb:72:13:72:17 | x < 0 | raise.rb:72:12:72:18 | "x < 0" | | -| raise.rb:74:3:74:20 | call to puts | raise.rb:76:3:76:15 | [ensure: raise] self | raise | +| raise.rb:74:3:74:20 | call to puts | raise.rb:76:3:76:15 | [ensure: exception] self | exception | | raise.rb:74:3:74:20 | call to puts | raise.rb:76:3:76:15 | self | | | raise.rb:74:3:74:20 | self | raise.rb:74:9:74:19 | 0 <= x <= 2 | | | raise.rb:74:8:74:20 | "0 <= x <= 2" | raise.rb:74:3:74:20 | call to puts | | | raise.rb:74:9:74:19 | 0 <= x <= 2 | raise.rb:74:8:74:20 | "0 <= x <= 2" | | -| raise.rb:75:1:76:15 | [ensure: raise] ensure ... | raise.rb:68:1:77:3 | exit m7 (abnormal) | raise | +| raise.rb:75:1:76:15 | [ensure: exception] ensure ... | raise.rb:68:1:77:3 | exit m7 (abnormal) | exception | | raise.rb:75:1:76:15 | [ensure: return] ensure ... | raise.rb:68:1:77:3 | exit m7 (normal) | return | | raise.rb:75:1:76:15 | ensure ... | raise.rb:68:1:77:3 | exit m7 (normal) | | -| raise.rb:76:3:76:15 | [ensure: raise] call to puts | raise.rb:75:1:76:15 | [ensure: raise] ensure ... | | -| raise.rb:76:3:76:15 | [ensure: raise] self | raise.rb:76:9:76:14 | [ensure: raise] ensure | | +| raise.rb:76:3:76:15 | [ensure: exception] call to puts | raise.rb:75:1:76:15 | [ensure: exception] ensure ... | | +| raise.rb:76:3:76:15 | [ensure: exception] self | raise.rb:76:9:76:14 | [ensure: exception] ensure | | | raise.rb:76:3:76:15 | [ensure: return] call to puts | raise.rb:75:1:76:15 | [ensure: return] ensure ... | | | raise.rb:76:3:76:15 | [ensure: return] self | raise.rb:76:9:76:14 | [ensure: return] ensure | | | raise.rb:76:3:76:15 | call to puts | raise.rb:75:1:76:15 | ensure ... | | | raise.rb:76:3:76:15 | self | raise.rb:76:9:76:14 | ensure | | | raise.rb:76:8:76:15 | "ensure" | raise.rb:76:3:76:15 | call to puts | | -| raise.rb:76:8:76:15 | [ensure: raise] "ensure" | raise.rb:76:3:76:15 | [ensure: raise] call to puts | | +| raise.rb:76:8:76:15 | [ensure: exception] "ensure" | raise.rb:76:3:76:15 | [ensure: exception] call to puts | | | raise.rb:76:8:76:15 | [ensure: return] "ensure" | raise.rb:76:3:76:15 | [ensure: return] call to puts | | -| raise.rb:76:9:76:14 | [ensure: raise] ensure | raise.rb:76:8:76:15 | [ensure: raise] "ensure" | | +| raise.rb:76:9:76:14 | [ensure: exception] ensure | raise.rb:76:8:76:15 | [ensure: exception] "ensure" | | | raise.rb:76:9:76:14 | [ensure: return] ensure | raise.rb:76:8:76:15 | [ensure: return] "ensure" | | | raise.rb:76:9:76:14 | ensure | raise.rb:76:8:76:15 | "ensure" | | | raise.rb:79:1:92:3 | enter m8 | raise.rb:79:8:79:8 | x | | @@ -2057,9 +2057,9 @@ | raise.rb:82:8:82:8 | x | raise.rb:82:12:82:12 | 2 | | | raise.rb:82:8:82:12 | ... > ... | raise.rb:83:7:83:19 | self | true | | raise.rb:82:8:82:12 | ... > ... | raise.rb:84:11:84:11 | x | false | -| raise.rb:82:8:82:12 | ... > ... | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:82:8:82:12 | ... > ... | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:82:12:82:12 | 2 | raise.rb:82:8:82:12 | ... > ... | | -| raise.rb:83:7:83:19 | call to raise | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:83:7:83:19 | call to raise | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:83:7:83:19 | self | raise.rb:83:14:83:18 | x > 2 | | | raise.rb:83:13:83:19 | "x > 2" | raise.rb:83:7:83:19 | call to raise | | | raise.rb:83:14:83:18 | x > 2 | raise.rb:83:13:83:19 | "x > 2" | | @@ -2067,29 +2067,29 @@ | raise.rb:84:11:84:11 | x | raise.rb:84:15:84:15 | 0 | | | raise.rb:84:11:84:15 | ... < ... | raise.rb:84:5:85:20 | elsif ... | false | | raise.rb:84:11:84:15 | ... < ... | raise.rb:85:15:85:19 | x < 0 | true | -| raise.rb:84:11:84:15 | ... < ... | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:84:11:84:15 | ... < ... | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:84:15:84:15 | 0 | raise.rb:84:11:84:15 | ... < ... | | | raise.rb:85:7:85:20 | return | raise.rb:89:5:89:17 | [ensure: return] self | return | | raise.rb:85:14:85:20 | "x < 0" | raise.rb:85:7:85:20 | return | | | raise.rb:85:15:85:19 | x < 0 | raise.rb:85:14:85:20 | "x < 0" | | -| raise.rb:87:5:87:22 | call to puts | raise.rb:89:5:89:17 | [ensure: raise] self | raise | +| raise.rb:87:5:87:22 | call to puts | raise.rb:89:5:89:17 | [ensure: exception] self | exception | | raise.rb:87:5:87:22 | call to puts | raise.rb:89:5:89:17 | self | | | raise.rb:87:5:87:22 | self | raise.rb:87:11:87:21 | 0 <= x <= 2 | | | raise.rb:87:10:87:22 | "0 <= x <= 2" | raise.rb:87:5:87:22 | call to puts | | | raise.rb:87:11:87:21 | 0 <= x <= 2 | raise.rb:87:10:87:22 | "0 <= x <= 2" | | -| raise.rb:88:3:89:17 | [ensure: raise] ensure ... | raise.rb:79:1:92:3 | exit m8 (abnormal) | raise | +| raise.rb:88:3:89:17 | [ensure: exception] ensure ... | raise.rb:79:1:92:3 | exit m8 (abnormal) | exception | | raise.rb:88:3:89:17 | [ensure: return] ensure ... | raise.rb:79:1:92:3 | exit m8 (normal) | return | | raise.rb:88:3:89:17 | ensure ... | raise.rb:91:3:91:15 | self | | -| raise.rb:89:5:89:17 | [ensure: raise] call to puts | raise.rb:88:3:89:17 | [ensure: raise] ensure ... | | -| raise.rb:89:5:89:17 | [ensure: raise] self | raise.rb:89:11:89:16 | [ensure: raise] ensure | | +| raise.rb:89:5:89:17 | [ensure: exception] call to puts | raise.rb:88:3:89:17 | [ensure: exception] ensure ... | | +| raise.rb:89:5:89:17 | [ensure: exception] self | raise.rb:89:11:89:16 | [ensure: exception] ensure | | | raise.rb:89:5:89:17 | [ensure: return] call to puts | raise.rb:88:3:89:17 | [ensure: return] ensure ... | | | raise.rb:89:5:89:17 | [ensure: return] self | raise.rb:89:11:89:16 | [ensure: return] ensure | | | raise.rb:89:5:89:17 | call to puts | raise.rb:88:3:89:17 | ensure ... | | | raise.rb:89:5:89:17 | self | raise.rb:89:11:89:16 | ensure | | | raise.rb:89:10:89:17 | "ensure" | raise.rb:89:5:89:17 | call to puts | | -| raise.rb:89:10:89:17 | [ensure: raise] "ensure" | raise.rb:89:5:89:17 | [ensure: raise] call to puts | | +| raise.rb:89:10:89:17 | [ensure: exception] "ensure" | raise.rb:89:5:89:17 | [ensure: exception] call to puts | | | raise.rb:89:10:89:17 | [ensure: return] "ensure" | raise.rb:89:5:89:17 | [ensure: return] call to puts | | -| raise.rb:89:11:89:16 | [ensure: raise] ensure | raise.rb:89:10:89:17 | [ensure: raise] "ensure" | | +| raise.rb:89:11:89:16 | [ensure: exception] ensure | raise.rb:89:10:89:17 | [ensure: exception] "ensure" | | | raise.rb:89:11:89:16 | [ensure: return] ensure | raise.rb:89:10:89:17 | [ensure: return] "ensure" | | | raise.rb:89:11:89:16 | ensure | raise.rb:89:10:89:17 | "ensure" | | | raise.rb:91:3:91:15 | call to puts | raise.rb:79:1:92:3 | exit m8 (normal) | | @@ -2104,7 +2104,7 @@ | raise.rb:94:11:94:12 | b1 | raise.rb:94:15:94:16 | b2 | | | raise.rb:94:15:94:16 | b2 | raise.rb:95:3:95:17 | self | | | raise.rb:95:3:95:17 | call to puts | raise.rb:97:8:97:8 | x | | -| raise.rb:95:3:95:17 | call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:95:3:95:17 | call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:95:3:95:17 | self | raise.rb:95:9:95:16 | Begin m9 | | | raise.rb:95:8:95:17 | "Begin m9" | raise.rb:95:3:95:17 | call to puts | | | raise.rb:95:9:95:16 | Begin m9 | raise.rb:95:8:95:17 | "Begin m9" | | @@ -2112,9 +2112,9 @@ | raise.rb:97:8:97:8 | x | raise.rb:97:12:97:12 | 2 | | | raise.rb:97:8:97:12 | ... > ... | raise.rb:98:7:98:19 | self | true | | raise.rb:97:8:97:12 | ... > ... | raise.rb:99:11:99:11 | x | false | -| raise.rb:97:8:97:12 | ... > ... | raise.rb:104:5:104:23 | [ensure: raise] self | raise | +| raise.rb:97:8:97:12 | ... > ... | raise.rb:104:5:104:23 | [ensure: exception] self | exception | | raise.rb:97:12:97:12 | 2 | raise.rb:97:8:97:12 | ... > ... | | -| raise.rb:98:7:98:19 | call to raise | raise.rb:104:5:104:23 | [ensure: raise] self | raise | +| raise.rb:98:7:98:19 | call to raise | raise.rb:104:5:104:23 | [ensure: exception] self | exception | | raise.rb:98:7:98:19 | self | raise.rb:98:14:98:18 | x > 2 | | | raise.rb:98:13:98:19 | "x > 2" | raise.rb:98:7:98:19 | call to raise | | | raise.rb:98:14:98:18 | x > 2 | raise.rb:98:13:98:19 | "x > 2" | | @@ -2122,130 +2122,130 @@ | raise.rb:99:11:99:11 | x | raise.rb:99:15:99:15 | 0 | | | raise.rb:99:11:99:15 | ... < ... | raise.rb:99:5:100:20 | elsif ... | false | | raise.rb:99:11:99:15 | ... < ... | raise.rb:100:15:100:19 | x < 0 | true | -| raise.rb:99:11:99:15 | ... < ... | raise.rb:104:5:104:23 | [ensure: raise] self | raise | +| raise.rb:99:11:99:15 | ... < ... | raise.rb:104:5:104:23 | [ensure: exception] self | exception | | raise.rb:99:15:99:15 | 0 | raise.rb:99:11:99:15 | ... < ... | | | raise.rb:100:7:100:20 | return | raise.rb:104:5:104:23 | [ensure: return] self | return | | raise.rb:100:14:100:20 | "x < 0" | raise.rb:100:7:100:20 | return | | | raise.rb:100:15:100:19 | x < 0 | raise.rb:100:14:100:20 | "x < 0" | | -| raise.rb:102:5:102:22 | call to puts | raise.rb:104:5:104:23 | [ensure: raise] self | raise | +| raise.rb:102:5:102:22 | call to puts | raise.rb:104:5:104:23 | [ensure: exception] self | exception | | raise.rb:102:5:102:22 | call to puts | raise.rb:104:5:104:23 | self | | | raise.rb:102:5:102:22 | self | raise.rb:102:11:102:21 | 0 <= x <= 2 | | | raise.rb:102:10:102:22 | "0 <= x <= 2" | raise.rb:102:5:102:22 | call to puts | | | raise.rb:102:11:102:21 | 0 <= x <= 2 | raise.rb:102:10:102:22 | "0 <= x <= 2" | | -| raise.rb:103:3:111:7 | [ensure: raise] ensure ... | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:103:3:111:7 | [ensure: exception] ensure ... | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:103:3:111:7 | [ensure: return] ensure ... | raise.rb:115:3:115:22 | [ensure: return] self | return | | raise.rb:103:3:111:7 | ensure ... | raise.rb:113:3:113:15 | self | | -| raise.rb:104:5:104:23 | [ensure: raise] call to puts | raise.rb:106:10:106:11 | [ensure: raise] b1 | | -| raise.rb:104:5:104:23 | [ensure: raise] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:104:5:104:23 | [ensure: raise] self | raise.rb:104:11:104:22 | [ensure: raise] outer ensure | | +| raise.rb:104:5:104:23 | [ensure: exception] call to puts | raise.rb:106:10:106:11 | [ensure: exception] b1 | | +| raise.rb:104:5:104:23 | [ensure: exception] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:104:5:104:23 | [ensure: exception] self | raise.rb:104:11:104:22 | [ensure: exception] outer ensure | | | raise.rb:104:5:104:23 | [ensure: return] call to puts | raise.rb:106:10:106:11 | [ensure: return] b1 | | -| raise.rb:104:5:104:23 | [ensure: return] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:104:5:104:23 | [ensure: return] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:104:5:104:23 | [ensure: return] self | raise.rb:104:11:104:22 | [ensure: return] outer ensure | | | raise.rb:104:5:104:23 | call to puts | raise.rb:106:10:106:11 | b1 | | -| raise.rb:104:5:104:23 | call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:104:5:104:23 | call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:104:5:104:23 | self | raise.rb:104:11:104:22 | outer ensure | | | raise.rb:104:10:104:23 | "outer ensure" | raise.rb:104:5:104:23 | call to puts | | -| raise.rb:104:10:104:23 | [ensure: raise] "outer ensure" | raise.rb:104:5:104:23 | [ensure: raise] call to puts | | +| raise.rb:104:10:104:23 | [ensure: exception] "outer ensure" | raise.rb:104:5:104:23 | [ensure: exception] call to puts | | | raise.rb:104:10:104:23 | [ensure: return] "outer ensure" | raise.rb:104:5:104:23 | [ensure: return] call to puts | | -| raise.rb:104:11:104:22 | [ensure: raise] outer ensure | raise.rb:104:10:104:23 | [ensure: raise] "outer ensure" | | +| raise.rb:104:11:104:22 | [ensure: exception] outer ensure | raise.rb:104:10:104:23 | [ensure: exception] "outer ensure" | | | raise.rb:104:11:104:22 | [ensure: return] outer ensure | raise.rb:104:10:104:23 | [ensure: return] "outer ensure" | | | raise.rb:104:11:104:22 | outer ensure | raise.rb:104:10:104:23 | "outer ensure" | | -| raise.rb:106:7:108:9 | [ensure: raise] if ... | raise.rb:110:7:110:25 | [ensure: raise] self | | +| raise.rb:106:7:108:9 | [ensure: exception] if ... | raise.rb:110:7:110:25 | [ensure: exception] self | | | raise.rb:106:7:108:9 | [ensure: return] if ... | raise.rb:110:7:110:25 | [ensure: return] self | | | raise.rb:106:7:108:9 | if ... | raise.rb:110:7:110:25 | self | | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:106:7:108:9 | [ensure: raise] if ... | false | -| raise.rb:106:10:106:11 | [ensure: raise] b1 | raise.rb:107:9:107:26 | [ensure: raise] self | true | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:106:7:108:9 | [ensure: exception] if ... | false | +| raise.rb:106:10:106:11 | [ensure: exception] b1 | raise.rb:107:9:107:26 | [ensure: exception] self | true | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:106:7:108:9 | [ensure: return] if ... | false | | raise.rb:106:10:106:11 | [ensure: return] b1 | raise.rb:107:9:107:26 | [ensure: return] self | true | | raise.rb:106:10:106:11 | b1 | raise.rb:106:7:108:9 | if ... | false | | raise.rb:106:10:106:11 | b1 | raise.rb:107:9:107:26 | self | true | -| raise.rb:107:9:107:26 | [ensure: raise] call to raise | raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] self | raise | -| raise.rb:107:9:107:26 | [ensure: raise] self | raise.rb:107:16:107:25 | [ensure: raise] b1 is true | | -| raise.rb:107:9:107:26 | [ensure: return] call to raise | raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] self | raise | +| raise.rb:107:9:107:26 | [ensure: exception] call to raise | raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] self | exception | +| raise.rb:107:9:107:26 | [ensure: exception] self | raise.rb:107:16:107:25 | [ensure: exception] b1 is true | | +| raise.rb:107:9:107:26 | [ensure: return] call to raise | raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] self | exception | | raise.rb:107:9:107:26 | [ensure: return] self | raise.rb:107:16:107:25 | [ensure: return] b1 is true | | -| raise.rb:107:9:107:26 | call to raise | raise.rb:110:7:110:25 | [ensure(1): raise] self | raise | +| raise.rb:107:9:107:26 | call to raise | raise.rb:110:7:110:25 | [ensure(1): exception] self | exception | | raise.rb:107:9:107:26 | self | raise.rb:107:16:107:25 | b1 is true | | | raise.rb:107:15:107:26 | "b1 is true" | raise.rb:107:9:107:26 | call to raise | | -| raise.rb:107:15:107:26 | [ensure: raise] "b1 is true" | raise.rb:107:9:107:26 | [ensure: raise] call to raise | | +| raise.rb:107:15:107:26 | [ensure: exception] "b1 is true" | raise.rb:107:9:107:26 | [ensure: exception] call to raise | | | raise.rb:107:15:107:26 | [ensure: return] "b1 is true" | raise.rb:107:9:107:26 | [ensure: return] call to raise | | -| raise.rb:107:16:107:25 | [ensure: raise] b1 is true | raise.rb:107:15:107:26 | [ensure: raise] "b1 is true" | | +| raise.rb:107:16:107:25 | [ensure: exception] b1 is true | raise.rb:107:15:107:26 | [ensure: exception] "b1 is true" | | | raise.rb:107:16:107:25 | [ensure: return] b1 is true | raise.rb:107:15:107:26 | [ensure: return] "b1 is true" | | | raise.rb:107:16:107:25 | b1 is true | raise.rb:107:15:107:26 | "b1 is true" | | -| raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:109:5:110:25 | [ensure: raise] ensure ... | raise.rb:103:3:111:7 | [ensure: raise] ensure ... | | -| raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:109:5:110:25 | [ensure: exception] ensure ... | raise.rb:103:3:111:7 | [ensure: exception] ensure ... | | +| raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:109:5:110:25 | [ensure: return] ensure ... | raise.rb:103:3:111:7 | [ensure: return] ensure ... | | | raise.rb:109:5:110:25 | ensure ... | raise.rb:103:3:111:7 | ensure ... | | -| raise.rb:110:7:110:25 | [ensure(1): raise] call to puts | raise.rb:109:5:110:25 | [ensure(1): raise] ensure ... | | -| raise.rb:110:7:110:25 | [ensure(1): raise] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:110:7:110:25 | [ensure(1): raise] self | raise.rb:110:13:110:24 | [ensure(1): raise] inner ensure | | -| raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] call to puts | raise.rb:109:5:110:25 | [ensure: raise, ensure(1): raise] ensure ... | | -| raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] self | raise.rb:110:13:110:24 | [ensure: raise, ensure(1): raise] inner ensure | | -| raise.rb:110:7:110:25 | [ensure: raise] call to puts | raise.rb:109:5:110:25 | [ensure: raise] ensure ... | | -| raise.rb:110:7:110:25 | [ensure: raise] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:110:7:110:25 | [ensure: raise] self | raise.rb:110:13:110:24 | [ensure: raise] inner ensure | | -| raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] call to puts | raise.rb:109:5:110:25 | [ensure: return, ensure(1): raise] ensure ... | | -| raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | -| raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] self | raise.rb:110:13:110:24 | [ensure: return, ensure(1): raise] inner ensure | | +| raise.rb:110:7:110:25 | [ensure(1): exception] call to puts | raise.rb:109:5:110:25 | [ensure(1): exception] ensure ... | | +| raise.rb:110:7:110:25 | [ensure(1): exception] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:110:7:110:25 | [ensure(1): exception] self | raise.rb:110:13:110:24 | [ensure(1): exception] inner ensure | | +| raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] call to puts | raise.rb:109:5:110:25 | [ensure: exception, ensure(1): exception] ensure ... | | +| raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] self | raise.rb:110:13:110:24 | [ensure: exception, ensure(1): exception] inner ensure | | +| raise.rb:110:7:110:25 | [ensure: exception] call to puts | raise.rb:109:5:110:25 | [ensure: exception] ensure ... | | +| raise.rb:110:7:110:25 | [ensure: exception] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:110:7:110:25 | [ensure: exception] self | raise.rb:110:13:110:24 | [ensure: exception] inner ensure | | +| raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] call to puts | raise.rb:109:5:110:25 | [ensure: return, ensure(1): exception] ensure ... | | +| raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | +| raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] self | raise.rb:110:13:110:24 | [ensure: return, ensure(1): exception] inner ensure | | | raise.rb:110:7:110:25 | [ensure: return] call to puts | raise.rb:109:5:110:25 | [ensure: return] ensure ... | | -| raise.rb:110:7:110:25 | [ensure: return] call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:110:7:110:25 | [ensure: return] call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:110:7:110:25 | [ensure: return] self | raise.rb:110:13:110:24 | [ensure: return] inner ensure | | | raise.rb:110:7:110:25 | call to puts | raise.rb:109:5:110:25 | ensure ... | | -| raise.rb:110:7:110:25 | call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:110:7:110:25 | call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:110:7:110:25 | self | raise.rb:110:13:110:24 | inner ensure | | | raise.rb:110:12:110:25 | "inner ensure" | raise.rb:110:7:110:25 | call to puts | | -| raise.rb:110:12:110:25 | [ensure(1): raise] "inner ensure" | raise.rb:110:7:110:25 | [ensure(1): raise] call to puts | | -| raise.rb:110:12:110:25 | [ensure: raise, ensure(1): raise] "inner ensure" | raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] call to puts | | -| raise.rb:110:12:110:25 | [ensure: raise] "inner ensure" | raise.rb:110:7:110:25 | [ensure: raise] call to puts | | -| raise.rb:110:12:110:25 | [ensure: return, ensure(1): raise] "inner ensure" | raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] call to puts | | +| raise.rb:110:12:110:25 | [ensure(1): exception] "inner ensure" | raise.rb:110:7:110:25 | [ensure(1): exception] call to puts | | +| raise.rb:110:12:110:25 | [ensure: exception, ensure(1): exception] "inner ensure" | raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] call to puts | | +| raise.rb:110:12:110:25 | [ensure: exception] "inner ensure" | raise.rb:110:7:110:25 | [ensure: exception] call to puts | | +| raise.rb:110:12:110:25 | [ensure: return, ensure(1): exception] "inner ensure" | raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] call to puts | | | raise.rb:110:12:110:25 | [ensure: return] "inner ensure" | raise.rb:110:7:110:25 | [ensure: return] call to puts | | -| raise.rb:110:13:110:24 | [ensure(1): raise] inner ensure | raise.rb:110:12:110:25 | [ensure(1): raise] "inner ensure" | | -| raise.rb:110:13:110:24 | [ensure: raise, ensure(1): raise] inner ensure | raise.rb:110:12:110:25 | [ensure: raise, ensure(1): raise] "inner ensure" | | -| raise.rb:110:13:110:24 | [ensure: raise] inner ensure | raise.rb:110:12:110:25 | [ensure: raise] "inner ensure" | | -| raise.rb:110:13:110:24 | [ensure: return, ensure(1): raise] inner ensure | raise.rb:110:12:110:25 | [ensure: return, ensure(1): raise] "inner ensure" | | +| raise.rb:110:13:110:24 | [ensure(1): exception] inner ensure | raise.rb:110:12:110:25 | [ensure(1): exception] "inner ensure" | | +| raise.rb:110:13:110:24 | [ensure: exception, ensure(1): exception] inner ensure | raise.rb:110:12:110:25 | [ensure: exception, ensure(1): exception] "inner ensure" | | +| raise.rb:110:13:110:24 | [ensure: exception] inner ensure | raise.rb:110:12:110:25 | [ensure: exception] "inner ensure" | | +| raise.rb:110:13:110:24 | [ensure: return, ensure(1): exception] inner ensure | raise.rb:110:12:110:25 | [ensure: return, ensure(1): exception] "inner ensure" | | | raise.rb:110:13:110:24 | [ensure: return] inner ensure | raise.rb:110:12:110:25 | [ensure: return] "inner ensure" | | | raise.rb:110:13:110:24 | inner ensure | raise.rb:110:12:110:25 | "inner ensure" | | -| raise.rb:113:3:113:15 | call to puts | raise.rb:115:3:115:22 | [ensure: raise] self | raise | +| raise.rb:113:3:113:15 | call to puts | raise.rb:115:3:115:22 | [ensure: exception] self | exception | | raise.rb:113:3:113:15 | call to puts | raise.rb:115:3:115:22 | self | | | raise.rb:113:3:113:15 | self | raise.rb:113:9:113:14 | End m9 | | | raise.rb:113:8:113:15 | "End m9" | raise.rb:113:3:113:15 | call to puts | | | raise.rb:113:9:113:14 | End m9 | raise.rb:113:8:113:15 | "End m9" | | -| raise.rb:114:1:118:5 | [ensure: raise] ensure ... | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise | +| raise.rb:114:1:118:5 | [ensure: exception] ensure ... | raise.rb:94:1:119:3 | exit m9 (abnormal) | exception | | raise.rb:114:1:118:5 | [ensure: return] ensure ... | raise.rb:94:1:119:3 | exit m9 (normal) | return | | raise.rb:114:1:118:5 | ensure ... | raise.rb:94:1:119:3 | exit m9 (normal) | | -| raise.rb:115:3:115:22 | [ensure: raise] call to puts | raise.rb:116:6:116:7 | [ensure: raise] b2 | | -| raise.rb:115:3:115:22 | [ensure: raise] self | raise.rb:115:9:115:21 | [ensure: raise] method ensure | | +| raise.rb:115:3:115:22 | [ensure: exception] call to puts | raise.rb:116:6:116:7 | [ensure: exception] b2 | | +| raise.rb:115:3:115:22 | [ensure: exception] self | raise.rb:115:9:115:21 | [ensure: exception] method ensure | | | raise.rb:115:3:115:22 | [ensure: return] call to puts | raise.rb:116:6:116:7 | [ensure: return] b2 | | | raise.rb:115:3:115:22 | [ensure: return] self | raise.rb:115:9:115:21 | [ensure: return] method ensure | | | raise.rb:115:3:115:22 | call to puts | raise.rb:116:6:116:7 | b2 | | | raise.rb:115:3:115:22 | self | raise.rb:115:9:115:21 | method ensure | | | raise.rb:115:8:115:22 | "method ensure" | raise.rb:115:3:115:22 | call to puts | | -| raise.rb:115:8:115:22 | [ensure: raise] "method ensure" | raise.rb:115:3:115:22 | [ensure: raise] call to puts | | +| raise.rb:115:8:115:22 | [ensure: exception] "method ensure" | raise.rb:115:3:115:22 | [ensure: exception] call to puts | | | raise.rb:115:8:115:22 | [ensure: return] "method ensure" | raise.rb:115:3:115:22 | [ensure: return] call to puts | | -| raise.rb:115:9:115:21 | [ensure: raise] method ensure | raise.rb:115:8:115:22 | [ensure: raise] "method ensure" | | +| raise.rb:115:9:115:21 | [ensure: exception] method ensure | raise.rb:115:8:115:22 | [ensure: exception] "method ensure" | | | raise.rb:115:9:115:21 | [ensure: return] method ensure | raise.rb:115:8:115:22 | [ensure: return] "method ensure" | | | raise.rb:115:9:115:21 | method ensure | raise.rb:115:8:115:22 | "method ensure" | | -| raise.rb:116:3:118:5 | [ensure: raise] if ... | raise.rb:114:1:118:5 | [ensure: raise] ensure ... | | +| raise.rb:116:3:118:5 | [ensure: exception] if ... | raise.rb:114:1:118:5 | [ensure: exception] ensure ... | | | raise.rb:116:3:118:5 | [ensure: return] if ... | raise.rb:114:1:118:5 | [ensure: return] ensure ... | | | raise.rb:116:3:118:5 | if ... | raise.rb:114:1:118:5 | ensure ... | | -| raise.rb:116:6:116:7 | [ensure: raise] b2 | raise.rb:116:3:118:5 | [ensure: raise] if ... | false | -| raise.rb:116:6:116:7 | [ensure: raise] b2 | raise.rb:117:5:117:22 | [ensure: raise] self | true | +| raise.rb:116:6:116:7 | [ensure: exception] b2 | raise.rb:116:3:118:5 | [ensure: exception] if ... | false | +| raise.rb:116:6:116:7 | [ensure: exception] b2 | raise.rb:117:5:117:22 | [ensure: exception] self | true | | raise.rb:116:6:116:7 | [ensure: return] b2 | raise.rb:116:3:118:5 | [ensure: return] if ... | false | | raise.rb:116:6:116:7 | [ensure: return] b2 | raise.rb:117:5:117:22 | [ensure: return] self | true | | raise.rb:116:6:116:7 | b2 | raise.rb:116:3:118:5 | if ... | false | | raise.rb:116:6:116:7 | b2 | raise.rb:117:5:117:22 | self | true | -| raise.rb:117:5:117:22 | [ensure: raise] call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise | -| raise.rb:117:5:117:22 | [ensure: raise] self | raise.rb:117:12:117:21 | [ensure: raise] b2 is true | | -| raise.rb:117:5:117:22 | [ensure: return] call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise | +| raise.rb:117:5:117:22 | [ensure: exception] call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | exception | +| raise.rb:117:5:117:22 | [ensure: exception] self | raise.rb:117:12:117:21 | [ensure: exception] b2 is true | | +| raise.rb:117:5:117:22 | [ensure: return] call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | exception | | raise.rb:117:5:117:22 | [ensure: return] self | raise.rb:117:12:117:21 | [ensure: return] b2 is true | | -| raise.rb:117:5:117:22 | call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | raise | +| raise.rb:117:5:117:22 | call to raise | raise.rb:94:1:119:3 | exit m9 (abnormal) | exception | | raise.rb:117:5:117:22 | self | raise.rb:117:12:117:21 | b2 is true | | | raise.rb:117:11:117:22 | "b2 is true" | raise.rb:117:5:117:22 | call to raise | | -| raise.rb:117:11:117:22 | [ensure: raise] "b2 is true" | raise.rb:117:5:117:22 | [ensure: raise] call to raise | | +| raise.rb:117:11:117:22 | [ensure: exception] "b2 is true" | raise.rb:117:5:117:22 | [ensure: exception] call to raise | | | raise.rb:117:11:117:22 | [ensure: return] "b2 is true" | raise.rb:117:5:117:22 | [ensure: return] call to raise | | -| raise.rb:117:12:117:21 | [ensure: raise] b2 is true | raise.rb:117:11:117:22 | [ensure: raise] "b2 is true" | | +| raise.rb:117:12:117:21 | [ensure: exception] b2 is true | raise.rb:117:11:117:22 | [ensure: exception] "b2 is true" | | | raise.rb:117:12:117:21 | [ensure: return] b2 is true | raise.rb:117:11:117:22 | [ensure: return] "b2 is true" | | | raise.rb:117:12:117:21 | b2 is true | raise.rb:117:11:117:22 | "b2 is true" | | | raise.rb:121:1:126:3 | enter m10 | raise.rb:121:9:121:9 | p | | @@ -2254,7 +2254,7 @@ | raise.rb:121:1:126:3 | m10 | raise.rb:128:1:140:3 | m11 | | | raise.rb:121:9:121:9 | p | raise.rb:121:14:121:30 | self | false, no-match, true | | raise.rb:121:9:121:9 | p | raise.rb:125:3:125:51 | self | match | -| raise.rb:121:14:121:30 | call to raise | raise.rb:121:1:126:3 | exit m10 (abnormal) | raise | +| raise.rb:121:14:121:30 | call to raise | raise.rb:121:1:126:3 | exit m10 (abnormal) | exception | | raise.rb:121:14:121:30 | self | raise.rb:121:21:121:29 | Exception | | | raise.rb:121:20:121:30 | "Exception" | raise.rb:121:14:121:30 | call to raise | | | raise.rb:121:21:121:29 | Exception | raise.rb:121:20:121:30 | "Exception" | | @@ -2271,7 +2271,7 @@ | raise.rb:130:5:132:7 | if ... | raise.rb:137:5:137:17 | self | | | raise.rb:130:8:130:8 | b | raise.rb:130:5:132:7 | if ... | false | | raise.rb:130:8:130:8 | b | raise.rb:131:7:131:22 | self | true | -| raise.rb:131:7:131:22 | call to raise | raise.rb:133:10:133:19 | ExceptionA | raise | +| raise.rb:131:7:131:22 | call to raise | raise.rb:133:10:133:19 | ExceptionA | exception | | raise.rb:131:7:131:22 | self | raise.rb:131:13:131:22 | ExceptionA | | | raise.rb:131:13:131:22 | ExceptionA | raise.rb:131:7:131:22 | call to raise | | | raise.rb:133:3:133:19 | rescue ... | raise.rb:137:5:137:17 | self | | @@ -2279,22 +2279,22 @@ | raise.rb:133:10:133:19 | ExceptionA | raise.rb:134:10:134:19 | ExceptionB | no-match | | raise.rb:134:3:135:21 | rescue ... | raise.rb:137:5:137:17 | self | | | raise.rb:134:10:134:19 | ExceptionB | raise.rb:135:5:135:21 | self | match | -| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: raise] self | raise | +| raise.rb:134:10:134:19 | ExceptionB | raise.rb:137:5:137:17 | [ensure: exception] self | exception | | raise.rb:134:20:135:21 | then ... | raise.rb:134:3:135:21 | rescue ... | | | raise.rb:135:5:135:21 | call to puts | raise.rb:134:20:135:21 | then ... | | | raise.rb:135:5:135:21 | self | raise.rb:135:11:135:20 | ExceptionB | | | raise.rb:135:10:135:21 | "ExceptionB" | raise.rb:135:5:135:21 | call to puts | | | raise.rb:135:11:135:20 | ExceptionB | raise.rb:135:10:135:21 | "ExceptionB" | | -| raise.rb:136:3:137:17 | [ensure: raise] ensure ... | raise.rb:128:1:140:3 | exit m11 (abnormal) | raise | +| raise.rb:136:3:137:17 | [ensure: exception] ensure ... | raise.rb:128:1:140:3 | exit m11 (abnormal) | exception | | raise.rb:136:3:137:17 | ensure ... | raise.rb:139:3:139:16 | self | | -| raise.rb:137:5:137:17 | [ensure: raise] call to puts | raise.rb:136:3:137:17 | [ensure: raise] ensure ... | | -| raise.rb:137:5:137:17 | [ensure: raise] self | raise.rb:137:11:137:16 | [ensure: raise] Ensure | | +| raise.rb:137:5:137:17 | [ensure: exception] call to puts | raise.rb:136:3:137:17 | [ensure: exception] ensure ... | | +| raise.rb:137:5:137:17 | [ensure: exception] self | raise.rb:137:11:137:16 | [ensure: exception] Ensure | | | raise.rb:137:5:137:17 | call to puts | raise.rb:136:3:137:17 | ensure ... | | | raise.rb:137:5:137:17 | self | raise.rb:137:11:137:16 | Ensure | | | raise.rb:137:10:137:17 | "Ensure" | raise.rb:137:5:137:17 | call to puts | | -| raise.rb:137:10:137:17 | [ensure: raise] "Ensure" | raise.rb:137:5:137:17 | [ensure: raise] call to puts | | +| raise.rb:137:10:137:17 | [ensure: exception] "Ensure" | raise.rb:137:5:137:17 | [ensure: exception] call to puts | | | raise.rb:137:11:137:16 | Ensure | raise.rb:137:10:137:17 | "Ensure" | | -| raise.rb:137:11:137:16 | [ensure: raise] Ensure | raise.rb:137:10:137:17 | [ensure: raise] "Ensure" | | +| raise.rb:137:11:137:16 | [ensure: exception] Ensure | raise.rb:137:10:137:17 | [ensure: exception] "Ensure" | | | raise.rb:139:3:139:16 | call to puts | raise.rb:128:1:140:3 | exit m11 (normal) | | | raise.rb:139:3:139:16 | self | raise.rb:139:9:139:15 | End m11 | | | raise.rb:139:8:139:16 | "End m11" | raise.rb:139:3:139:16 | call to puts | | @@ -2306,13 +2306,13 @@ | raise.rb:143:3:145:5 | if ... | raise.rb:147:10:147:10 | 3 | | | raise.rb:143:6:143:6 | b | raise.rb:143:3:145:5 | if ... | false | | raise.rb:143:6:143:6 | b | raise.rb:144:5:144:12 | self | true | -| raise.rb:144:5:144:12 | call to raise | raise.rb:147:10:147:10 | [ensure: raise] 3 | raise | +| raise.rb:144:5:144:12 | call to raise | raise.rb:147:10:147:10 | [ensure: exception] 3 | exception | | raise.rb:144:5:144:12 | self | raise.rb:144:11:144:12 | "" | | | raise.rb:144:11:144:12 | "" | raise.rb:144:5:144:12 | call to raise | | -| raise.rb:147:3:147:10 | [ensure: raise] return | raise.rb:142:1:148:3 | exit m12 (normal) | return | +| raise.rb:147:3:147:10 | [ensure: exception] return | raise.rb:142:1:148:3 | exit m12 (normal) | return | | raise.rb:147:3:147:10 | return | raise.rb:142:1:148:3 | exit m12 (normal) | return | | raise.rb:147:10:147:10 | 3 | raise.rb:147:3:147:10 | return | | -| raise.rb:147:10:147:10 | [ensure: raise] 3 | raise.rb:147:3:147:10 | [ensure: raise] return | | +| raise.rb:147:10:147:10 | [ensure: exception] 3 | raise.rb:147:3:147:10 | [ensure: exception] return | | | raise.rb:150:1:152:3 | enter m13 | raise.rb:151:1:151:6 | ensure ... | | | raise.rb:150:1:152:3 | exit m13 (normal) | raise.rb:150:1:152:3 | exit m13 | | | raise.rb:150:1:152:3 | m13 | raise.rb:154:1:156:3 | m14 | | @@ -2328,7 +2328,7 @@ | raise.rb:155:16:155:50 | exit { ... } (normal) | raise.rb:155:16:155:50 | exit { ... } | | | raise.rb:155:16:155:50 | { ... } | raise.rb:155:3:155:50 | call to each | | | raise.rb:155:19:155:22 | elem | raise.rb:155:37:155:43 | element | | -| raise.rb:155:25:155:32 | call to raise | raise.rb:155:16:155:50 | exit { ... } (abnormal) | raise | +| raise.rb:155:25:155:32 | call to raise | raise.rb:155:16:155:50 | exit { ... } (abnormal) | exception | | raise.rb:155:25:155:32 | self | raise.rb:155:31:155:32 | "" | | | raise.rb:155:25:155:48 | ... if ... | raise.rb:155:16:155:50 | exit { ... } (normal) | | | raise.rb:155:31:155:32 | "" | raise.rb:155:25:155:32 | call to raise | | @@ -2350,7 +2350,7 @@ | raise.rb:160:9:162:7 | exit -> { ... } (abnormal) | raise.rb:160:9:162:7 | exit -> { ... } | | | raise.rb:160:9:162:7 | exit -> { ... } (normal) | raise.rb:160:9:162:7 | exit -> { ... } | | | raise.rb:160:12:160:12 | x | raise.rb:161:23:161:23 | x | | -| raise.rb:161:7:161:14 | call to raise | raise.rb:160:9:162:7 | exit -> { ... } (abnormal) | raise | +| raise.rb:161:7:161:14 | call to raise | raise.rb:160:9:162:7 | exit -> { ... } (abnormal) | exception | | raise.rb:161:7:161:14 | self | raise.rb:161:13:161:14 | "" | | | raise.rb:161:7:161:23 | ... unless ... | raise.rb:160:9:162:7 | exit -> { ... } (normal) | | | raise.rb:161:13:161:14 | "" | raise.rb:161:7:161:14 | call to raise | | @@ -2361,7 +2361,7 @@ | raise.rb:167:3:169:5 | exit m (abnormal) | raise.rb:167:3:169:5 | exit m | | | raise.rb:167:3:169:5 | m | raise.rb:172:1:182:3 | m16 | | | raise.rb:167:7:167:10 | self | raise.rb:167:3:169:5 | m | | -| raise.rb:168:5:168:12 | call to raise | raise.rb:167:3:169:5 | exit m (abnormal) | raise | +| raise.rb:168:5:168:12 | call to raise | raise.rb:167:3:169:5 | exit m (abnormal) | exception | | raise.rb:168:5:168:12 | self | raise.rb:168:11:168:12 | "" | | | raise.rb:168:11:168:12 | "" | raise.rb:168:5:168:12 | call to raise | | | raise.rb:172:1:182:3 | enter m16 | raise.rb:172:9:172:10 | b1 | | @@ -2373,19 +2373,19 @@ | raise.rb:174:8:174:9 | b1 | raise.rb:174:8:174:23 | [true] ... \|\| ... | true | | raise.rb:174:8:174:9 | b1 | raise.rb:174:14:174:15 | b2 | false | | raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:177:14:177:14 | 2 | false | -| raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | raise | +| raise.rb:174:8:174:23 | [false] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | exception | | raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:175:14:175:14 | 1 | true | -| raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | raise | +| raise.rb:174:8:174:23 | [true] ... \|\| ... | raise.rb:179:10:179:19 | ExceptionA | exception | | raise.rb:174:14:174:15 | b2 | raise.rb:174:20:174:23 | true | | | raise.rb:174:14:174:23 | ... == ... | raise.rb:174:8:174:23 | [false] ... \|\| ... | false | | raise.rb:174:14:174:23 | ... == ... | raise.rb:174:8:174:23 | [true] ... \|\| ... | true | -| raise.rb:174:14:174:23 | ... == ... | raise.rb:179:10:179:19 | ExceptionA | raise | +| raise.rb:174:14:174:23 | ... == ... | raise.rb:179:10:179:19 | ExceptionA | exception | | raise.rb:174:20:174:23 | true | raise.rb:174:14:174:23 | ... == ... | | | raise.rb:175:7:175:14 | return | raise.rb:172:1:182:3 | exit m16 (normal) | return | | raise.rb:175:14:175:14 | 1 | raise.rb:175:7:175:14 | return | | | raise.rb:177:7:177:14 | return | raise.rb:172:1:182:3 | exit m16 (normal) | return | | raise.rb:177:14:177:14 | 2 | raise.rb:177:7:177:14 | return | | -| raise.rb:179:10:179:19 | ExceptionA | raise.rb:172:1:182:3 | exit m16 (abnormal) | raise | +| raise.rb:179:10:179:19 | ExceptionA | raise.rb:172:1:182:3 | exit m16 (abnormal) | exception | | raise.rb:179:10:179:19 | ExceptionA | raise.rb:180:12:180:12 | 3 | match | | raise.rb:180:5:180:12 | return | raise.rb:172:1:182:3 | exit m16 (normal) | return | | raise.rb:180:12:180:12 | 3 | raise.rb:180:5:180:12 | return | | diff --git a/ruby/ql/test/library-tests/controlflow/graph/Nodes.expected b/ruby/ql/test/library-tests/controlflow/graph/Nodes.expected index 2bc683f894e4..54cf1d085433 100644 --- a/ruby/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/ruby/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -1,10 +1,10 @@ callsWithNoArguments -| break_ensure.rb:8:6:8:13 | [ensure: raise] call to elements | +| break_ensure.rb:8:6:8:13 | [ensure: exception] call to elements | | break_ensure.rb:8:6:8:13 | call to elements | -| break_ensure.rb:8:6:8:18 | [ensure: raise] call to nil? | +| break_ensure.rb:8:6:8:18 | [ensure: exception] call to nil? | | break_ensure.rb:8:6:8:18 | call to nil? | | break_ensure.rb:20:10:20:15 | [ensure: break] call to nil? | -| break_ensure.rb:20:10:20:15 | [ensure: raise] call to nil? | +| break_ensure.rb:20:10:20:15 | [ensure: exception] call to nil? | | break_ensure.rb:20:10:20:15 | call to nil? | | break_ensure.rb:29:8:29:13 | call to nil? | | case.rb:2:8:2:9 | call to x1 | @@ -72,25 +72,25 @@ callsWithNoArguments positionalArguments | break_ensure.rb:2:9:2:13 | ... < ... | break_ensure.rb:2:13:2:13 | 0 | | break_ensure.rb:3:8:3:12 | ... > ... | break_ensure.rb:3:12:3:12 | 0 | -| break_ensure.rb:9:5:9:23 | [ensure: raise] call to puts | break_ensure.rb:9:10:9:23 | [ensure: raise] "elements nil" | +| break_ensure.rb:9:5:9:23 | [ensure: exception] call to puts | break_ensure.rb:9:10:9:23 | [ensure: exception] "elements nil" | | break_ensure.rb:9:5:9:23 | call to puts | break_ensure.rb:9:10:9:23 | "elements nil" | | break_ensure.rb:14:9:14:13 | ... < ... | break_ensure.rb:14:13:14:13 | 0 | | break_ensure.rb:16:10:16:14 | ... > ... | break_ensure.rb:16:14:16:14 | 0 | | break_ensure.rb:21:9:21:20 | [ensure: break] call to puts | break_ensure.rb:21:14:21:20 | [ensure: break] "y nil" | -| break_ensure.rb:21:9:21:20 | [ensure: raise] call to puts | break_ensure.rb:21:14:21:20 | [ensure: raise] "y nil" | +| break_ensure.rb:21:9:21:20 | [ensure: exception] call to puts | break_ensure.rb:21:14:21:20 | [ensure: exception] "y nil" | | break_ensure.rb:21:9:21:20 | call to puts | break_ensure.rb:21:14:21:20 | "y nil" | | break_ensure.rb:33:11:33:15 | ... < ... | break_ensure.rb:33:15:33:15 | 0 | -| break_ensure.rb:33:11:33:15 | [ensure: raise] ... < ... | break_ensure.rb:33:15:33:15 | [ensure: raise] 0 | +| break_ensure.rb:33:11:33:15 | [ensure: exception] ... < ... | break_ensure.rb:33:15:33:15 | [ensure: exception] 0 | | break_ensure.rb:33:11:33:15 | [ensure: return] ... < ... | break_ensure.rb:33:15:33:15 | [ensure: return] 0 | | break_ensure.rb:35:12:35:16 | ... > ... | break_ensure.rb:35:16:35:16 | 0 | -| break_ensure.rb:35:12:35:16 | [ensure: raise] ... > ... | break_ensure.rb:35:16:35:16 | [ensure: raise] 0 | +| break_ensure.rb:35:12:35:16 | [ensure: exception] ... > ... | break_ensure.rb:35:16:35:16 | [ensure: exception] 0 | | break_ensure.rb:35:12:35:16 | [ensure: return] ... > ... | break_ensure.rb:35:16:35:16 | [ensure: return] 0 | | break_ensure.rb:41:3:41:13 | call to puts | break_ensure.rb:41:8:41:13 | "Done" | | break_ensure.rb:45:9:45:13 | ... < ... | break_ensure.rb:45:13:45:13 | 0 | | break_ensure.rb:47:10:47:14 | ... > ... | break_ensure.rb:47:14:47:14 | 1 | | break_ensure.rb:48:9:48:16 | call to raise | break_ensure.rb:48:15:48:16 | "" | | break_ensure.rb:51:10:51:14 | ... > ... | break_ensure.rb:51:14:51:14 | 0 | -| break_ensure.rb:51:10:51:14 | [ensure: raise] ... > ... | break_ensure.rb:51:14:51:14 | [ensure: raise] 0 | +| break_ensure.rb:51:10:51:14 | [ensure: exception] ... > ... | break_ensure.rb:51:14:51:14 | [ensure: exception] 0 | | case.rb:3:29:3:37 | call to puts | case.rb:3:34:3:37 | "x2" | | case.rb:4:17:4:24 | call to puts | case.rb:4:22:4:24 | "2" | | case.rb:14:13:14:18 | ... == ... | case.rb:14:18:14:18 | 5 | @@ -319,7 +319,7 @@ positionalArguments | raise.rb:70:5:70:17 | call to raise | raise.rb:70:11:70:17 | "x > 2" | | raise.rb:71:9:71:13 | ... < ... | raise.rb:71:13:71:13 | 0 | | raise.rb:74:3:74:20 | call to puts | raise.rb:74:8:74:20 | "0 <= x <= 2" | -| raise.rb:76:3:76:15 | [ensure: raise] call to puts | raise.rb:76:8:76:15 | [ensure: raise] "ensure" | +| raise.rb:76:3:76:15 | [ensure: exception] call to puts | raise.rb:76:8:76:15 | [ensure: exception] "ensure" | | raise.rb:76:3:76:15 | [ensure: return] call to puts | raise.rb:76:8:76:15 | [ensure: return] "ensure" | | raise.rb:76:3:76:15 | call to puts | raise.rb:76:8:76:15 | "ensure" | | raise.rb:80:3:80:17 | call to puts | raise.rb:80:8:80:17 | "Begin m8" | @@ -327,7 +327,7 @@ positionalArguments | raise.rb:83:7:83:19 | call to raise | raise.rb:83:13:83:19 | "x > 2" | | raise.rb:84:11:84:15 | ... < ... | raise.rb:84:15:84:15 | 0 | | raise.rb:87:5:87:22 | call to puts | raise.rb:87:10:87:22 | "0 <= x <= 2" | -| raise.rb:89:5:89:17 | [ensure: raise] call to puts | raise.rb:89:10:89:17 | [ensure: raise] "ensure" | +| raise.rb:89:5:89:17 | [ensure: exception] call to puts | raise.rb:89:10:89:17 | [ensure: exception] "ensure" | | raise.rb:89:5:89:17 | [ensure: return] call to puts | raise.rb:89:10:89:17 | [ensure: return] "ensure" | | raise.rb:89:5:89:17 | call to puts | raise.rb:89:10:89:17 | "ensure" | | raise.rb:91:3:91:15 | call to puts | raise.rb:91:8:91:15 | "End m8" | @@ -336,30 +336,30 @@ positionalArguments | raise.rb:98:7:98:19 | call to raise | raise.rb:98:13:98:19 | "x > 2" | | raise.rb:99:11:99:15 | ... < ... | raise.rb:99:15:99:15 | 0 | | raise.rb:102:5:102:22 | call to puts | raise.rb:102:10:102:22 | "0 <= x <= 2" | -| raise.rb:104:5:104:23 | [ensure: raise] call to puts | raise.rb:104:10:104:23 | [ensure: raise] "outer ensure" | +| raise.rb:104:5:104:23 | [ensure: exception] call to puts | raise.rb:104:10:104:23 | [ensure: exception] "outer ensure" | | raise.rb:104:5:104:23 | [ensure: return] call to puts | raise.rb:104:10:104:23 | [ensure: return] "outer ensure" | | raise.rb:104:5:104:23 | call to puts | raise.rb:104:10:104:23 | "outer ensure" | -| raise.rb:107:9:107:26 | [ensure: raise] call to raise | raise.rb:107:15:107:26 | [ensure: raise] "b1 is true" | +| raise.rb:107:9:107:26 | [ensure: exception] call to raise | raise.rb:107:15:107:26 | [ensure: exception] "b1 is true" | | raise.rb:107:9:107:26 | [ensure: return] call to raise | raise.rb:107:15:107:26 | [ensure: return] "b1 is true" | | raise.rb:107:9:107:26 | call to raise | raise.rb:107:15:107:26 | "b1 is true" | -| raise.rb:110:7:110:25 | [ensure(1): raise] call to puts | raise.rb:110:12:110:25 | [ensure(1): raise] "inner ensure" | -| raise.rb:110:7:110:25 | [ensure: raise, ensure(1): raise] call to puts | raise.rb:110:12:110:25 | [ensure: raise, ensure(1): raise] "inner ensure" | -| raise.rb:110:7:110:25 | [ensure: raise] call to puts | raise.rb:110:12:110:25 | [ensure: raise] "inner ensure" | -| raise.rb:110:7:110:25 | [ensure: return, ensure(1): raise] call to puts | raise.rb:110:12:110:25 | [ensure: return, ensure(1): raise] "inner ensure" | +| raise.rb:110:7:110:25 | [ensure(1): exception] call to puts | raise.rb:110:12:110:25 | [ensure(1): exception] "inner ensure" | +| raise.rb:110:7:110:25 | [ensure: exception, ensure(1): exception] call to puts | raise.rb:110:12:110:25 | [ensure: exception, ensure(1): exception] "inner ensure" | +| raise.rb:110:7:110:25 | [ensure: exception] call to puts | raise.rb:110:12:110:25 | [ensure: exception] "inner ensure" | +| raise.rb:110:7:110:25 | [ensure: return, ensure(1): exception] call to puts | raise.rb:110:12:110:25 | [ensure: return, ensure(1): exception] "inner ensure" | | raise.rb:110:7:110:25 | [ensure: return] call to puts | raise.rb:110:12:110:25 | [ensure: return] "inner ensure" | | raise.rb:110:7:110:25 | call to puts | raise.rb:110:12:110:25 | "inner ensure" | | raise.rb:113:3:113:15 | call to puts | raise.rb:113:8:113:15 | "End m9" | -| raise.rb:115:3:115:22 | [ensure: raise] call to puts | raise.rb:115:8:115:22 | [ensure: raise] "method ensure" | +| raise.rb:115:3:115:22 | [ensure: exception] call to puts | raise.rb:115:8:115:22 | [ensure: exception] "method ensure" | | raise.rb:115:3:115:22 | [ensure: return] call to puts | raise.rb:115:8:115:22 | [ensure: return] "method ensure" | | raise.rb:115:3:115:22 | call to puts | raise.rb:115:8:115:22 | "method ensure" | -| raise.rb:117:5:117:22 | [ensure: raise] call to raise | raise.rb:117:11:117:22 | [ensure: raise] "b2 is true" | +| raise.rb:117:5:117:22 | [ensure: exception] call to raise | raise.rb:117:11:117:22 | [ensure: exception] "b2 is true" | | raise.rb:117:5:117:22 | [ensure: return] call to raise | raise.rb:117:11:117:22 | [ensure: return] "b2 is true" | | raise.rb:117:5:117:22 | call to raise | raise.rb:117:11:117:22 | "b2 is true" | | raise.rb:121:14:121:30 | call to raise | raise.rb:121:20:121:30 | "Exception" | | raise.rb:125:3:125:51 | call to puts | raise.rb:125:8:125:51 | "Will not get executed if p is..." | | raise.rb:131:7:131:22 | call to raise | raise.rb:131:13:131:22 | ExceptionA | | raise.rb:135:5:135:21 | call to puts | raise.rb:135:10:135:21 | "ExceptionB" | -| raise.rb:137:5:137:17 | [ensure: raise] call to puts | raise.rb:137:10:137:17 | [ensure: raise] "Ensure" | +| raise.rb:137:5:137:17 | [ensure: exception] call to puts | raise.rb:137:10:137:17 | [ensure: exception] "Ensure" | | raise.rb:137:5:137:17 | call to puts | raise.rb:137:10:137:17 | "Ensure" | | raise.rb:139:3:139:16 | call to puts | raise.rb:139:8:139:16 | "End m11" | | raise.rb:144:5:144:12 | call to raise | raise.rb:144:11:144:12 | "" | diff --git a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql index 1bf7461e7fac..86609a73909c 100644 --- a/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql +++ b/ruby/ql/test/library-tests/dataflow/barrier-guards/barrier-guards.ql @@ -12,7 +12,7 @@ query predicate newStyleBarrierGuards(DataFlow::Node n) { n instanceof StringConstArrayInclusionCallBarrier } -query predicate controls(CfgNode condition, BasicBlock bb, SuccessorTypes::ConditionalSuccessor s) { +query predicate controls(CfgNode condition, BasicBlock bb, ConditionalSuccessor s) { exists(ConditionBlock cb | cb.edgeDominates(bb, s) and condition = cb.getLastNode() diff --git a/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll b/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll index eb8dbdea39f7..b586a1aafee4 100644 --- a/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll +++ b/rust/ql/lib/codeql/rust/controlflow/ControlFlowGraph.qll @@ -1,25 +1,9 @@ /** Provides classes representing the control flow graph. */ private import internal.ControlFlowGraphImpl -private import internal.SuccessorType private import internal.Scope as Scope +import codeql.controlflow.SuccessorType final class CfgScope = Scope::CfgScope; -final class SuccessorType = SuccessorTypeImpl; - -final class NormalSuccessor = NormalSuccessorImpl; - -final class ConditionalSuccessor = ConditionalSuccessorImpl; - -final class BooleanSuccessor = BooleanSuccessorImpl; - -final class MatchSuccessor = MatchSuccessorImpl; - -final class BreakSuccessor = BreakSuccessorImpl; - -final class ContinueSuccessor = ContinueSuccessorImpl; - -final class ReturnSuccessor = ReturnSuccessorImpl; - final class CfgNode = Node; diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll b/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll index 01169ce2727a..0250f1cbc435 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll @@ -1,7 +1,6 @@ private import codeql.util.Boolean private import codeql.rust.controlflow.ControlFlowGraph private import rust -private import SuccessorType newtype TCompletion = TSimpleCompletion() or @@ -32,7 +31,7 @@ abstract class NormalCompletion extends Completion { } /** A simple (normal) completion. */ class SimpleCompletion extends NormalCompletion, TSimpleCompletion { - override NormalSuccessor getAMatchingSuccessorType() { any() } + 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. @@ -184,7 +183,7 @@ class MatchCompletion extends TMatchCompletion, ConditionalCompletion { e instanceof TryExpr and value = true } - override MatchSuccessor getAMatchingSuccessorType() { result.getValue() = value } + override MatchingSuccessor getAMatchingSuccessorType() { result.getValue() = value } /** Gets the dual match completion. */ override MatchCompletion getDual() { result = TMatchCompletion(value.booleanNot()) } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index e989931e0698..ddc4dae9b958 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -29,19 +29,11 @@ private module CfgInput implements InputSig { Stages::CfgStage::ref() } - class SuccessorType = Cfg::SuccessorType; + private class SuccessorType = Cfg::SuccessorType; /** Gets a successor type that matches completion `c`. */ SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - /** - * Hold if `c` represents simple (normal) evaluation of a statement or an expression. - */ - predicate successorTypeIsSimple(SuccessorType t) { t instanceof Cfg::NormalSuccessor } - - /** Holds if `t` is an abnormal exit type out of a CFG scope. */ - predicate isAbnormalExitType(SuccessorType t) { none() } - /** Hold if `t` represents a conditional successor type. */ predicate successorTypeIsCondition(SuccessorType t) { t instanceof Cfg::BooleanSuccessor } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/SuccessorType.qll b/rust/ql/lib/codeql/rust/controlflow/internal/SuccessorType.qll deleted file mode 100644 index 658d2a667061..000000000000 --- a/rust/ql/lib/codeql/rust/controlflow/internal/SuccessorType.qll +++ /dev/null @@ -1,74 +0,0 @@ -private import rust -private import codeql.util.Boolean -private import Completion -private import codeql.rust.internal.CachedStages - -cached -newtype TSuccessorType = - TNormalSuccessor() { Stages::CfgStage::ref() } or - TBooleanSuccessor(Boolean b) or - TMatchSuccessor(Boolean b) or - TBreakSuccessor() or - TContinueSuccessor() or - TReturnSuccessor() - -/** The type of a control flow successor. */ -abstract class SuccessorTypeImpl extends TSuccessorType { - /** Gets a textual representation of successor type. */ - abstract string toString(); -} - -/** A normal control flow successor. */ -class NormalSuccessorImpl extends SuccessorTypeImpl, TNormalSuccessor { - override string toString() { result = "successor" } -} - -/** A conditional control flow successor. */ -abstract class ConditionalSuccessorImpl extends SuccessorTypeImpl { - boolean value; - - bindingset[value] - ConditionalSuccessorImpl() { exists(value) } - - /** Gets the Boolean value of this successor. */ - boolean getValue() { result = value } -} - -/** A Boolean control flow successor for a boolean conditon. */ -class BooleanSuccessorImpl extends ConditionalSuccessorImpl, TBooleanSuccessor { - BooleanSuccessorImpl() { this = TBooleanSuccessor(value) } - - override string toString() { result = this.getValue().toString() } -} - -/** - * A control flow successor of a pattern match. - */ -class MatchSuccessorImpl extends ConditionalSuccessorImpl, TMatchSuccessor { - MatchSuccessorImpl() { this = TMatchSuccessor(value) } - - override string toString() { - if this.getValue() = true then result = "match" else result = "no-match" - } -} - -/** - * A control flow successor of a `break` expression. - */ -class BreakSuccessorImpl extends SuccessorTypeImpl, TBreakSuccessor { - override string toString() { result = "break" } -} - -/** - * A control flow successor of a `continue` expression. - */ -class ContinueSuccessorImpl extends SuccessorTypeImpl, TContinueSuccessor { - override string toString() { result = "continue" } -} - -/** - * A `return` control flow successor. - */ -class ReturnSuccessorImpl extends SuccessorTypeImpl, TReturnSuccessor { - override string toString() { result = "return" } -} diff --git a/rust/ql/lib/codeql/rust/internal/CachedStages.qll b/rust/ql/lib/codeql/rust/internal/CachedStages.qll index c2dc21661783..cfd3d6905220 100644 --- a/rust/ql/lib/codeql/rust/internal/CachedStages.qll +++ b/rust/ql/lib/codeql/rust/internal/CachedStages.qll @@ -65,7 +65,6 @@ module Stages { cached module CfgStage { private import codeql.rust.controlflow.internal.Splitting - private import codeql.rust.controlflow.internal.SuccessorType private import codeql.rust.controlflow.internal.ControlFlowGraphImpl private import codeql.rust.controlflow.CfgNodes @@ -87,8 +86,6 @@ module Stages { or exists(TConditionalCompletionSplitKind()) or - exists(TNormalSuccessor()) - or exists(AstCfgNode n) or exists(CallExprCfgNode n | exists(n.getFunction())) diff --git a/shared/controlflow/codeql/controlflow/BasicBlock.qll b/shared/controlflow/codeql/controlflow/BasicBlock.qll index 132920e329fb..572b5cbac814 100644 --- a/shared/controlflow/codeql/controlflow/BasicBlock.qll +++ b/shared/controlflow/codeql/controlflow/BasicBlock.qll @@ -9,13 +9,12 @@ overlay[local?] module; private import codeql.util.Location +private import SuccessorType /** Provides the language-specific input specification. */ signature module InputSig { - class SuccessorType; - /** Hold if `t` represents a conditional successor type. */ - predicate successorTypeIsCondition(SuccessorType t); + default predicate successorTypeIsCondition(SuccessorType t) { t instanceof ConditionalSuccessor } /** A delineated part of the AST with its own CFG. */ class CfgScope; diff --git a/shared/controlflow/codeql/controlflow/Cfg.qll b/shared/controlflow/codeql/controlflow/Cfg.qll index 25796089ab50..18478201be51 100644 --- a/shared/controlflow/codeql/controlflow/Cfg.qll +++ b/shared/controlflow/codeql/controlflow/Cfg.qll @@ -8,6 +8,7 @@ module; private import codeql.util.Location private import codeql.util.FileSystem private import codeql.util.Void +private import SuccessorType /** Provides the language-specific input specification. */ signature module InputSig { @@ -59,26 +60,11 @@ signature module InputSig { /** Holds if `scope` is exited when `last` finishes with completion `c`. */ predicate scopeLast(CfgScope scope, AstNode last, Completion c); - /** A type of a control flow successor. */ - class SuccessorType { - /** Gets a textual representation of this successor type. */ - string toString(); - } - /** Gets a successor type that matches completion `c`. */ SuccessorType getAMatchingSuccessorType(Completion c); - /** - * Hold if `t` represents simple (normal) evaluation of a statement or an - * expression. - */ - predicate successorTypeIsSimple(SuccessorType t); - /** Hold if `t` represents a conditional successor type. */ - predicate successorTypeIsCondition(SuccessorType t); - - /** Holds if `t` is an abnormal exit type out of a CFG scope. */ - predicate isAbnormalExitType(SuccessorType t); + default predicate successorTypeIsCondition(SuccessorType t) { t instanceof ConditionalSuccessor } /** * Gets an `id` of `node`. This is used to order the predecessors of a join @@ -522,7 +508,7 @@ module MakeWithSplitting< private predicate succEntrySplits(CfgScope pred, AstNode succ, Splits succSplits, SuccessorType t) { exists(int rnk | scopeFirst(pred, succ) and - successorTypeIsSimple(t) and + t instanceof DirectSuccessor and succEntrySplitsFromRank(pred, succ, succSplits, rnk) | rnk = 0 and @@ -1016,7 +1002,7 @@ module MakeWithSplitting< exists(CfgScope scope | pred = TAnnotatedExitNode(scope, _) and result = TExitNode(scope) and - successorTypeIsSimple(t) + t instanceof DirectSuccessor ) } @@ -1320,7 +1306,7 @@ module MakeWithSplitting< label = strictconcat(SuccessorType t, string s | succ = getASuccessor(pred, t) and - if successorTypeIsSimple(t) then s = "" else s = t.toString() + if t instanceof DirectSuccessor then s = "" else s = t.toString() | s, ", " order by s ) @@ -1535,6 +1521,8 @@ module MakeWithSplitting< query predicate multipleSuccessors(Node node, SuccessorType t, Node successor) { strictcount(getASuccessor(node, t)) > 1 and successor = getASuccessor(node, t) and + // allow for multiple exception successors + not t instanceof ExceptionSuccessor and // allow for functions with multiple bodies not (t instanceof SimpleSuccessorType and node instanceof EntryNode) } @@ -1590,8 +1578,6 @@ module MakeWithSplitting< private class NodeAlias = Node; private module BasicBlockInputSig implements BB::InputSig { - class SuccessorType = Input::SuccessorType; - predicate successorTypeIsCondition = Input::successorTypeIsCondition/1; class CfgScope = CfgScopeAlias; diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 917f95569edb..d04f075b54df 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -53,24 +53,9 @@ module; private import codeql.util.Boolean private import codeql.util.Location private import codeql.util.Unit +private import SuccessorType signature module InputSig { - class SuccessorType { - /** Gets a textual representation of this successor type. */ - string toString(); - } - - class ExceptionSuccessor extends SuccessorType; - - class ConditionalSuccessor extends SuccessorType { - /** Gets the Boolean value of this successor. */ - boolean getValue(); - } - - class BooleanSuccessor extends ConditionalSuccessor; - - class NullnessSuccessor extends ConditionalSuccessor; - /** A control flow node. */ class ControlFlowNode { /** Gets a textual representation of this control flow node. */ diff --git a/shared/controlflow/codeql/controlflow/SuccessorType.qll b/shared/controlflow/codeql/controlflow/SuccessorType.qll new file mode 100644 index 000000000000..9dcbbc9bd271 --- /dev/null +++ b/shared/controlflow/codeql/controlflow/SuccessorType.qll @@ -0,0 +1,347 @@ +/** + * Provides different types of control flow successor types. These are used as + * edge labels in the control flow graph. + */ +overlay[local] +module; + +private import codeql.util.Boolean + +/* + * SuccessorType + * |- NormalSuccessor + * | |- DirectSuccessor + * | \- ConditionalSuccessor + * | |- BooleanSuccessor + * | |- NullnessSuccessor + * | |- MatchingSuccessor + * | \- EmptinessSuccessor + * \- AbruptSuccessor + * |- ExceptionSuccessor + * |- ReturnSuccessor + * |- ExitSuccessor (program termination) + * \- JumpSuccessor + * |- BreakSuccessor + * |- ContinueSuccessor + * |- GotoSuccessor + * |- RedoSuccessor // rare, used in Ruby + * |- RetrySuccessor // rare, used in Ruby + * \- JavaYieldSuccessor + */ + +private newtype TSuccessorType = + TDirectSuccessor() or + TBooleanSuccessor(Boolean branch) or + TNullnessSuccessor(Boolean isNull) or + TMatchingSuccessor(Boolean isMatch) or + TEmptinessSuccessor(Boolean isEmpty) or + TExceptionSuccessor() or + TReturnSuccessor() or + TExitSuccessor() or + TBreakSuccessor() or + TContinueSuccessor() or + TGotoSuccessor() or + TRedoSuccessor() or + TRetrySuccessor() or + TJavaYieldSuccessor() + +/** + * The type of a control flow successor. + * + * A successor is either normal, which covers direct and conditional + * successors, or abrupt, which covers all other types of successors including + * for example exceptions, returns, and other jumps. + */ +class SuccessorType extends TSuccessorType { + /** Gets a textual representation of this successor type. */ + abstract string toString(); +} + +private class TNormalSuccessor = TDirectSuccessor or TConditionalSuccessor; + +/** + * A normal control flow successor. This is either a direct or a conditional + * successor. + */ +abstract class NormalSuccessor extends SuccessorType, TNormalSuccessor { } + +/** A direct control flow successor. */ +class DirectSuccessor extends NormalSuccessor, TDirectSuccessor { + override string toString() { result = "successor" } +} + +private class TConditionalSuccessor = + TBooleanSuccessor or TMatchingSuccessor or TNullnessSuccessor or TEmptinessSuccessor; + +/** + * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`), + * a nullness successor (`NullnessSuccessor`), a matching successor (`MatchingSuccessor`), + * or an emptiness successor (`EmptinessSuccessor`). + */ +abstract class ConditionalSuccessor extends NormalSuccessor, TConditionalSuccessor { + /** Gets the Boolean value of this successor. */ + abstract boolean getValue(); +} + +/** + * A Boolean control flow successor. + * + * For example, this program fragment: + * + * ```csharp + * if (x < 0) + * return 0; + * else + * return 1; + * ``` + * + * has a control flow graph containing Boolean successors: + * + * ``` + * if + * | + * x < 0 + * / \ + * / \ + * / \ + * true false + * | \ + * return 0 return 1 + * ``` + */ +class BooleanSuccessor extends ConditionalSuccessor, TBooleanSuccessor { + override boolean getValue() { this = TBooleanSuccessor(result) } + + override string toString() { result = this.getValue().toString() } +} + +/** + * A nullness control flow successor. + * + * For example, this program fragment: + * + * ```csharp + * int? M(string s) => s?.Length; + * ``` + * + * has a control flow graph containing nullness successors: + * + * ``` + * enter M + * | + * s + * / \ + * / \ + * / \ + * null non-null + * \ | + * \ Length + * \ / + * \ / + * exit M + * ``` + */ +class NullnessSuccessor extends ConditionalSuccessor, TNullnessSuccessor { + /** Holds if this is a `null` successor. */ + predicate isNull() { this = TNullnessSuccessor(true) } + + override boolean getValue() { this = TNullnessSuccessor(result) } + + override string toString() { if this.isNull() then result = "null" else result = "non-null" } +} + +/** + * A matching control flow successor. + * + * For example, this program fragment: + * + * ```csharp + * switch (x) { + * case 0 : + * return 0; + * default : + * return 1; + * } + * ``` + * + * has a control flow graph containing matching successors: + * + * ``` + * switch + * | + * x + * | + * case 0 + * / \ + * / \ + * / \ + * match no-match + * | \ + * return 0 default + * | + * return 1 + * ``` + */ +class MatchingSuccessor extends ConditionalSuccessor, TMatchingSuccessor { + /** Holds if this is a match successor. */ + predicate isMatch() { this = TMatchingSuccessor(true) } + + override boolean getValue() { this = TMatchingSuccessor(result) } + + override string toString() { if this.isMatch() then result = "match" else result = "no-match" } +} + +/** + * An emptiness control flow successor. + * + * For example, this program fragment: + * + * ```csharp + * foreach (var arg in args) + * { + * yield return arg; + * } + * yield return ""; + * ``` + * + * has a control flow graph containing emptiness successors: + * + * ``` + * args + * | + * loop-header------<----- + * / \ \ + * / \ | + * / \ | + * / \ | + * empty non-empty | + * | \ | + * yield return "" \ | + * var arg | + * | | + * yield return arg | + * \_________/ + * ``` + */ +class EmptinessSuccessor extends ConditionalSuccessor, TEmptinessSuccessor { + /** Holds if this is an empty successor. */ + predicate isEmpty() { this = TEmptinessSuccessor(true) } + + override boolean getValue() { this = TEmptinessSuccessor(result) } + + override string toString() { if this.isEmpty() then result = "empty" else result = "non-empty" } +} + +private class TAbruptSuccessor = + TExceptionSuccessor or TReturnSuccessor or TExitSuccessor or TJumpSuccessor; + +/** An abrupt control flow successor. */ +abstract class AbruptSuccessor extends SuccessorType, TAbruptSuccessor { } + +/** + * An exceptional control flow successor. + * + * Example: + * + * ```csharp + * int M(string s) + * { + * if (s == null) + * throw new ArgumentNullException(nameof(s)); + * return s.Length; + * } + * ``` + * + * The callable exit node of `M` is an exceptional successor of the node + * `throw new ArgumentNullException(nameof(s));`. + */ +class ExceptionSuccessor extends AbruptSuccessor, TExceptionSuccessor { + override string toString() { result = "exception" } +} + +/** + * A `return` control flow successor. + * + * Example: + * + * ```csharp + * void M() + * { + * return; + * } + * ``` + * + * The callable exit node of `M` is a `return` successor of the `return;` + * statement. + */ +class ReturnSuccessor extends AbruptSuccessor, TReturnSuccessor { + override string toString() { result = "return" } +} + +/** + * An exit control flow successor. + * + * Example: + * + * ```csharp + * int M(string s) + * { + * if (s == null) + * System.Environment.Exit(0); + * return s.Length; + * } + * ``` + * + * The callable exit node of `M` is an exit successor of the node on line 4. + */ +class ExitSuccessor extends AbruptSuccessor, TExitSuccessor { + override string toString() { result = "exit" } +} + +private class TJumpSuccessor = + TBreakSuccessor or TContinueSuccessor or TGotoSuccessor or TRedoSuccessor or TRetrySuccessor or + TJavaYieldSuccessor; + +/** + * A jump control flow successor. + * + * This covers non-exceptional, non-local control flow, such as `break`, + * `continue`, and `goto`. + */ +abstract class JumpSuccessor extends AbruptSuccessor, TJumpSuccessor { } + +/** A `break` control flow successor. */ +class BreakSuccessor extends JumpSuccessor, TBreakSuccessor { + override string toString() { result = "break" } +} + +/** A `continue` control flow successor. */ +class ContinueSuccessor extends JumpSuccessor, TContinueSuccessor { + override string toString() { result = "continue" } +} + +/** A `goto` control flow successor. */ +class GotoSuccessor extends JumpSuccessor, TGotoSuccessor { + override string toString() { result = "goto" } +} + +/** A `redo` control flow successor (rare, used in Ruby). */ +class RedoSuccessor extends JumpSuccessor, TRedoSuccessor { + override string toString() { result = "redo" } +} + +/** A `retry` control flow successor (rare, used in Ruby). */ +class RetrySuccessor extends JumpSuccessor, TRetrySuccessor { + override string toString() { result = "retry" } +} + +/** A Java `yield` control flow successor. */ +class JavaYieldSuccessor extends JumpSuccessor, TJavaYieldSuccessor { + override string toString() { result = "yield" } +} + +/** Holds if `t` is an abnormal exit type out of a CFG scope. */ +predicate isAbnormalExitType(SuccessorType t) { + t instanceof ExceptionSuccessor or + t instanceof ExitSuccessor +} diff --git a/swift/ql/lib/codeql/swift/controlflow/BasicBlocks.qll b/swift/ql/lib/codeql/swift/controlflow/BasicBlocks.qll index 160903fd8954..87696dd17eb4 100644 --- a/swift/ql/lib/codeql/swift/controlflow/BasicBlocks.qll +++ b/swift/ql/lib/codeql/swift/controlflow/BasicBlocks.qll @@ -2,7 +2,6 @@ private import ControlFlowGraph private import internal.ControlFlowGraphImpl as CfgImpl -private import SuccessorTypes private import CfgImpl::BasicBlocks as BasicBlocksImpl /** diff --git a/swift/ql/lib/codeql/swift/controlflow/ControlFlowGraph.qll b/swift/ql/lib/codeql/swift/controlflow/ControlFlowGraph.qll index 4d1be28b0012..ef443f301841 100644 --- a/swift/ql/lib/codeql/swift/controlflow/ControlFlowGraph.qll +++ b/swift/ql/lib/codeql/swift/controlflow/ControlFlowGraph.qll @@ -2,11 +2,11 @@ private import swift private import BasicBlocks -private import SuccessorTypes private import internal.ControlFlowGraphImpl as CfgImpl private import internal.Completion private import internal.Scope private import internal.ControlFlowElements +import codeql.controlflow.SuccessorType /** An AST node with an associated control-flow graph. */ class CfgScope extends Scope instanceof CfgImpl::CfgScope::Range_ { @@ -61,72 +61,3 @@ class ControlFlowNode extends CfgImpl::Node { /** Holds if this node has more than one successor. */ final predicate isBranch() { strictcount(this.getASuccessor()) > 1 } } - -/** The type of a control flow successor. */ -class SuccessorType extends CfgImpl::TSuccessorType { - /** Gets a textual representation of successor type. */ - string toString() { none() } -} - -/** Provides different types of control flow successor types. */ -module SuccessorTypes { - /** A normal control flow successor. */ - class NormalSuccessor extends SuccessorType, CfgImpl::TSuccessorSuccessor { - final override string toString() { result = "successor" } - } - - /** A conditional control flow successor. */ - abstract class ConditionalSuccessor extends SuccessorType { - boolean value; - - bindingset[value] - ConditionalSuccessor() { any() } - - /** Gets the Boolean value of this successor. */ - final boolean getValue() { result = value } - - override string toString() { result = this.getValue().toString() } - } - - /** A Boolean control flow successor. */ - class BooleanSuccessor extends ConditionalSuccessor, CfgImpl::TBooleanSuccessor { - BooleanSuccessor() { this = CfgImpl::TBooleanSuccessor(value) } - } - - class BreakSuccessor extends SuccessorType, CfgImpl::TBreakSuccessor { - final override string toString() { result = "break" } - } - - class ContinueSuccessor extends SuccessorType, CfgImpl::TContinueSuccessor { - final override string toString() { result = "continue" } - } - - class ReturnSuccessor extends SuccessorType, CfgImpl::TReturnSuccessor { - final override string toString() { result = "return" } - } - - class MatchingSuccessor extends ConditionalSuccessor, CfgImpl::TMatchingSuccessor { - MatchingSuccessor() { this = CfgImpl::TMatchingSuccessor(value) } - - /** Holds if this is a match successor. */ - predicate isMatch() { value = true } - - override string toString() { if this.isMatch() then result = "match" else result = "no-match" } - } - - class FallthroughSuccessor extends SuccessorType, CfgImpl::TFallthroughSuccessor { - final override string toString() { result = "fallthrough" } - } - - class EmptinessSuccessor extends ConditionalSuccessor, CfgImpl::TEmptinessSuccessor { - EmptinessSuccessor() { this = CfgImpl::TEmptinessSuccessor(value) } - - predicate isEmpty() { value = true } - - override string toString() { if this.isEmpty() then result = "empty" else result = "non-empty" } - } - - class ExceptionSuccessor extends SuccessorType, CfgImpl::TExceptionSuccessor { - override string toString() { result = "exception" } - } -} diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/Completion.qll b/swift/ql/lib/codeql/swift/controlflow/internal/Completion.qll index 9e7975890e62..4a2acdf9e20e 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/Completion.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/Completion.qll @@ -8,7 +8,6 @@ private import swift private import codeql.swift.controlflow.ControlFlowGraph private import ControlFlowElements private import ControlFlowGraphImpl -private import SuccessorTypes private newtype TCompletion = TSimpleCompletion() or @@ -324,7 +323,7 @@ abstract class NormalCompletion extends Completion { /** A simple (normal) completion. */ class SimpleCompletion extends NormalCompletion, TSimpleCompletion { - override NormalSuccessor getAMatchingSuccessorType() { any() } + override DirectSuccessor getAMatchingSuccessorType() { any() } override string toString() { result = "simple" } } @@ -468,7 +467,7 @@ class FallthroughCompletion extends Completion, TFallthroughCompletion { FallthroughCompletion() { this = TFallthroughCompletion(dest) } - override FallthroughSuccessor getAMatchingSuccessorType() { any() } + override DirectSuccessor getAMatchingSuccessorType() { any() } CaseStmt getDestination() { result = dest } diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index b610ff0b0f3d..59d2acb5857f 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -1976,18 +1976,6 @@ private module Cached { result = n.(FuncDeclElement).getAst() or result = n.(KeyPathElement).getAst() } - - cached - newtype TSuccessorType = - TSuccessorSuccessor() or - TBooleanSuccessor(boolean b) { b in [false, true] } or - TBreakSuccessor() or - TContinueSuccessor() or - TReturnSuccessor() or - TMatchingSuccessor(boolean match) { match in [false, true] } or - TFallthroughSuccessor() or - TEmptinessSuccessor(boolean isEmpty) { isEmpty in [false, true] } or - TExceptionSuccessor() } import Cached diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplSpecific.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplSpecific.qll index 24548290ea07..37625e0be10c 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImplSpecific.qll @@ -48,33 +48,11 @@ module CfgInput implements InputSig { CfgScope getCfgScope(AstNode n) { result = scopeOfAst(n.asAstNode()) } - class SuccessorType = Cfg::SuccessorType; + private class SuccessorType = Cfg::SuccessorType; /** Gets a successor type that matches completion `c`. */ SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - /** - * Hold if `c` represents simple (normal) evaluation of a statement or an - * expression. - */ - predicate successorTypeIsSimple(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::NormalSuccessor - } - - /** Holds if `t` is an abnormal exit type out of a CFG scope. */ - predicate isAbnormalExitType(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::ExceptionSuccessor - } - - /** Hold if `t` represents a conditional successor type. */ - predicate successorTypeIsCondition(SuccessorType t) { - t instanceof Cfg::SuccessorTypes::BooleanSuccessor or - t instanceof Cfg::SuccessorTypes::BreakSuccessor or - t instanceof Cfg::SuccessorTypes::ContinueSuccessor or - t instanceof Cfg::SuccessorTypes::MatchingSuccessor or - t instanceof Cfg::SuccessorTypes::EmptinessSuccessor - } - /** Holds if `first` is first executed when entering `scope`. */ predicate scopeFirst(CfgScope scope, AstNode first) { scope.(Impl::CfgScope::Range_).entry(first) diff --git a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll index 72608f50fe66..1ad4e7734561 100644 --- a/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PathInjectionExtensions.qll @@ -108,7 +108,7 @@ private class DefaultPathInjectionBarrier extends PathInjectionBarrier { TaintTracking::localTaint(validated, DataFlow::exprNode(normalize.getQualifier())) and DataFlow::localExprFlow(normalize, starts.getQualifier()) and DataFlow::localFlow(validated, this) and - exists(ConditionBlock bb, SuccessorTypes::BooleanSuccessor b | + exists(ConditionBlock bb, BooleanSuccessor b | bb.getANode().getNode().asAstNode().(IfStmt).getACondition() = getImmediateParent*(starts) and b.getValue() = true |